summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/NotificationManager.java6
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java15
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java2
3 files changed, 14 insertions, 9 deletions
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 6dca5d921210..03ee1e93ba7e 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -1772,7 +1772,7 @@ public class NotificationManager {
@Override
public int hashCode() {
return Objects.hash(priorityCategories, priorityCallSenders, priorityMessageSenders,
- suppressedVisualEffects);
+ suppressedVisualEffects, state);
}
@Override
@@ -1784,10 +1784,10 @@ public class NotificationManager {
&& other.priorityCallSenders == priorityCallSenders
&& other.priorityMessageSenders == priorityMessageSenders
&& suppressedVisualEffectsEqual(suppressedVisualEffects,
- other.suppressedVisualEffects);
+ other.suppressedVisualEffects)
+ && other.state == this.state;
}
-
private boolean suppressedVisualEffectsEqual(int suppressedEffects,
int otherSuppressedVisualEffects) {
if (suppressedEffects == otherSuppressedVisualEffects) {
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 6355af6e0b2d..cd81af58dfcf 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -3910,8 +3910,7 @@ public class AudioService extends IAudioService.Stub
final boolean muteSystem = (zenPolicy.priorityCategories
& NotificationManager.Policy.PRIORITY_CATEGORY_SYSTEM) == 0;
final boolean muteNotificationAndRing = ZenModeConfig
- .areAllPriorityOnlyRingerSoundsMuted(
- mNm.getConsolidatedNotificationPolicy());
+ .areAllPriorityOnlyRingerSoundsMuted(zenPolicy);
return muteAlarms && isAlarm(streamType)
|| muteMedia && isMedia(streamType)
|| muteSystem && isSystem(streamType)
@@ -3924,11 +3923,12 @@ public class AudioService extends IAudioService.Stub
/**
* Notifications, ringer and system sounds are controlled by the ringer:
- * {@link ZenModeHelper.RingerModeDelegate#getRingerModeAffectedStreams(int)}
+ * {@link ZenModeHelper.RingerModeDelegate#getRingerModeAffectedStreams(int)} but can
+ * also be muted by DND based on the DND mode:
* DND total silence: media and alarms streams can be muted by DND
* DND alarms only: no streams additionally controlled by DND
- * DND priority only: alarms, media, system streams can be muted by DND based on
- * zenPolicy (this method determines which streams)
+ * DND priority only: alarms, media, system, ringer and notification streams can be muted by
+ * DND. The current applied zenPolicy determines which streams will be muted by DND.
* @return true if changed, else false
*/
private boolean updateZenModeAffectedStreams() {
@@ -3960,6 +3960,11 @@ public class AudioService extends IAudioService.Stub
& NotificationManager.Policy.PRIORITY_CATEGORY_SYSTEM) == 0) {
zenModeAffectedStreams |= 1 << AudioManager.STREAM_SYSTEM;
}
+
+ if (ZenModeConfig.areAllPriorityOnlyRingerSoundsMuted(zenPolicy)) {
+ zenModeAffectedStreams |= 1 << AudioManager.STREAM_NOTIFICATION;
+ zenModeAffectedStreams |= 1 << AudioManager.STREAM_RING;
+ }
}
if (mZenModeAffectedStreams != zenModeAffectedStreams) {
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
index 3d872237d8d4..b65476470773 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
@@ -99,7 +99,7 @@ public class ZenModeConfigTest extends UiServiceTestCase {
suppressedVisualEffects |= Policy.SUPPRESSED_EFFECT_AMBIENT;
Policy expectedPolicy = new Policy(priorityCategories, priorityCallSenders,
- priorityMessageSenders, suppressedVisualEffects);
+ priorityMessageSenders, suppressedVisualEffects, 0);
assertEquals(expectedPolicy, config.toNotificationPolicy(zenPolicy));
}