diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-03-14 03:14:32 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-03-14 03:14:32 +0000 |
commit | 14cbd79ec84f40f7ed928c638f5ca0019958ea7d (patch) | |
tree | affde51b7c0772406340931ef2644fd7078ffed2 | |
parent | 764e7971d844c89aefe4e4dd98db676e67cb29e5 (diff) | |
parent | bf1b3d66315010b1671124017edad7f3d5f709c3 (diff) |
Merge "Move overflow bubble to stack on update" into rvc-dev
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java | 8 | ||||
-rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java | 18 |
2 files changed, 22 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java index 4876c572eb0b..54b83c0b134d 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java @@ -226,6 +226,14 @@ public class BubbleData { Bubble getOrCreateBubble(NotificationEntry entry) { Bubble bubble = getBubbleWithKey(entry.getKey()); if (bubble == null) { + for (int i = 0; i < mOverflowBubbles.size(); i++) { + Bubble b = mOverflowBubbles.get(i); + if (b.getKey().equals(entry.getKey())) { + mOverflowBubbles.remove(b); + mPendingBubbles.add(b); + return b; + } + } // Check for it in pending for (int i = 0; i < mPendingBubbles.size(); i++) { Bubble b = mPendingBubbles.get(i); diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java index f40fc94763ab..866dfdc9c7e4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java @@ -268,13 +268,18 @@ public class BubbleDataTest extends SysuiTestCase { sendUpdatedEntryAtTime(mEntryB2, 5000); mBubbleData.setListener(mListener); - // Test sendUpdatedEntryAtTime(mEntryC1, 6000); verifyUpdateReceived(); - - // Verify assertBubbleRemoved(mBubbleA1, BubbleController.DISMISS_AGED); - assertThat(mBubbleData.getOverflowBubbles()).isEqualTo(ImmutableList.of(mBubbleA1)); + assertOverflowChangedTo(ImmutableList.of(mBubbleA1)); + + Bubble bubbleA1 = mBubbleData.getOrCreateBubble(mEntryA1); + bubbleA1.markUpdatedAt(7000L); + mBubbleData.notificationEntryUpdated(bubbleA1, false /* suppressFlyout*/, + true /* showInShade */); + verifyUpdateReceived(); + assertBubbleRemoved(mBubbleA2, BubbleController.DISMISS_AGED); + assertOverflowChangedTo(ImmutableList.of(mBubbleA2)); } /** @@ -931,6 +936,11 @@ public class BubbleDataTest extends SysuiTestCase { assertThat(update.expanded).named("expanded").isEqualTo(expected); } + private void assertOverflowChangedTo(ImmutableList<Bubble> bubbles) { + BubbleData.Update update = mUpdateCaptor.getValue(); + assertThat(update.overflowBubbles).isEqualTo(bubbles); + } + private NotificationEntry createBubbleEntry(int userId, String notifKey, String packageName) { return createBubbleEntry(userId, notifKey, packageName, 1000); |