Merge "Fix duplicate bubbles in the overflow" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
4a44c4f4d7
@@ -575,6 +575,7 @@ public class BubbleData {
|
||||
Log.d(TAG, "Overflowing: " + bubble);
|
||||
}
|
||||
mLogger.logOverflowAdd(bubble, reason);
|
||||
mOverflowBubbles.remove(bubble);
|
||||
mOverflowBubbles.add(0, bubble);
|
||||
mStateChange.addedOverflowBubble = bubble;
|
||||
bubble.stopInflation();
|
||||
|
||||
@@ -220,18 +220,25 @@ public class BubbleOverflowContainerView extends LinearLayout {
|
||||
Log.d(TAG, "remove: " + toRemove);
|
||||
}
|
||||
toRemove.cleanupViews();
|
||||
final int i = mOverflowBubbles.indexOf(toRemove);
|
||||
final int indexToRemove = mOverflowBubbles.indexOf(toRemove);
|
||||
mOverflowBubbles.remove(toRemove);
|
||||
mAdapter.notifyItemRemoved(i);
|
||||
mAdapter.notifyItemRemoved(indexToRemove);
|
||||
}
|
||||
|
||||
Bubble toAdd = update.addedOverflowBubble;
|
||||
if (toAdd != null) {
|
||||
final int indexToAdd = mOverflowBubbles.indexOf(toAdd);
|
||||
if (DEBUG_OVERFLOW) {
|
||||
Log.d(TAG, "add: " + toAdd);
|
||||
Log.d(TAG, "add: " + toAdd + " prevIndex: " + indexToAdd);
|
||||
}
|
||||
if (indexToAdd > 0) {
|
||||
mOverflowBubbles.remove(toAdd);
|
||||
mOverflowBubbles.add(0, toAdd);
|
||||
mAdapter.notifyItemMoved(indexToAdd, 0);
|
||||
} else {
|
||||
mOverflowBubbles.add(0, toAdd);
|
||||
mAdapter.notifyItemInserted(0);
|
||||
}
|
||||
mOverflowBubbles.add(0, toAdd);
|
||||
mAdapter.notifyItemInserted(0);
|
||||
}
|
||||
|
||||
updateEmptyStateVisibility();
|
||||
|
||||
@@ -19,6 +19,8 @@ package com.android.wm.shell.bubbles;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static com.google.common.truth.Truth.assertWithMessage;
|
||||
|
||||
import static junit.framework.TestCase.assertEquals;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@@ -799,6 +801,15 @@ public class BubbleDataTest extends ShellTestCase {
|
||||
assertExpandedChangedTo(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_addToOverflow_doesntAllowDupes() {
|
||||
assertEquals(0, mBubbleData.getOverflowBubbles().size());
|
||||
mBubbleData.overflowBubble(Bubbles.DISMISS_AGED, mBubbleA1);
|
||||
mBubbleData.overflowBubble(Bubbles.DISMISS_AGED, mBubbleA1);
|
||||
mBubbleData.overflowBubble(Bubbles.DISMISS_AGED, mBubbleA1);
|
||||
assertEquals(1, mBubbleData.getOverflowBubbles().size());
|
||||
}
|
||||
|
||||
private void verifyUpdateReceived() {
|
||||
verify(mListener).applyUpdate(mUpdateCaptor.capture());
|
||||
reset(mListener);
|
||||
|
||||
Reference in New Issue
Block a user