summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2014-10-03 18:54:03 -0700
committerJim Miller <jaggies@google.com>2014-10-07 16:50:04 -0700
commite8fed24be6345cbb3c5f1e61529f4938bfb6e505 (patch)
tree5ef075854b5ba3a6c6c4f0f2d8e822a255e474bd /packages
parent6ec5a256d78579057e82691e4cc21ca6222e2b1f (diff)
downloadframeworks_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.java10
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;
}