Simplify DND Behavior secondary text

Bug: 63077372
Change-Id: I0ac305ff429de27a65667441703b938305d8a03f
Fixes: 70627215
Test: make ROBOTEST_FILTER=ZenModeSettingsTest RunSettingsRoboTests -j40
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7331d72..3596279 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6726,14 +6726,14 @@
     <!-- Do not disturb: Subtitle for DND behavior indicating no sound will get past DND. [CHAR LIMIT=30] -->
     <string name="zen_mode_behavior_no_sound">No sound</string>
 
-    <!-- Do not disturb: Subtitle for DND behavior indicating no sound will get past DND due to user and/or API-invoked Total Silence mode. [CHAR LIMIT=40] -->
-    <string name="zen_mode_behavior_total_silence">No sound (Total Silence)</string>
+    <!-- Do not disturb: Subtitle for DND behavior indicating no sound will get past DND. [CHAR LIMIT=40] -->
+    <string name="zen_mode_behavior_total_silence">Total Silence</string>
 
     <!-- Do not disturb: Used before specifying which sounds can bypass DND (ie: No sound except alarms and reminders). [CHAR LIMIT=40] -->
     <string name="zen_mode_behavior_no_sound_except">No sound except <xliff:g id="categories" example="alarms, media and system feedback">%1$s</xliff:g></string>
 
-    <!-- Do not disturb: Specifies sounds that can bypass DND in user and/or API-invoked Alarms Only mode.  [CHAR LIMIT=100] -->
-    <string name="zen_mode_behavior_alarms_only">No sound except alarms, media and system feedback (Alarms only)</string>
+    <!-- Do not disturb: Specifies alarms and media can bypass DND.  [CHAR LIMIT=100] -->
+    <string name="zen_mode_behavior_alarms_only">No sound except alarms and media</string>
 
     <!--  Do not disturb: Title for the zen mode automation option in Settings. [CHAR LIMIT=40] -->
     <string name="zen_mode_automation_settings_title">Turn on automatically</string>
@@ -7313,8 +7313,11 @@
     <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option -->
     <string name="zen_mode_alarms">Alarms</string>
 
-    <!-- [CHAR LIMIT=50] Zen mode settings: Media and system sounds option -->
-    <string name="zen_mode_media_system_other">Media and system feedback</string>
+    <!-- [CHAR LIMIT=50] Zen mode settings: Media option -->
+    <string name="zen_mode_media_system_other">Media</string>
+
+    <!-- [CHAR LIMIT=50] Zen mode settings: Media secondary text explaining sounds include system feedback such as system tapping sounds, haptic feedback, etc. -->
+    <string name="zen_mode_media_system_other_secondary_text">Includes system feedback</string>
 
     <!-- [CHAR LIMIT=50] Zen mode settings: Reminders option -->
     <string name="zen_mode_reminders">Reminders</string>
@@ -7334,6 +7337,9 @@
     <!-- [CHAR LIMIT=200] Zen mode settings: Repeat callers option summary -->
     <string name="zen_mode_repeat_callers_summary">If the same person calls a second time within a <xliff:g id="minutes">%d</xliff:g> minute period</string>
 
+    <!-- [CHAR LIMIT=50] Zen mode settings dnd beahvior description: when a user has chosen custom sounds to bypass DND -->
+    <string name="zen_mode_behavior_summary_custom">Custom</string>
+
     <!-- [CHAR LIMIT=20] Zen mode settings: When option -->
     <string name="zen_mode_when">Automatically turn on</string>
 
diff --git a/res/xml/zen_mode_behavior_settings.xml b/res/xml/zen_mode_behavior_settings.xml
index c0849da..6aeebe6 100644
--- a/res/xml/zen_mode_behavior_settings.xml
+++ b/res/xml/zen_mode_behavior_settings.xml
@@ -34,7 +34,8 @@
        <!-- Media -->
        <SwitchPreference
            android:key="zen_mode_media"
-           android:title="@string/zen_mode_media_system_other"/>
+           android:title="@string/zen_mode_media_system_other"
+           android:summary="@string/zen_mode_media_system_other_secondary_text"/>
 
        <!-- Reminders -->
        <SwitchPreference
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index f8408fc..1ee20d3 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -97,23 +97,21 @@
                 enabledCategories = getEnabledCategories(policy);
             }
 
+            // no sound categories can bypass dnd
             int numCategories = enabledCategories.size();
             if (numCategories == 0) {
-                return mContext.getString(R.string.zen_mode_behavior_no_sound);
+                return mContext.getString(R.string.zen_mode_behavior_total_silence);
             }
 
-            String s = enabledCategories.get(0).toLowerCase();
-            for (int i = 1; i < numCategories; i++) {
-                if (i == numCategories - 1) {
-                    s = mContext.getString(R.string.join_many_items_last,
-                            s, enabledCategories.get(i).toLowerCase());
-                } else {
-                    s = mContext.getString(R.string.join_many_items_middle,
-                            s, enabledCategories.get(i).toLowerCase());
-                }
+            // only alarms and media/system can bypass dnd
+            if (numCategories == 2 &&
+                    isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_ALARMS) &&
+                    isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER)) {
+                return mContext.getString(R.string.zen_mode_behavior_alarms_only);
             }
 
-            return mContext.getString(R.string.zen_mode_behavior_no_sound_except, s);
+            // custom
+            return mContext.getString(R.string.zen_mode_behavior_summary_custom);
         }
 
         String getAutomaticRulesSummary() {
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
index fa2c6b9..80233d8 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
@@ -18,6 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertTrue;
 
 import android.app.NotificationManager;
@@ -53,7 +54,7 @@
     }
 
     @Test
-    public void testGetBehaviorSettingSummary_sameOrderAsTargetPage() {
+    public void testGetBehaviorSettingSummary_customBehavior() {
         NotificationManager.Policy policy = new NotificationManager.Policy(
                 NotificationManager.Policy.PRIORITY_CATEGORY_EVENTS
                         | NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS
@@ -63,18 +64,31 @@
         final String result = mBuilder.getBehaviorSettingSummary(policy,
                 Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
 
-        String alarms = mContext.getString(R.string.zen_mode_alarms).toLowerCase();
-        String reminders = mContext.getString(R.string.zen_mode_reminders).toLowerCase();
-        String events = mContext.getString(R.string.zen_mode_events).toLowerCase();
-        String media = mContext.getString(R.string.zen_mode_media_system_other).toLowerCase();
+        String custom = mContext.getString(R.string.zen_mode_behavior_summary_custom);
+        assertEquals(custom, result);
+    }
 
-        assertThat(result).contains(alarms);
-        assertThat(result).contains(reminders);
-        assertThat(result).contains(events);
-        assertThat(result).contains(media);
-        assertTrue(result.indexOf(alarms) < result.indexOf(media)
-                && result.indexOf(media) < result.indexOf(reminders)
-                && result.indexOf(reminders) < result.indexOf(events));
+    @Test
+    public void testGetBehaviorSettingSummary_totalSilence() {
+        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);
+        assertEquals(totalSilence, result);
+    }
+
+    @Test
+    public void testGetBehaviorSettingSummary_alarmsAndMedia() {
+        NotificationManager.Policy policy = new NotificationManager.Policy(
+                        NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS
+                        | NotificationManager.Policy.PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER,
+                0, 0);
+        final String result = mBuilder.getBehaviorSettingSummary(policy,
+                Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+
+        String alarmsAndMedia = mContext.getString(R.string.zen_mode_behavior_alarms_only);
+        assertEquals(alarmsAndMedia, result);
     }
 
     @Test