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

Commit ef713774 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Fix unable to resume show-when-lock activity

When the show-when-lock activity is becoming top because the
other top non-show-when-lock activities are removed or moved
to back, the occluded state may not been updated that causes
activity state stays at stopped and visible.

Bug: 115499058
Test: atest CtsActivityManagerDeviceTestCases:KeyguardTests
Change-Id: I540f591755b51da777480f8b3ae2a8bedfc2ff5f
parent 3bbff814
Loading
Loading
Loading
Loading
+18 −7
Original line number Diff line number Diff line
@@ -2455,6 +2455,16 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        if (shouldSleepOrShutDownActivities()
                && mLastPausedActivity == next
                && mStackSupervisor.allPausedActivitiesComplete()) {
            // If the current top activity may be able to occlude keyguard but the occluded state
            // has not been set, update visibility and check again if we should continue to resume.
            boolean nothingToResume = true;
            if (!mService.mShuttingDown && !mTopActivityOccludesKeyguard
                    && next.canShowWhenLocked()) {
                ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */,
                        !PRESERVE_WINDOWS);
                nothingToResume = shouldSleepActivities();
            }
            if (nothingToResume) {
                // Make sure we have executed any pending transitions, since there
                // should be nothing left to do at this point.
                executeAppTransition(options);
@@ -2463,6 +2473,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
                if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
                return false;
            }
        }

        // Make sure that the user who owns this activity is started.  If not,
        // we will just leave it as is because someone should be bringing