From c5f7cfe52db7f1eb9e2273d7a1e34d7376928c4a Mon Sep 17 00:00:00 2001 From: Jay Aliomer Date: Fri, 14 Jan 2022 15:17:45 -0500 Subject: [PATCH] Dont clear Notifs with FLAG_NO_CLEAR Fixes: 206842750 Test: NotifCollectionTest Change-Id: Ic43e605560e2d158e72dce070e92d1ffc08b0d96 --- .../notification/collection/NotifCollection.java | 2 +- .../notification/collection/NotifCollectionTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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