diff options
| author | 2023-06-28 01:53:29 +0000 | |
|---|---|---|
| committer | 2023-06-28 01:53:29 +0000 | |
| commit | ee2eb46ed751a36c0f3063c4cfde1de428b5689f (patch) | |
| tree | 8b92600358865fa8739559ae8ec91e65383a91c5 | |
| parent | 64678b69120bc45825a29f273fc4467bc5289314 (diff) | |
| parent | f0d0864579b16cf07dd7088d4739d179b24e042a (diff) | |
Merge "Do not dismiss priority children of a group being dismissed" into udc-dev am: f0d0864579
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23785932
Change-Id: Ife3a1cdb91e7eb47f202eb03e260a2281aa2556d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2 files changed, 30 insertions, 4 deletions
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 8aeefeeac211..d2c6d4baf817 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 @@ -840,6 +840,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { && !hasFlag(entry, Notification.FLAG_ONGOING_EVENT) && !hasFlag(entry, Notification.FLAG_BUBBLE) && !hasFlag(entry, Notification.FLAG_NO_CLEAR) + && (entry.getChannel() == null || !entry.getChannel().isImportantConversation()) && 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 540bda6ea9dc..9037df821ca8 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 @@ -1675,11 +1675,21 @@ public class NotifCollectionTest extends SysuiTestCase { } @Test + public void testCanDismissOtherNotificationChildren() { + // GIVEN an ongoing notification + final NotificationEntry container = new NotificationEntryBuilder() + .setGroup(mContext, "group") + .build(); + + // THEN its children are dismissible + assertTrue(mCollection.shouldAutoDismissChildren( + container, container.getSbn().getGroupKey())); + } + + @Test public void testCannotDismissOngoingNotificationChildren() { // GIVEN an ongoing notification final NotificationEntry container = new NotificationEntryBuilder() - .setPkg(TEST_PACKAGE) - .setId(47) .setGroup(mContext, "group") .setFlag(mContext, FLAG_ONGOING_EVENT, true) .build(); @@ -1693,6 +1703,7 @@ public class NotifCollectionTest extends SysuiTestCase { public void testCannotDismissNoClearNotifications() { // GIVEN an no-clear notification final NotificationEntry container = new NotificationEntryBuilder() + .setGroup(mContext, "group") .setFlag(mContext, FLAG_NO_CLEAR, true) .build(); @@ -1702,11 +1713,25 @@ public class NotifCollectionTest extends SysuiTestCase { } @Test + public void testCannotDismissPriorityConversations() { + // GIVEN an no-clear notification + NotificationChannel channel = + new NotificationChannel("foo", "Foo", NotificationManager.IMPORTANCE_HIGH); + channel.setImportantConversation(true); + final NotificationEntry container = new NotificationEntryBuilder() + .setGroup(mContext, "group") + .setChannel(channel) + .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 final NotificationEntry container = new NotificationEntryBuilder() - .setPkg(TEST_PACKAGE) - .setId(47) .setGroup(mContext, "group") .setFlag(mContext, FLAG_FOREGROUND_SERVICE, true) .build(); |