public void onPatternDetected(List<LockPatternView.Cell> pattern) { if (mLockPatternUtils.checkPattern(pattern)) { mLockPatternView.setDisplayMode(LockPatternView.DisplayMode.Correct); mKeyguardStatusViewManager.setInstructionText(""); mKeyguardStatusViewManager.updateStatusLines(true); mCallback.keyguardDone(true); mCallback.reportSuccessfulUnlockAttempt(); KeyStore.getInstance().password(LockPatternUtils.patternToString(pattern)); } else { boolean reportFailedAttempt = false; if (pattern.size() > MIN_PATTERN_BEFORE_POKE_WAKELOCK) { mCallback.pokeWakelock(UNLOCK_PATTERN_WAKE_INTERVAL_MS); } mLockPatternView.setDisplayMode(LockPatternView.DisplayMode.Wrong); if (pattern.size() >= LockPatternUtils.MIN_PATTERN_REGISTER_FAIL) { mTotalFailedPatternAttempts++; mFailedPatternAttemptsSinceLastTimeout++; reportFailedAttempt = true; } if (mFailedPatternAttemptsSinceLastTimeout >= LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) { long deadline = mLockPatternUtils.setLockoutAttemptDeadline(); handleAttemptLockout(deadline); } else { // TODO mUnlockIcon.setVisibility(View.VISIBLE); mKeyguardStatusViewManager.setInstructionText( getContext().getString(R.string.lockscreen_pattern_wrong)); mKeyguardStatusViewManager.updateStatusLines(true); mLockPatternView.postDelayed(mCancelPatternRunnable, PATTERN_CLEAR_TIMEOUT_MS); } // Because the following can result in cleanUp() being called on this screen, // member variables reset in cleanUp() shouldn't be accessed after this call. if (reportFailedAttempt) { mCallback.reportFailedUnlockAttempt(); } } }
public void onPatternDetected(List<LockPatternView.Cell> pattern) { mLockPatternView.setLockPatternSize(mLockPatternUtils.getLockPatternSize()); if (mLockPatternUtils.checkPattern(pattern)) { Intent intent = new Intent(); intent.putExtra( ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, LockPatternUtils.patternToString(pattern)); getActivity().setResult(Activity.RESULT_OK, intent); getActivity().finish(); } else { if (pattern.size() >= LockPatternUtils.MIN_PATTERN_REGISTER_FAIL && ++mNumWrongConfirmAttempts >= LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) { long deadline = mLockPatternUtils.setLockoutAttemptDeadline(); handleAttemptLockout(deadline); } else { updateStage(Stage.NeedToUnlockWrong); postClearPatternRunnable(); } } }