Fixed bug causing user to be stuck on face intro
Test: See below Fixes: 203375738 Change-Id: I3e59191a8c936c7c7a3d8561e908593dbf9710b5 1. Enrolled a face during SUW 2. Pressed back on fingerprint enroll intro 3. Verified that the next button's text is chnaged to done 4. The done action launches the fingerprint enroll intro flow. Change-Id: Id5d652257445e40426ade3d396a31ebf936cc348
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