Only update biometric state when keyguard is showing

Bug: 276474113
Test: atest KeyguardUpdateMonitorTest
Change-Id: I8dbc62c538f78ff0ceb482a9e911fd6c14ef8d57
This commit is contained in:
Diya Bera
2023-04-07 16:27:30 +00:00
parent 4c6f578783
commit 7dbff0533a
2 changed files with 17 additions and 1 deletions

View File

@@ -2857,7 +2857,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|| mGoingToSleep
|| shouldListenForFingerprintAssistant
|| (mKeyguardOccluded && mIsDreaming)
|| (mKeyguardOccluded && userDoesNotHaveTrust
|| (mKeyguardOccluded && userDoesNotHaveTrust && mKeyguardShowing
&& (mOccludingAppRequestingFp || isUdfps || mAlternateBouncerShowing));
// Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an

View File

@@ -931,6 +931,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isFalse();
verifyFingerprintAuthenticateNeverCalled();
// WHEN alternate bouncer is shown
mKeyguardUpdateMonitor.setKeyguardShowing(true, true);
mKeyguardUpdateMonitor.setAlternateBouncerShowing(true);
// THEN make sure FP listening begins
@@ -2662,6 +2663,21 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
KeyguardUpdateMonitor.getCurrentUser())).isTrue();
}
@Test
public void testFingerprintListeningStateWhenOccluded() {
when(mAuthController.isUdfpsSupported()).thenReturn(true);
mKeyguardUpdateMonitor.setKeyguardShowing(false, false);
mKeyguardUpdateMonitor.dispatchStartedWakingUp(PowerManager.WAKE_REASON_BIOMETRIC);
mKeyguardUpdateMonitor.setKeyguardShowing(false, true);
verifyFingerprintAuthenticateNeverCalled();
mKeyguardUpdateMonitor.setKeyguardShowing(true, true);
mKeyguardUpdateMonitor.setAlternateBouncerShowing(true);
verifyFingerprintAuthenticateCall();
}
private void verifyFingerprintAuthenticateNeverCalled() {
verify(mFingerprintManager, never()).authenticate(any(), any(), any(), any(), any());