[NMS] Call isServiceTokenValidLocked with lock.
Method isServiceTokenValidLocked should be called with mNotificationLock held, otherwise there will be race condition. Bug: 236512598 Test: Manual Change-Id: I7e24b5afe3d0a5233debf9da45200c2f4e1f570f
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user