Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20df11e9 authored by Bill Lin's avatar Bill Lin Committed by Android (Google) Code Review
Browse files

Merge "Revert "Launch multiple biometric enrollment when no biometric is enrolled"" into main

parents 56397ab5 cb181c50
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -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) {
+2 −14
Original line number Diff line number Diff line
@@ -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 */,
+1 −7
Original line number Diff line number Diff line
@@ -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)),
+1 −26
Original line number Diff line number Diff line
@@ -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)
+1 −26
Original line number Diff line number Diff line
@@ -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)