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

Commit 3dc115f8 authored by lumark's avatar lumark Committed by android-build-merger
Browse files

Merge "Fix app transition delayed cases" into qt-dev

am: 0a71ae95

Change-Id: I76424828d721d2f83aac3a9bb86c4251189faae2
parents 19ce56d1 0a71ae95
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -4089,11 +4089,14 @@ class ActivityStack extends ConfigurationContainer {
        // The activity that we are finishing may be over the lock screen. In this case, we do not
        // want to consider activities that cannot be shown on the lock screen as running and should
        // proceed with finishing the activity if there is no valid next top running activity.
        // Note that if this finishing activity is floating task, we don't need to wait the
        // next activity resume and can destroy it directly.
        final ActivityDisplay display = getDisplay();
        final ActivityRecord next = display.topRunningActivity(true /* considerKeyguardState */);
        final boolean isFloating = r.getConfiguration().windowConfiguration.tasksAreFloating();

        if (mode == FINISH_AFTER_VISIBLE && (r.visible || r.nowVisible)
                && next != null && !next.nowVisible) {
                && next != null && !next.nowVisible && !isFloating) {
            if (!mStackSupervisor.mStoppingActivities.contains(r)) {
                addToStopping(r, false /* scheduleIdle */, false /* idleDelayed */);
            }
+7 −0
Original line number Diff line number Diff line
@@ -2861,6 +2861,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
            }
            mDestroying = false;
            destroyedSomething = true;

            // Since mDestroying will affect AppWindowToken#allDrawn, we need to perform another
            // traversal in case we are waiting on this window to start the transition.
            if (getDisplayContent().mAppTransition.isTransitionSet()
                    && getDisplayContent().mOpeningApps.contains(mAppToken)) {
                mWmService.mWindowPlacerLocked.requestTraversal();
            }
        }

        return destroyedSomething;