summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java5
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java17
2 files changed, 12 insertions, 10 deletions
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
index 801b627..f1bc0f6 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
@@ -288,11 +288,6 @@ public class KeyguardHostView extends KeyguardViewBase {
showPrimarySecurityScreen(false);
updateSecurityViews();
-
- // Make sure at least this view is focusable in case nothing below it is. Otherwise,
- // requestFocus() on this view will fail and allow events, such as volume keys, to be
- // handled by the fallback handler. See bug 7546960 for details.
- setFocusableInTouchMode(true);
}
private boolean shouldEnableAddWidget() {
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
index dac852a..b6cf4da 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
@@ -153,11 +153,18 @@ public class KeyguardViewManager {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_DOWN && mKeyguardView != null) {
- int keyCode = event.getKeyCode();
- if (keyCode == KeyEvent.KEYCODE_BACK && mKeyguardView.handleBackKey()) {
- return true;
- } else if (keyCode == KeyEvent.KEYCODE_MENU && mKeyguardView.handleMenuKey()) {
+ if (mKeyguardView != null) {
+ // Always process back and menu keys, regardless of focus
+ if (event.getAction() == KeyEvent.ACTION_DOWN) {
+ int keyCode = event.getKeyCode();
+ if (keyCode == KeyEvent.KEYCODE_BACK && mKeyguardView.handleBackKey()) {
+ return true;
+ } else if (keyCode == KeyEvent.KEYCODE_MENU && mKeyguardView.handleMenuKey()) {
+ return true;
+ }
+ }
+ // Always process media keys, regardless of focus
+ if (mKeyguardView.dispatchKeyEvent(event)) {
return true;
}
}