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

Commit 6850b702 authored by Curtis Belmonte's avatar Curtis Belmonte Committed by Android (Google) Code Review
Browse files

Merge "Ensure fingerprint setup is shown once after face" into sc-dev

parents de6214c4 b61478c3
Loading
Loading
Loading
Loading
+34 −7
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.SetupSkipDialog;

import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
@@ -284,13 +285,11 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == BIOMETRIC_FIND_SENSOR_REQUEST) {
            if (resultCode == RESULT_SKIP || resultCode == RESULT_FINISHED) {
                onSkipButtonClick(mFooterBarMixin.getSecondaryButtonView());
                return;
            if (isResultSkipOrFinished(resultCode)) {
                handleBiometricResultSkipOrFinished(resultCode, data);
            } else if (resultCode == RESULT_TIMEOUT) {
                setResult(resultCode, data);
                finish();
                return;
            }
        } else if (requestCode == CHOOSE_LOCK_GENERIC_REQUEST) {
            mConfirmingCredentials = false;
@@ -337,8 +336,8 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
            overridePendingTransition(R.anim.sud_slide_back_in, R.anim.sud_slide_back_out);
        } else if (requestCode == ENROLL_NEXT_BIOMETRIC_REQUEST) {
            Log.d(TAG, "ENROLL_NEXT_BIOMETRIC_REQUEST, result: " + resultCode);
            if (resultCode == RESULT_SKIP || resultCode == RESULT_FINISHED) {
                onSkipButtonClick(mFooterBarMixin.getSecondaryButtonView());
            if (isResultSkipOrFinished(resultCode)) {
                handleBiometricResultSkipOrFinished(resultCode, data);
            } else if (resultCode != RESULT_CANCELED) {
                setResult(resultCode, data);
                finish();
@@ -347,6 +346,25 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
        super.onActivityResult(requestCode, resultCode, data);
    }

    private static boolean isResultSkipOrFinished(int resultCode) {
        return resultCode == RESULT_SKIP || resultCode == SetupSkipDialog.RESULT_SKIP
                || resultCode == RESULT_FINISHED;
    }

    private void handleBiometricResultSkipOrFinished(int resultCode, @Nullable Intent data) {
        if (data != null
                && data.getBooleanExtra(
                        MultiBiometricEnrollHelper.EXTRA_SKIP_PENDING_ENROLL, false)) {
            getIntent().removeExtra(MultiBiometricEnrollHelper.EXTRA_ENROLL_AFTER_FACE);
        }

        if (resultCode == RESULT_SKIP) {
            onEnrollmentSkipped(data);
        } else if (resultCode == RESULT_FINISHED) {
            onFinishedEnrolling(data);
        }
    }

    /**
     * Called after confirming credentials. Can be used to prevent the default
     * behavior of immediately calling #getChallenge (useful to things like intro
@@ -364,7 +382,16 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
    }

    protected void onSkipButtonClick(View view) {
        setResult(RESULT_SKIP);
        onEnrollmentSkipped(null /* data */);
    }

    protected void onEnrollmentSkipped(@Nullable Intent data) {
        setResult(RESULT_SKIP, data);
        finish();
    }

    protected void onFinishedEnrolling(@Nullable Intent data) {
        setResult(RESULT_FINISHED, data);
        finish();
    }

+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ public class MultiBiometricEnrollHelper {
    private static final int REQUEST_FINGERPRINT_ENROLL = 3001;

    public static final String EXTRA_ENROLL_AFTER_FACE = "enroll_after_face";
    public static final String EXTRA_SKIP_PENDING_ENROLL = "skip_pending_enroll";

    @NonNull private final FragmentActivity mActivity;
    private final long mGkPwHandle;
+8 −3
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.SetupSkipDialog;

import com.airbnb.lottie.LottieAnimationView;
import com.google.android.setupcompat.template.FooterBarMixin;
@@ -225,13 +226,17 @@ public class FaceEnrollEducation extends BiometricEnrollBase {
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mResultIntent = data;
        if (requestCode == BIOMETRIC_FIND_SENSOR_REQUEST) {
        if (requestCode == BIOMETRIC_FIND_SENSOR_REQUEST
                || requestCode == ENROLL_NEXT_BIOMETRIC_REQUEST) {
            // If the user finished or skipped enrollment, finish this activity
            if (resultCode == RESULT_FINISHED || resultCode == RESULT_SKIP
                    || resultCode == RESULT_TIMEOUT) {
            if (resultCode == RESULT_SKIP || resultCode == RESULT_FINISHED
                    || resultCode == SetupSkipDialog.RESULT_SKIP) {
                setResult(resultCode, data);
                finish();
            }
        } else if (resultCode == RESULT_TIMEOUT) {
            setResult(resultCode, data);
            finish();
        }
    }

+14 −0
Original line number Diff line number Diff line
@@ -71,6 +71,20 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
        }
    }

    @Override
    protected void onEnrollmentSkipped(@Nullable Intent data) {
        if (!BiometricUtils.tryStartingNextBiometricEnroll(this, ENROLL_NEXT_BIOMETRIC_REQUEST)) {
            super.onEnrollmentSkipped(data);
        }
    }

    @Override
    protected void onFinishedEnrolling(@Nullable Intent data) {
        if (!BiometricUtils.tryStartingNextBiometricEnroll(this, ENROLL_NEXT_BIOMETRIC_REQUEST)) {
            super.onFinishedEnrolling(data);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
+10 −0
Original line number Diff line number Diff line
@@ -50,6 +50,16 @@ public class FaceEnrollParentalConsent extends FaceEnrollIntroduction {
        onConsentResult(false /* granted */);
    }

    @Override
    protected void onEnrollmentSkipped(@Nullable Intent data) {
        onConsentResult(false /* granted */);
    }

    @Override
    protected void onFinishedEnrolling(@Nullable Intent data) {
        onConsentResult(true /* granted */);
    }

    private void onConsentResult(boolean granted) {
        final Intent result = new Intent();
        result.putExtra(EXTRA_KEY_MODALITY, TYPE_FACE);
Loading