Merge "Revert "Revert "[SettingsProvider] skip caching in system server""" into udc-dev am: 23cdcba71c am: e9d9b92141 am: fe92c4b2e1

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22999028

Change-Id: I1b4fc840bb34409761af57f3b5a871d17e4c83dc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Song Chun Fan
2023-05-08 22:01:18 +00:00
committed by Automerger Merge Worker

View File

@@ -3036,9 +3036,7 @@ public final class Settings {
public void destroy() {
try {
// If this process is the system server process, mArray is the same object as
// the memory int array kept inside SettingsProvider, so skipping the close()
if (!Settings.isInSystemServer() && !mArray.isClosed()) {
if (!mArray.isClosed()) {
mArray.close();
}
} catch (IOException e) {
@@ -3218,8 +3216,9 @@ public final class Settings {
@UnsupportedAppUsage
public String getStringForUser(ContentResolver cr, String name, final int userHandle) {
final boolean isSelf = (userHandle == UserHandle.myUserId());
final boolean useCache = isSelf && !isInSystemServer();
boolean needsGenerationTracker = false;
if (isSelf) {
if (useCache) {
synchronized (NameValueCache.this) {
final GenerationTracker generationTracker = mGenerationTrackers.get(name);
if (generationTracker != null) {
@@ -3365,9 +3364,12 @@ public final class Settings {
}
}
} else {
if (LOCAL_LOGV) Log.i(TAG, "call-query of user " + userHandle
+ " by " + UserHandle.myUserId()
+ " so not updating cache");
if (DEBUG || LOCAL_LOGV) {
Log.i(TAG, "call-query of user " + userHandle
+ " by " + UserHandle.myUserId()
+ (isInSystemServer() ? " in system_server" : "")
+ " so not updating cache");
}
}
return value;
}