diff options
| author | 2017-09-15 07:38:30 +0000 | |
|---|---|---|
| committer | 2017-09-15 07:38:30 +0000 | |
| commit | 5a79f3a59d57c9104eb207b4f0ac2c65dbc6907f (patch) | |
| tree | b4f24b881045b578cf0eeec77d388a3febaf7923 | |
| parent | b6fc50bc39198ed6ea94a6ffd8a34e4c9435cad2 (diff) | |
| parent | 20a5244345ea56374c45ae3eb2a7c86c507ea613 (diff) | |
Merge "Merge "Clear calling identity" into oc-mr1-dev am: bc0c5882c6" into oc-mr1-dev-plus-aosp
am: 20a5244345
Change-Id: Ibfd85e6b9d840618f0d9f03d01abe124dd4f746d
| -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 53fde762bdfa..0cca63b810e4 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -2772,17 +2772,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); } } @@ -2864,19 +2869,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); } } @@ -2885,19 +2896,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); } } |