diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStack.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 8d467c808e55..bd3e43c380b6 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -2548,11 +2548,16 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai // 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 (!mService.mShuttingDown) { + final boolean canShowWhenLocked = !mTopActivityOccludesKeyguard + && next.canShowWhenLocked(); + final boolean mayDismissKeyguard = mTopDismissingKeyguardActivity != next + && next.hasDismissKeyguardWindows(); + if (canShowWhenLocked || mayDismissKeyguard) { + ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */, + !PRESERVE_WINDOWS); + nothingToResume = shouldSleepActivities(); + } } if (nothingToResume) { // Make sure we have executed any pending transitions, since there |