summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorVictoria Lease <violets@google.com>2012-10-04 16:49:15 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-10-04 16:49:15 -0700
commita9afaccf303da2b57a47ad16cca559e87e649d15 (patch)
tree3cc75043ed503f694069104030f311fc16e7fba7 /services
parentdce8b948320e933e46e4a38c496f56555472495f (diff)
parent83762d22c9bde92d412cf5a263a228d705606721 (diff)
downloadframeworks_base-a9afaccf303da2b57a47ad16cca559e87e649d15.zip
frameworks_base-a9afaccf303da2b57a47ad16cca559e87e649d15.tar.gz
frameworks_base-a9afaccf303da2b57a47ad16cca559e87e649d15.tar.bz2
Merge "multiuser support for LocationBlacklist" into jb-mr1-dev
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/LocationManagerService.java1
-rw-r--r--services/java/com/android/server/location/LocationBlacklist.java38
2 files changed, 27 insertions, 12 deletions
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index 3cea295..12d6bff 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -325,6 +325,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
* @param userId the new active user's UserId
*/
private void switchUser(int userId) {
+ mBlacklist.switchUser(userId);
//Log.d("LocationManagerService", "switchUser(" + mCurrentUserId + " -> " + userId + ")"); // TODO: remove this
synchronized (mLock) {
// TODO: inform previous user's Receivers that they will no longer receive updates
diff --git a/services/java/com/android/server/location/LocationBlacklist.java b/services/java/com/android/server/location/LocationBlacklist.java
index 6ad1a92..2437a37 100644
--- a/services/java/com/android/server/location/LocationBlacklist.java
+++ b/services/java/com/android/server/location/LocationBlacklist.java
@@ -20,6 +20,7 @@ package com.android.server.location;
import android.content.Context;
import android.database.ContentObserver;
import android.os.Handler;
+import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
import android.util.Slog;
@@ -48,6 +49,8 @@ public final class LocationBlacklist extends ContentObserver {
// all fields below synchronized on mLock
private String[] mWhitelist = new String[0];
private String[] mBlacklist = new String[0];
+
+ private int mCurrentUserId = UserHandle.USER_OWNER;
public LocationBlacklist(Context context, Handler handler) {
super(handler);
@@ -56,20 +59,22 @@ public final class LocationBlacklist extends ContentObserver {
public void init() {
mContext.getContentResolver().registerContentObserver(Settings.Secure.getUriFor(
- BLACKLIST_CONFIG_NAME), false, this);
+ BLACKLIST_CONFIG_NAME), false, this, UserHandle.USER_ALL);
// mContext.getContentResolver().registerContentObserver(Settings.Secure.getUriFor(
-// WHITELIST_CONFIG_NAME), false, this);
+// WHITELIST_CONFIG_NAME), false, this, UserHandle.USER_ALL);
reloadBlacklist();
}
+ private void reloadBlacklistLocked() {
+ mWhitelist = getStringArrayLocked(WHITELIST_CONFIG_NAME);
+ Slog.i(TAG, "whitelist: " + Arrays.toString(mWhitelist));
+ mBlacklist = getStringArrayLocked(BLACKLIST_CONFIG_NAME);
+ Slog.i(TAG, "blacklist: " + Arrays.toString(mBlacklist));
+ }
+
private void reloadBlacklist() {
- String blacklist[] = getStringArray(BLACKLIST_CONFIG_NAME);
- String whitelist[] = getStringArray(WHITELIST_CONFIG_NAME);
synchronized (mLock) {
- mWhitelist = whitelist;
- Slog.i(TAG, "whitelist: " + Arrays.toString(mWhitelist));
- mBlacklist = blacklist;
- Slog.i(TAG, "blacklist: " + Arrays.toString(mBlacklist));
+ reloadBlacklistLocked();
}
}
@@ -78,7 +83,6 @@ public final class LocationBlacklist extends ContentObserver {
* (package name matches blacklist, and does not match whitelist)
*/
public boolean isBlacklisted(String packageName) {
- /*
synchronized (mLock) {
for (String black : mBlacklist) {
if (packageName.startsWith(black)) {
@@ -92,7 +96,6 @@ public final class LocationBlacklist extends ContentObserver {
}
}
}
- */
return false;
}
@@ -113,8 +116,19 @@ public final class LocationBlacklist extends ContentObserver {
reloadBlacklist();
}
- private String[] getStringArray(String key) {
- String flatString = Settings.Secure.getString(mContext.getContentResolver(), key);
+ public void switchUser(int userId) {
+ synchronized(mLock) {
+ mCurrentUserId = userId;
+ reloadBlacklistLocked();
+ }
+ }
+
+ private String[] getStringArrayLocked(String key) {
+ String flatString;
+ synchronized(mLock) {
+ flatString = Settings.Secure.getStringForUser(mContext.getContentResolver(), key,
+ mCurrentUserId);
+ }
if (flatString == null) {
return new String[0];
}