From 5355e8593a6962f2990a88cd0101ab53a852a1a2 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Tue, 7 Feb 2017 14:54:13 -0500 Subject: [PATCH] Don't let apps permanently delete channels. Test: manual Change-Id: Ia2582e3b4213f0b77579af2ff94f79b08e5d1a91 --- core/java/android/app/INotificationManager.aidl | 2 +- .../com/android/server/am/ActivityManagerService.java | 2 +- .../server/notification/NotificationManagerService.java | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl index 58cd310100019..cc6f6e12710b0 100644 --- a/core/java/android/app/INotificationManager.aidl +++ b/core/java/android/app/INotificationManager.aidl @@ -40,7 +40,7 @@ interface INotificationManager { void cancelAllNotifications(String pkg, int userId); - void clearData(String pkg, int uid); + void clearData(String pkg, int uid, boolean fromApp); void enqueueToast(String pkg, ITransientNotification callback, int duration); void cancelToast(String pkg, ITransientNotification callback); void enqueueNotificationWithTag(String pkg, String opPkg, String tag, int id, diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index d75048d25eba5..2e680f3c6a534 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -5570,7 +5570,7 @@ public class ActivityManagerService extends IActivityManager.Stub // Reset notification settings. INotificationManager inm = NotificationManager.getService(); - inm.clearData(packageName, pkgUidF); + inm.clearData(packageName, pkgUidF, uid == pkgUidF); } catch (RemoteException e) { } } finally { diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 32c98a1c2545b..cc3fc003c9187 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -1698,7 +1698,7 @@ public class NotificationManagerService extends SystemService { @Override - public void clearData(String packageName, int uid) throws RemoteException { + public void clearData(String packageName, int uid, boolean fromApp) throws RemoteException { checkCallerIsSystem(); // Cancel posted notifications @@ -1713,8 +1713,10 @@ public class NotificationManagerService extends SystemService { mConditionProviders.onPackagesChanged(true, new String[] {packageName}); // Reset notification preferences - mRankingHelper.onPackagesChanged(true, UserHandle.getCallingUserId(), - new String[] {packageName}, new int[] {uid}); + if (!fromApp) { + mRankingHelper.onPackagesChanged(true, UserHandle.getCallingUserId(), + new String[]{packageName}, new int[]{uid}); + } savePolicyFile(); }