Merge "Check zen modes+manual rule for in consol zen pol" into qt-dev
am: aac2e8c687
Change-Id: I83a4324c0baba01e7ab6582d3a02afcfe5c0db9c
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 1f5b99c..981e0f5 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -940,13 +940,34 @@
}
}
+ private void applyCustomPolicy(ZenPolicy policy, ZenRule rule) {
+ if (rule.zenMode == NotificationManager.INTERRUPTION_FILTER_NONE) {
+ policy.apply(new ZenPolicy.Builder()
+ .disallowAllSounds()
+ .build());
+ } else if (rule.zenMode
+ == NotificationManager.INTERRUPTION_FILTER_ALARMS) {
+ policy.apply(new ZenPolicy.Builder()
+ .disallowAllSounds()
+ .allowAlarms(true)
+ .allowMedia(true)
+ .build());
+ } else {
+ policy.apply(rule.zenPolicy);
+ }
+ }
+
private void updateConsolidatedPolicy(String reason) {
if (mConfig == null) return;
synchronized (mConfig) {
ZenPolicy policy = new ZenPolicy();
+ if (mConfig.manualRule != null) {
+ applyCustomPolicy(policy, mConfig.manualRule);
+ }
+
for (ZenRule automaticRule : mConfig.automaticRules.values()) {
if (automaticRule.isAutomaticActive()) {
- policy.apply(automaticRule.zenPolicy);
+ applyCustomPolicy(policy, automaticRule);
}
}
Policy newPolicy = mConfig.toNotificationPolicy(policy);