From e69d57cfd650a09da735d379cea5c9a1fe330d2e Mon Sep 17 00:00:00 2001 From: ykhung Date: Thu, 28 Dec 2023 09:54:12 +0800 Subject: [PATCH] Refine the DynamicDenylistManager dump() data format Dump of DynamicDenylistManager: ManualDenylist: DynamicDenylist: com.android.managedprovisioning com.android.chrome Bug: 306329984 Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.fuelgauge.datasaver" Change-Id: If5eb8919ee8dc222692b7435f9670d861253be12 --- .../datasaver/DynamicDenylistManager.java | 29 ++++++++++++++----- .../datasaver/DynamicDenylistManagerTest.java | 8 ++--- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java index e0b6543c09b..49ed63cd3f8 100644 --- a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java +++ b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java @@ -31,7 +31,9 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.Set; /** A class to dynamically manage per apps {@link NetworkPolicyManager} POLICY_ flags. */ @@ -183,10 +185,21 @@ public final class DynamicDenylistManager { /** Dump the data stored in the {@link SharedPreferences}. */ public void dump(PrintWriter writer) { writer.println("Dump of DynamicDenylistManager:"); - writer.println("\tManualDenylist: " + getPackageNames(mContext, - getDenylistAllUids(getManualDenylistPref()))); - writer.println("\tDynamicDenylist: " + getPackageNames(mContext, - getDenylistAllUids(getDynamicDenylistPref()))); + final List manualDenyList = + getPackageNames(mContext, getDenylistAllUids(getManualDenylistPref())); + writer.println("\tManualDenylist:"); + if (manualDenyList != null) { + manualDenyList.forEach(packageName -> writer.println("\t\t" + packageName)); + writer.flush(); + } + + final List dynamicDenyList = + getPackageNames(mContext, getDenylistAllUids(getDynamicDenylistPref())); + writer.println("\tDynamicDenylist:"); + if (dynamicDenyList != null) { + dynamicDenyList.forEach(packageName -> writer.println("\t\t" + packageName)); + writer.flush(); + } } private Set getDenylistAllUids(SharedPreferences sharedPreferences) { @@ -230,13 +243,13 @@ public final class DynamicDenylistManager { return mContext.getSharedPreferences(PREF_KEY_DYNAMIC_DENY, Context.MODE_PRIVATE); } - private static String getPackageNames(Context context, Set uids) { + private static List getPackageNames(Context context, Set uids) { if (uids == null || uids.isEmpty()) { return null; } final PackageManager pm = context.getPackageManager(); - final StringBuilder builder = new StringBuilder(); - uids.forEach(uid -> builder.append(pm.getNameForUid(uid) + " ")); - return builder.toString(); + final List packageNames = new ArrayList<>(uids.size()); + uids.forEach(uid -> packageNames.add(pm.getNameForUid(uid))); + return packageNames; } } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java index c29541cfb7b..0e6f6aabcd4 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java @@ -375,8 +375,8 @@ public class DynamicDenylistManagerTest { mDynamicDenylistManager.dump(printWriter); final String dumpResults = stringWriter.toString(); - assertThat(dumpResults.contains("ManualDenylist: app1")).isTrue(); - assertThat(dumpResults.contains("DynamicDenylist: app2")).isTrue(); + assertThat(dumpResults.contains("\tManualDenylist:\n\t\tapp1")).isTrue(); + assertThat(dumpResults.contains("\tDynamicDenylist:\n\t\tapp2")).isTrue(); } @Test @@ -389,8 +389,8 @@ public class DynamicDenylistManagerTest { mDynamicDenylistManager.dump(printWriter); final String dumpResults = stringWriter.toString(); - assertThat(dumpResults.contains("ManualDenylist: null")).isTrue(); - assertThat(dumpResults.contains("DynamicDenylist: null")).isTrue(); + assertThat(dumpResults.contains("Dump of DynamicDenylistManager:")).isTrue(); + assertThat(dumpResults.contains("\tManualDenylist:\n\tDynamicDenylist:")).isTrue(); } @Test