diff --git a/res/values/strings.xml b/res/values/strings.xml
index ed9341d..b231927 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7946,11 +7946,11 @@
     <!-- Priority Modes: Format string for the "current state + trigger description summary for rules in the list. [CHAR_LIMIT=10] -->
     <string name="zen_mode_format_status_and_trigger" translatable="false"><xliff:g id="current_status" example="ON">%1$s</xliff:g> • <xliff:g id="trigger_description" example="Mon-Fri, 23:00-7:00">%2$s</xliff:g></string>
 
-    <!-- Priority Modes: Call to action for a mode that is disabled and needs to be configured. [CHAR_LIMIT=40] -->
-    <string name="zen_mode_disabled_tap_to_set_up">Tap to set up</string>
+    <!-- Priority Modes: Indicates that a mode is disabled and needs to be configured. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_disabled_needs_setup">Not set</string>
 
     <!-- Priority Modes: Indicates that a mode is disabled by the user. [CHAR_LIMIT=40] -->
-    <string name="zen_mode_disabled_by_user">Paused</string>
+    <string name="zen_mode_disabled_by_user">Disabled</string>
 
     <!-- Subtitle for the Do not Disturb slice. [CHAR LIMIT=50]-->
     <string name="zen_mode_slice_subtitle">Limit interruptions</string>
diff --git a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
index 1bc6e55..261ab1d 100644
--- a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
+++ b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
@@ -79,7 +79,7 @@
                                     mZenMode.getRule().getTriggerDescription());
             case ENABLED -> mZenMode.getRule().getTriggerDescription();
             case DISABLED_BY_USER -> mContext.getString(R.string.zen_mode_disabled_by_user);
-            case DISABLED_BY_OTHER -> mContext.getString(R.string.zen_mode_disabled_tap_to_set_up);
+            case DISABLED_BY_OTHER -> mContext.getString(R.string.zen_mode_disabled_needs_setup);
         };
         setSummary(statusText);
 
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
index 495a24c..aaf7059 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
@@ -100,7 +100,7 @@
         ShadowLooper.idleMainLooper();
 
         assertThat(preference.getTitle()).isEqualTo("Mode disabled by app");
-        assertThat(preference.getSummary()).isEqualTo("Tap to set up");
+        assertThat(preference.getSummary()).isEqualTo("Not set");
         assertThat(preference.getIcon()).isNotNull();
     }
 
@@ -120,7 +120,7 @@
         ShadowLooper.idleMainLooper();
 
         assertThat(preference.getTitle()).isEqualTo("Mode disabled by user");
-        assertThat(preference.getSummary()).isEqualTo("Paused");
+        assertThat(preference.getSummary()).isEqualTo("Disabled");
         assertThat(preference.getIcon()).isNotNull();
     }
 }
