Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +7 −0 Original line number Diff line number Diff line Loading @@ -3168,6 +3168,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab || (posture == mConfigFaceAuthSupportedPosture); } /** * If the current device posture allows face auth to run. */ public boolean doesCurrentPostureAllowFaceAuth() { return doesPostureAllowFaceAuth(mPostureState); } private void logListenerModelData(@NonNull KeyguardListenModel model) { mLogger.logKeyguardListenerModel(model); if (model instanceof KeyguardFingerprintListenModel) { Loading packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/PrimaryBouncerInteractor.kt +2 −1 Original line number Diff line number Diff line Loading @@ -391,7 +391,8 @@ constructor( private fun usePrimaryBouncerPassiveAuthDelay(): Boolean { val canRunFaceAuth = keyguardStateController.isFaceAuthEnabled && keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE) keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE) && keyguardUpdateMonitor.doesCurrentPostureAllowFaceAuth() val canRunActiveUnlock = currentUserActiveUnlockRunning && keyguardUpdateMonitor.canTriggerActiveUnlockBasedOnDeviceState() Loading packages/SystemUI/tests/src/com/android/systemui/bouncer/domain/interactor/PrimaryBouncerInteractorTest.kt +20 −0 Original line number Diff line number Diff line Loading @@ -407,6 +407,7 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() { whenever(keyguardStateController.isFaceAuthEnabled).thenReturn(true) whenever(keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE)) .thenReturn(true) whenever(keyguardUpdateMonitor.doesCurrentPostureAllowFaceAuth()).thenReturn(true) // WHEN bouncer show is requested underTest.show(true) Loading @@ -423,6 +424,25 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() { verify(repository).setPrimaryShowingSoon(false) } @Test fun noDelayBouncer_biometricsAllowed_postureDoesNotAllowFaceAuth() { mainHandler.setMode(FakeHandler.Mode.QUEUEING) // GIVEN bouncer should not be delayed because device isn't in the right posture for // face auth whenever(keyguardStateController.isFaceAuthEnabled).thenReturn(true) whenever(keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE)) .thenReturn(true) whenever(keyguardUpdateMonitor.doesCurrentPostureAllowFaceAuth()).thenReturn(false) // WHEN bouncer show is requested underTest.show(true) // THEN primary show & primary showing soon are updated immediately verify(repository).setPrimaryShow(true) verify(repository).setPrimaryShowingSoon(false) } @Test fun delayBouncerWhenActiveUnlockPossible() { testScope.run { Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +7 −0 Original line number Diff line number Diff line Loading @@ -3168,6 +3168,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab || (posture == mConfigFaceAuthSupportedPosture); } /** * If the current device posture allows face auth to run. */ public boolean doesCurrentPostureAllowFaceAuth() { return doesPostureAllowFaceAuth(mPostureState); } private void logListenerModelData(@NonNull KeyguardListenModel model) { mLogger.logKeyguardListenerModel(model); if (model instanceof KeyguardFingerprintListenModel) { Loading
packages/SystemUI/src/com/android/systemui/bouncer/domain/interactor/PrimaryBouncerInteractor.kt +2 −1 Original line number Diff line number Diff line Loading @@ -391,7 +391,8 @@ constructor( private fun usePrimaryBouncerPassiveAuthDelay(): Boolean { val canRunFaceAuth = keyguardStateController.isFaceAuthEnabled && keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE) keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE) && keyguardUpdateMonitor.doesCurrentPostureAllowFaceAuth() val canRunActiveUnlock = currentUserActiveUnlockRunning && keyguardUpdateMonitor.canTriggerActiveUnlockBasedOnDeviceState() Loading
packages/SystemUI/tests/src/com/android/systemui/bouncer/domain/interactor/PrimaryBouncerInteractorTest.kt +20 −0 Original line number Diff line number Diff line Loading @@ -407,6 +407,7 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() { whenever(keyguardStateController.isFaceAuthEnabled).thenReturn(true) whenever(keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE)) .thenReturn(true) whenever(keyguardUpdateMonitor.doesCurrentPostureAllowFaceAuth()).thenReturn(true) // WHEN bouncer show is requested underTest.show(true) Loading @@ -423,6 +424,25 @@ class PrimaryBouncerInteractorTest : SysuiTestCase() { verify(repository).setPrimaryShowingSoon(false) } @Test fun noDelayBouncer_biometricsAllowed_postureDoesNotAllowFaceAuth() { mainHandler.setMode(FakeHandler.Mode.QUEUEING) // GIVEN bouncer should not be delayed because device isn't in the right posture for // face auth whenever(keyguardStateController.isFaceAuthEnabled).thenReturn(true) whenever(keyguardUpdateMonitor.isUnlockingWithBiometricAllowed(BiometricSourceType.FACE)) .thenReturn(true) whenever(keyguardUpdateMonitor.doesCurrentPostureAllowFaceAuth()).thenReturn(false) // WHEN bouncer show is requested underTest.show(true) // THEN primary show & primary showing soon are updated immediately verify(repository).setPrimaryShow(true) verify(repository).setPrimaryShowingSoon(false) } @Test fun delayBouncerWhenActiveUnlockPossible() { testScope.run { Loading