summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2021-05-17 16:53:23 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-05-17 16:53:23 +0000
commitbc563d803f9ce16d950d1f559b969619fe27538d (patch)
tree955c83ebe2fa1bdb4d9e1c9f793eb0b9f45abcb8
parentfe404423048360f1a223a2dcdb5b2a5d00678815 (diff)
parentd421a8d868832ab2cb331ab1982a9b26f6126cbf (diff)
Merge "Don't update biometricListenState on SB stateChange" into sc-dev
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java1
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java28
2 files changed, 28 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 4523fee045f6..44df02a9023a 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -252,7 +252,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
@Override
public void onStateChanged(int newState) {
mStatusBarState = newState;
- updateBiometricListeningState();
}
@Override
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index f779305b75ab..29b44051f92d 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -943,6 +943,34 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
}
@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);
mKeyguardUpdateMonitor.registerCallback(callback);