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

Commit 08b2b6bf authored by Jim Miller's avatar Jim Miller
Browse files

Fix keyguard timeout dialog messages

This fixes an issue where the attempt count was incorrect.  We now show the
dialog *after* reporting the failed attempt.

This also fixes an issue where the text wasn't being reset in the password dialog
of keyguard.

Fixes bugs 7170545 and 7120895

Change-Id: Iba2009705373758acca6e10bd670eb34744bece9
parent 8b681cb8
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -348,6 +348,7 @@ public class KeyguardHostView extends KeyguardViewBase {
                (failedAttemptsBeforeWipe - failedAttempts)
                : Integer.MAX_VALUE; // because DPM returns 0 if no restriction

        boolean showTimeout = false;
        if (remainingBeforeWipe < LockPatternUtils.FAILED_ATTEMPTS_BEFORE_WIPE_GRACE) {
            // If we reach this code, it means the user has installed a DevicePolicyManager
            // that requests device wipe after N attempts.  Once we get below the grace
@@ -361,7 +362,7 @@ public class KeyguardHostView extends KeyguardViewBase {
                showWipeDialog(failedAttempts);
            }
        } else {
            boolean showTimeout =
            showTimeout =
                (failedAttempts % LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) == 0;
            if (usingPattern && mEnableFallback) {
                if (failedAttempts == failedAttemptWarning) {
@@ -374,12 +375,12 @@ public class KeyguardHostView extends KeyguardViewBase {
                    showTimeout = false;
                }
            }
            if (showTimeout) {
                showTimeoutDialog();
            }
        }
        monitor.reportFailedUnlockAttempt();
        mLockPatternUtils.reportFailedPasswordAttempt();
        if (showTimeout) {
            showTimeoutDialog();
        }
    }

    /**
+9 −4
Original line number Diff line number Diff line
@@ -97,9 +97,15 @@ public class KeyguardPasswordView extends LinearLayout
        if (deadline != 0) {
            handleAttemptLockout(deadline);
        } else {
            resetState();
        }
    }

    private void resetState() {
        mNavigationManager.setMessage(
                mIsAlpha ? R.string.kg_password_instructions : R.string.kg_pin_instructions);
        }
        mPasswordEntry.setEnabled(true);
        mKeyboardView.setEnabled(true);
    }

    @Override
@@ -297,8 +303,7 @@ public class KeyguardPasswordView extends LinearLayout

            @Override
            public void onFinish() {
                mPasswordEntry.setEnabled(true);
                mKeyboardView.setEnabled(true);
                resetState();
            }
        }.start();
    }
+3 −2
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ class KeyguardStatusViewManager {
    private static final int BATTERY_INFO = 15;

    private StatusMode mStatus;
    private String mDateFormatString;
    private CharSequence mDateFormatString;

    // Views that this class controls.
    // NOTE: These may be null in some LockScreen screens and should protect from NPE
@@ -101,7 +101,8 @@ class KeyguardStatusViewManager {
    public KeyguardStatusViewManager(View view) {
        if (DEBUG) Log.v(TAG, "KeyguardStatusViewManager()");
        mContainer = view;
        mDateFormatString = getContext().getString(R.string.abbrev_wday_month_day_no_year);
        mDateFormatString = getContext().getResources()
            .getText(R.string.abbrev_wday_month_day_no_year);
        mLockPatternUtils = new LockPatternUtils(view.getContext());
        mUpdateMonitor = KeyguardUpdateMonitor.getInstance(view.getContext());