summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-03-23 18:50:07 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-03-23 18:50:07 +0000
commitc03e30cfe36aea9578bf73c3b23739bb81bfbbf7 (patch)
treea5c55bd7d3941e94dbd5faf300d85af9f5aeea2e
parentef7670037efc10ce1ec190a90e1a9db00d6de4d4 (diff)
parent95b83c1a6eab1eca6c4324950d83a9980add3c19 (diff)
Merge "Ensure broadcasts are sent as system" into rvc-dev am: 98bc8e9c71 am: 93c78efb15 am: d88abe031a am: 95b83c1a6e
Change-Id: I0ef9091e3bdac2470d89cae982d38a37de49ad81
-rwxr-xr-xservices/core/java/com/android/server/notification/NotificationManagerService.java42
1 files changed, 26 insertions, 16 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index e2ff0ad5c0c1..f65f187eddc5 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -27,6 +27,8 @@ import static android.app.Notification.FLAG_ONLY_ALERT_ONCE;
import static android.app.NotificationChannel.CONVERSATION_CHANNEL_ID_FORMAT;
import static android.app.NotificationManager.ACTION_APP_BLOCK_STATE_CHANGED;
import static android.app.NotificationManager.ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED;
+import static android.app.NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED;
+import static android.app.NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL;
import static android.app.NotificationManager.ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED;
import static android.app.NotificationManager.ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED;
import static android.app.NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED;
@@ -241,6 +243,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.CollectionUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.FunctionalUtils;
import com.android.internal.util.Preconditions;
import com.android.internal.util.XmlUtils;
import com.android.internal.util.function.TriPredicate;
@@ -1911,30 +1914,37 @@ public class NotificationManagerService extends SystemService {
@Override
void onZenModeChanged() {
- sendRegisteredOnlyBroadcast(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED);
- getContext().sendBroadcastAsUser(
- new Intent(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL)
- .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT),
- UserHandle.ALL, android.Manifest.permission.MANAGE_NOTIFICATIONS);
- synchronized (mNotificationLock) {
- updateInterruptionFilterLocked();
- }
- mRankingHandler.requestSort();
+ Binder.withCleanCallingIdentity(() -> {
+ sendRegisteredOnlyBroadcast(ACTION_INTERRUPTION_FILTER_CHANGED);
+ getContext().sendBroadcastAsUser(
+ new Intent(ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL)
+ .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT),
+ UserHandle.ALL, permission.MANAGE_NOTIFICATIONS);
+ synchronized (mNotificationLock) {
+ updateInterruptionFilterLocked();
+ }
+ mRankingHandler.requestSort();
+ });
}
@Override
void onPolicyChanged() {
- sendRegisteredOnlyBroadcast(NotificationManager.ACTION_NOTIFICATION_POLICY_CHANGED);
- mRankingHandler.requestSort();
+ Binder.withCleanCallingIdentity(() -> {
+ sendRegisteredOnlyBroadcast(
+ NotificationManager.ACTION_NOTIFICATION_POLICY_CHANGED);
+ mRankingHandler.requestSort();
+ });
}
@Override
void onAutomaticRuleStatusChanged(int userId, String pkg, String id, int status) {
- Intent intent = new Intent(ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED);
- intent.setPackage(pkg);
- intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, id);
- intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_STATUS, status);
- getContext().sendBroadcastAsUser(intent, UserHandle.of(userId));
+ Binder.withCleanCallingIdentity(() -> {
+ Intent intent = new Intent(ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED);
+ intent.setPackage(pkg);
+ intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, id);
+ intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_STATUS, status);
+ getContext().sendBroadcastAsUser(intent, UserHandle.of(userId));
+ });
}
});
mPreferencesHelper = new PreferencesHelper(getContext(),