diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index 91f098665d1..f6dafedf78e 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -104,6 +104,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { static final String ICON_TOUCH_DIALOG = "fps_icon_touch_dialog"; static final String KEY_STATE_CANCELED = "is_canceled"; static final String KEY_STATE_PREVIOUS_ROTATION = "previous_rotation"; + static final String KEY_STATE_OVERLAY_SHOWN = "overlay_shown"; private static final int PROGRESS_BAR_MAX = 10000; @@ -193,6 +194,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { private boolean mHaveShownSfpsLeftEdgeLottie; private boolean mHaveShownSfpsRightEdgeLottie; private boolean mShouldShowLottie; + private boolean mOverlayShown; private Animator mHelpAnimation; @@ -379,12 +381,14 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putBoolean(KEY_STATE_CANCELED, mIsCanceled); + outState.putBoolean(KEY_STATE_OVERLAY_SHOWN, mOverlayShown); outState.putInt(KEY_STATE_PREVIOUS_ROTATION, mPreviousRotation); } private void restoreSavedState(Bundle savedInstanceState) { mRestoring = true; mIsCanceled = savedInstanceState.getBoolean(KEY_STATE_CANCELED, false); + mOverlayShown = savedInstanceState.getBoolean(KEY_STATE_OVERLAY_SHOWN, false); mPreviousRotation = savedInstanceState.getInt(KEY_STATE_PREVIOUS_ROTATION, getDisplay().getRotation()); } @@ -398,6 +402,9 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { if (mRestoring) { startIconAnimation(); } + if (mOverlayShown) { + onUdfpsOverlayShown(); + } } private void setupScreenFoldCallbackWhenNecessary() { @@ -443,6 +450,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { // showErrorDialog() will cause onWindowFocusChanged(false), set mIsCanceled to false // before showErrorDialog() to prevent that another error dialog is triggered again. mIsCanceled = true; + mOverlayShown = false; FingerprintErrorDialog.showErrorDialog(this, errorMsgId, this instanceof SetupFingerprintEnrollEnrolling); cancelEnrollment(); @@ -456,6 +464,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { @Override protected void onStop() { if (!isChangingConfigurations()) { + mOverlayShown = false; if (!WizardManagerHelper.isAnySetupWizard(getIntent()) && !BiometricUtils.isAnyMultiBiometricFlow(this) && !mFromSettingsSummary) { @@ -921,6 +930,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { public void onUdfpsOverlayShown() { if (mCanAssumeUdfps) { findViewById(R.id.udfps_animation_view).setVisibility(View.VISIBLE); + mOverlayShown = true; } } @@ -1095,6 +1105,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { @Override public void onAnimationEnd(Animator animation) { + mOverlayShown = false; stopIconAnimation(); if (mProgressBar.getProgress() >= PROGRESS_BAR_MAX) {