diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index f836a6c4af7af..b7fc38d8c8670 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -9404,10 +9404,16 @@ public class NotificationManagerService extends SystemService { * given NAS is bound in. */ private boolean isInteractionVisibleToListener(ManagedServiceInfo info, int userId) { - boolean isAssistantService = mAssistants.isServiceTokenValidLocked(info.service); + boolean isAssistantService = isServiceTokenValid(info.service); return !isAssistantService || info.isSameUser(userId); } + private boolean isServiceTokenValid(IInterface service) { + synchronized (mNotificationLock) { + return mAssistants.isServiceTokenValidLocked(service); + } + } + private boolean isPackageSuspendedForUser(String pkg, int uid) { final long identity = Binder.clearCallingIdentity(); int userId = UserHandle.getUserId(uid); @@ -10652,7 +10658,7 @@ public class NotificationManagerService extends SystemService { BackgroundThread.getHandler().post(() -> { if (info.isSystem || hasCompanionDevice(info) - || mAssistants.isServiceTokenValidLocked(info.service)) { + || isServiceTokenValid(info.service)) { notifyNotificationChannelChanged( info, pkg, user, channel, modificationType); }