From 30c76081f586db0aa77456c0ec4512a8d4e754c9 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Tue, 7 May 2019 19:39:44 -0700 Subject: [PATCH] Do not set positive button visibility if dialog is from restored state Also fix hidden dependency where positive button is enabled through a dependency. Explicitly set visiblity where setEnabled occurs now. Fixes: 132203917 Test: manual Change-Id: Iba1e01a7c6b64a0f6a2721ddffac9d785981e9a0 --- .../com/android/systemui/biometrics/BiometricDialogView.java | 5 ++++- .../src/com/android/systemui/biometrics/FaceDialogView.java | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) 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); } }