Merge "[DO NOT MERGE] Reset face_unlock_re_enroll value on reboot" into udc-qpr-dev

This commit is contained in:
Diya Bera
2023-08-03 15:30:42 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 2 deletions

View File

@@ -177,6 +177,9 @@ public class BiometricNotificationService implements CoreStartable {
if (mFaceManager != null) { if (mFaceManager != null) {
mFaceManager.registerBiometricStateListener(mFaceStateListener); mFaceManager.registerBiometricStateListener(mFaceStateListener);
} }
Settings.Secure.putIntForUser(mContext.getContentResolver(),
Settings.Secure.FACE_UNLOCK_RE_ENROLL, REENROLL_NOT_REQUIRED,
UserHandle.USER_CURRENT);
} }
private void queueFaceReenrollNotification() { private void queueFaceReenrollNotification() {

View File

@@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -86,6 +87,7 @@ public class BiometricNotificationServiceTest extends SysuiTestCase {
private final ArgumentCaptor<Notification> mNotificationArgumentCaptor = private final ArgumentCaptor<Notification> mNotificationArgumentCaptor =
ArgumentCaptor.forClass(Notification.class); ArgumentCaptor.forClass(Notification.class);
private BiometricNotificationService mBiometricNotificationService;
private TestableLooper mLooper; private TestableLooper mLooper;
private KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback; private KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback;
private KeyguardStateController.Callback mKeyguardStateControllerCallback; private KeyguardStateController.Callback mKeyguardStateControllerCallback;
@@ -104,7 +106,7 @@ public class BiometricNotificationServiceTest extends SysuiTestCase {
BiometricNotificationDialogFactory dialogFactory = new BiometricNotificationDialogFactory(); BiometricNotificationDialogFactory dialogFactory = new BiometricNotificationDialogFactory();
BiometricNotificationBroadcastReceiver broadcastReceiver = BiometricNotificationBroadcastReceiver broadcastReceiver =
new BiometricNotificationBroadcastReceiver(mContext, dialogFactory); new BiometricNotificationBroadcastReceiver(mContext, dialogFactory);
BiometricNotificationService biometricNotificationService = mBiometricNotificationService =
new BiometricNotificationService(mContext, new BiometricNotificationService(mContext,
mKeyguardUpdateMonitor, mKeyguardStateController, handler, mKeyguardUpdateMonitor, mKeyguardStateController, handler,
mNotificationManager, mNotificationManager,
@@ -112,7 +114,7 @@ public class BiometricNotificationServiceTest extends SysuiTestCase {
mFingerprintReEnrollNotificationOptional, mFingerprintReEnrollNotificationOptional,
mFingerprintManager, mFingerprintManager,
mFaceManager); mFaceManager);
biometricNotificationService.start(); mBiometricNotificationService.start();
ArgumentCaptor<KeyguardUpdateMonitorCallback> updateMonitorCallbackArgumentCaptor = ArgumentCaptor<KeyguardUpdateMonitorCallback> updateMonitorCallbackArgumentCaptor =
ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback.class); ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback.class);
@@ -231,4 +233,24 @@ public class BiometricNotificationServiceTest extends SysuiTestCase {
eq(UserHandle.CURRENT)); 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());
}
} }