コード例 #1
0
    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();
        }
      }
    }
コード例 #2
0
          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();
              }
            }
          }