diff options
| author | 2017-09-14 19:53:13 +0000 | |
|---|---|---|
| committer | 2017-09-14 19:53:13 +0000 | |
| commit | 20a5244345ea56374c45ae3eb2a7c86c507ea613 (patch) | |
| tree | ec6060148be135ca1db21701e2fa4348b138d84b | |
| parent | 618ea49ccfc36c60cb640e695e0b6ebc74dd368b (diff) | |
| parent | 9c292e33e3655f80cdce1f87829843e94746cde0 (diff) | |
Merge "Merge "Clear calling identity" into oc-mr1-dev am: bc0c5882c6" into oc-mr1-dev-plus-aosp
| -rw-r--r-- | services/core/java/com/android/server/notification/NotificationManagerService.java | 82 |
1 files changed, 49 insertions, 33 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 79a8dd87ad48..377bbccf45b5 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -2749,17 +2749,22 @@ public class NotificationManagerService extends SystemService { public void setNotificationPolicyAccessGranted(String pkg, boolean granted) throws RemoteException { checkCallerIsSystemOrShell(); - if (!mActivityManager.isLowRamDevice()) { - mConditionProviders.setPackageOrComponentEnabled( - pkg, getCallingUserHandle().getIdentifier(), true, granted); + final long identity = Binder.clearCallingIdentity(); + try { + if (!mActivityManager.isLowRamDevice()) { + mConditionProviders.setPackageOrComponentEnabled( + pkg, getCallingUserHandle().getIdentifier(), true, granted); - getContext().sendBroadcastAsUser(new Intent( - NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED) - .setPackage(pkg) - .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY), - getCallingUserHandle(), null); + getContext().sendBroadcastAsUser(new Intent( + NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED) + .setPackage(pkg) + .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY), + getCallingUserHandle(), null); - savePolicyFile(); + savePolicyFile(); + } + } finally { + Binder.restoreCallingIdentity(identity); } } @@ -2841,19 +2846,25 @@ public class NotificationManagerService extends SystemService { boolean granted) throws RemoteException { Preconditions.checkNotNull(listener); checkCallerIsSystemOrShell(); - if (!mActivityManager.isLowRamDevice()) { - mConditionProviders.setPackageOrComponentEnabled(listener.flattenToString(), - userId, false, granted); - mListeners.setPackageOrComponentEnabled(listener.flattenToString(), - userId, true, granted); - - getContext().sendBroadcastAsUser(new Intent( - NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED) - .setPackage(listener.getPackageName()) - .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY), - getCallingUserHandle(), null); + final long identity = Binder.clearCallingIdentity(); + try { + if (!mActivityManager.isLowRamDevice()) { + mConditionProviders.setPackageOrComponentEnabled(listener.flattenToString(), + userId, false, granted); + mListeners.setPackageOrComponentEnabled(listener.flattenToString(), + userId, true, granted); - savePolicyFile(); + getContext().sendBroadcastAsUser(new Intent( + NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED) + + .setPackage(listener.getPackageName()) + .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY), + getCallingUserHandle(), null); + + savePolicyFile(); + } + } finally { + Binder.restoreCallingIdentity(identity); } } @@ -2862,19 +2873,24 @@ public class NotificationManagerService extends SystemService { int userId, boolean granted) throws RemoteException { Preconditions.checkNotNull(assistant); checkCallerIsSystemOrShell(); - if (!mActivityManager.isLowRamDevice()) { - mConditionProviders.setPackageOrComponentEnabled(assistant.flattenToString(), - userId, false, granted); - mAssistants.setPackageOrComponentEnabled(assistant.flattenToString(), - userId, true, granted); - - getContext().sendBroadcastAsUser(new Intent( - NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED) - .setPackage(assistant.getPackageName()) - .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY), - getCallingUserHandle(), null); + final long identity = Binder.clearCallingIdentity(); + try { + if (!mActivityManager.isLowRamDevice()) { + mConditionProviders.setPackageOrComponentEnabled(assistant.flattenToString(), + userId, false, granted); + mAssistants.setPackageOrComponentEnabled(assistant.flattenToString(), + userId, true, granted); + + getContext().sendBroadcastAsUser(new Intent( + NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED) + .setPackage(assistant.getPackageName()) + .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY), + getCallingUserHandle(), null); - savePolicyFile(); + savePolicyFile(); + } + } finally { + Binder.restoreCallingIdentity(identity); } } |