diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java index 54bbd5a11139d..6295de41d857f 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java @@ -110,7 +110,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout protected void verifyPasswordAndUnlock() { final String entry = getPasswordText(); - setPasswordEntryEnabled(false); + setPasswordEntryInputEnabled(false); if (mPendingLockCheck != null) { mPendingLockCheck.cancel(false); } @@ -121,7 +121,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout new LockPatternChecker.OnCheckCallback() { @Override public void onChecked(boolean matched) { - setPasswordEntryEnabled(true); + setPasswordEntryInputEnabled(true); mPendingLockCheck = null; onPasswordChecked(entry, matched); } @@ -152,6 +152,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout protected abstract void resetPasswordText(boolean animate); protected abstract String getPasswordText(); protected abstract void setPasswordEntryEnabled(boolean enabled); + protected abstract void setPasswordEntryInputEnabled(boolean enabled); // Prevent user from using the PIN/Password entry until scheduled deadline. protected void handleAttemptLockout(long elapsedRealtimeDeadline) { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java index f18c451fe0e0e..c9ad7286d9f68 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java @@ -74,7 +74,12 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView protected void resetState() { mSecurityMessageDisplay.setMessage(R.string.kg_password_instructions, false); + final boolean wasDisabled = mPasswordEntry.isEnabled(); setPasswordEntryEnabled(true); + setPasswordEntryInputEnabled(true); + if (wasDisabled) { + mImm.showSoftInput(mPasswordEntry, InputMethodManager.SHOW_IMPLICIT); + } } @Override @@ -95,7 +100,7 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView post(new Runnable() { @Override public void run() { - if (isShown()) { + if (isShown() && mPasswordEntry.isEnabled()) { mPasswordEntry.requestFocus(); if (reason != KeyguardSecurityView.SCREEN_ON || mShowImeAtScreenOn) { mImm.showSoftInput(mPasswordEntry, InputMethodManager.SHOW_IMPLICIT); @@ -190,6 +195,11 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView @Override protected void setPasswordEntryEnabled(boolean enabled) { + mPasswordEntry.setEnabled(enabled); + } + + @Override + protected void setPasswordEntryInputEnabled(boolean enabled) { mPasswordEntryDisabler.setInputEnabled(enabled); } diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java index 84b4cf869d0a0..ed0d4afe96a98 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java @@ -71,6 +71,11 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView mPasswordEntry.setEnabled(enabled); } + @Override + protected void setPasswordEntryInputEnabled(boolean enabled) { + mPasswordEntry.setEnabled(enabled); + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (KeyEvent.isConfirmKey(keyCode)) {