OSDN Git Service

Fix missing exit animation when app is closed during starting window
authorChong Zhang <chz@google.com>
Sat, 2 Apr 2016 00:57:07 +0000 (17:57 -0700)
committerChong Zhang <chz@google.com>
Sat, 2 Apr 2016 02:11:43 +0000 (19:11 -0700)
When the transistion starts and we setTokenVisibilityLocked, mark all
relevant window flags on a starting window that's running exit animation.
This makes sure the starting window is removed when animation finishes.

bug: 27747191
Change-Id: I917ca18583e31db9a3e49ea70aae932c242877b8

services/core/java/com/android/server/wm/WindowManagerService.java

index 192ba7b..57ba77d 100644 (file)
@@ -4134,6 +4134,14 @@ public class WindowManagerService extends IWindowManager.Stub
             for (int i = 0; i < windowsCount; i++) {
                 WindowState win = wtoken.allAppWindows.get(i);
                 if (win == wtoken.startingWindow) {
+                    // Starting window that's exiting will be removed when the animation
+                    // finishes. Mark all relevant flags for that finishExit will proceed
+                    // all the way to actually remove it.
+                    if (!visible && win.isVisibleNow() && wtoken.mAppAnimator.isAnimating()) {
+                        win.mAnimatingExit = true;
+                        win.mRemoveOnExit = true;
+                        win.mWindowRemovalAllowed = true;
+                    }
                     continue;
                 }