summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java76
2 files changed, 16 insertions, 65 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
index 93146f9b3bf3..6e76691ae1b1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
@@ -407,10 +407,7 @@ public class PreparationCoordinator implements Coordinator {
mLogger.logGroupInflationTookTooLong(group);
return false;
}
- // Only delay release if the summary is not inflated.
- // TODO(253454977): Once we ensure that all other pipeline filtering and pruning has been
- // done by this point, we can revert back to checking for mInflatingNotifs.contains(...)
- if (!isInflated(group.getSummary())) {
+ if (mInflatingNotifs.contains(group.getSummary())) {
mLogger.logDelayingGroupRelease(group, group.getSummary());
return true;
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java
index dcf245525f10..f4adf6927e31 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorTest.java
@@ -181,7 +181,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
@Test
public void testInflatesNewNotification() {
// WHEN there is a new notification
- mCollectionListener.onEntryInit(mEntry);
+ mCollectionListener.onEntryAdded(mEntry);
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
// THEN we inflate it
@@ -194,7 +194,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
@Test
public void testRebindsInflatedNotificationsOnUpdate() {
// GIVEN an inflated notification
- mCollectionListener.onEntryInit(mEntry);
+ mCollectionListener.onEntryAdded(mEntry);
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
verify(mNotifInflater).inflateViews(eq(mEntry), any(), any());
mNotifInflater.invokeInflateCallbackForEntry(mEntry);
@@ -213,7 +213,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
@Test
public void testEntrySmartReplyAdditionWillRebindViews() {
// GIVEN an inflated notification
- mCollectionListener.onEntryInit(mEntry);
+ mCollectionListener.onEntryAdded(mEntry);
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
verify(mNotifInflater).inflateViews(eq(mEntry), any(), any());
mNotifInflater.invokeInflateCallbackForEntry(mEntry);
@@ -232,7 +232,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
@Test
public void testEntryChangedToMinimizedSectionWillRebindViews() {
// GIVEN an inflated notification
- mCollectionListener.onEntryInit(mEntry);
+ mCollectionListener.onEntryAdded(mEntry);
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
verify(mNotifInflater).inflateViews(eq(mEntry), mParamsCaptor.capture(), any());
assertFalse(mParamsCaptor.getValue().isLowPriority());
@@ -254,36 +254,28 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
public void testMinimizedEntryMovedIntoGroupWillRebindViews() {
// GIVEN an inflated, minimized notification
setSectionIsLowPriority(true);
- mCollectionListener.onEntryInit(mEntry);
+ mCollectionListener.onEntryAdded(mEntry);
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
verify(mNotifInflater).inflateViews(eq(mEntry), mParamsCaptor.capture(), any());
assertTrue(mParamsCaptor.getValue().isLowPriority());
mNotifInflater.invokeInflateCallbackForEntry(mEntry);
// WHEN notification is moved under a parent
- NotificationEntry groupSummary = getNotificationEntryBuilder()
- .setParent(ROOT_ENTRY)
- .setGroupSummary(mContext, true)
- .setGroup(mContext, TEST_GROUP_KEY)
- .build();
- GroupEntry parent = mock(GroupEntry.class);
- when(parent.getSummary()).thenReturn(groupSummary);
- NotificationEntryBuilder.setNewParent(mEntry, parent);
- mCollectionListener.onEntryInit(groupSummary);
- mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry, groupSummary));
+ NotificationEntryBuilder.setNewParent(mEntry, mock(GroupEntry.class));
+ mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
// THEN we rebind it as not-minimized
verify(mNotifInflater).rebindViews(eq(mEntry), mParamsCaptor.capture(), any());
assertFalse(mParamsCaptor.getValue().isLowPriority());
- // THEN we filter it because the parent summary is not yet inflated.
- assertTrue(mUninflatedFilter.shouldFilterOut(mEntry, 0));
+ // THEN we do not filter it because it's not the first inflation.
+ assertFalse(mUninflatedFilter.shouldFilterOut(mEntry, 0));
}
@Test
public void testEntryRankChangeWillNotRebindViews() {
// GIVEN an inflated notification
- mCollectionListener.onEntryInit(mEntry);
+ mCollectionListener.onEntryAdded(mEntry);
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
verify(mNotifInflater).inflateViews(eq(mEntry), any(), any());
mNotifInflater.invokeInflateCallbackForEntry(mEntry);
@@ -302,7 +294,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
@Test
public void testDoesntFilterInflatedNotifs() {
// GIVEN an inflated notification
- mCollectionListener.onEntryInit(mEntry);
+ mCollectionListener.onEntryAdded(mEntry);
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(mEntry));
verify(mNotifInflater).inflateViews(eq(mEntry), any(), any());
mNotifInflater.invokeInflateCallbackForEntry(mEntry);
@@ -338,9 +330,9 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
mCollectionListener.onEntryInit(entry);
}
- mCollectionListener.onEntryInit(summary);
+ mCollectionListener.onEntryAdded(summary);
for (NotificationEntry entry : children) {
- mCollectionListener.onEntryInit(entry);
+ mCollectionListener.onEntryAdded(entry);
}
mBeforeFilterListener.onBeforeFinalizeFilter(List.of(groupEntry));
@@ -401,40 +393,6 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
}
@Test
- public void testPartiallyInflatedGroupsAreNotFilteredOutIfSummaryReinflate() {
- // GIVEN a newly-posted group with a summary and two children
- final String groupKey = "test_reinflate_group";
- final int summaryId = 1;
- final GroupEntry group = new GroupEntryBuilder()
- .setKey(groupKey)
- .setCreationTime(400)
- .setSummary(getNotificationEntryBuilder().setId(summaryId).setImportance(1).build())
- .addChild(getNotificationEntryBuilder().setId(2).build())
- .addChild(getNotificationEntryBuilder().setId(3).build())
- .build();
- fireAddEvents(List.of(group));
- final NotificationEntry summary = group.getSummary();
- final NotificationEntry child0 = group.getChildren().get(0);
- final NotificationEntry child1 = group.getChildren().get(1);
- mBeforeFilterListener.onBeforeFinalizeFilter(List.of(group));
-
- // WHEN all of the children (but not the summary) finish inflating
- mNotifInflater.invokeInflateCallbackForEntry(child0);
- mNotifInflater.invokeInflateCallbackForEntry(child1);
- mNotifInflater.invokeInflateCallbackForEntry(summary);
-
- // WHEN the summary is updated and starts re-inflating
- summary.setRanking(new RankingBuilder(summary.getRanking()).setImportance(4).build());
- fireUpdateEvents(summary);
- mBeforeFilterListener.onBeforeFinalizeFilter(List.of(group));
-
- // THEN the entire group is still not filtered out
- assertFalse(mUninflatedFilter.shouldFilterOut(summary, 401));
- assertFalse(mUninflatedFilter.shouldFilterOut(child0, 401));
- assertFalse(mUninflatedFilter.shouldFilterOut(child1, 401));
- }
-
- @Test
public void testCompletedInflatedGroupsAreReleased() {
// GIVEN a newly-posted group with a summary and two children
final GroupEntry group = new GroupEntryBuilder()
@@ -454,7 +412,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
mNotifInflater.invokeInflateCallbackForEntry(child1);
mNotifInflater.invokeInflateCallbackForEntry(summary);
- // THEN the entire group is no longer filtered out
+ // THEN the entire group is still filtered out
assertFalse(mUninflatedFilter.shouldFilterOut(summary, 401));
assertFalse(mUninflatedFilter.shouldFilterOut(child0, 401));
assertFalse(mUninflatedFilter.shouldFilterOut(child1, 401));
@@ -536,11 +494,7 @@ public class PreparationCoordinatorTest extends SysuiTestCase {
private void fireAddEvents(NotificationEntry entry) {
mCollectionListener.onEntryInit(entry);
- mCollectionListener.onEntryInit(entry);
- }
-
- private void fireUpdateEvents(NotificationEntry entry) {
- mCollectionListener.onEntryUpdated(entry);
+ mCollectionListener.onEntryAdded(entry);
}
private static final String TEST_MESSAGE = "TEST_MESSAGE";