Merge "Don't update biometricListenState on SB stateChange" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-05-17 16:53:23 +00:00
committed by Android (Google) Code Review
2 changed files with 28 additions and 1 deletions

View File

@@ -252,7 +252,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
@Override
public void onStateChanged(int newState) {
mStatusBarState = newState;
updateBiometricListeningState();
}
@Override

View File

@@ -942,6 +942,34 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(true)).isEqualTo(false);
}
@Test
public void testShouldNotUpdateBiometricListeningStateOnStatusBarStateChange() {
// GIVEN state for face auth should run aside from StatusBarState
when(mDevicePolicyManager.getKeyguardDisabledFeatures(null,
KeyguardUpdateMonitor.getCurrentUser())).thenReturn(0);
mStatusBarStateListener.onStateChanged(StatusBarState.SHADE_LOCKED);
setKeyguardBouncerVisibility(false /* isVisible */);
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
when(mKeyguardBypassController.canBypass()).thenReturn(true);
mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
// WHEN status bar state reports a change to the keyguard that would normally indicate to
// start running face auth
mStatusBarStateListener.onStateChanged(StatusBarState.KEYGUARD);
assertThat(mKeyguardUpdateMonitor.shouldListenForFace()).isEqualTo(true);
// THEN face unlock is not running b/c status bar state changes don't cause biometric
// listening state to update
assertThat(mKeyguardUpdateMonitor.isFaceUnlockRunning(
KeyguardUpdateMonitor.getCurrentUser())).isEqualTo(false);
// WHEN biometric listening state is updated
mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
// THEN face unlock is running
assertThat(mKeyguardUpdateMonitor.isFaceDetectionRunning()).isEqualTo(true);
}
@Test
public void testRequireUnlockForNfc_Broadcast() {
KeyguardUpdateMonitorCallback callback = mock(KeyguardUpdateMonitorCallback.class);