diff options
| author | 2024-09-16 18:01:10 +0000 | |
|---|---|---|
| committer | 2024-09-16 18:01:10 +0000 | |
| commit | 78bcaac37bff87357c25de6d02942ad5f140e14d (patch) | |
| tree | 1d39e80b35d62d941dd4bbc788d56b16c9ce753e | |
| parent | c3b59309957f1b25d2709f7c5e05cdeca57a4cc5 (diff) | |
| parent | 1c7918d75c319963d89e54dbbfe83dfa7e507540 (diff) | |
Merge "Do not use DeviceConfig.getAllProperties()." into main
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java | 19 |
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; } |