Merge "Revert "Launch multiple biometric enrollment when no biometric is enrolled"" into main
diff --git a/src/com/android/settings/safetycenter/BiometricSourcesUtils.java b/src/com/android/settings/safetycenter/BiometricSourcesUtils.java
index 786e3cf..9cadbbb 100644
--- a/src/com/android/settings/safetycenter/BiometricSourcesUtils.java
+++ b/src/com/android/settings/safetycenter/BiometricSourcesUtils.java
@@ -19,15 +19,11 @@
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.hardware.face.FaceManager;
-import android.hardware.fingerprint.FingerprintManager;
import android.safetycenter.SafetyEvent;
import android.safetycenter.SafetySourceData;
import android.safetycenter.SafetySourceIssue;
import android.safetycenter.SafetySourceStatus;
-import com.android.settings.Utils;
-
/** Static helpers for setting SafetyCenter data for biometric safety sources. */
public final class BiometricSourcesUtils {
@@ -93,15 +89,6 @@
.setSafetySourceData(context, safetySourceId, safetySourceData, safetyEvent);
}
- /** Check whether the multiple biometrics enrollment is needed. */
- public static boolean isMultipleBiometricsEnrollmentNeeded(Context context, int userId) {
- FaceManager faceManager = Utils.getFaceManagerOrNull(context);
- FingerprintManager fingerprintManager = Utils.getFingerprintManagerOrNull(context);
- return Utils.isMultipleBiometricsSupported(context)
- && !faceManager.hasEnrolledTemplates(userId)
- && !fingerprintManager.hasEnrolledFingerprints(userId);
- }
-
/** Helper method for creating a pending intent. */
public static PendingIntent createPendingIntent(
Context context, Intent intent, int requestCode) {
diff --git a/src/com/android/settings/safetycenter/FaceSafetySource.java b/src/com/android/settings/safetycenter/FaceSafetySource.java
index c5bde6e..73b6df5 100644
--- a/src/com/android/settings/safetycenter/FaceSafetySource.java
+++ b/src/com/android/settings/safetycenter/FaceSafetySource.java
@@ -16,7 +16,6 @@
package com.android.settings.safetycenter;
-import static com.android.settings.biometrics.BiometricEnrollActivity.EXTRA_LAUNCH_FACE_ENROLL_FIRST;
import static com.android.settings.safetycenter.BiometricSourcesUtils.REQUEST_CODE_FACE_SETTING;
import android.content.Context;
@@ -28,7 +27,6 @@
import android.safetycenter.SafetyEvent;
import com.android.settings.Utils;
-import com.android.settings.biometrics.BiometricEnrollActivity;
import com.android.settings.biometrics.BiometricNavigationUtils;
import com.android.settings.biometrics.face.FaceStatusUtils;
import com.android.settings.flags.Flags;
@@ -75,16 +73,6 @@
Context profileParentContext = context.createContextAsUser(profileParentUserHandle, 0);
if (Utils.hasFaceHardware(context)) {
- boolean isMultipleBiometricsEnrollmentNeeded =
- BiometricSourcesUtils.isMultipleBiometricsEnrollmentNeeded(context, userId);
- String settingClassName = isMultipleBiometricsEnrollmentNeeded
- ? BiometricEnrollActivity.class.getName()
- : faceStatusUtils.getSettingsClassName();
- Bundle bundle = new Bundle();
- if (isMultipleBiometricsEnrollmentNeeded) {
- // Launch face enrollment first then fingerprint enrollment.
- bundle.putBoolean(EXTRA_LAUNCH_FACE_ENROLL_FIRST, true);
- }
RestrictedLockUtils.EnforcedAdmin disablingAdmin = faceStatusUtils.getDisablingAdmin();
BiometricSourcesUtils.setBiometricSafetySourceData(
SAFETY_SOURCE_ID,
@@ -96,9 +84,9 @@
biometricNavigationUtils
.getBiometricSettingsIntent(
context,
- settingClassName,
+ faceStatusUtils.getSettingsClassName(),
disablingAdmin,
- bundle)
+ Bundle.EMPTY)
.setIdentifier(Integer.toString(userId)),
REQUEST_CODE_FACE_SETTING),
disablingAdmin == null /* enabled */,
diff --git a/src/com/android/settings/safetycenter/FingerprintSafetySource.java b/src/com/android/settings/safetycenter/FingerprintSafetySource.java
index 752fa69..62f218b 100644
--- a/src/com/android/settings/safetycenter/FingerprintSafetySource.java
+++ b/src/com/android/settings/safetycenter/FingerprintSafetySource.java
@@ -27,7 +27,6 @@
import android.safetycenter.SafetyEvent;
import com.android.settings.Utils;
-import com.android.settings.biometrics.BiometricEnrollActivity;
import com.android.settings.biometrics.BiometricNavigationUtils;
import com.android.settings.biometrics.fingerprint.FingerprintStatusUtils;
import com.android.settings.flags.Flags;
@@ -75,11 +74,6 @@
Context profileParentContext = context.createContextAsUser(profileParentUserHandle, 0);
if (Utils.hasFingerprintHardware(context)) {
- boolean isMultipleBiometricsEnrollmentNeeded =
- BiometricSourcesUtils.isMultipleBiometricsEnrollmentNeeded(context, userId);
- String settingClassName = isMultipleBiometricsEnrollmentNeeded
- ? BiometricEnrollActivity.class.getName()
- : fingerprintStatusUtils.getSettingsClassName();
RestrictedLockUtils.EnforcedAdmin disablingAdmin =
fingerprintStatusUtils.getDisablingAdmin();
BiometricSourcesUtils.setBiometricSafetySourceData(
@@ -92,7 +86,7 @@
biometricNavigationUtils
.getBiometricSettingsIntent(
context,
- settingClassName,
+ fingerprintStatusUtils.getSettingsClassName(),
disablingAdmin,
Bundle.EMPTY)
.setIdentifier(Integer.toString(userId)),
diff --git a/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java
index 5d94532..1d6f48f 100644
--- a/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java
+++ b/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java
@@ -37,7 +37,6 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.face.FaceManager;
-import android.hardware.fingerprint.FingerprintManager;
import android.os.UserHandle;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
@@ -53,7 +52,6 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.Settings;
-import com.android.settings.biometrics.BiometricEnrollActivity;
import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal;
import com.android.settings.flags.Flags;
import com.android.settings.testutils.FakeFeatureFactory;
@@ -85,7 +83,6 @@
@Mock private PackageManager mPackageManager;
@Mock private DevicePolicyManager mDevicePolicyManager;
@Mock private FaceManager mFaceManager;
- @Mock private FingerprintManager mFingerprintManager;
@Mock private LockPatternUtils mLockPatternUtils;
@Mock private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Mock private SupervisionManager mSupervisionManager;
@@ -100,8 +97,6 @@
when(mApplicationContext.getSystemService(Context.DEVICE_POLICY_SERVICE))
.thenReturn(mDevicePolicyManager);
when(mApplicationContext.getSystemService(Context.FACE_SERVICE)).thenReturn(mFaceManager);
- when(mApplicationContext.getSystemService(Context.FINGERPRINT_SERVICE))
- .thenReturn(mFingerprintManager);
when(mApplicationContext.getSystemService(Context.SUPERVISION_SERVICE))
.thenReturn(mSupervisionManager);
FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
@@ -216,12 +211,10 @@
@Test
@RequiresFlagsEnabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
- public void setSafetySourceData_onlyFaceNotEnrolled_whenNotDisabledByAdmin_setsData() {
+ public void setSafetySourceData_withFaceNotEnrolled_whenNotDisabledByAdmin_setsData() {
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
when(mFaceManager.isHardwareDetected()).thenReturn(true);
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
- when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
- when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
FaceSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
@@ -234,24 +227,6 @@
@Test
@RequiresFlagsEnabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
- public void setSafetySourceData_noBiometricEnrolled_whenNotDisabledByAdmin_setsData() {
- when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
- when(mFaceManager.isHardwareDetected()).thenReturn(true);
- when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
- when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
- when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
- when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
-
- FaceSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
-
- assertSafetySourceEnabledDataSetWithSingularSummary(
- "security_settings_face_preference_title_new",
- "security_settings_face_preference_summary_none_new",
- BiometricEnrollActivity.class.getName());
- }
-
- @Test
- @RequiresFlagsEnabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
@DisableFlags(android.app.supervision.flags.Flags.FLAG_DEPRECATE_DPM_SUPERVISION_APIS)
public void setSafetySourceData_withFaceEnrolled_whenDisabledByAdmin_setsData() {
when(mDevicePolicyManager.getProfileOwnerOrDeviceOwnerSupervisionComponent(USER_HANDLE))
diff --git a/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java
index 18eae9a..dac2699 100644
--- a/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java
+++ b/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java
@@ -36,7 +36,6 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
-import android.hardware.face.FaceManager;
import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.os.UserHandle;
@@ -53,7 +52,6 @@
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.biometrics.BiometricEnrollActivity;
import com.android.settings.biometrics.fingerprint.FingerprintSettings;
import com.android.settings.flags.Flags;
import com.android.settings.testutils.FakeFeatureFactory;
@@ -89,7 +87,6 @@
@Mock private PackageManager mPackageManager;
@Mock private DevicePolicyManager mDevicePolicyManager;
@Mock private FingerprintManager mFingerprintManager;
- @Mock private FaceManager mFaceManager;
@Mock private LockPatternUtils mLockPatternUtils;
@Mock private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Mock private SupervisionManager mSupervisionManager;
@@ -103,7 +100,6 @@
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
when(mApplicationContext.getSystemService(Context.FINGERPRINT_SERVICE))
.thenReturn(mFingerprintManager);
- when(mApplicationContext.getSystemService(Context.FACE_SERVICE)).thenReturn(mFaceManager);
when(mApplicationContext.getSystemService(Context.DEVICE_POLICY_SERVICE))
.thenReturn(mDevicePolicyManager);
when(mApplicationContext.getSystemService(Context.SUPERVISION_SERVICE))
@@ -232,12 +228,10 @@
@Test
@RequiresFlagsEnabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
- public void setSafetySourceData_onlyFingerprintNotEnrolled_whenNotDisabledByAdmin_setsData() {
+ public void setSafetySourceData_withFingerprintNotEnrolled_whenNotDisabledByAdmin_setsData() {
when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
- when(mFaceManager.isHardwareDetected()).thenReturn(true);
- when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
FingerprintSafetySource.setSafetySourceData(
@@ -251,25 +245,6 @@
@Test
@RequiresFlagsEnabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
- public void setSafetySourceData_noBiometricEnrolled_whenNotDisabledByAdmin_setsData() {
- when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
- when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
- when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
- when(mFaceManager.isHardwareDetected()).thenReturn(true);
- when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
- when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0);
-
- FingerprintSafetySource.setSafetySourceData(
- mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
-
- assertSafetySourceEnabledDataSetWithSingularSummary(
- "security_settings_fingerprint",
- "security_settings_fingerprint_preference_summary_none_new",
- BiometricEnrollActivity.class.getName());
- }
-
- @Test
- @RequiresFlagsEnabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
@DisableFlags(android.app.supervision.flags.Flags.FLAG_DEPRECATE_DPM_SUPERVISION_APIS)
public void setSafetySourceData_withFingerprintsEnrolled_whenDisabledByAdmin_setsData() {
int enrolledFingerprintsCount = 2;