summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Song Chun Fan <schfan@google.com> 2023-05-03 20:35:51 +0000
committer Songchun Fan <schfan@google.com> 2023-05-04 13:52:09 -0700
commitcaeb19048ddfdb66691e18a5e277faefdd792121 (patch)
tree01e43137a891d18588ef6f37b1a32b6c857ceb77
parentabbe7c56383504eeb6edb850f319d8a8b397ae88 (diff)
Revert "Revert "[SettingsProvider] skip caching in system server""
This reverts commit 0f69f749625d57d47f492e1254ace3500f88cf74. Reason for revert: reland without DeviceConfig changes BUG: 277448672 Test: atest android.accessibilityservice.cts.AccessibilityTextTraversalTest#testTextEditingAction Change-Id: Ib02120028a3ea0a6e73041262096f0921d6f1cfc
-rw-r--r--core/java/android/provider/Settings.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 8cdb568b407c..73c29d4058cd 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -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;
}