diff options
author | Victoria Lease <violets@google.com> | 2012-10-04 16:49:15 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-10-04 16:49:15 -0700 |
commit | a9afaccf303da2b57a47ad16cca559e87e649d15 (patch) | |
tree | 3cc75043ed503f694069104030f311fc16e7fba7 /services | |
parent | dce8b948320e933e46e4a38c496f56555472495f (diff) | |
parent | 83762d22c9bde92d412cf5a263a228d705606721 (diff) | |
download | frameworks_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.java | 1 | ||||
-rw-r--r-- | services/java/com/android/server/location/LocationBlacklist.java | 38 |
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]; } |