diff --git a/res/values/strings.xml b/res/values/strings.xml
index efaa89bd16e..75d4471e5ce 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6999,6 +6999,11 @@
Sound, vibration, and visual signs of notifications
+
+ None
+
+ other options
+
Add
@@ -7592,8 +7597,8 @@
Media
-
- Touch and charging sounds
+
+ Touch sounds
Reminders
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index b143b424496..27187561618 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -94,31 +94,29 @@ public class ZenModeSettings extends ZenModeSettingsBase {
};
String getBehaviorSettingSummary(Policy policy, int zenMode) {
- List enabledCategories;
+ List enabledCategories = getEnabledCategories(policy);
- if (zenMode == Settings.Global.ZEN_MODE_NO_INTERRUPTIONS) {
- return mContext.getString(R.string.zen_mode_behavior_total_silence);
- } else if (zenMode == Settings.Global.ZEN_MODE_ALARMS) {
- return mContext.getString(R.string.zen_mode_behavior_alarms_only);
- } else {
- enabledCategories = getEnabledCategories(policy);
- }
-
- // no sound categories can bypass dnd
int numCategories = enabledCategories.size();
if (numCategories == 0) {
- return mContext.getString(R.string.zen_mode_behavior_total_silence);
+ return mContext.getString(R.string.zen_mode_no_exceptions);
+ } else if (numCategories == 1) {
+ return enabledCategories.get(0);
+ } else if (numCategories == 2) {
+ return mContext.getString(R.string.join_two_items, enabledCategories.get(0),
+ enabledCategories.get(1).toLowerCase());
+ } else if (numCategories == 3){
+ String secondaryText = mContext.getString(R.string.join_two_unrelated_items,
+ enabledCategories.get(0), enabledCategories.get(1).toLowerCase());
+ return mContext.getString(R.string.join_two_items, secondaryText,
+ enabledCategories.get(2).toLowerCase());
+ } else {
+ String secondaryText = mContext.getString(R.string.join_many_items_middle,
+ enabledCategories.get(0), enabledCategories.get(1).toLowerCase());
+ secondaryText = mContext.getString(R.string.join_many_items_middle, secondaryText,
+ enabledCategories.get(2).toLowerCase());
+ return mContext.getString(R.string.join_many_items_last, secondaryText,
+ mContext.getString(R.string.zen_mode_other_options));
}
-
- // only alarms and media can bypass dnd
- if (numCategories == 2 &&
- isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_ALARMS) &&
- isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_MEDIA)) {
- return mContext.getString(R.string.zen_mode_behavior_alarms_only);
- }
-
- // custom
- return mContext.getString(R.string.zen_mode_behavior_summary_custom);
}
String getSoundSummary() {
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
index 5c81efc9468..bd94bf5f24d 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
@@ -47,27 +47,12 @@ public class ZenModeSettingsTest {
}
@Test
- public void testGetBehaviorSettingSummary_customBehavior() {
- NotificationManager.Policy policy = new NotificationManager.Policy(
- NotificationManager.Policy.PRIORITY_CATEGORY_EVENTS
- | NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS
- | NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS
- | NotificationManager.Policy.PRIORITY_CATEGORY_MEDIA,
- 0, 0);
- final String result = mBuilder.getBehaviorSettingSummary(policy,
- Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
-
- String custom = mContext.getString(R.string.zen_mode_behavior_summary_custom);
- assertEquals(custom, result);
- }
-
- @Test
- public void testGetBehaviorSettingSummary_totalSilence() {
+ public void testGetBehaviorSettingSummary_noSoundsCanBypass() {
NotificationManager.Policy policy = new NotificationManager.Policy(0, 0, 0);
final String result = mBuilder.getBehaviorSettingSummary(policy,
Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- String totalSilence = mContext.getString(R.string.zen_mode_behavior_total_silence);
+ String totalSilence = mContext.getString(R.string.zen_mode_no_exceptions);
assertEquals(totalSilence, result);
}
@@ -80,7 +65,9 @@ public class ZenModeSettingsTest {
final String result = mBuilder.getBehaviorSettingSummary(policy,
Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- String alarmsAndMedia = mContext.getString(R.string.zen_mode_behavior_alarms_only);
+ String alarmsAndMedia = mContext.getString(R.string.join_two_items,
+ mContext.getString(R.string.zen_mode_alarms),
+ mContext.getString(R.string.zen_mode_media).toLowerCase());
assertEquals(alarmsAndMedia, result);
}