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

Commit 528ed74a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix ActivityRecord leak if mainWindow is animating." into sc-dev am:...

Merge "Fix ActivityRecord leak if mainWindow is animating." into sc-dev am: 659a42df am: 2145c7b3

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

Change-Id: I49f980ebe01942392f17bec91e033c5f267d0b9a
parents d11ea91e 2145c7b3
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -2409,18 +2409,22 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        final boolean startingWindow = mAttrs.type == TYPE_APPLICATION_STARTING;
        if (startingWindow) {
            ProtoLog.d(WM_DEBUG_STARTING_WINDOW, "Starting window removed %s", this);
        }

        if (startingWindow && StartingSurfaceController.DEBUG_ENABLE_SHELL_DRAWER) {
            // Cancel the remove starting window animation on shell. The main window might changed
            // during animating, checking for all windows would be safer.
            if (mActivityRecord != null) {
                mActivityRecord.forAllWindows(w -> {
                mActivityRecord.forAllWindowsUnchecked(w -> {
                    if (w.isSelfAnimating(0, ANIMATION_TYPE_STARTING_REVEAL)) {
                        w.cancelAnimation();
                        return true;
                    }
                    return false;
                }, true);
            }
        } else if (mAttrs.type == TYPE_BASE_APPLICATION
                && isSelfAnimating(0, ANIMATION_TYPE_STARTING_REVEAL)) {
            // Cancel the remove starting window animation in case the binder dead before remove
            // splash window.
            cancelAnimation();
        }

        ProtoLog.v(WM_DEBUG_FOCUS, "Remove client=%x, surfaceController=%s Callers=%s",
@@ -2428,7 +2432,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
                    mWinAnimator.mSurfaceController,
                    Debug.getCallers(5));


        final long origId = Binder.clearCallingIdentity();

        try {