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