Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 019e8ceb authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix enrolled pages not hide during SUW" into udc-dev

parents a42119c6 e4fe6069
Loading
Loading
Loading
Loading
+29 −18
Original line number Diff line number Diff line
@@ -237,20 +237,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
                }
            }
        }
        if (mHasFeatureFingerprint) {
            final FingerprintManager fpManager = getSystemService(FingerprintManager.class);
            final List<FingerprintSensorPropertiesInternal> fpProperties =
                    fpManager.getSensorPropertiesInternal();
            final int maxFingerprintsEnrollableIfSUW = getApplicationContext().getResources()
                    .getInteger(R.integer.suw_max_fingerprints_enrollable);
            if (!fpProperties.isEmpty()) {
                final int maxEnrolls =
                        isSetupWizard ? maxFingerprintsEnrollableIfSUW
                                : fpProperties.get(0).maxEnrollmentsPerUser;
                mIsFingerprintEnrollable =
                        fpManager.getEnrolledFingerprints(mUserId).size() < maxEnrolls;
            }
        }
        updateFingerprintEnrollable(isSetupWizard);

        // TODO(b/195128094): remove this restriction
        // Consent can only be recorded when this activity is launched directly from the kids
@@ -289,6 +276,23 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
        }
    }

    private void updateFingerprintEnrollable(boolean isSetupWizard) {
        if (mHasFeatureFingerprint) {
            final FingerprintManager fpManager = getSystemService(FingerprintManager.class);
            final List<FingerprintSensorPropertiesInternal> fpProperties =
                    fpManager.getSensorPropertiesInternal();
            final int maxFingerprintsEnrollableIfSUW = getApplicationContext().getResources()
                    .getInteger(R.integer.suw_max_fingerprints_enrollable);
            if (!fpProperties.isEmpty()) {
                final int maxEnrolls =
                        isSetupWizard ? maxFingerprintsEnrollableIfSUW
                                : fpProperties.get(0).maxEnrollmentsPerUser;
                mIsFingerprintEnrollable =
                        fpManager.getEnrolledFingerprints(mUserId).size() < maxEnrolls;
            }
        }
    }

    private void startEnrollWith(@Authenticators.Types int authenticators, boolean setupWizard) {
        // If the caller is not setup wizard, and the user has something enrolled, finish.
        // Allow parental consent flow to skip this check, since one modality could be consented
@@ -464,12 +468,12 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
                mConfirmingCredentials = false;
                final boolean isOk =
                        isSuccessfulConfirmOrChooseCredential(requestCode, resultCode);
                if (isOk && (mHasFeatureFace || mHasFeatureFingerprint)) {
                if (isOk && (mIsFaceEnrollable || mIsFingerprintEnrollable)) {
                    // Apply forward animation during the transition from ChooseLock/ConfirmLock to
                    // SetupFingerprintEnrollIntroduction/FingerprintEnrollmentActivity
                    TransitionHelper.applyForwardTransition(this, TRANSITION_FADE_THROUGH);
                    updateGatekeeperPasswordHandle(data);
                    if (mHasFeatureFingerprint) {
                    if (mIsFingerprintEnrollable) {
                        launchFingerprintOnlyEnroll();
                    } else {
                        launchFaceOnlyEnroll();
@@ -482,8 +486,15 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
                break;
            case REQUEST_SINGLE_ENROLL_FINGERPRINT:
                mIsSingleEnrolling = false;
                if (resultCode == BiometricEnrollBase.RESULT_FINISHED) {
                    // FingerprintEnrollIntroduction's visibility is determined by
                    // mIsFingerprintEnrollable. Keep this value up-to-date after a successful
                    // enrollment.
                    updateFingerprintEnrollable(WizardManagerHelper.isAnySetupWizard(getIntent()));
                }
                if ((resultCode == BiometricEnrollBase.RESULT_SKIP
                        || resultCode == BiometricEnrollBase.RESULT_FINISHED) && mHasFeatureFace) {
                        || resultCode == BiometricEnrollBase.RESULT_FINISHED)
                        && mIsFaceEnrollable) {
                    // Apply forward animation during the transition from
                    // SetupFingerprintEnroll*/FingerprintEnrollmentActivity to
                    // SetupFaceEnrollIntroduction
@@ -495,7 +506,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
                break;
            case REQUEST_SINGLE_ENROLL_FACE:
                mIsSingleEnrolling = false;
                if (resultCode == Activity.RESULT_CANCELED && mHasFeatureFingerprint) {
                if (resultCode == Activity.RESULT_CANCELED && mIsFingerprintEnrollable) {
                    launchFingerprintOnlyEnroll();
                } else {
                    finishOrLaunchHandToParent(resultCode);