diff --git a/res/values/integers.xml b/res/values/integers.xml index 3d73f64fabe..d110de253e7 100644 --- a/res/values/integers.xml +++ b/res/values/integers.xml @@ -21,4 +21,9 @@ 102 103 104 + + + 1 + + 1 diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java index 44a874bd8d3..88622e931c4 100644 --- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java +++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java @@ -182,9 +182,12 @@ public class BiometricEnrollActivity extends InstrumentedActivity { final FaceManager faceManager = getSystemService(FaceManager.class); final List faceProperties = faceManager.getSensorPropertiesInternal(); + final int maxFacesEnrollableIfSUW = getApplicationContext().getResources() + .getInteger(R.integer.suw_max_faces_enrollable); if (!faceProperties.isEmpty()) { final int maxEnrolls = - isSetupWizard ? 1 : faceProperties.get(0).maxEnrollmentsPerUser; + isSetupWizard ? maxFacesEnrollableIfSUW + : faceProperties.get(0).maxEnrollmentsPerUser; mIsFaceEnrollable = faceManager.getEnrolledFaces(mUserId).size() < maxEnrolls; } @@ -193,9 +196,12 @@ public class BiometricEnrollActivity extends InstrumentedActivity { final FingerprintManager fpManager = getSystemService(FingerprintManager.class); final List fpProperties = fpManager.getSensorPropertiesInternal(); + final int maxFingerprintsEnrollableIfSUW = getApplicationContext().getResources() + .getInteger(R.integer.suw_max_fingerprints_enrollable); if (!fpProperties.isEmpty()) { final int maxEnrolls = - isSetupWizard ? 1 : fpProperties.get(0).maxEnrollmentsPerUser; + isSetupWizard ? maxFingerprintsEnrollableIfSUW + : fpProperties.get(0).maxEnrollmentsPerUser; mIsFingerprintEnrollable = fpManager.getEnrolledFingerprints(mUserId).size() < maxEnrolls; } diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java index 89b43509b7a..f80b01f39c3 100644 --- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java @@ -257,8 +257,12 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase // Lock thingy is already set up, launch directly to the next page launchNextEnrollingActivity(mToken); } else { - setResult(RESULT_FINISHED); - finish(); + boolean couldStartNextBiometric = BiometricUtils.tryStartingNextBiometricEnroll(this, + ENROLL_NEXT_BIOMETRIC_REQUEST, "enrollIntroduction#onNextButtonClicked"); + if (!couldStartNextBiometric) { + setResult(RESULT_FINISHED); + finish(); + } } } diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java index 707dea9c3a1..74ea27b9d88 100644 --- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java @@ -234,13 +234,20 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction { } private boolean maxFacesEnrolled() { + final boolean isSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent()); if (mFaceManager != null) { final List props = mFaceManager.getSensorPropertiesInternal(); // This will need to be updated for devices with multiple face sensors. final int max = props.get(0).maxEnrollmentsPerUser; final int numEnrolledFaces = mFaceManager.getEnrolledFaces(mUserId).size(); - return numEnrolledFaces >= max; + final int maxFacesEnrollableIfSUW = getApplicationContext().getResources() + .getInteger(R.integer.suw_max_faces_enrollable); + if (isSetupWizard) { + return numEnrolledFaces >= maxFacesEnrollableIfSUW; + } else { + return numEnrolledFaces >= max; + } } else { return false; } diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java index 3ab77b666c1..f70a663c1f8 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java @@ -44,6 +44,7 @@ import com.android.settingslib.HelpUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.google.android.setupcompat.template.FooterButton; +import com.google.android.setupcompat.util.WizardManagerHelper; import com.google.android.setupdesign.span.LinkSpan; import java.util.List; @@ -203,6 +204,7 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction { @Override protected int checkMaxEnrolled() { + final boolean isSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent()); if (mFingerprintManager != null) { final List props = mFingerprintManager.getSensorPropertiesInternal(); @@ -210,13 +212,22 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction { final int max = props.get(0).maxEnrollmentsPerUser; final int numEnrolledFingerprints = mFingerprintManager.getEnrolledFingerprints(mUserId).size(); - if (numEnrolledFingerprints >= max) { + final int maxFingerprintsEnrollableIfSUW = getApplicationContext().getResources() + .getInteger(R.integer.suw_max_fingerprints_enrollable); + if (isSetupWizard) { + if (numEnrolledFingerprints >= maxFingerprintsEnrollableIfSUW) { + return R.string.fingerprint_intro_error_max; + } else { + return 0; + } + } else if (numEnrolledFingerprints >= max) { return R.string.fingerprint_intro_error_max; + } else { + return 0; } } else { return R.string.fingerprint_intro_error_unknown; } - return 0; } @Override