diff options
| author | Amith Yamasani <yamasani@google.com> | 2015-06-19 22:08:09 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-19 22:08:13 +0000 |
| commit | b94761d0a48522b23c54f786445658bb58258da4 (patch) | |
| tree | c9ce8934b3ebc20fdef46834c697f60376e87f72 /core/java/android/content/pm | |
| parent | a36de70ad4c652fd6582630a15a941a7b85cc70b (diff) | |
| parent | 37a40c24deb02bca3868a8085069afae112f22e4 (diff) | |
| download | frameworks_base-b94761d0a48522b23c54f786445658bb58258da4.zip frameworks_base-b94761d0a48522b23c54f786445658bb58258da4.tar.gz frameworks_base-b94761d0a48522b23c54f786445658bb58258da4.tar.bz2 | |
Merge "App Standby : Association between content providers and their sync adapter" into mnc-dev
Diffstat (limited to 'core/java/android/content/pm')
| -rw-r--r-- | core/java/android/content/pm/RegisteredServicesCache.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/core/java/android/content/pm/RegisteredServicesCache.java b/core/java/android/content/pm/RegisteredServicesCache.java index 0bd2a3b..b293e2a 100644 --- a/core/java/android/content/pm/RegisteredServicesCache.java +++ b/core/java/android/content/pm/RegisteredServicesCache.java @@ -84,7 +84,7 @@ public abstract class RegisteredServicesCache<V> { private final String mAttributesName; private final XmlSerializerAndParser<V> mSerializerAndParser; - private final Object mServicesLock = new Object(); + protected final Object mServicesLock = new Object(); @GuardedBy("mServicesLock") private final SparseArray<UserServices<V>> mUserServices = new SparseArray<UserServices<V>>(2); @@ -232,6 +232,7 @@ public abstract class RegisteredServicesCache<V> { synchronized (mServicesLock) { final UserServices<V> user = findOrCreateUserLocked(userId); user.services = null; + onServicesChangedLocked(userId); } } @@ -489,11 +490,16 @@ public abstract class RegisteredServicesCache<V> { } } if (changed) { + onServicesChangedLocked(userId); writePersistentServicesLocked(user, userId); } } } + protected void onServicesChangedLocked(int userId) { + // Feel free to override + } + /** * Returns true if the list of changed uids is null (wildcard) or the specified uid * is contained in the list of changed uids. @@ -687,7 +693,9 @@ public abstract class RegisteredServicesCache<V> { @VisibleForTesting protected void onUserRemoved(int userId) { - mUserServices.remove(userId); + synchronized (mServicesLock) { + mUserServices.remove(userId); + } } @VisibleForTesting |
