Loading src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java +16 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,13 @@ public class CombinedBiometricStatusUtils { return Utils.hasFingerprintHardware(mContext) && Utils.hasFaceHardware(mContext); } /** * Returns whether at least one face template or fingerprint has been enrolled. */ public boolean hasEnrolled() { return hasEnrolledFingerprints() || hasEnrolledFace(); } /** * Returns the {@link EnforcedAdmin} in case parental consent is required to change both * face and fingerprint settings. Loading Loading @@ -84,8 +91,7 @@ public class CombinedBiometricStatusUtils { public String getSummary() { final int numFingerprintsEnrolled = mFingerprintManager != null ? mFingerprintManager.getEnrolledFingerprints(mUserId).size() : 0; final boolean faceEnrolled = mFaceManager != null && mFaceManager.hasEnrolledTemplates(mUserId); final boolean faceEnrolled = hasEnrolledFace(); if (faceEnrolled && numFingerprintsEnrolled > 1) { return mContext.getString( Loading @@ -105,6 +111,14 @@ public class CombinedBiometricStatusUtils { } } private boolean hasEnrolledFingerprints() { return mFingerprintManager != null && mFingerprintManager.hasEnrolledFingerprints(mUserId); } private boolean hasEnrolledFace() { return mFaceManager != null && mFaceManager.hasEnrolledTemplates(mUserId); } /** * Returns the class name of the Settings page corresponding to combined biometric settings. */ Loading src/com/android/settings/biometrics/face/FaceStatusUtils.java +4 −1 Original line number Diff line number Diff line Loading @@ -75,7 +75,10 @@ public class FaceStatusUtils { : FaceEnrollIntroduction.class.getName(); } private boolean hasEnrolled() { /** * Returns whether at least one face template has been enrolled. */ public boolean hasEnrolled() { return mFaceManager.hasEnrolledTemplates(mUserId); } } src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java +4 −1 Original line number Diff line number Diff line Loading @@ -82,7 +82,10 @@ public class FingerprintStatusUtils { : FingerprintEnrollIntroduction.class.getName(); } private boolean hasEnrolled() { /** * Returns whether at least one fingerprint has been enrolled. */ public boolean hasEnrolled() { return mFingerprintManager.hasEnrolledFingerprints(mUserId); } } src/com/android/settings/safetycenter/BiometricsSafetySource.java +9 −4 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ public final class BiometricsSafetySource { combinedBiometricStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, combinedBiometricStatusUtils.hasEnrolled(), safetyEvent); return; } Loading @@ -82,6 +83,7 @@ public final class BiometricsSafetySource { faceStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, faceStatusUtils.hasEnrolled(), safetyEvent); return; Loading @@ -101,6 +103,7 @@ public final class BiometricsSafetySource { fingerprintStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, fingerprintStatusUtils.hasEnrolled(), safetyEvent); } } Loading @@ -114,12 +117,14 @@ public final class BiometricsSafetySource { } private static void setBiometricSafetySourceData(Context context, String title, String summary, Intent clickIntent, boolean enabled, SafetyEvent safetyEvent) { Intent clickIntent, boolean enabled, boolean hasEnrolled, SafetyEvent safetyEvent) { final PendingIntent pendingIntent = createPendingIntent(context, clickIntent); final int statusLevel = enabled && hasEnrolled ? SafetySourceStatus.STATUS_LEVEL_OK : SafetySourceStatus.STATUS_LEVEL_NONE; final SafetySourceStatus status = new SafetySourceStatus.Builder(title, summary, SafetySourceStatus.STATUS_LEVEL_NONE, pendingIntent) .setEnabled(enabled).build(); final SafetySourceStatus status = new SafetySourceStatus.Builder( title, summary, statusLevel, pendingIntent).setEnabled(enabled).build(); final SafetySourceData safetySourceData = new SafetySourceData.Builder().setStatus(status).build(); Loading tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java +49 −2 Original line number Diff line number Diff line Loading @@ -57,8 +57,7 @@ public class CombinedBiometricStatusUtilsTest { private static final ComponentName COMPONENT_NAME = new ComponentName("package", "class"); private static final int USER_ID = UserHandle.myUserId(); private static final UserHandle USER_HANDLE = new UserHandle(USER_ID);; private static final UserHandle USER_HANDLE = new UserHandle(USER_ID); @Mock private PackageManager mPackageManager; Loading Loading @@ -122,6 +121,54 @@ public class CombinedBiometricStatusUtilsTest { assertThat(mCombinedBiometricStatusUtils.isAvailable()).isTrue(); } @Test public void hasEnrolled_withoutFingerprintHardware_withoutFaceHardware_returnsFalse() { when(mFingerprintManager.isHardwareDetected()).thenReturn(false); when(mFaceManager.isHardwareDetected()).thenReturn(false); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse(); } @Test public void hasEnrolled_withoutFingerprintEnroll_withoutFaceEnroll_returnsFalse() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse(); } @Test public void hasEnrolled_withoutFingerprintEnroll_withFaceEnroll_returnsTrue() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); } @Test public void hasEnrolled_withFingerprintEnroll_withoutFaceEnroll_returnsTrue() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); } @Test public void hasEnrolled_withFingerprintEnroll_withFaceEnroll_returnsTrue() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); } @Test public void getDisabledAdmin_whenFingerprintDisabled_whenFaceDisabled_returnsEnforcedAdmin() { when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)) Loading Loading
src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java +16 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,13 @@ public class CombinedBiometricStatusUtils { return Utils.hasFingerprintHardware(mContext) && Utils.hasFaceHardware(mContext); } /** * Returns whether at least one face template or fingerprint has been enrolled. */ public boolean hasEnrolled() { return hasEnrolledFingerprints() || hasEnrolledFace(); } /** * Returns the {@link EnforcedAdmin} in case parental consent is required to change both * face and fingerprint settings. Loading Loading @@ -84,8 +91,7 @@ public class CombinedBiometricStatusUtils { public String getSummary() { final int numFingerprintsEnrolled = mFingerprintManager != null ? mFingerprintManager.getEnrolledFingerprints(mUserId).size() : 0; final boolean faceEnrolled = mFaceManager != null && mFaceManager.hasEnrolledTemplates(mUserId); final boolean faceEnrolled = hasEnrolledFace(); if (faceEnrolled && numFingerprintsEnrolled > 1) { return mContext.getString( Loading @@ -105,6 +111,14 @@ public class CombinedBiometricStatusUtils { } } private boolean hasEnrolledFingerprints() { return mFingerprintManager != null && mFingerprintManager.hasEnrolledFingerprints(mUserId); } private boolean hasEnrolledFace() { return mFaceManager != null && mFaceManager.hasEnrolledTemplates(mUserId); } /** * Returns the class name of the Settings page corresponding to combined biometric settings. */ Loading
src/com/android/settings/biometrics/face/FaceStatusUtils.java +4 −1 Original line number Diff line number Diff line Loading @@ -75,7 +75,10 @@ public class FaceStatusUtils { : FaceEnrollIntroduction.class.getName(); } private boolean hasEnrolled() { /** * Returns whether at least one face template has been enrolled. */ public boolean hasEnrolled() { return mFaceManager.hasEnrolledTemplates(mUserId); } }
src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java +4 −1 Original line number Diff line number Diff line Loading @@ -82,7 +82,10 @@ public class FingerprintStatusUtils { : FingerprintEnrollIntroduction.class.getName(); } private boolean hasEnrolled() { /** * Returns whether at least one fingerprint has been enrolled. */ public boolean hasEnrolled() { return mFingerprintManager.hasEnrolledFingerprints(mUserId); } }
src/com/android/settings/safetycenter/BiometricsSafetySource.java +9 −4 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ public final class BiometricsSafetySource { combinedBiometricStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, combinedBiometricStatusUtils.hasEnrolled(), safetyEvent); return; } Loading @@ -82,6 +83,7 @@ public final class BiometricsSafetySource { faceStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, faceStatusUtils.hasEnrolled(), safetyEvent); return; Loading @@ -101,6 +103,7 @@ public final class BiometricsSafetySource { fingerprintStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, fingerprintStatusUtils.hasEnrolled(), safetyEvent); } } Loading @@ -114,12 +117,14 @@ public final class BiometricsSafetySource { } private static void setBiometricSafetySourceData(Context context, String title, String summary, Intent clickIntent, boolean enabled, SafetyEvent safetyEvent) { Intent clickIntent, boolean enabled, boolean hasEnrolled, SafetyEvent safetyEvent) { final PendingIntent pendingIntent = createPendingIntent(context, clickIntent); final int statusLevel = enabled && hasEnrolled ? SafetySourceStatus.STATUS_LEVEL_OK : SafetySourceStatus.STATUS_LEVEL_NONE; final SafetySourceStatus status = new SafetySourceStatus.Builder(title, summary, SafetySourceStatus.STATUS_LEVEL_NONE, pendingIntent) .setEnabled(enabled).build(); final SafetySourceStatus status = new SafetySourceStatus.Builder( title, summary, statusLevel, pendingIntent).setEnabled(enabled).build(); final SafetySourceData safetySourceData = new SafetySourceData.Builder().setStatus(status).build(); Loading
tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java +49 −2 Original line number Diff line number Diff line Loading @@ -57,8 +57,7 @@ public class CombinedBiometricStatusUtilsTest { private static final ComponentName COMPONENT_NAME = new ComponentName("package", "class"); private static final int USER_ID = UserHandle.myUserId(); private static final UserHandle USER_HANDLE = new UserHandle(USER_ID);; private static final UserHandle USER_HANDLE = new UserHandle(USER_ID); @Mock private PackageManager mPackageManager; Loading Loading @@ -122,6 +121,54 @@ public class CombinedBiometricStatusUtilsTest { assertThat(mCombinedBiometricStatusUtils.isAvailable()).isTrue(); } @Test public void hasEnrolled_withoutFingerprintHardware_withoutFaceHardware_returnsFalse() { when(mFingerprintManager.isHardwareDetected()).thenReturn(false); when(mFaceManager.isHardwareDetected()).thenReturn(false); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse(); } @Test public void hasEnrolled_withoutFingerprintEnroll_withoutFaceEnroll_returnsFalse() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse(); } @Test public void hasEnrolled_withoutFingerprintEnroll_withFaceEnroll_returnsTrue() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); } @Test public void hasEnrolled_withFingerprintEnroll_withoutFaceEnroll_returnsTrue() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); } @Test public void hasEnrolled_withFingerprintEnroll_withFaceEnroll_returnsTrue() { when(mFingerprintManager.isHardwareDetected()).thenReturn(true); when(mFaceManager.isHardwareDetected()).thenReturn(true); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); } @Test public void getDisabledAdmin_whenFingerprintDisabled_whenFaceDisabled_returnsEnforcedAdmin() { when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)) Loading