Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c7918d7 authored by Ted Bauer's avatar Ted Bauer
Browse files

Do not use DeviceConfig.getAllProperties().

Per b/362652574, we are removing this API, since it is troublesome
to maintain, and is not needed. Switch to making a direct bundle call.

Change-Id: I03729d8d36aef08a3005d8e420af7f07d3a778e1
Test: m
Bug: 362652574
Flag: EXEMPT trivial revert to previous behavior
parent 43db9d0d
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -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;
      }