diff options
| author | 2023-02-15 16:28:18 +0000 | |
|---|---|---|
| committer | 2023-02-15 16:28:18 +0000 | |
| commit | 2bb2c5c611b41b8482b57e5a7228045f042cf020 (patch) | |
| tree | c800a029051239e9a878b68cfcbb5b644a0420bd | |
| parent | 83e97973b4825204f33708b32a5642132a3e0f7e (diff) | |
| parent | b64195e69e032e980ae9fbd08db8d09e3b7670b8 (diff) | |
Merge "Always listen for FP on alternateBouncer showing" into tm-qpr-dev
3 files changed, 26 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardFingerprintListenModel.kt b/packages/SystemUI/src/com/android/keyguard/KeyguardFingerprintListenModel.kt index 998dc09aa5ab..57130ed80d26 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardFingerprintListenModel.kt +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardFingerprintListenModel.kt @@ -27,6 +27,7 @@ data class KeyguardFingerprintListenModel( override var userId: Int = 0, override var listening: Boolean = false, // keepSorted + var alternateBouncerShowing: Boolean = false, var biometricEnabledForUser: Boolean = false, var bouncerIsOrWillShow: Boolean = false, var canSkipBouncer: Boolean = false, @@ -57,6 +58,7 @@ data class KeyguardFingerprintListenModel( userId.toString(), listening.toString(), // keep sorted + alternateBouncerShowing.toString(), biometricEnabledForUser.toString(), bouncerIsOrWillShow.toString(), canSkipBouncer.toString(), @@ -96,6 +98,7 @@ data class KeyguardFingerprintListenModel( userId = model.userId listening = model.listening // keep sorted + alternateBouncerShowing = model.alternateBouncerShowing biometricEnabledForUser = model.biometricEnabledForUser bouncerIsOrWillShow = model.bouncerIsOrWillShow canSkipBouncer = model.canSkipBouncer @@ -141,6 +144,7 @@ data class KeyguardFingerprintListenModel( "userId", "listening", // keep sorted + "alternateBouncerShowing", "biometricAllowedForUser", "bouncerIsOrWillShow", "canSkipBouncer", diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index bb29a7e123d8..e5113654e1ef 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -2632,6 +2632,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab ActiveUnlockConfig.ActiveUnlockRequestOrigin.UNLOCK_INTENT, "alternateBouncer"); } + updateFingerprintListeningState(BIOMETRIC_ACTION_UPDATE); } private boolean shouldTriggerActiveUnlock() { @@ -2716,7 +2717,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab || shouldListenForFingerprintAssistant || (mKeyguardOccluded && mIsDreaming) || (mKeyguardOccluded && userDoesNotHaveTrust - && (mOccludingAppRequestingFp || isUdfps)); + && (mOccludingAppRequestingFp || isUdfps || mAlternateBouncerShowing)); // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware. @@ -2757,6 +2758,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab System.currentTimeMillis(), user, shouldListen, + mAlternateBouncerShowing, biometricEnabledForUser, mPrimaryBouncerIsOrWillBeShowing, userCanSkipBouncer, diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java index 853d8ed251c9..849d0bba59ab 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java @@ -900,6 +900,25 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { } @Test + public void noFpListeningWhenKeyguardIsOccluded_unlessAlternateBouncerShowing() { + // GIVEN device is awake but occluded + mKeyguardUpdateMonitor.dispatchStartedWakingUp(PowerManager.WAKE_REASON_POWER_BUTTON); + mKeyguardUpdateMonitor.setKeyguardShowing(false, true); + + // THEN fingerprint shouldn't listen + assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isFalse(); + verify(mFingerprintManager, never()).authenticate(any(), any(), any(), any(), anyInt(), + anyInt(), anyInt()); + + // WHEN alternate bouncer is shown + mKeyguardUpdateMonitor.setAlternateBouncerShowing(true); + + // THEN make sure FP listening begins + verify(mFingerprintManager).authenticate(any(), any(), any(), any(), anyInt(), anyInt(), + anyInt()); + } + + @Test public void testTriesToAuthenticate_whenTrustOnAgentKeyguard_ifBypass() { mKeyguardUpdateMonitor.dispatchStartedWakingUp(PowerManager.WAKE_REASON_POWER_BUTTON); mTestableLooper.processAllMessages(); |