diff options
author | Sascha Prueter <saschap@google.com> | 2012-12-04 16:35:12 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-12-04 16:35:12 -0800 |
commit | 98c958097b0dd458ffd3e12f9692c0c9522d932e (patch) | |
tree | 10e82d1c4cc79660cd3ec19a83d7da2a3341b1a0 /services/java/com/android/server/NotificationManagerService.java | |
parent | 32ec47c1b15b5a9c8f8d9e9f324bb6fe353119fe (diff) | |
parent | 8f7eddbef33f97e7d4439707ac0039be4c81ef0e (diff) |
am 8f7eddbe: am 652d8fc9: Merge "PRIORITY_MIN notifications should be truly ambient." into jb-mr1.1-dev
* commit '8f7eddbef33f97e7d4439707ac0039be4c81ef0e':
PRIORITY_MIN notifications should be truly ambient.
Diffstat (limited to 'services/java/com/android/server/NotificationManagerService.java')
-rw-r--r-- | services/java/com/android/server/NotificationManagerService.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java index e2be577b489f..37d7ce7baac8 100644 --- a/services/java/com/android/server/NotificationManagerService.java +++ b/services/java/com/android/server/NotificationManagerService.java @@ -110,6 +110,11 @@ public class NotificationManagerService extends INotificationManager.Stub private static final int NOTIFICATION_PRIORITY_MULTIPLIER = 10; private static final int SCORE_DISPLAY_THRESHOLD = Notification.PRIORITY_MIN * NOTIFICATION_PRIORITY_MULTIPLIER; + // Notifications with scores below this will not interrupt the user, either via LED or + // sound or vibration + private static final int SCORE_INTERRUPTION_THRESHOLD = + Notification.PRIORITY_LOW * NOTIFICATION_PRIORITY_MULTIPLIER; + private static final boolean ENABLE_BLOCKED_NOTIFICATIONS = true; private static final boolean ENABLE_BLOCKED_TOASTS = true; @@ -991,6 +996,9 @@ public class NotificationManagerService extends INotificationManager.Stub return; } + // Should this notification make noise, vibe, or use the LED? + final boolean canInterrupt = (score >= SCORE_INTERRUPTION_THRESHOLD); + synchronized (mNotificationList) { NotificationRecord r = new NotificationRecord(pkg, tag, id, callingUid, callingPid, userId, @@ -1042,7 +1050,8 @@ public class NotificationManagerService extends INotificationManager.Stub long identity = Binder.clearCallingIdentity(); try { r.statusBarKey = mStatusBar.addNotification(n); - if ((n.notification.flags & Notification.FLAG_SHOW_LIGHTS) != 0) { + if ((n.notification.flags & Notification.FLAG_SHOW_LIGHTS) != 0 + && canInterrupt) { mAttentionLight.pulse(); } } @@ -1073,6 +1082,7 @@ public class NotificationManagerService extends INotificationManager.Stub && (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 )) && (r.userId == UserHandle.USER_ALL || (r.userId == userId && r.userId == currentUser)) + && canInterrupt && mSystemReady) { final AudioManager audioManager = (AudioManager) mContext @@ -1171,7 +1181,8 @@ public class NotificationManagerService extends INotificationManager.Stub } //Slog.i(TAG, "notification.lights=" // + ((old.notification.lights.flags & Notification.FLAG_SHOW_LIGHTS) != 0)); - if ((notification.flags & Notification.FLAG_SHOW_LIGHTS) != 0) { + if ((notification.flags & Notification.FLAG_SHOW_LIGHTS) != 0 + && canInterrupt) { mLights.add(r); updateLightsLocked(); } else { |