diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 5e38f2e667ff5..411bf9a80dca9 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -833,8 +833,10 @@ public class KeyguardViewMediator extends SystemUI { mDeviceInteractive = false; mGoingToSleep = true; - // Reset keyguard going away state so we can start listening for biometric auth - setKeyguardGoingAway(false); + // Reset keyguard going away state so we can start listening for fingerprint. We + // explicitly DO NOT want to call mStatusBarWindowController.setKeyguardGoingAway(false) + // here, since that will mess with the device lock state. + mUpdateMonitor.setKeyguardGoingAway(false); // Lock immediately based on setting if secure (user has a pin/pattern/password). // This also "locks" the device when not secure to provide easy access to the @@ -1814,7 +1816,8 @@ public class KeyguardViewMediator extends SystemUI { mHideAnimationRun = false; adjustStatusBarLocked(); userActivity(); - setKeyguardGoingAway(false); + mUpdateMonitor.setKeyguardGoingAway(false); + mStatusBarWindowController.setKeyguardGoingAway(false); mShowKeyguardWakeLock.release(); } mKeyguardDisplayManager.show(); @@ -1846,7 +1849,8 @@ public class KeyguardViewMediator extends SystemUI { .KEYGUARD_GOING_AWAY_FLAG_SUBTLE_WINDOW_ANIMATIONS; } - setKeyguardGoingAway(true); + mUpdateMonitor.setKeyguardGoingAway(true); + mStatusBarWindowController.setKeyguardGoingAway(true); // Don't actually hide the Keyguard at the moment, wait for window // manager until it tells us it's safe to do so with @@ -2081,11 +2085,6 @@ public class KeyguardViewMediator extends SystemUI { mHandler.removeMessages(KEYGUARD_DONE_PENDING_TIMEOUT); } - private void setKeyguardGoingAway(boolean goingAway) { - mUpdateMonitor.setKeyguardGoingAway(goingAway); - mStatusBarWindowController.setKeyguardGoingAway(goingAway); - } - @Override public void onBootCompleted() { mUpdateMonitor.dispatchBootCompleted(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java index c385e8fadb8e8..9312ed26c2178 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java @@ -19,6 +19,8 @@ package com.android.systemui.keyguard; import static android.view.WindowManagerPolicyConstants.OFF_BECAUSE_OF_USER; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -88,6 +90,6 @@ public class KeyguardViewMediatorTest extends SysuiTestCase { mViewMediator.start(); mViewMediator.onStartedGoingToSleep(OFF_BECAUSE_OF_USER); verify(mUpdateMonitor).setKeyguardGoingAway(false); - verify(mStatusBarWindowController).setKeyguardGoingAway(false); + verify(mStatusBarWindowController, never()).setKeyguardGoingAway(anyBoolean()); } }