diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index c760a3b4f7ccd..bd561fd2a8710 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -1190,10 +1190,6 @@ final class ActivityStack { } final boolean resumeTopActivityLocked(ActivityRecord prev, Bundle options) { - if (mService.mLockScreenState == ActivityManagerService.LOCK_SCREEN_FIRST_SHOWN) { - return false; - } - // Find the first activity that is not finishing. ActivityRecord next = topRunningActivityLocked(null); @@ -1255,9 +1251,10 @@ final class ActivityStack { // If we are sleeping, and there is no resumed activity, and the top // activity is paused, well that is the state we want. - if ((mService.isSleepingOrShuttingDown()) + if (mService.mLockScreenState == ActivityManagerService.LOCK_SCREEN_FIRST_SHOWN || + (mService.isSleepingOrShuttingDown() && mLastPausedActivity == next - && mStackSupervisor.allPausedActivitiesComplete()) { + && mStackSupervisor.allPausedActivitiesComplete())) { // Make sure we have executed any pending transitions, since there // should be nothing left to do at this point. mWindowManager.executeAppTransition();