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

Commit 8d39b4ec authored by Kevin Chyn's avatar Kevin Chyn
Browse files

Init confirm button in disabled state instead of gone state

For modalities that can require confirmation, show the "confirm" button
grayed out while the user is authenticating.

Bug: 131274300
Test: manual

Change-Id: I4e1c5e9df67c40f327480d066bc5a62f7e37e710
parent eb8b30d2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -249,7 +249,7 @@ public class BiometricDialogImpl extends SystemUI implements CommandQueue.Callba
                    mContext.getResources()
                            .getText(mCurrentDialog.getAuthenticatedAccessibilityResourceId()));
            if (mCurrentDialog.requiresConfirmation()) {
                mCurrentDialog.showConfirmationButton(true /* show */);
                mCurrentDialog.onReadyForConfirmation();
            } else {
                mCurrentDialog.updateState(BiometricDialogView.STATE_AUTHENTICATED);
                mHandler.postDelayed(() -> {
+9 −8
Original line number Diff line number Diff line
@@ -288,6 +288,11 @@ public abstract class BiometricDialogView extends LinearLayout {

        mNegativeButton.setText(mBundle.getCharSequence(BiometricPrompt.KEY_NEGATIVE_TEXT));

        if (requiresConfirmation()) {
            mPositiveButton.setVisibility(View.VISIBLE);
            mPositiveButton.setEnabled(false);
        }

        if (mWasForceRemoved || mSkipIntro) {
            // Show the dialog immediately
            mLayout.animate().cancel();
@@ -406,14 +411,10 @@ public abstract class BiometricDialogView extends LinearLayout {
        return mRequireConfirmation;
    }

    public void showConfirmationButton(boolean show) {
        if (show) {
    public void onReadyForConfirmation() {
        mHandler.removeMessages(MSG_CLEAR_MESSAGE);
        updateState(STATE_PENDING_CONFIRMATION);
            mPositiveButton.setVisibility(View.VISIBLE);
        } else {
            mPositiveButton.setVisibility(View.GONE);
        }
        mPositiveButton.setEnabled(true);
    }

    public void setUserId(int userId) {
+6 −0
Original line number Diff line number Diff line
@@ -293,6 +293,12 @@ public class FaceDialogView extends BiometricDialogView {
                mTryAgainButton.setVisibility(View.GONE);
            }
        }

        if (show) {
            mPositiveButton.setVisibility(View.GONE);
        } else if (!show && requiresConfirmation()) {
            mPositiveButton.setVisibility(View.VISIBLE);
        }
    }

    @Override