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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user