From 32a9cd8f69e761966a0f05cc455fac7f13f77dd8 Mon Sep 17 00:00:00 2001 From: Karl Rosaen Date: Tue, 14 Jul 2009 14:56:53 -0700 Subject: [PATCH 1/3] Dismiss system windows when search is launched. --- policy/com/android/internal/policy/impl/PhoneWindow.java | 1 + 1 file changed, 1 insertion(+) diff --git a/policy/com/android/internal/policy/impl/PhoneWindow.java b/policy/com/android/internal/policy/impl/PhoneWindow.java index 59c87a5b4076b..d2d1421b248de 100644 --- a/policy/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/com/android/internal/policy/impl/PhoneWindow.java @@ -2510,6 +2510,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (cb == null) { return false; } else { + sendCloseSystemWindows(); return cb.onSearchRequested(); } } From 78866b1e07b1006f6ebf4adbc8e64b558c6040eb Mon Sep 17 00:00:00 2001 From: Joe Onorato Date: Fri, 17 Jul 2009 13:09:27 -0400 Subject: [PATCH 2/3] Close the global actions menu when the screen goes off. Previously, the global actions menu was closed when the keyguard was shown, but when the menu was shown from within the keyguard, it wasn't closed ever again when the screen goes off. That had the result that if your pocket managed to bring up the dialog, the menu would likely never go away on its own, and eventually do something awful like go into airplane mode. --- policy/com/android/internal/policy/impl/GlobalActions.java | 6 ++++-- .../android/internal/policy/impl/KeyguardViewMediator.java | 1 - .../android/internal/policy/impl/PhoneWindowManager.java | 7 ------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/policy/com/android/internal/policy/impl/GlobalActions.java b/policy/com/android/internal/policy/impl/GlobalActions.java index 10ac01c03b135..377ff7828e75b 100644 --- a/policy/com/android/internal/policy/impl/GlobalActions.java +++ b/policy/com/android/internal/policy/impl/GlobalActions.java @@ -80,6 +80,7 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac // receive broadcasts IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + filter.addAction(Intent.ACTION_SCREEN_OFF); context.registerReceiver(mBroadcastReceiver, filter); // get notified of phone state changes @@ -483,9 +484,10 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) { + if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action) + || Intent.ACTION_SCREEN_OFF.equals(action)) { String reason = intent.getStringExtra(PhoneWindowManager.SYSTEM_DIALOG_REASON_KEY); - if (! PhoneWindowManager.SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS.equals(reason)) { + if (!PhoneWindowManager.SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS.equals(reason)) { mHandler.sendEmptyMessage(MESSAGE_DISMISS); } } diff --git a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java index 112d7b2149e8a..043f727126900 100644 --- a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java +++ b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java @@ -857,7 +857,6 @@ public class KeyguardViewMediator implements KeyguardViewCallback, // manager not to honor request for userActivity. mRealPowerManager.enableUserActivity(false); - mCallback.onKeyguardShow(); mKeyguardViewManager.show(); mShowing = true; } diff --git a/policy/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/com/android/internal/policy/impl/PhoneWindowManager.java index e921a80e854b7..0392c7e4a8be7 100644 --- a/policy/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/com/android/internal/policy/impl/PhoneWindowManager.java @@ -1690,13 +1690,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mKeyguardMediator.isInputRestricted(); } - /** - * Callback from {@link KeyguardViewMediator} - */ - public void onKeyguardShow() { - sendCloseSystemWindows(); - } - void sendCloseSystemWindows() { sendCloseSystemWindows(mContext, null); } From 323216beeb6f7f63f28f0dd10666f3c10617a6b7 Mon Sep 17 00:00:00 2001 From: Karl Rosaen Date: Mon, 20 Jul 2009 14:00:29 -0700 Subject: [PATCH 3/3] have "search" as the reason when dismissing system dialogs for search. this way search can't dismiss itself. can't use the constant because it is in policy. would rather leave it this way instead of moving constants for system dialog dismissal to framework. --- policy/com/android/internal/policy/impl/PhoneWindow.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/policy/com/android/internal/policy/impl/PhoneWindow.java b/policy/com/android/internal/policy/impl/PhoneWindow.java index d2d1421b248de..db43a9c8aa74e 100644 --- a/policy/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/com/android/internal/policy/impl/PhoneWindow.java @@ -2510,7 +2510,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (cb == null) { return false; } else { - sendCloseSystemWindows(); + sendCloseSystemWindows("search"); return cb.onSearchRequested(); } }