Add alarm + media/other to NotifManager.Policy
Alarm and media/system/other policies added to be able to toggle
filtering of alarm and media sounds for ZenMode/DND.
Bug: 63077372
Test: runtest -x frameworks/base/services/tests/notification/src/com/android/server/notification/ZenModeHelperTest.java
Change-Id: I256782af00ad736c1aebdb96f9400d66ebb64a15
diff --git a/services/core/java/com/android/server/notification/ZenModeFiltering.java b/services/core/java/com/android/server/notification/ZenModeFiltering.java
index a7a2743..abf2900 100644
--- a/services/core/java/com/android/server/notification/ZenModeFiltering.java
+++ b/services/core/java/com/android/server/notification/ZenModeFiltering.java
@@ -117,15 +117,19 @@
ZenLog.traceIntercepted(record, "alarmsOnly");
return true;
case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
- if (isAlarm(record)) {
- // Alarms are always priority
- return false;
- }
// allow user-prioritized packages through in priority mode
if (record.getPackagePriority() == Notification.PRIORITY_MAX) {
ZenLog.traceNotIntercepted(record, "priorityApp");
return false;
}
+
+ if (isAlarm(record)) {
+ if (!config.allowAlarms) {
+ ZenLog.traceIntercepted(record, "!allowAlarms");
+ return true;
+ }
+ return false;
+ }
if (isCall(record)) {
if (config.allowRepeatCallers
&& REPEAT_CALLERS.isRepeat(mContext, extras(record))) {
@@ -159,6 +163,15 @@
}
return false;
}
+ AudioAttributes aa = record.getAudioAttributes();
+ if (aa != null && AudioAttributes.SUPPRESSIBLE_USAGES.get(aa.getUsage()) ==
+ AudioAttributes.SUPPRESSIBLE_MEDIA_SYSTEM_OTHER) {
+ if (!config.allowMediaSystemOther) {
+ ZenLog.traceIntercepted(record, "!allowMediaSystemOther");
+ return true;
+ }
+ return false;
+ }
ZenLog.traceIntercepted(record, "!priority");
return true;
default: