From 2daf2641d364683c21bcbae08a3358d0f3c6af94 Mon Sep 17 00:00:00 2001 From: Paul Lawrence Date: Fri, 14 Mar 2014 09:20:24 -0700 Subject: Handle pattern cooldown correctly We need to disable pattern control when in cooldown. We also need to hide the back button completely in pattern mode. Bug: 13329798 Change-Id: Idefea60d95db1810d340c69cc730a286011363db --- src/com/android/settings/CryptKeeper.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/com/android') diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java index d974d005d..352fbd908 100644 --- a/src/com/android/settings/CryptKeeper.java +++ b/src/com/android/settings/CryptKeeper.java @@ -174,6 +174,9 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList // Factory reset the device. sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR")); } else if ((failedAttempts % COOL_DOWN_ATTEMPTS) == 0) { + if (mLockPatternView != null) { + mLockPatternView.clearPattern(); + } mCooldown = COOL_DOWN_INTERVAL; cooldown(); } else { @@ -183,6 +186,9 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList if (mPasswordEntry != null) { mPasswordEntry.setEnabled(true); } + if (mLockPatternView != null) { + mLockPatternView.setEnabled(true); + } } } } @@ -373,6 +379,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList setContentView(R.layout.crypt_keeper_pin_entry); } else if (type == StorageManager.CRYPT_TYPE_PATTERN) { setContentView(R.layout.crypt_keeper_pattern_entry); + setBackFunctionality(false); } else { setContentView(R.layout.crypt_keeper_password_entry); } @@ -498,8 +505,13 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList if (mCooldown <= 0) { // Re-enable the password entry and back presses. - mPasswordEntry.setEnabled(true); - setBackFunctionality(true); + if (mPasswordEntry != null) { + mPasswordEntry.setEnabled(true); + setBackFunctionality(true); + } + if (mLockPatternView != null) { + mLockPatternView.setEnabled(true); + } status.setText(R.string.enter_password); } else { CharSequence template = getText(R.string.crypt_keeper_cooldown); @@ -537,6 +549,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList @Override public void onPatternDetected(List pattern) { + mLockPatternView.setEnabled(false); new DecryptTask().execute(LockPatternUtils.patternToString(pattern)); } -- cgit v1.2.3