diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java index 34cb38aab7357..f25b580b13a37 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/BiometricDialogView.java @@ -92,6 +92,7 @@ public abstract class BiometricDialogView extends LinearLayout { protected final int mTextColor; private Bundle mBundle; + private Bundle mRestoredState; private int mState; private boolean mAnimatingAway; @@ -286,7 +287,7 @@ public abstract class BiometricDialogView extends LinearLayout { mNegativeButton.setText(mBundle.getCharSequence(BiometricPrompt.KEY_NEGATIVE_TEXT)); - if (requiresConfirmation()) { + if (requiresConfirmation() && mRestoredState == null) { mPositiveButton.setVisibility(View.VISIBLE); mPositiveButton.setEnabled(false); } @@ -443,6 +444,7 @@ public abstract class BiometricDialogView extends LinearLayout { if (newState == STATE_PENDING_CONFIRMATION) { mHandler.removeMessages(MSG_CLEAR_MESSAGE); mErrorText.setVisibility(View.INVISIBLE); + mPositiveButton.setVisibility(View.VISIBLE); mPositiveButton.setEnabled(true); } else if (newState == STATE_AUTHENTICATED) { mPositiveButton.setVisibility(View.GONE); @@ -465,6 +467,7 @@ public abstract class BiometricDialogView extends LinearLayout { } public void restoreState(Bundle bundle) { + mRestoredState = bundle; mTryAgainButton.setVisibility(bundle.getInt(KEY_TRY_AGAIN_VISIBILITY)); mPositiveButton.setVisibility(bundle.getInt(KEY_CONFIRM_VISIBILITY)); } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/FaceDialogView.java b/packages/SystemUI/src/com/android/systemui/biometrics/FaceDialogView.java index a39d811c93ca0..9679d26d4bfed 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/FaceDialogView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/FaceDialogView.java @@ -360,8 +360,6 @@ public class FaceDialogView extends BiometricDialogView { if (show) { mPositiveButton.setVisibility(View.GONE); - } else if (!show && requiresConfirmation()) { - mPositiveButton.setVisibility(View.VISIBLE); } }