diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java index 2d3bef6319267..dce45c752e316 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfaces.java @@ -3252,9 +3252,13 @@ public class CentralSurfaces extends CoreStartable implements } public boolean onBackPressed() { - boolean isScrimmedBouncer = mScrimController.getState() == ScrimState.BOUNCER_SCRIMMED; - if (mStatusBarKeyguardViewManager.onBackPressed(isScrimmedBouncer /* hideImmediately */)) { - if (isScrimmedBouncer) { + final boolean isScrimmedBouncer = + mScrimController.getState() == ScrimState.BOUNCER_SCRIMMED; + final boolean isBouncerOverDream = isBouncerShowingOverDream(); + + if (mStatusBarKeyguardViewManager.onBackPressed( + isScrimmedBouncer || isBouncerOverDream /* hideImmediately */)) { + if (isScrimmedBouncer || isBouncerOverDream) { mStatusBarStateController.setLeaveOpenOnKeyguardHide(false); } else { mNotificationPanelViewController.expandWithoutQs(); @@ -3276,7 +3280,8 @@ public class CentralSurfaces extends CoreStartable implements if (mNotificationPanelViewController.closeUserSwitcherIfOpen()) { return true; } - if (mState != StatusBarState.KEYGUARD && mState != StatusBarState.SHADE_LOCKED) { + if (mState != StatusBarState.KEYGUARD && mState != StatusBarState.SHADE_LOCKED + && !isBouncerOverDream) { if (mNotificationPanelViewController.canPanelBeCollapsed()) { mShadeController.animateCollapsePanels(); }