Update strings to be more translation friendly

Use different strings for "None" based on the context of the string.
Some languages may require different gendered grammar depending on its
context.

Also update contacts summary string to include plurals (1 vs many).

Test: make RunSettingsRoboTests7
Bug: 154898476
Fixes: 154944295
Change-Id: If9949d75de573042389a19df3d4c5d15c6cbeb25
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 1649cb2..6e88b76 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1148,14 +1148,14 @@
         <item>@string/zen_mode_from_anyone</item>
         <item>@string/zen_mode_from_contacts</item>
         <item>@string/zen_mode_from_starred</item>
-        <item>@string/zen_mode_from_none_messages</item>
+        <item>@string/zen_mode_none_messages</item>
     </string-array>
 
     <string-array name="zen_mode_contacts_calls_entries" translatable="false">
         <item>@string/zen_mode_from_anyone</item>
         <item>@string/zen_mode_from_contacts</item>
         <item>@string/zen_mode_from_starred</item>
-        <item>@string/zen_mode_from_none_calls</item>
+        <item>@string/zen_mode_none_calls</item>
     </string-array>
 
     <string-array name="zen_mode_contacts_values" translatable="false">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index eff1ede..d4f3f73 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8978,6 +8978,8 @@
         <item quantity="one">1 other</item>
         <item quantity="other"><xliff:g id="num_people" example="3">%d</xliff:g> others</item>
     </plurals>
+    <!-- [CHAR LIMIT=40] Zen mode settings: Starred contacts summary when there are no starred contacts -->
+    <string name="zen_mode_starred_contacts_summary_none">None</string>
 
     <!-- [CHAR LIMIT=40] Zen mode settings: Messages option -->
     <string name="zen_mode_messages">Messages</string>
@@ -8997,8 +8999,13 @@
     <!-- Zen mode settings: All calls can bypass DND summary [CHAR LIMIT=NONE -->
     <string name="zen_mode_all_calls_summary">All calls can reach you</string>
 
-    <!-- Zen mode settings: Senders in contacts can bypass DND summary summary [CHAR LIMIT=NONE -->
-    <string name="zen_mode_contacts_senders_summary"><xliff:g id="num_contacts" example="120">%d</xliff:g> contacts</string>
+    <!-- Zen mode settings: There are no contacts on the device [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_contacts_count_none">None</string>
+    <!-- Zen mode settings: Senders in contacts can bypass DND summary summary [CHAR LIMIT=NONE] -->
+    <plurals name="zen_mode_contacts_count">
+        <item quantity="one">1 contact</item>
+        <item quantity="other"><xliff:g id="num_contacts" example="120">%d</xliff:g> contacts</item>
+    </plurals>
 
     <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From anyone -->
     <string name="zen_mode_from_anyone">Anyone</string>
@@ -9006,8 +9013,6 @@
     <string name="zen_mode_from_contacts">Contacts</string>
     <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From starred contacts only -->
     <string name="zen_mode_from_starred">Starred contacts</string>
-    <!-- [CHAR LIMIT=40] Zen mode settings: Calls and/or messages from none-->
-    <string name="zen_mode_from_none">None</string>
 
     <!-- Do not disturb settings, calls summary [CHAR LIMIT=100]-->
     <string name="zen_calls_summary_starred_repeat">From starred contacts and repeat callers</string>
@@ -9017,9 +9022,9 @@
     <string name="zen_calls_summary_repeat_only">From repeat callers only</string>
 
     <!-- [CHAR LIMIT=40] Zen mode settings: Calls option value: No calls allowed -->
-    <string name="zen_mode_from_none_calls">Don\u2019t allow any calls</string>
+    <string name="zen_mode_none_calls">None</string>
     <!-- [CHAR LIMIT=40] Zen mode settings: Messages option value: No messages allowed -->
-    <string name="zen_mode_from_none_messages">Don\u2019t allow any messages</string>
+    <string name="zen_mode_none_messages">None</string>
 
     <!-- [CHAR LIMIT=80] Zen mode settings: Allow alarms option -->
     <string name="zen_mode_alarms">Alarms</string>
diff --git a/src/com/android/settings/notification/zen/ZenModeBackend.java b/src/com/android/settings/notification/zen/ZenModeBackend.java
index b9b27c4..2f6a2b1 100644
--- a/src/com/android/settings/notification/zen/ZenModeBackend.java
+++ b/src/com/android/settings/notification/zen/ZenModeBackend.java
@@ -287,13 +287,13 @@
 
     protected int getAlarmsTotalSilencePeopleSummary(int category) {
         if (category == NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES) {
-            return R.string.zen_mode_from_none;
+            return R.string.zen_mode_none_messages;
         } else if (category == NotificationManager.Policy.PRIORITY_CATEGORY_CALLS){
-            return R.string.zen_mode_from_none;
+            return R.string.zen_mode_none_calls;
         } else if (category == NotificationManager.Policy.PRIORITY_CATEGORY_CONVERSATIONS) {
             return R.string.zen_mode_from_no_conversations;
         }
-        return R.string.zen_mode_from_none;
+        return R.string.zen_mode_from_no_conversations;
     }
 
     protected int getConversationSummary() {
@@ -322,7 +322,7 @@
                 return R.string.zen_mode_from_starred;
             case ZenPolicy.PEOPLE_TYPE_NONE:
             default:
-                return R.string.zen_mode_from_none;
+                return R.string.zen_mode_none_calls;
         }
     }
 
@@ -337,7 +337,7 @@
                 return R.string.zen_mode_from_starred;
             case ZenPolicy.PEOPLE_TYPE_NONE:
             default:
-                return R.string.zen_mode_from_none;
+                return R.string.zen_mode_none_messages;
         }
     }
 
