Loading services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java +18 −11 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.ConcurrentHashMap; import java.util.HashSet; import java.util.List; import java.util.Objects; Loading Loading @@ -128,7 +129,7 @@ public class AmbientContextManagerService extends PACKAGE_UPDATE_POLICY_REFRESH_EAGER | /*To avoid high latency*/ PACKAGE_RESTART_POLICY_REFRESH_EAGER); mContext = context; mExistingClientRequests = new ArraySet<>(); mExistingClientRequests = ConcurrentHashMap.newKeySet(); } @Override Loading Loading @@ -157,6 +158,7 @@ public class AmbientContextManagerService extends String callingPackage, IAmbientContextObserver observer) { Slog.d(TAG, "New client added: " + callingPackage); synchronized (mExistingClientRequests) { // Remove any existing ClientRequest for this user and package. mExistingClientRequests.removeAll( findExistingRequests(userId, callingPackage)); Loading @@ -165,11 +167,14 @@ public class AmbientContextManagerService extends mExistingClientRequests.add( new ClientRequest(userId, request, callingPackage, observer)); } } void clientRemoved(int userId, String packageName) { Slog.d(TAG, "Remove client: " + packageName); synchronized (mExistingClientRequests) { mExistingClientRequests.removeAll(findExistingRequests(userId, packageName)); } } private Set<ClientRequest> findExistingRequests(int userId, String packageName) { Set<ClientRequest> existingRequests = new ArraySet<>(); Loading @@ -183,11 +188,13 @@ public class AmbientContextManagerService extends @Nullable IAmbientContextObserver getClientRequestObserver(int userId, String packageName) { synchronized (mExistingClientRequests) { for (ClientRequest clientRequest : mExistingClientRequests) { if (clientRequest.hasUserIdAndPackageName(userId, packageName)) { return clientRequest.getObserver(); } } } return null; } Loading Loading
services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java +18 −11 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.ConcurrentHashMap; import java.util.HashSet; import java.util.List; import java.util.Objects; Loading Loading @@ -128,7 +129,7 @@ public class AmbientContextManagerService extends PACKAGE_UPDATE_POLICY_REFRESH_EAGER | /*To avoid high latency*/ PACKAGE_RESTART_POLICY_REFRESH_EAGER); mContext = context; mExistingClientRequests = new ArraySet<>(); mExistingClientRequests = ConcurrentHashMap.newKeySet(); } @Override Loading Loading @@ -157,6 +158,7 @@ public class AmbientContextManagerService extends String callingPackage, IAmbientContextObserver observer) { Slog.d(TAG, "New client added: " + callingPackage); synchronized (mExistingClientRequests) { // Remove any existing ClientRequest for this user and package. mExistingClientRequests.removeAll( findExistingRequests(userId, callingPackage)); Loading @@ -165,11 +167,14 @@ public class AmbientContextManagerService extends mExistingClientRequests.add( new ClientRequest(userId, request, callingPackage, observer)); } } void clientRemoved(int userId, String packageName) { Slog.d(TAG, "Remove client: " + packageName); synchronized (mExistingClientRequests) { mExistingClientRequests.removeAll(findExistingRequests(userId, packageName)); } } private Set<ClientRequest> findExistingRequests(int userId, String packageName) { Set<ClientRequest> existingRequests = new ArraySet<>(); Loading @@ -183,11 +188,13 @@ public class AmbientContextManagerService extends @Nullable IAmbientContextObserver getClientRequestObserver(int userId, String packageName) { synchronized (mExistingClientRequests) { for (ClientRequest clientRequest : mExistingClientRequests) { if (clientRequest.hasUserIdAndPackageName(userId, packageName)) { return clientRequest.getObserver(); } } } return null; } Loading