diff --git a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
index 2a0e8b3..1ee43fb 100644
--- a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
+++ b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
@@ -500,10 +500,13 @@
                     Locale.getDefault());
             return buildModesSummary(msgFormat, activeModes);
         } else {
+            List<ZenMode> modesExcludingImplicit = modes.stream()
+                    .filter(m -> m.getKind() != ZenMode.Kind.IMPLICIT)
+                    .toList();
             MessageFormat msgFormat = new MessageFormat(
                     mContext.getString(R.string.zen_modes_summary),
                     Locale.getDefault());
-            return buildModesSummary(msgFormat, modes);
+            return buildModesSummary(msgFormat, modesExcludingImplicit);
         }
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
index 1cd3053..d222a8b 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
@@ -527,6 +527,18 @@
     }
 
     @Test
+    public void getModesSummary_excludesImplicitModes() {
+        ImmutableList<ZenMode> modes = ImmutableList.of(
+                TestModeBuilder.MANUAL_DND_INACTIVE,
+                new TestModeBuilder().implicitForPackage("com.annoying.one").build(),
+                new TestModeBuilder().setName("Chirping").build()
+        );
+
+        String summary = mSummaryHelper.getModesSummary(modes);
+        assertThat(summary).isEqualTo("Do Not Disturb, Chirping");
+    }
+
+    @Test
     public void getModesSummary_oneModeActive_listsActiveMode() {
         ImmutableList<ZenMode> modes = ImmutableList.of(
                 TestModeBuilder.MANUAL_DND_ACTIVE,
