summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Spurlock <jspurlock@google.com> 2012-10-03 16:54:23 -0400
committer John Spurlock <jspurlock@google.com> 2012-10-03 16:54:23 -0400
commit542a51cc791613319386f53f51ea3676e6c9208e (patch)
tree663a66cedd57465f06db7f625c5186c6811a3ce3
parentc2a28163165fdd8e2a3173a577ba07cc88ec61fd (diff)
Invoking the global action dialog stops dreaming.
Otherwise global actions appear underneath interactive dreams, like all system dialogs. Bug:7257688 Change-Id: Idb7ae8079fa0fc335c598c72f36bdad69248b1b1
-rw-r--r--policy/src/com/android/internal/policy/impl/GlobalActions.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java
index e1c7e32bd1f9..19ed45e0aaf5 100644
--- a/policy/src/com/android/internal/policy/impl/GlobalActions.java
+++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java
@@ -39,12 +39,15 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.RemoteException;
+import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.Vibrator;
import android.provider.Settings;
+import android.service.dreams.DreamService;
+import android.service.dreams.IDreamManager;
import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
@@ -83,6 +86,7 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
private final Context mContext;
private final WindowManagerFuncs mWindowManagerFuncs;
private final AudioManager mAudioManager;
+ private final IDreamManager mDreamManager;
private ArrayList<Action> mItems;
private GlobalActionsDialog mDialog;
@@ -106,6 +110,8 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
mContext = context;
mWindowManagerFuncs = windowManagerFuncs;
mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ mDreamManager = IDreamManager.Stub.asInterface(
+ ServiceManager.getService(DreamService.DREAM_SERVICE));
// receive broadcasts
IntentFilter filter = new IntentFilter();
@@ -145,7 +151,20 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
}
}
+ private void awakenIfNecessary() {
+ if (mDreamManager != null) {
+ try {
+ if (mDreamManager.isDreaming()) {
+ mDreamManager.awaken();
+ }
+ } catch (RemoteException e) {
+ // we tried
+ }
+ }
+ }
+
private void handleShow() {
+ awakenIfNecessary();
mDialog = createDialog();
prepareDialog();