Merge "Fixed bug causing user to be stuck on face intro" into sc-v2-dev am: fd96fe156c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16103499 Change-Id: I46e6989e1e50718b09263d2d24c16105276016a9
This commit is contained in:
@@ -21,4 +21,9 @@
|
|||||||
<integer name="job_anomaly_detection">102</integer>
|
<integer name="job_anomaly_detection">102</integer>
|
||||||
<integer name="device_index_update">103</integer>
|
<integer name="device_index_update">103</integer>
|
||||||
<integer name="sim_notification_send">104</integer>
|
<integer name="sim_notification_send">104</integer>
|
||||||
|
|
||||||
|
<!-- Controls the maximum number of faces enrollable during SUW -->
|
||||||
|
<integer name="suw_max_faces_enrollable">1</integer>
|
||||||
|
<!-- Controls the maximum number of fingerprints enrollable during SUW -->
|
||||||
|
<integer name="suw_max_fingerprints_enrollable">1</integer>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -182,9 +182,12 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
|||||||
final FaceManager faceManager = getSystemService(FaceManager.class);
|
final FaceManager faceManager = getSystemService(FaceManager.class);
|
||||||
final List<FaceSensorPropertiesInternal> faceProperties =
|
final List<FaceSensorPropertiesInternal> faceProperties =
|
||||||
faceManager.getSensorPropertiesInternal();
|
faceManager.getSensorPropertiesInternal();
|
||||||
|
final int maxFacesEnrollableIfSUW = getApplicationContext().getResources()
|
||||||
|
.getInteger(R.integer.suw_max_faces_enrollable);
|
||||||
if (!faceProperties.isEmpty()) {
|
if (!faceProperties.isEmpty()) {
|
||||||
final int maxEnrolls =
|
final int maxEnrolls =
|
||||||
isSetupWizard ? 1 : faceProperties.get(0).maxEnrollmentsPerUser;
|
isSetupWizard ? maxFacesEnrollableIfSUW
|
||||||
|
: faceProperties.get(0).maxEnrollmentsPerUser;
|
||||||
mIsFaceEnrollable =
|
mIsFaceEnrollable =
|
||||||
faceManager.getEnrolledFaces(mUserId).size() < maxEnrolls;
|
faceManager.getEnrolledFaces(mUserId).size() < maxEnrolls;
|
||||||
}
|
}
|
||||||
@@ -193,9 +196,12 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
|||||||
final FingerprintManager fpManager = getSystemService(FingerprintManager.class);
|
final FingerprintManager fpManager = getSystemService(FingerprintManager.class);
|
||||||
final List<FingerprintSensorPropertiesInternal> fpProperties =
|
final List<FingerprintSensorPropertiesInternal> fpProperties =
|
||||||
fpManager.getSensorPropertiesInternal();
|
fpManager.getSensorPropertiesInternal();
|
||||||
|
final int maxFingerprintsEnrollableIfSUW = getApplicationContext().getResources()
|
||||||
|
.getInteger(R.integer.suw_max_fingerprints_enrollable);
|
||||||
if (!fpProperties.isEmpty()) {
|
if (!fpProperties.isEmpty()) {
|
||||||
final int maxEnrolls =
|
final int maxEnrolls =
|
||||||
isSetupWizard ? 1 : fpProperties.get(0).maxEnrollmentsPerUser;
|
isSetupWizard ? maxFingerprintsEnrollableIfSUW
|
||||||
|
: fpProperties.get(0).maxEnrollmentsPerUser;
|
||||||
mIsFingerprintEnrollable =
|
mIsFingerprintEnrollable =
|
||||||
fpManager.getEnrolledFingerprints(mUserId).size() < maxEnrolls;
|
fpManager.getEnrolledFingerprints(mUserId).size() < maxEnrolls;
|
||||||
}
|
}
|
||||||
|
@@ -257,8 +257,12 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
|||||||
// Lock thingy is already set up, launch directly to the next page
|
// Lock thingy is already set up, launch directly to the next page
|
||||||
launchNextEnrollingActivity(mToken);
|
launchNextEnrollingActivity(mToken);
|
||||||
} else {
|
} else {
|
||||||
setResult(RESULT_FINISHED);
|
boolean couldStartNextBiometric = BiometricUtils.tryStartingNextBiometricEnroll(this,
|
||||||
finish();
|
ENROLL_NEXT_BIOMETRIC_REQUEST, "enrollIntroduction#onNextButtonClicked");
|
||||||
|
if (!couldStartNextBiometric) {
|
||||||
|
setResult(RESULT_FINISHED);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -234,13 +234,20 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean maxFacesEnrolled() {
|
private boolean maxFacesEnrolled() {
|
||||||
|
final boolean isSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
|
||||||
if (mFaceManager != null) {
|
if (mFaceManager != null) {
|
||||||
final List<FaceSensorPropertiesInternal> props =
|
final List<FaceSensorPropertiesInternal> props =
|
||||||
mFaceManager.getSensorPropertiesInternal();
|
mFaceManager.getSensorPropertiesInternal();
|
||||||
// This will need to be updated for devices with multiple face sensors.
|
// This will need to be updated for devices with multiple face sensors.
|
||||||
final int max = props.get(0).maxEnrollmentsPerUser;
|
final int max = props.get(0).maxEnrollmentsPerUser;
|
||||||
final int numEnrolledFaces = mFaceManager.getEnrolledFaces(mUserId).size();
|
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 {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -44,6 +44,7 @@ import com.android.settingslib.HelpUtils;
|
|||||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||||
|
|
||||||
import com.google.android.setupcompat.template.FooterButton;
|
import com.google.android.setupcompat.template.FooterButton;
|
||||||
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
import com.google.android.setupdesign.span.LinkSpan;
|
import com.google.android.setupdesign.span.LinkSpan;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -203,6 +204,7 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int checkMaxEnrolled() {
|
protected int checkMaxEnrolled() {
|
||||||
|
final boolean isSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
|
||||||
if (mFingerprintManager != null) {
|
if (mFingerprintManager != null) {
|
||||||
final List<FingerprintSensorPropertiesInternal> props =
|
final List<FingerprintSensorPropertiesInternal> props =
|
||||||
mFingerprintManager.getSensorPropertiesInternal();
|
mFingerprintManager.getSensorPropertiesInternal();
|
||||||
@@ -210,13 +212,22 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
|
|||||||
final int max = props.get(0).maxEnrollmentsPerUser;
|
final int max = props.get(0).maxEnrollmentsPerUser;
|
||||||
final int numEnrolledFingerprints =
|
final int numEnrolledFingerprints =
|
||||||
mFingerprintManager.getEnrolledFingerprints(mUserId).size();
|
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;
|
return R.string.fingerprint_intro_error_max;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return R.string.fingerprint_intro_error_unknown;
|
return R.string.fingerprint_intro_error_unknown;
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user