@@ -472,7 +472,7 @@
         List<String> displayContacts = new ArrayList<>();
 
         if (numStarredContacts == 0) {
-            displayContacts.add(context.getString(R.string.zen_mode_from_none));
+            displayContacts.add(context.getString(R.string.zen_mode_starred_contacts_summary_none));
         } else {
             for (int i = 0; i < 2 && i < numStarredContacts; i++) {
                 displayContacts.add(starredContacts.get(i));
@@ -494,10 +494,11 @@
     String getContactsNumberSummary(Context context) {
         final int numContacts = queryAllContactsData().getCount();
         if (numContacts == 0) {
-            return context.getResources().getString(R.string.zen_mode_from_none);
+            return context.getResources().getString(
+                    R.string.zen_mode_contacts_count_none);
         }
-        return context.getResources().getString(R.string.zen_mode_contacts_senders_summary,
-                numContacts);
+        return context.getResources().getQuantityString(R.plurals.zen_mode_contacts_count,
+                numContacts, numContacts);
     }
 
     private Cursor queryStarredContactsData() {
diff --git a/src/com/android/settings/notification/zen/ZenModePrioritySendersPreferenceController.java b/src/com/android/settings/notification/zen/ZenModePrioritySendersPreferenceController.java
index 8fd59c3..abf2ced 100644
--- a/src/com/android/settings/notification/zen/ZenModePrioritySendersPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModePrioritySendersPreferenceController.java
@@ -91,7 +91,9 @@
             makeRadioPreference(KEY_ANY,
                     com.android.settings.R.string.zen_mode_from_anyone);
             makeRadioPreference(KEY_NONE,
-                    com.android.settings.R.string.zen_mode_from_none);
+                    mIsMessages
+                            ? com.android.settings.R.string.zen_mode_none_messages
+                            : com.android.settings.R.string.zen_mode_none_calls);
             updateSummaries();
         }
 
diff --git a/src/com/android/settings/notification/zen/ZenModeSendersImagePreferenceController.java b/src/com/android/settings/notification/zen/ZenModeSendersImagePreferenceController.java
index e8cd40d..6a0cf7a 100644
--- a/src/com/android/settings/notification/zen/ZenModeSendersImagePreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeSendersImagePreferenceController.java
@@ -91,7 +91,10 @@
             newImageRes = mIsMessages
                     ? R.drawable.zen_messages_none
                     : R.drawable.zen_calls_none;
-            newContentDescription = mContext.getString(R.string.zen_mode_from_none);
+            newContentDescription =
+                    mContext.getString(mIsMessages
+                            ? R.string.zen_mode_none_messages
+                            : R.string.zen_mode_none_calls);
         }
 
         mImageView.setImageResource(newImageRes);
diff --git a/src/com/android/settings/notification/zen/ZenModeSettings.java b/src/com/android/settings/notification/zen/ZenModeSettings.java
index 3e59203..436a399 100644
--- a/src/com/android/settings/notification/zen/ZenModeSettings.java
+++ b/src/com/android/settings/notification/zen/ZenModeSettings.java
@@ -156,7 +156,7 @@
                             || PRIORITY_CATEGORY_REPEAT_CALLERS == category, true);
             int numCategories = enabledCategories.size();
             if (numCategories == 0) {
-                return mContext.getString(R.string.zen_mode_from_none);
+                return mContext.getString(R.string.zen_mode_none_calls);
             } else if (numCategories == 1) {
                 return mContext.getString(R.string.zen_mode_calls_summary_one,
                         enabledCategories.get(0));
@@ -172,7 +172,7 @@
                     category -> PRIORITY_CATEGORY_MESSAGES == category, false);
             int numCategories = enabledCategories.size();
             if (numCategories == 0) {
-                return mContext.getString(R.string.zen_mode_from_none);
+                return mContext.getString(R.string.zen_mode_none_messages);
             } else {
                 return enabledCategories.get(0);
             }