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