Merge "SettingsProvider should use correct cache when redirecting to user 0." into lmp-dev
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 8084eda..3453a67 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -694,12 +694,11 @@
if (Settings.CALL_METHOD_GET_SYSTEM.equals(method)) {
if (LOCAL_LOGV) Slog.v(TAG, "call(system:" + request + ") for " + callingUser);
// Check if this request should be (re)directed to the primary user's db
- if (callingUser == UserHandle.USER_OWNER
- || shouldShadowParentProfile(callingUser, sSystemCloneToManagedKeys, request)) {
- dbHelper = getOrEstablishDatabase(UserHandle.USER_OWNER);
- } else {
- dbHelper = getOrEstablishDatabase(callingUser);
+ if (callingUser != UserHandle.USER_OWNER
+ && shouldShadowParentProfile(callingUser, sSystemCloneToManagedKeys, request)) {
+ callingUser = UserHandle.USER_OWNER;
}
+ dbHelper = getOrEstablishDatabase(callingUser);
cache = sSystemCaches.get(callingUser);
return lookupValue(dbHelper, TABLE_SYSTEM, cache, request);
}
@@ -713,10 +712,9 @@
UserManager.DISALLOW_SHARE_LOCATION, new UserHandle(callingUser))) {
return sSecureCaches.get(callingUser).putIfAbsent(request, "");
}
- dbHelper = getOrEstablishDatabase(UserHandle.USER_OWNER);
- } else {
- dbHelper = getOrEstablishDatabase(callingUser);
+ callingUser = UserHandle.USER_OWNER;
}
+ dbHelper = getOrEstablishDatabase(callingUser);
cache = sSecureCaches.get(callingUser);
return lookupValue(dbHelper, TABLE_SECURE, cache, request);
}