From ec4642a9b66d1f9ae46d4f1fe1fc21eb4c44df7a Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Wed, 12 Aug 2020 13:00:02 +0800 Subject: [PATCH] Correct the return value of applyAnimationLocked. The starting window cannot be removed because it is waiting for the exiting animation finished, This may happen if the animation is not applied when #selectAnimation cannot find an appropriate animation. To make the state correct, the return result of #applyAnimationLocked should not only reference to the hierarchial animation state. Bug: 161847146 Test: atest WmTests Change-Id: I69bcd29f2587a3644485a0db05e622f6775cc82f --- .../core/java/com/android/server/wm/WindowStateAnimator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 92177abbbf856..4ff985f6bd43c 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -38,6 +38,7 @@ import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC; import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; +import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION; import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG; @@ -1327,7 +1328,7 @@ class WindowStateAnimator { mWin.getDisplayContent().adjustForImeIfNeeded(); } - return mWin.isAnimating(PARENTS); + return mWin.isAnimating(0 /* flags */, ANIMATION_TYPE_WINDOW_ANIMATION); } void dumpDebug(ProtoOutputStream proto, long fieldId) {