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

Commit 89b3b7ab authored by Yuri Lin's avatar Yuri Lin Committed by Automerger Merge Worker
Browse files

Merge "Log manual rules in the zen rule snapshot dump." into udc-dev am: d386f82b

parents 10d33283 d386f82b
Loading
Loading
Loading
Loading
+8 −4
Original line number Original line Diff line number Diff line
@@ -1258,17 +1258,18 @@ public class ZenModeHelper {
                        .addBooleanAnnotation(ANNOTATION_ID_IS_UID, true)
                        .addBooleanAnnotation(ANNOTATION_ID_IS_UID, true)
                        .writeByteArray(config.toZenPolicy().toProto());
                        .writeByteArray(config.toZenPolicy().toProto());
                events.add(data.build());
                events.add(data.build());
                if (config.manualRule != null && config.manualRule.enabler != null) {
                if (config.manualRule != null) {
                    ruleToProtoLocked(user, config.manualRule, events);
                    ruleToProtoLocked(user, config.manualRule, true, events);
                }
                }
                for (ZenRule rule : config.automaticRules.values()) {
                for (ZenRule rule : config.automaticRules.values()) {
                    ruleToProtoLocked(user, rule, events);
                    ruleToProtoLocked(user, rule, false, events);
                }
                }
            }
            }
        }
        }
    }
    }


    private void ruleToProtoLocked(int user, ZenRule rule, List<StatsEvent> events) {
    private void ruleToProtoLocked(int user, ZenRule rule, boolean isManualRule,
            List<StatsEvent> events) {
        // Make the ID safe.
        // Make the ID safe.
        String id = rule.id == null ? "" : rule.id;
        String id = rule.id == null ? "" : rule.id;
        if (!ZenModeConfig.DEFAULT_RULE_IDS.contains(id)) {
        if (!ZenModeConfig.DEFAULT_RULE_IDS.contains(id)) {
@@ -1279,6 +1280,9 @@ public class ZenModeHelper {
        String pkg = rule.getPkg() == null ? "" : rule.getPkg();
        String pkg = rule.getPkg() == null ? "" : rule.getPkg();
        if (rule.enabler != null) {
        if (rule.enabler != null) {
            pkg = rule.enabler;
            pkg = rule.enabler;
        }

        if (isManualRule) {
            id = ZenModeConfig.MANUAL_RULE_ID;
            id = ZenModeConfig.MANUAL_RULE_ID;
        }
        }


+5 −3
Original line number Original line Diff line number Diff line
@@ -884,18 +884,21 @@ public class ZenModeHelperTest extends UiServiceTestCase {
    @Test
    @Test
    public void testProto() {
    public void testProto() {
        mZenModeHelperSpy.mZenMode = ZEN_MODE_IMPORTANT_INTERRUPTIONS;
        mZenModeHelperSpy.mZenMode = ZEN_MODE_IMPORTANT_INTERRUPTIONS;
        // existence of manual rule means it should be in output
        mZenModeHelperSpy.mConfig.manualRule = new ZenModeConfig.ZenRule();
        mZenModeHelperSpy.mConfig.manualRule = new ZenModeConfig.ZenRule();
        mZenModeHelperSpy.mConfig.manualRule.pkg = "android";  // system


        int n = mZenModeHelperSpy.mConfig.automaticRules.size();
        int n = mZenModeHelperSpy.mConfig.automaticRules.size();
        List<String> ids = new ArrayList<>(n);
        List<String> ids = new ArrayList<>(n);
        for (ZenModeConfig.ZenRule rule : mZenModeHelperSpy.mConfig.automaticRules.values()) {
        for (ZenModeConfig.ZenRule rule : mZenModeHelperSpy.mConfig.automaticRules.values()) {
            ids.add(rule.id);
            ids.add(rule.id);
        }
        }
        ids.add("");
        ids.add(ZenModeConfig.MANUAL_RULE_ID);
        ids.add(""); // for ROOT_CONFIG, logged with empty string as id


        List<StatsEvent> events = new LinkedList<>();
        List<StatsEvent> events = new LinkedList<>();
        mZenModeHelperSpy.pullRules(events);
        mZenModeHelperSpy.pullRules(events);
        assertEquals(n + 1, events.size());
        assertEquals(n + 2, events.size());  // automatic rules + manual rule + root config
        for (WrappedSysUiStatsEvent.WrappedBuilder builder : mStatsEventBuilderFactory.builders) {
        for (WrappedSysUiStatsEvent.WrappedBuilder builder : mStatsEventBuilderFactory.builders) {
            if (builder.getAtomId() == DND_MODE_RULE) {
            if (builder.getAtomId() == DND_MODE_RULE) {
                if (builder.getInt(ZEN_MODE_FIELD_NUMBER) == ROOT_CONFIG) {
                if (builder.getInt(ZEN_MODE_FIELD_NUMBER) == ROOT_CONFIG) {
@@ -1002,7 +1005,6 @@ public class ZenModeHelperTest extends UiServiceTestCase {
        mZenModeHelperSpy.mConfig.automaticRules = getCustomAutomaticRules();
        mZenModeHelperSpy.mConfig.automaticRules = getCustomAutomaticRules();
        mZenModeHelperSpy.mConfig.manualRule = new ZenModeConfig.ZenRule();
        mZenModeHelperSpy.mConfig.manualRule = new ZenModeConfig.ZenRule();
        mZenModeHelperSpy.mConfig.manualRule.enabled = true;
        mZenModeHelperSpy.mConfig.manualRule.enabled = true;
        mZenModeHelperSpy.mConfig.manualRule.enabler = "com.enabler";


        List<StatsEvent> events = new LinkedList<>();
        List<StatsEvent> events = new LinkedList<>();
        mZenModeHelperSpy.pullRules(events);
        mZenModeHelperSpy.pullRules(events);