diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java index bf81ea5c264c3..44e42e0e56c17 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java @@ -56,7 +56,6 @@ import android.service.notification.NotificationListenerService.RankingMap; import android.service.notification.StatusBarNotification; import android.util.ArrayMap; import android.util.Pair; -import android.util.Slog; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -756,6 +755,7 @@ public class NotifCollection implements Dumpable { && !entry.getSbn().getNotification().isGroupSummary() && !hasFlag(entry, Notification.FLAG_ONGOING_EVENT) && !hasFlag(entry, Notification.FLAG_BUBBLE) + && !hasFlag(entry, Notification.FLAG_NO_CLEAR) && entry.getDismissState() != DISMISSED; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java index a7f8b6e01949e..f2dbb91ac7fa7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java @@ -1468,6 +1468,18 @@ public class NotifCollectionTest extends SysuiTestCase { container, container.getSbn().getGroupKey())); } + @Test + public void testCannotDismissNoClearNotifications() { + // GIVEN an no-clear notification + final NotificationEntry container = new NotificationEntryBuilder() + .setFlag(mContext, FLAG_NO_CLEAR, true) + .build(); + + // THEN its children are not dismissible + assertFalse(mCollection.shouldAutoDismissChildren( + container, container.getSbn().getGroupKey())); + } + @Test public void testCanDismissFgsNotificationChildren() { // GIVEN an FGS but not ongoing notification