Launch multiple biometric enrollment when no biometric is enrolled
When a user clicks the biometric item in the Device unlock page and no biometric is enrolled: - Fingerint clicked: Launch fingerprint enroll then face enroll. - Face clicked: Launch face enroll then fingerprint enroll. Bug: 370940762 Test: atest FaceSafetySourceTest FingerprintSafetySourceTest Flag: com.android.settings.flags.biometrics_onboarding_education Change-Id: I874b96a75ec0c126ae1674bb6ab220a0a8533fcd
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
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;
|
||||
@@ -27,6 +28,7 @@ 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;
|
||||
@@ -73,6 +75,16 @@ 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,
|
||||
@@ -84,9 +96,9 @@ public final class FaceSafetySource {
|
||||
biometricNavigationUtils
|
||||
.getBiometricSettingsIntent(
|
||||
context,
|
||||
faceStatusUtils.getSettingsClassName(),
|
||||
settingClassName,
|
||||
disablingAdmin,
|
||||
Bundle.EMPTY)
|
||||
bundle)
|
||||
.setIdentifier(Integer.toString(userId)),
|
||||
REQUEST_CODE_FACE_SETTING),
|
||||
disablingAdmin == null /* enabled */,
|
||||
|
Reference in New Issue
Block a user