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

Commit e69d57cf authored by ykhung's avatar ykhung Committed by YK Hung
Browse files

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
parent dbb2337c
Loading
Loading
Loading
Loading
+21 −8
Original line number Diff line number Diff line
@@ -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<String> manualDenyList =
                getPackageNames(mContext, getDenylistAllUids(getManualDenylistPref()));
        writer.println("\tManualDenylist:");
        if (manualDenyList != null) {
            manualDenyList.forEach(packageName -> writer.println("\t\t" + packageName));
            writer.flush();
        }

        final List<String> dynamicDenyList =
                getPackageNames(mContext, getDenylistAllUids(getDynamicDenylistPref()));
        writer.println("\tDynamicDenylist:");
        if (dynamicDenyList != null) {
            dynamicDenyList.forEach(packageName -> writer.println("\t\t" + packageName));
            writer.flush();
        }
    }

    private Set<Integer> 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<Integer> uids) {
    private static List<String> getPackageNames(Context context, Set<Integer> 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<String> packageNames = new ArrayList<>(uids.size());
        uids.forEach(uid -> packageNames.add(pm.getNameForUid(uid)));
        return packageNames;
    }
}
+4 −4
Original line number Diff line number Diff line
@@ -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