summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-09-16 18:01:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-09-16 18:01:10 +0000
commit78bcaac37bff87357c25de6d02942ad5f140e14d (patch)
tree1d39e80b35d62d941dd4bbc788d56b16c9ce753e
parentc3b59309957f1b25d2709f7c5e05cdeca57a4cc5 (diff)
parent1c7918d75c319963d89e54dbbfe83dfa7e507540 (diff)
Merge "Do not use DeviceConfig.getAllProperties()." into main
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java b/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java
index bfbf41dc87ce..c9ad5a5e3b90 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java
@@ -251,13 +251,22 @@ public final class DeviceConfigService extends Binder {
public static HashMap<String, String> getAllFlags(IContentProvider provider) {
HashMap<String, String> allFlags = new HashMap<String, String>();
- for (DeviceConfig.Properties properties : DeviceConfig.getAllProperties()) {
- List<String> keys = new ArrayList<>(properties.getKeyset());
- for (String flagName : properties.getKeyset()) {
- String fullName = properties.getNamespace() + "/" + flagName;
- allFlags.put(fullName, properties.getString(flagName, null));
+ try {
+ Bundle args = new Bundle();
+ args.putInt(Settings.CALL_METHOD_USER_KEY,
+ ActivityManager.getService().getCurrentUser().id);
+ Bundle b = provider.call(new AttributionSource(Process.myUid(),
+ resolveCallingPackage(), null), Settings.AUTHORITY,
+ Settings.CALL_METHOD_LIST_CONFIG, null, args);
+ if (b != null) {
+ Map<String, String> flagsToValues =
+ (HashMap) b.getSerializable(Settings.NameValueTable.VALUE);
+ allFlags.putAll(flagsToValues);
}
+ } catch (RemoteException e) {
+ throw new RuntimeException("Failed in IPC", e);
}
+
return allFlags;
}