diff options
| author | Jim Miller <jaggies@google.com> | 2014-10-03 18:54:03 -0700 |
|---|---|---|
| committer | Jim Miller <jaggies@google.com> | 2014-10-07 16:50:04 -0700 |
| commit | e8fed24be6345cbb3c5f1e61529f4938bfb6e505 (patch) | |
| tree | 5ef075854b5ba3a6c6c4f0f2d8e822a255e474bd /packages | |
| parent | 6ec5a256d78579057e82691e4cc21ca6222e2b1f (diff) | |
| download | frameworks_base-e8fed24be6345cbb3c5f1e61529f4938bfb6e505.zip frameworks_base-e8fed24be6345cbb3c5f1e61529f4938bfb6e505.tar.gz frameworks_base-e8fed24be6345cbb3c5f1e61529f4938bfb6e505.tar.bz2 | |
Fix "Wrong password" message shown when using BT keyboard.
The code was assuming we're always using soft IME. When a physical
keyboard is attached, we get two events; ACTION_DOWN and ACTION_UP.
The code attempted to unlock the device twice. The second attempt
failed because the TextView was cleared by the first successful attempt.
Fixes bug 17690585
Change-Id: Ia92a97400b4404d0cbe86aacb727009e95914327
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java index e6c9e6c..dfea166 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java @@ -295,8 +295,14 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // Check if this was the result of hitting the enter key - if (actionId == EditorInfo.IME_NULL || actionId == EditorInfo.IME_ACTION_DONE - || actionId == EditorInfo.IME_ACTION_NEXT) { + final boolean isSoftImeEvent = event == null + && (actionId == EditorInfo.IME_NULL + || actionId == EditorInfo.IME_ACTION_DONE + || actionId == EditorInfo.IME_ACTION_NEXT); + final boolean isKeyboardEnterKey = event != null + && KeyEvent.isConfirmKey(event.getKeyCode()) + && event.getAction() == KeyEvent.ACTION_DOWN; + if (isSoftImeEvent || isKeyboardEnterKey) { verifyPasswordAndUnlock(); return true; } |
