Skip to content
Commit 50dfb959 authored by Ming-Shin Lu's avatar Ming-Shin Lu
Browse files

Fix app afterimage flashing while device unlocking

The problem is because in WMS#tryStartExitingAnimation set
win.mAnimatingExit as ture but not destroy surface when pressing
power button, so let `WindowState#mHasSurface` keeps true when
screen off. (Normally the surface should be destroyed when screen off)

This results when unlocking the screen will can see both the app
window afterimage and launcher are animating.

Check with DC#okToAnimate in tryStartExitingAnimation to ensure the
surface can be destroyed when the display is not ready to animate (e.g.
screen off).

Also, in order to cleanly clean up surfaces while cancelling recents
animation when the removal is allowed, make sure to invoke
onAnimationFinished for task's windows to finish the process of
the surface removal.

Fix: 173379232
Test: atest WmTests CtsWindowManagerDeviceTestCases
Test: atest RecentsAnimationControllerTests#\
      testCleanupAnimation_expectExitAnimationDone
Test: manul as below steps:
1. in gesture nav mode, launch any apps (e.g. Settings).
2. swipe up app task to launcher
3. before swipe up animation finish, quickly pressing power button.
4. turn on screen and unlock, see if the app window flashing then back
   to launcher.

Change-Id: Ib2778c1b2677752039be12a16a42623a25773fa2
parent cd6911ec
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment