diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 14d0b7ea86b94..429d226d363be 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -425,6 +425,7 @@ public class StatusBar extends SystemUI implements DemoMode, private boolean mWakeUpComingFromTouch; private PointF mWakeUpTouchLocation; private boolean mScreenTurningOn; + private boolean mScreenFullyOff; int mPixelFormat; Object mQueueLock = new Object(); @@ -2811,7 +2812,9 @@ public class StatusBar extends SystemUI implements DemoMode, } public void onScreenTurnedOff() { + mScreenFullyOff = true; mFalsingManager.onScreenOff(); + updateIsKeyguard(); } public NotificationStackScrollLayout getNotificationScrollLayout() { @@ -4188,8 +4191,11 @@ public class StatusBar extends SystemUI implements DemoMode, private boolean updateIsKeyguard() { // For dozing, keyguard needs to be shown whenever the device is non-interactive. Otherwise - // there's no surface we can show to the user. - boolean keyguardForDozing = mDozingRequested && !mDeviceInteractive; + // there's no surface we can show to the user. Note that the device goes fully interactive + // late in the transition, so we also allow the device to start dozing once the screen has + // turned off fully. + boolean keyguardForDozing = mDozingRequested && + (!mDeviceInteractive || mStartedGoingToSleep && (mScreenFullyOff || mIsKeyguard)); boolean shouldBeKeyguard = mKeyguardRequested || keyguardForDozing; if (keyguardForDozing) { updatePanelExpansionForKeyguard(); @@ -5130,6 +5136,7 @@ public class StatusBar extends SystemUI implements DemoMode, } public void onScreenTurningOn() { + mScreenFullyOff = false; mScreenTurningOn = true; mFalsingManager.onScreenTurningOn(); mNotificationPanel.onScreenTurningOn(); @@ -5297,7 +5304,7 @@ public class StatusBar extends SystemUI implements DemoMode, mDozingRequested = true; DozeLog.traceDozing(mContext, mDozing); updateDozing(); - + updateIsKeyguard(); } }