summaryrefslogtreecommitdiffstats
path: root/services/java
diff options
context:
space:
mode:
authorSascha Prueter <saschap@google.com>2012-12-04 15:12:43 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-12-04 15:13:17 -0800
commit652d8fc944c011eb15202f678588723aa9f38a84 (patch)
tree3f8c2a8abed119362d0c8c05225d8de6e0445602 /services/java
parent4eab3d88a21b07d029a1b22271d7d1537a245266 (diff)
parent526fa0e6d5cfe6ca3f390982c169b43fcb7d6f78 (diff)
downloadframeworks_base-652d8fc944c011eb15202f678588723aa9f38a84.zip
frameworks_base-652d8fc944c011eb15202f678588723aa9f38a84.tar.gz
frameworks_base-652d8fc944c011eb15202f678588723aa9f38a84.tar.bz2
Merge "PRIORITY_MIN notifications should be truly ambient." into jb-mr1.1-dev
Diffstat (limited to 'services/java')
-rwxr-xr-xservices/java/com/android/server/NotificationManagerService.java15
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 e2be577..37d7ce7 100755
--- 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 {