diff options
| author | 2022-10-19 20:06:07 +0000 | |
|---|---|---|
| committer | 2022-10-19 20:06:07 +0000 | |
| commit | 0e7e625157424110caeddbbf42ad0be2abb2bcbe (patch) | |
| tree | 78cb2c154d76206d4b8e45f4712d044c5f431181 | |
| parent | 871d48f3e9d29a536edd44e5aef57b90206f3db9 (diff) | |
| parent | aa43ac4cefb488b61e1552cff8946bb77797b185 (diff) | |
Merge "Revert "Don't filter out groups if summary is re-inflating"" into tm-qpr-dev
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"; |