summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/NotificationManagerService.java
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@android.com>2013-04-18 10:51:35 -0400
committerDaniel Sandler <dsandler@android.com>2013-04-18 11:31:52 -0400
commit32e698b12fc85a25463d536fb6f231f14a07b448 (patch)
tree9b60ea4989314baeab6a49c785bb4fa998fd7c74 /services/java/com/android/server/NotificationManagerService.java
parent176c245cefaf08f33043e9b67cb787efeb6ad662 (diff)
Once again, cancel all when notifications canceled for pkg.
Right now this only works if you go through the front door (using setNotificationsEnabledForPackage()); if you set the AppOps for a package otherwise the existing notifications will not be cleared (but new ones will be blocked). Since there's no UI for modifying AppOps today this shouldn't be a problem. Bug: 8489214 Change-Id: I84f8c76a0d03959127e9076ab2b7d37dbdaebb17
Diffstat (limited to 'services/java/com/android/server/NotificationManagerService.java')
-rw-r--r--services/java/com/android/server/NotificationManagerService.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
index 3bebf91a922c..9a93f637e072 100644
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/java/com/android/server/NotificationManagerService.java
@@ -450,11 +450,16 @@ public class NotificationManagerService extends INotificationManager.Stub
public void setNotificationsEnabledForPackage(String pkg, int uid, boolean enabled) {
checkCallerIsSystem();
- if (true||DBG) {
- Slog.v(TAG, (enabled?"en":"dis") + "abling notifications for " + pkg);
- }
+
+ Slog.v(TAG, (enabled?"en":"dis") + "abling notifications for " + pkg);
+
mAppOps.setMode(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg,
enabled ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);
+
+ // Now, cancel any outstanding notifications that are part of a just-disabled app
+ if (ENABLE_BLOCKED_NOTIFICATIONS && !enabled) {
+ cancelAllNotificationsInt(pkg, 0, 0, true, UserHandle.getUserId(uid));
+ }
}