From 2e8d1fa67cbe2d925515d33167387c066421ae0c Mon Sep 17 00:00:00 2001 From: Bill Lin Date: Tue, 18 Mar 2025 00:20:36 -0700 Subject: [PATCH] Revert "Launch multiple biometric enrollment when no biometric is enrolled" This reverts commit c4ee2b83e5b129793bbd6f433b9f54519b4636fe. Reason for revert: b/404133188 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:cb181c50b5b0a04f7aec81aaa96657ca5c22c611) Merged-In: I523ab1cc638ac9782a6b60a7f640f620bb3aae22 Change-Id: I523ab1cc638ac9782a6b60a7f640f620bb3aae22 --- .../safetycenter/BiometricSourcesUtils.java | 13 --------- .../safetycenter/FaceSafetySource.java | 16 ++--------- .../safetycenter/FingerprintSafetySource.java | 8 +----- .../safetycenter/FaceSafetySourceTest.java | 27 +------------------ .../FingerprintSafetySourceTest.java | 27 +------------------ 5 files changed, 5 insertions(+), 86 deletions(-) diff --git a/src/com/android/settings/safetycenter/BiometricSourcesUtils.java b/src/com/android/settings/safetycenter/BiometricSourcesUtils.java index 786e3cf3865..9cadbbb5fcf 100644 --- a/src/com/android/settings/safetycenter/BiometricSourcesUtils.java +++ b/src/com/android/settings/safetycenter/BiometricSourcesUtils.java @@ -19,15 +19,11 @@ package com.android.settings.safetycenter; 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 @@ public final class BiometricSourcesUtils { .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 c5bde6efb60..73b6df56803 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.os.UserManager; 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 @@ public final class FaceSafetySource { 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 @@ public final class FaceSafetySource { 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 752fa69ba95..62f218bd519 100644 --- a/src/com/android/settings/safetycenter/FingerprintSafetySource.java +++ b/src/com/android/settings/safetycenter/FingerprintSafetySource.java @@ -27,7 +27,6 @@ import android.os.UserManager; 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 @@ public final class FingerprintSafetySource { 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 @@ public final class FingerprintSafetySource { 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 5d945324373..1d6f48f728c 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.Context; 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 androidx.test.ext.junit.runners.AndroidJUnit4; 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 @@ public class FaceSafetySourceTest { @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 @@ public class FaceSafetySourceTest { 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 @@ public class FaceSafetySourceTest { @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); @@ -232,24 +225,6 @@ public class FaceSafetySourceTest { FaceEnrollIntroductionInternal.class.getName()); } - @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) diff --git a/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java index 18eae9a35d2..dac2699ac71 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.ComponentName; 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.core.app.ApplicationProvider; 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 @@ public class FingerprintSafetySourceTest { @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 @@ public class FingerprintSafetySourceTest { 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 @@ public class FingerprintSafetySourceTest { @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( @@ -249,25 +243,6 @@ public class FingerprintSafetySourceTest { FingerprintSettings.class.getName()); } - @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)