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); }