diff options
| author | 2022-06-30 23:32:04 +0800 | |
|---|---|---|
| committer | 2022-07-04 13:23:58 +0000 | |
| commit | 50355ae4e4c4318ddd1df293f922ad79579bee7c (patch) | |
| tree | fb458982f08d447647ca90a267ec059b056bddaf /libs/androidfw/ResourceTimer.cpp | |
| parent | df74b6ddbcb4dbca8d81f807ed1fc21b3647d28e (diff) | |
Don't notify animation finished if no animation
This removes commit ab9fcb2 to avoid potential recursion of
surface placement: onAnimationFinished -> onExitAnimationDone
-> destroySurfaces -> postWindowRemoveCleanupLocked
-> performSurfacePlacementNoTrace.
The original case no longer occurs without the invocation. And now
the window with mRemoveOnExit=true will be removed by WindowState #handleCompleteDeferredRemoval. And if there is only mAnimatingExit,
it will be handled by WS#cleanupAnimatingExitWindow.
The test testStuckExitingWindow is also removed because no matter
with calling onAnimationFinished or not in postApplyAnimation,
the test always passes.
Verified the original issue case: change language and swipe up.
There is no leftover EXITING window. Even hardcode to set the exit
flags unexpectedly, there is still no problem.
Bug: 237481770
Test: WindowStateTests#testDeferredRemovalByAnimating
WindowContainerTests#testHandleCompleteDeferredRemoval
Change-Id: If10cd3c334476e078fdd4d4db05bf8b37db84ccc
Diffstat (limited to 'libs/androidfw/ResourceTimer.cpp')
0 files changed, 0 insertions, 0 deletions