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.
This commit is contained in:
Joe Onorato
2009-07-17 13:09:27 -04:00
parent 32a9cd8f69
commit 78866b1e07
3 changed files with 4 additions and 10 deletions

View File

@@ -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);
}
}

View File

@@ -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;
}

View File

@@ -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);
}