OSDN Git Service

Make the SystemUI stop the screen saver when a full-screen notification is posted.
authorDaniel Sandler <dsandler@android.com>
Tue, 4 Sep 2012 17:27:09 +0000 (13:27 -0400)
committerDaniel Sandler <dsandler@android.com>
Wed, 5 Sep 2012 12:41:07 +0000 (08:41 -0400)
This keeps all the fullScreenIntent logic (including
multiuser implications) in one place.

Change-Id: I4ef284daf90464f105780ade1d971e9e081fbbb5

packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
services/java/com/android/server/NotificationManagerService.java

index 31bc8a0..41541d6 100644 (file)
@@ -746,6 +746,10 @@ public class PhoneStatusBar extends BaseStatusBar {
          */
 
         if (notification.notification.fullScreenIntent != null) {
+            // Stop screensaver if the notification has a full-screen intent.
+            // (like an incoming phone call)
+            awakenDreams();
+
             // not immersive & a full-screen alert should be shown
             Slog.d(TAG, "Notification has fullScreenIntent; sending fullScreenIntent");
             try {
index e7b839f..3caba1f 100755 (executable)
@@ -151,8 +151,6 @@ public class NotificationManagerService extends INotificationManager.Stub
     private AtomicFile mPolicyFile;
     private HashSet<String> mBlockedPackages = new HashSet<String>();
 
-    private IDreamManager mSandman;
-
     private static final int DB_VERSION = 1;
 
     private static final String TAG_BODY = "notification-policy";
@@ -658,8 +656,6 @@ public class NotificationManagerService extends INotificationManager.Stub
     void systemReady() {
         mAudioService = IAudioService.Stub.asInterface(
                 ServiceManager.getService(Context.AUDIO_SERVICE));
-        mSandman = IDreamManager.Stub.asInterface(
-                ServiceManager.getService("dreams"));
 
         // no beeping until we're basically done booting
         mSystemReady = true;
@@ -995,16 +991,6 @@ public class NotificationManagerService extends INotificationManager.Stub
                         | Notification.FLAG_NO_CLEAR;
             }
 
-            // Stop screensaver if the notification has a full-screen intent.
-            // (like an incoming phone call)
-            if (notification.fullScreenIntent != null && mSandman != null) {
-                try {
-                    mSandman.awaken();
-                } catch (RemoteException e) {
-                    // noop
-                }
-            }
-
             if (notification.icon != 0) {
                 StatusBarNotification n = new StatusBarNotification(pkg, id, tag,
                         r.uid, r.initialPid, score, notification);