summaryrefslogtreecommitdiffstats
path: root/policy
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-05-16 16:25:21 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-05-16 16:25:21 -0700
commit00ee17718af8a229d0e6a14cd1f47b56a8b14b0f (patch)
tree025f855d01ddb5e1840177439a1feaa978b8677c /policy
parentf3ae4e178c8e5111f24927bbc43a7d73d03c8501 (diff)
parent602ab325ca03b8dd0b3c2d572614c85ce32e309a (diff)
downloadframeworks_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-xpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java42
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.