summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@android.com>2012-06-01 19:01:53 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-06-01 19:01:53 -0700
commit90c31f8b769b3e2f24441754c403cc07ca9e936d (patch)
tree7471e6a6cfe75f2c44fe5fff84812bcfc48a8ac9 /services
parent1f199f1d04e6ab8929a9cdcf8d5fc5583e735879 (diff)
parent01827ce9f2d5f4441c7f7b0211d2739824320daf (diff)
downloadframeworks_base-90c31f8b769b3e2f24441754c403cc07ca9e936d.zip
frameworks_base-90c31f8b769b3e2f24441754c403cc07ca9e936d.tar.gz
frameworks_base-90c31f8b769b3e2f24441754c403cc07ca9e936d.tar.bz2
am 01827ce9: Merge "Be more discriminating when canceling notifications on changing packages." into jb-dev
* commit '01827ce9f2d5f4441c7f7b0211d2739824320daf': Be more discriminating when canceling notifications on changing packages.
Diffstat (limited to 'services')
-rwxr-xr-xservices/java/com/android/server/NotificationManagerService.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
index 52ba665..f6d3b608 100755
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/java/com/android/server/NotificationManagerService.java
@@ -494,10 +494,11 @@ public class NotificationManagerService extends INotificationManager.Stub
String action = intent.getAction();
boolean queryRestart = false;
+ boolean packageChanged = false;
if (action.equals(Intent.ACTION_PACKAGE_REMOVED)
|| action.equals(Intent.ACTION_PACKAGE_RESTARTED)
- || action.equals(Intent.ACTION_PACKAGE_CHANGED)
+ || (packageChanged=action.equals(Intent.ACTION_PACKAGE_CHANGED))
|| (queryRestart=action.equals(Intent.ACTION_QUERY_PACKAGE_RESTART))
|| action.equals(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE)) {
String pkgList[] = null;
@@ -514,6 +515,15 @@ public class NotificationManagerService extends INotificationManager.Stub
if (pkgName == null) {
return;
}
+ if (packageChanged) {
+ // We cancel notifications for packages which have just been disabled
+ final int enabled = mContext.getPackageManager()
+ .getApplicationEnabledSetting(pkgName);
+ if (enabled == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ || enabled == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) {
+ return;
+ }
+ }
pkgList = new String[]{pkgName};
}
if (pkgList != null && (pkgList.length > 0)) {