Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a112aaf authored by Evan Rosky's avatar Evan Rosky Committed by Automerger Merge Worker
Browse files

Merge "Don't assume exiting non-app windows are animating in transition" into...

Merge "Don't assume exiting non-app windows are animating in transition" into tm-qpr-dev am: 13418852 am: d30f301e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19973324



Change-Id: I5006a50e243cccc978592477200858193280df91
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 2db52aed d30f301e
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -123,7 +123,10 @@ import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_BACKGROUND_
import static com.android.server.wm.RootWindowContainer.MATCH_ATTACHED_TASK_OR_RECENT_TASKS;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_RECENTS;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
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;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY;
@@ -2604,10 +2607,22 @@ public class WindowManagerService extends IWindowManager.Stub
        if (win.isWinVisibleLw() && win.mDisplayContent.okToAnimate()) {
            String reason = null;
            if (winAnimator.applyAnimationLocked(transit, false)) {
                // This is a WMCore-driven window animation.
                reason = "applyAnimation";
                focusMayChange = true;
                win.mAnimatingExit = true;
            } else if (win.isExitAnimationRunningSelfOrParent()) {
            } else if (
                    // This is already animating via a WMCore-driven window animation
                    win.isSelfAnimating(0 /* flags */, ANIMATION_TYPE_WINDOW_ANIMATION)
                    // Or already animating as part of a legacy app-transition
                    || win.isAnimating(PARENTS | TRANSITION,
                            ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_RECENTS)
                    // Or already animating as part of a shell-transition.
                    || (win.inTransition()
                            // Filter out non-app windows since transitions don't animate those
                            // (but may still "wait" on them for readiness)
                            && (win.mActivityRecord != null || win.mIsWallpaper))) {
                // TODO(b/247005789): set mAnimatingExit somewhere in shell-transitions setup.
                reason = "animating";
                win.mAnimatingExit = true;
            } else if (win.mDisplayContent.mWallpaperController.isWallpaperTarget(win)