Loading services/core/java/com/android/server/notification/ZenModeHelper.java +9 −2 Original line number Diff line number Diff line Loading @@ -2051,7 +2051,10 @@ public class ZenModeHelper { /* optional LoggedZenMode zen_mode = 4 */ ROOT_CONFIG, /* optional string id = 5 */ "", // empty for root config /* optional int32 uid = 6 */ Process.SYSTEM_UID, // system owns root config /* optional DNDPolicyProto policy = 7 */ config.toZenPolicy().toProto())); /* optional DNDPolicyProto policy = 7 */ config.toZenPolicy().toProto(), /* optional int32 rule_modified_fields = 8 */ 0, /* optional int32 policy_modified_fields = 9 */ 0, /* optional int32 device_effects_modified_fields = 10 */ 0)); if (config.manualRule != null) { ruleToProtoLocked(user, config.manualRule, true, events); } Loading Loading @@ -2093,7 +2096,11 @@ public class ZenModeHelper { /* optional android.stats.dnd.ZenMode zen_mode = 4 */ rule.zenMode, /* optional string id = 5 */ id, /* optional int32 uid = 6 */ getPackageUid(pkg, user), /* optional DNDPolicyProto policy = 7 */ policyProto)); /* optional DNDPolicyProto policy = 7 */ policyProto, /* optional int32 rule_modified_fields = 8 */ rule.userModifiedFields, /* optional int32 policy_modified_fields = 9 */ rule.zenPolicyUserModifiedFields, /* optional int32 device_effects_modified_fields = 10 */ rule.zenDeviceEffectsUserModifiedFields)); } private int getPackageUid(String pkg, int user) { Loading services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -1184,6 +1184,28 @@ public class ZenModeHelperTest extends UiServiceTestCase { assertTrue("couldn't find custom rule", foundCustomEvent); } @Test @EnableFlags(Flags.FLAG_MODES_API) public void testProtoWithAutoRuleWithModifiedFields() throws Exception { setupZenConfig(); mZenModeHelper.mConfig.automaticRules = new ArrayMap<>(); ZenRule rule = createCustomAutomaticRule(ZEN_MODE_IMPORTANT_INTERRUPTIONS, CUSTOM_RULE_ID); rule.userModifiedFields = AutomaticZenRule.FIELD_NAME; rule.zenPolicyUserModifiedFields = ZenPolicy.FIELD_PRIORITY_CATEGORY_MEDIA; rule.zenDeviceEffectsUserModifiedFields = ZenDeviceEffects.FIELD_GRAYSCALE; mZenModeHelper.mConfig.automaticRules.put(rule.id, rule); List<StatsEvent> events = new ArrayList<>(); mZenModeHelper.pullRules(events); assertThat(events).hasSize(2); // Global config + 1 automatic rule DNDModeProto ruleProto = StatsEventTestUtils.convertToAtom(events.get(1)).getDndModeRule(); assertThat(ruleProto.getRuleModifiedFields()).isEqualTo(rule.userModifiedFields); assertThat(ruleProto.getPolicyModifiedFields()).isEqualTo(rule.zenPolicyUserModifiedFields); assertThat(ruleProto.getDeviceEffectsModifiedFields()).isEqualTo( rule.zenDeviceEffectsUserModifiedFields); } @Test public void ruleUidsCached() throws Exception { setupZenConfig(); Loading Loading
services/core/java/com/android/server/notification/ZenModeHelper.java +9 −2 Original line number Diff line number Diff line Loading @@ -2051,7 +2051,10 @@ public class ZenModeHelper { /* optional LoggedZenMode zen_mode = 4 */ ROOT_CONFIG, /* optional string id = 5 */ "", // empty for root config /* optional int32 uid = 6 */ Process.SYSTEM_UID, // system owns root config /* optional DNDPolicyProto policy = 7 */ config.toZenPolicy().toProto())); /* optional DNDPolicyProto policy = 7 */ config.toZenPolicy().toProto(), /* optional int32 rule_modified_fields = 8 */ 0, /* optional int32 policy_modified_fields = 9 */ 0, /* optional int32 device_effects_modified_fields = 10 */ 0)); if (config.manualRule != null) { ruleToProtoLocked(user, config.manualRule, true, events); } Loading Loading @@ -2093,7 +2096,11 @@ public class ZenModeHelper { /* optional android.stats.dnd.ZenMode zen_mode = 4 */ rule.zenMode, /* optional string id = 5 */ id, /* optional int32 uid = 6 */ getPackageUid(pkg, user), /* optional DNDPolicyProto policy = 7 */ policyProto)); /* optional DNDPolicyProto policy = 7 */ policyProto, /* optional int32 rule_modified_fields = 8 */ rule.userModifiedFields, /* optional int32 policy_modified_fields = 9 */ rule.zenPolicyUserModifiedFields, /* optional int32 device_effects_modified_fields = 10 */ rule.zenDeviceEffectsUserModifiedFields)); } private int getPackageUid(String pkg, int user) { Loading
services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -1184,6 +1184,28 @@ public class ZenModeHelperTest extends UiServiceTestCase { assertTrue("couldn't find custom rule", foundCustomEvent); } @Test @EnableFlags(Flags.FLAG_MODES_API) public void testProtoWithAutoRuleWithModifiedFields() throws Exception { setupZenConfig(); mZenModeHelper.mConfig.automaticRules = new ArrayMap<>(); ZenRule rule = createCustomAutomaticRule(ZEN_MODE_IMPORTANT_INTERRUPTIONS, CUSTOM_RULE_ID); rule.userModifiedFields = AutomaticZenRule.FIELD_NAME; rule.zenPolicyUserModifiedFields = ZenPolicy.FIELD_PRIORITY_CATEGORY_MEDIA; rule.zenDeviceEffectsUserModifiedFields = ZenDeviceEffects.FIELD_GRAYSCALE; mZenModeHelper.mConfig.automaticRules.put(rule.id, rule); List<StatsEvent> events = new ArrayList<>(); mZenModeHelper.pullRules(events); assertThat(events).hasSize(2); // Global config + 1 automatic rule DNDModeProto ruleProto = StatsEventTestUtils.convertToAtom(events.get(1)).getDndModeRule(); assertThat(ruleProto.getRuleModifiedFields()).isEqualTo(rule.userModifiedFields); assertThat(ruleProto.getPolicyModifiedFields()).isEqualTo(rule.zenPolicyUserModifiedFields); assertThat(ruleProto.getDeviceEffectsModifiedFields()).isEqualTo( rule.zenDeviceEffectsUserModifiedFields); } @Test public void ruleUidsCached() throws Exception { setupZenConfig(); Loading