summaryrefslogtreecommitdiffstats
path: root/policy
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-03-29 15:11:34 -0700
committerJeff Brown <jeffbrown@google.com>2011-03-29 16:16:55 -0700
commitda3d5a91b6b311ed77f2707d4456c1f18b84d73b (patch)
tree20ff48478df49e47372c89431ff6dc7e0671059d /policy
parenta2cc28d732577dd48a02de637c635e9764400248 (diff)
downloadframeworks_base-da3d5a91b6b311ed77f2707d4456c1f18b84d73b.zip
frameworks_base-da3d5a91b6b311ed77f2707d4456c1f18b84d73b.tar.gz
frameworks_base-da3d5a91b6b311ed77f2707d4456c1f18b84d73b.tar.bz2
Support chorded fallback keys.
Also be more careful about canceling fallback keys during focus transitions, when the application handles the key, or when the policy decides to do something different. Fixed a crash due to JNI CallObjectMethod returning an undefined value (not null) when an exception is thrown. Fixed a crash due to the policy trying to create a Dialog for recent apps on the dispatcher thread. It should happen on the policy's Looper instead. Bug: 4187302 Change-Id: I659a3fd1bd2325ed36d965f9beb75dacb89790c9
Diffstat (limited to 'policy')
-rwxr-xr-xpolicy/src/com/android/internal/policy/impl/PhoneWindowManager.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 8e18f2a..4fa5bcb 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -646,12 +646,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
* Create (if necessary) and launch the recent apps dialog
*/
void showRecentAppsDialog() {
- if (mRecentAppsDialog == null) {
- mRecentAppsDialog = new RecentApplicationsDialog(mContext);
- }
- mRecentAppsDialog.show();
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ if (mRecentAppsDialog == null) {
+ mRecentAppsDialog = new RecentApplicationsDialog(mContext);
+ }
+ mRecentAppsDialog.show();
+ }
+ });
}
-
+
/** {@inheritDoc} */
public void init(Context context, IWindowManager windowManager,
LocalPowerManager powerManager) {
@@ -1386,7 +1391,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
return false;
} else if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) {
- if (!down) {
+ if (down && repeatCount == 0) {
showRecentAppsDialog();
}
return true;