Fix NPE in AmbientContextManagerService.

Bug: 266371615
Test: None
Change-Id: I3d9a6628f98427536aa14ed37e09b9823b928aae
This commit is contained in:
Charlie Wang
2023-01-25 10:28:32 -08:00
parent bf22f1aa0c
commit ae2a24196f

View File

@@ -593,16 +593,19 @@ public class AmbientContextManagerService extends
Manifest.permission.ACCESS_AMBIENT_CONTEXT_EVENT, TAG);
assertCalledByPackageOwner(callingPackage);
for (ClientRequest cr : mExistingClientRequests) {
if (cr.getPackageName().equals(callingPackage)) {
AmbientContextManagerPerUserService service =
getAmbientContextManagerPerUserServiceForEventTypes(
UserHandle.getCallingUserId(), cr.getRequest().getEventTypes());
if (service != null) {
service.onUnregisterObserver(callingPackage);
} else {
Slog.w(TAG, "onUnregisterObserver unavailable user_id: "
+ UserHandle.getCallingUserId());
synchronized (mLock) {
for (ClientRequest cr : mExistingClientRequests) {
if (cr.getPackageName().equals(callingPackage)) {
AmbientContextManagerPerUserService service =
getAmbientContextManagerPerUserServiceForEventTypes(
UserHandle.getCallingUserId(),
cr.getRequest().getEventTypes());
if (service != null) {
service.onUnregisterObserver(callingPackage);
} else {
Slog.w(TAG, "onUnregisterObserver unavailable user_id: "
+ UserHandle.getCallingUserId());
}
}
}
}