diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-05-16 16:25:21 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-16 16:25:21 -0700 |
commit | 00ee17718af8a229d0e6a14cd1f47b56a8b14b0f (patch) | |
tree | 025f855d01ddb5e1840177439a1feaa978b8677c /policy | |
parent | f3ae4e178c8e5111f24927bbc43a7d73d03c8501 (diff) | |
parent | 602ab325ca03b8dd0b3c2d572614c85ce32e309a (diff) | |
download | frameworks_base-00ee17718af8a229d0e6a14cd1f47b56a8b14b0f.zip frameworks_base-00ee17718af8a229d0e6a14cd1f47b56a8b14b0f.tar.gz frameworks_base-00ee17718af8a229d0e6a14cd1f47b56a8b14b0f.tar.bz2 |
Merge "Don't allow shortcuts while keyguard showing." into jb-dev
Diffstat (limited to 'policy')
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 3147ba7..cc82edc 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -322,7 +322,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { static final int RECENT_APPS_BEHAVIOR_SHOW_OR_DISMISS = 0; static final int RECENT_APPS_BEHAVIOR_EXIT_TOUCH_MODE_AND_SHOW = 1; - static final int RECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH = 2; + static final int RECENT_APPS_BEHAVIOR_DISMISS = 2; + static final int RECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH = 3; RecentApplicationsDialog mRecentAppsDialog; int mRecentAppsDialogHeldModifiers; @@ -809,6 +810,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mRecentAppsDialog.isShowing()) { switch (behavior) { case RECENT_APPS_BEHAVIOR_SHOW_OR_DISMISS: + case RECENT_APPS_BEHAVIOR_DISMISS: mRecentAppsDialog.dismiss(); break; case RECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH: @@ -830,6 +832,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } mRecentAppsDialog.show(); break; + case RECENT_APPS_BEHAVIOR_DISMISS: case RECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH: default: break; @@ -1849,7 +1852,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } return 0; } else if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) { - if (down && repeatCount == 0) { + if (down && repeatCount == 0 && !keyguardOn) { showOrHideRecentAppsDialog(RECENT_APPS_BEHAVIOR_SHOW_OR_DISMISS); } return -1; @@ -1886,27 +1889,29 @@ public class PhoneWindowManager implements WindowManagerPolicy { } // Invoke shortcuts using Meta. - if (down && repeatCount == 0 + if (down && repeatCount == 0 && !keyguardOn && (metaState & KeyEvent.META_META_ON) != 0) { final KeyCharacterMap kcm = event.getKeyCharacterMap(); - Intent shortcutIntent = mShortcutManager.getIntent(kcm, keyCode, - metaState & ~(KeyEvent.META_META_ON - | KeyEvent.META_META_LEFT_ON | KeyEvent.META_META_RIGHT_ON)); - if (shortcutIntent != null) { - shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - try { - mContext.startActivity(shortcutIntent); - } catch (ActivityNotFoundException ex) { - Slog.w(TAG, "Dropping shortcut key combination because " - + "the activity to which it is registered was not found: " - + "META+" + KeyEvent.keyCodeToString(keyCode), ex); + if (kcm.isPrintingKey(keyCode)) { + Intent shortcutIntent = mShortcutManager.getIntent(kcm, keyCode, + metaState & ~(KeyEvent.META_META_ON + | KeyEvent.META_META_LEFT_ON | KeyEvent.META_META_RIGHT_ON)); + if (shortcutIntent != null) { + shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + try { + mContext.startActivity(shortcutIntent); + } catch (ActivityNotFoundException ex) { + Slog.w(TAG, "Dropping shortcut key combination because " + + "the activity to which it is registered was not found: " + + "META+" + KeyEvent.keyCodeToString(keyCode), ex); + } + return -1; } - return -1; } } // Handle application launch keys. - if (down && repeatCount == 0) { + if (down && repeatCount == 0 && !keyguardOn) { String category = sApplicationLaunchKeyCategories.get(keyCode); if (category != null) { Intent intent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, category); @@ -1924,7 +1929,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { // Display task switcher for ALT-TAB or Meta-TAB. if (down && repeatCount == 0 && keyCode == KeyEvent.KEYCODE_TAB) { - if (mRecentAppsDialogHeldModifiers == 0) { + if (mRecentAppsDialogHeldModifiers == 0 && !keyguardOn) { final int shiftlessModifiers = event.getModifiers() & ~KeyEvent.META_SHIFT_MASK; if (KeyEvent.metaStateHasModifiers(shiftlessModifiers, KeyEvent.META_ALT_ON) || KeyEvent.metaStateHasModifiers( @@ -1937,7 +1942,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } else if (!down && mRecentAppsDialogHeldModifiers != 0 && (metaState & mRecentAppsDialogHeldModifiers) == 0) { mRecentAppsDialogHeldModifiers = 0; - showOrHideRecentAppsDialog(RECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH); + showOrHideRecentAppsDialog(keyguardOn ? RECENT_APPS_BEHAVIOR_DISMISS : + RECENT_APPS_BEHAVIOR_DISMISS_AND_SWITCH); } // Let the application handle the key. |