summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/pm
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2015-06-19 22:08:09 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-19 22:08:13 +0000
commitb94761d0a48522b23c54f786445658bb58258da4 (patch)
treec9ce8934b3ebc20fdef46834c697f60376e87f72 /core/java/android/content/pm
parenta36de70ad4c652fd6582630a15a941a7b85cc70b (diff)
parent37a40c24deb02bca3868a8085069afae112f22e4 (diff)
downloadframeworks_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.java12
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