diff options
2 files changed, 27 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricNotificationService.java b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricNotificationService.java index 9d8dcc1efdd8..c2b9102cbcb2 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricNotificationService.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricNotificationService.java @@ -177,6 +177,9 @@ public class BiometricNotificationService implements CoreStartable { if (mFaceManager != null) { mFaceManager.registerBiometricStateListener(mFaceStateListener); } + Settings.Secure.putIntForUser(mContext.getContentResolver(), + Settings.Secure.FACE_UNLOCK_RE_ENROLL, REENROLL_NOT_REQUIRED, + UserHandle.USER_CURRENT); } private void queueFaceReenrollNotification() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/BiometricNotificationServiceTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/BiometricNotificationServiceTest.java index 9cb3b1aa9a55..60c6e1ee61fa 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/BiometricNotificationServiceTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/BiometricNotificationServiceTest.java @@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -86,6 +87,7 @@ public class BiometricNotificationServiceTest extends SysuiTestCase { private final ArgumentCaptor<Notification> mNotificationArgumentCaptor = ArgumentCaptor.forClass(Notification.class); + private BiometricNotificationService mBiometricNotificationService; private TestableLooper mLooper; private KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback; private KeyguardStateController.Callback mKeyguardStateControllerCallback; @@ -104,7 +106,7 @@ public class BiometricNotificationServiceTest extends SysuiTestCase { BiometricNotificationDialogFactory dialogFactory = new BiometricNotificationDialogFactory(); BiometricNotificationBroadcastReceiver broadcastReceiver = new BiometricNotificationBroadcastReceiver(mContext, dialogFactory); - BiometricNotificationService biometricNotificationService = + mBiometricNotificationService = new BiometricNotificationService(mContext, mKeyguardUpdateMonitor, mKeyguardStateController, handler, mNotificationManager, @@ -112,7 +114,7 @@ public class BiometricNotificationServiceTest extends SysuiTestCase { mFingerprintReEnrollNotificationOptional, mFingerprintManager, mFaceManager); - biometricNotificationService.start(); + mBiometricNotificationService.start(); ArgumentCaptor<KeyguardUpdateMonitorCallback> updateMonitorCallbackArgumentCaptor = ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback.class); @@ -231,4 +233,24 @@ public class BiometricNotificationServiceTest extends SysuiTestCase { eq(UserHandle.CURRENT)); } + @Test + public void testResetFaceUnlockReEnroll_onStart() { + when(mKeyguardStateController.isShowing()).thenReturn(false); + + mKeyguardUpdateMonitorCallback.onBiometricError( + BiometricFaceConstants.BIOMETRIC_ERROR_RE_ENROLL, + "Testing Face Re-enrollment" /* errString */, + BiometricSourceType.FACE + ); + + mBiometricNotificationService.start(); + mKeyguardStateControllerCallback.onKeyguardShowingChanged(); + + mLooper.moveTimeForward(SHOW_NOTIFICATION_DELAY_MS); + mLooper.processAllMessages(); + + verify(mNotificationManager, never()).notifyAsUser(eq(TAG), eq(FACE_NOTIFICATION_ID), + mNotificationArgumentCaptor.capture(), any()); + } + } |