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

Commit 5be868c5 authored by Hidenari Koshimae's avatar Hidenari Koshimae Committed by Jorim Jaggi
Browse files

Improve "Try again in 1 seconds" behavior in lockscreen

When user fails an authentification in lockscreen many times,
"Try again in 30 seconds." is displayed and a 30 seconds
timer starts to count backwards.

This lets "Try again in 1 seconds" to be displayed for one second.

Bug: 31078006
Change-Id: I6c7de2b751582bb06a93e583b710f83201da1728
parent e1cb95bb
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout
    protected View mEcaView;
    protected boolean mEnableHaptics;
    private boolean mDismissing;
    private CountDownTimer mCountdownTimer = null;

    // To avoid accidental lockout due to events while the device in in the pocket, ignore
    // any passwords with length less than or equal to this length.
@@ -215,11 +216,13 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout
    protected void handleAttemptLockout(long elapsedRealtimeDeadline) {
        setPasswordEntryEnabled(false);
        long elapsedRealtime = SystemClock.elapsedRealtime();
        new CountDownTimer(elapsedRealtimeDeadline - elapsedRealtime, 1000) {
        long secondsInFuture = (long) Math.ceil(
                (elapsedRealtimeDeadline - elapsedRealtime) / 1000.0);
        mCountdownTimer = new CountDownTimer(secondsInFuture * 1000, 1000) {

            @Override
            public void onTick(long millisUntilFinished) {
                int secondsRemaining = (int) (millisUntilFinished / 1000);
                int secondsRemaining = (int) Math.round(millisUntilFinished / 1000.0);
                mSecurityMessageDisplay.formatMessage(
                        R.string.kg_too_many_failed_attempts_countdown, secondsRemaining);
            }
@@ -252,6 +255,10 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout

    @Override
    public void onPause() {
        if (mCountdownTimer != null) {
            mCountdownTimer.cancel();
            mCountdownTimer = null;
        }
        if (mPendingLockCheck != null) {
            mPendingLockCheck.cancel(false);
            mPendingLockCheck = null;
+4 −3
Original line number Diff line number Diff line
@@ -325,12 +325,13 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit
        mLockPatternView.clearPattern();
        mLockPatternView.setEnabled(false);
        final long elapsedRealtime = SystemClock.elapsedRealtime();

        mCountdownTimer = new CountDownTimer(elapsedRealtimeDeadline - elapsedRealtime, 1000) {
        final long secondsInFuture = (long) Math.ceil(
                (elapsedRealtimeDeadline - elapsedRealtime) / 1000.0);
        mCountdownTimer = new CountDownTimer(secondsInFuture * 1000, 1000) {

            @Override
            public void onTick(long millisUntilFinished) {
                final int secondsRemaining = (int) (millisUntilFinished / 1000);
                final int secondsRemaining = (int) Math.round(millisUntilFinished / 1000.0);
                mSecurityMessageDisplay.formatMessage(
                        R.string.kg_too_many_failed_attempts_countdown, secondsRemaining);
            }