Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java +1 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java +29 −4 Original line number Diff line number Diff line Loading @@ -1674,12 +1674,22 @@ public class NotifCollectionTest extends SysuiTestCase { verifyNoMoreInteractions(mStatusBarService); } @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(); Loading @@ -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(); Loading @@ -1701,12 +1712,26 @@ public class NotifCollectionTest extends SysuiTestCase { container, container.getSbn().getGroupKey())); } @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(); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java +1 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java +29 −4 Original line number Diff line number Diff line Loading @@ -1674,12 +1674,22 @@ public class NotifCollectionTest extends SysuiTestCase { verifyNoMoreInteractions(mStatusBarService); } @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(); Loading @@ -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(); Loading @@ -1701,12 +1712,26 @@ public class NotifCollectionTest extends SysuiTestCase { container, container.getSbn().getGroupKey())); } @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(); Loading