diff options
| author | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-11-05 02:00:43 +0000 |
|---|---|---|
| committer | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-11-05 15:44:26 +0000 |
| commit | 90852d4675c9b7df6faf036efb7fe73b5f816293 (patch) | |
| tree | 18ea2755ab5ea68669a7951d5a07daadc4870b0a /src/com/android/settings/ConfirmLockPassword.java | |
| parent | 3dbac3fff036f5a464f6322200c59f9934ebf610 (diff) | |
| parent | 310423e73156dab1c7c8f50dc67fdbc326cd37f7 (diff) | |
| download | packages_apps_Settings-90852d4675c9b7df6faf036efb7fe73b5f816293.tar.gz packages_apps_Settings-90852d4675c9b7df6faf036efb7fe73b5f816293.tar.bz2 packages_apps_Settings-90852d4675c9b7df6faf036efb7fe73b5f816293.zip | |
Merge tag 'android-6.0.0_r26' into HEAD
Android 6.0.0 release 26
Conflicts:
res/values-fr/strings.xml
res/values-it/strings.xml
res/values-ja/strings.xml
res/values-nl/strings.xml
res/values-pl/strings.xml
res/values-ro/strings.xml
res/values-ru/strings.xml
res/values-zh-rCN/strings.xml
res/values/bools.xml
res/values/strings.xml
res/xml/development_prefs.xml
src/com/android/settings/DevelopmentSettings.java
src/com/android/settings/DeviceInfoSettings.java
src/com/android/settings/DisplaySettings.java
Change-Id: I9fd9e793cf6097d950f8a1e30771c8bdf5067906
Diffstat (limited to 'src/com/android/settings/ConfirmLockPassword.java')
| -rw-r--r-- | src/com/android/settings/ConfirmLockPassword.java | 72 |
1 files changed, 43 insertions, 29 deletions
diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java index 1c42045a4..cce29ddfc 100644 --- a/src/com/android/settings/ConfirmLockPassword.java +++ b/src/com/android/settings/ConfirmLockPassword.java @@ -16,10 +16,8 @@ package com.android.settings; -import android.os.UserHandle; import android.text.TextUtils; import com.android.internal.logging.MetricsLogger; -import com.android.internal.util.ArrayUtils; import com.android.internal.widget.LockPatternChecker; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.TextViewInputDisabler; @@ -78,19 +76,20 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { } public static class ConfirmLockPasswordFragment extends ConfirmDeviceCredentialBaseFragment - implements OnClickListener, OnEditorActionListener { - private static final String KEY_NUM_WRONG_CONFIRM_ATTEMPTS - = "confirm_lock_password_fragment.key_num_wrong_confirm_attempts"; + implements OnClickListener, OnEditorActionListener, + CredentialCheckResultTracker.Listener { private static final long ERROR_MESSAGE_TIMEOUT = 3000; + private static final String FRAGMENT_TAG_CHECK_LOCK_RESULT = "check_lock_result"; private TextView mPasswordEntry; private TextViewInputDisabler mPasswordEntryInputDisabler; private LockPatternUtils mLockPatternUtils; private AsyncTask<?, ?, ?> mPendingLockCheck; + private CredentialCheckResultTracker mCredentialCheckResultTracker; + private boolean mDisappearing = false; private TextView mHeaderTextView; private TextView mDetailsTextView; private TextView mErrorTextView; private Handler mHandler = new Handler(); - private int mNumWrongConfirmAttempts; private CountDownTimer mCountdownTimer; private boolean mIsAlpha; private InputMethodManager mImm; @@ -110,11 +109,6 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { super.onCreate(savedInstanceState); mLockPatternUtils = new LockPatternUtils(getActivity()); mEffectiveUserId = Utils.getEffectiveUserId(getActivity()); - - if (savedInstanceState != null) { - mNumWrongConfirmAttempts = savedInstanceState.getInt( - KEY_NUM_WRONG_CONFIRM_ATTEMPTS, 0); - } } @Override @@ -165,6 +159,15 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { 0.5f /* delayScale */, AnimationUtils.loadInterpolator( getContext(), android.R.interpolator.fast_out_linear_in)); setAccessibilityTitle(mHeaderTextView.getText()); + + mCredentialCheckResultTracker = (CredentialCheckResultTracker) getFragmentManager() + .findFragmentByTag(FRAGMENT_TAG_CHECK_LOCK_RESULT); + if (mCredentialCheckResultTracker == null) { + mCredentialCheckResultTracker = new CredentialCheckResultTracker(); + getFragmentManager().beginTransaction().add(mCredentialCheckResultTracker, + FRAGMENT_TAG_CHECK_LOCK_RESULT).commit(); + } + return view; } @@ -227,10 +230,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { mCountdownTimer.cancel(); mCountdownTimer = null; } - if (mPendingLockCheck != null) { - mPendingLockCheck.cancel(false); - mPendingLockCheck = null; - } + mCredentialCheckResultTracker.setListener(null); } @Override @@ -243,21 +243,17 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { super.onResume(); long deadline = mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId); if (deadline != 0) { + mCredentialCheckResultTracker.clearResult(); handleAttemptLockout(deadline); } else { resetState(); } - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putInt(KEY_NUM_WRONG_CONFIRM_ATTEMPTS, mNumWrongConfirmAttempts); + mCredentialCheckResultTracker.setListener(this); } @Override protected void authenticationSucceeded() { - startDisappearAnimation(new Intent()); + mCredentialCheckResultTracker.setResult(true, new Intent(), 0, mEffectiveUserId); } @Override @@ -298,11 +294,12 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { } private void handleNext() { - mPasswordEntryInputDisabler.setInputEnabled(false); - if (mPendingLockCheck != null) { - mPendingLockCheck.cancel(false); + if (mPendingLockCheck != null || mDisappearing) { + return; } + mPasswordEntryInputDisabler.setInputEnabled(false); + final String pin = mPasswordEntry.getText().toString(); final boolean verifyChallenge = getActivity().getIntent().getBooleanExtra( ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false); @@ -317,7 +314,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { return; } - onPasswordChecked(false, intent, 0, mEffectiveUserId); + mCredentialCheckResultTracker.setResult(false, intent, 0, mEffectiveUserId); } private boolean isInternalActivity() { @@ -344,7 +341,8 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); } - onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId); + mCredentialCheckResultTracker.setResult(matched, intent, timeoutMs, + localEffectiveUserId); } }); } @@ -366,16 +364,27 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { intent.putExtra( ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pin); } - onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId); + mCredentialCheckResultTracker.setResult(matched, intent, timeoutMs, + localEffectiveUserId); } }); } private void startDisappearAnimation(final Intent intent) { + if (mDisappearing) { + return; + } + mDisappearing = true; + if (getActivity().getThemeResId() == R.style.Theme_ConfirmDeviceCredentialsDark) { mDisappearAnimationUtils.startAnimation(getActiveViews(), new Runnable() { @Override public void run() { + // Bail if there is no active activity. + if (getActivity() == null || getActivity().isFinishing()) { + return; + } + getActivity().setResult(RESULT_OK, intent); getActivity().finish(); getActivity().overridePendingTransition( @@ -405,6 +414,12 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { } } + @Override + public void onCredentialChecked(boolean matched, Intent intent, int timeoutMs, + int effectiveUserId) { + onPasswordChecked(matched, intent, timeoutMs, effectiveUserId); + } + private void handleAttemptLockout(long elapsedRealtimeDeadline) { long elapsedRealtime = SystemClock.elapsedRealtime(); mPasswordEntry.setEnabled(false); @@ -424,7 +439,6 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { public void onFinish() { resetState(); mErrorTextView.setText(""); - mNumWrongConfirmAttempts = 0; } }.start(); } |
