Merge "No face auth bouncer delay if posture unsupported" into udc-qpr-dev

This commit is contained in:
TreeHugger Robot
2023-06-09 14:01:25 +00:00
committed by Android (Google) Code Review
3 changed files with 29 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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()

View File

@@ -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)
@@ -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 {