diff options
| author | 2012-10-03 16:54:23 -0400 | |
|---|---|---|
| committer | 2012-10-03 16:54:23 -0400 | |
| commit | 542a51cc791613319386f53f51ea3676e6c9208e (patch) | |
| tree | 663a66cedd57465f06db7f625c5186c6811a3ce3 | |
| parent | c2a28163165fdd8e2a3173a577ba07cc88ec61fd (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.java | 19 |
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(); |