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

Commit 3244bf36 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Android (Google) Code Review
Browse files

Merge "[Shell Transition] Defer remove splash screen window when it is inTransition."

parents 39e011d0 aa82677f
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -2755,6 +2755,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        }

        final StartingSurfaceController.StartingSurface surface;
        final WindowState startingWindow = mStartingWindow;
        final boolean animate;
        if (mStartingData != null) {
            animate = prepareAnimation && mStartingData.needRevealAnimation()
@@ -2779,8 +2780,20 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            return;
        }

        if (animate && mTransitionController.inCollectingTransition(startingWindow)
                && startingWindow.cancelAndRedraw()) {
            // Defer remove starting window after transition start.
            // If splash screen window was in collecting, the client side is unable to draw because
            // of Session#cancelDraw, which will blocking the remove animation.
            startingWindow.mSyncTransaction.addTransactionCommittedListener(Runnable::run, () -> {
                synchronized (mAtmService.mGlobalLock) {
                    surface.remove(true);
                }
            });
        } else {
            surface.remove(animate);
        }
    }

    /**
     * Reparents this activity into {@param newTaskFrag} at the provided {@param position}. The