Merge "Remove bubble from stack by key instead of icon" into rvc-dev

This commit is contained in:
Mady Mellor
2020-03-24 16:11:58 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 13 deletions

View File

@@ -403,6 +403,9 @@ public class BubbleData {
}
private void doRemove(String key, @DismissReason int reason) {
if (DEBUG_BUBBLE_DATA) {
Log.d(TAG, "doRemove: " + key);
}
// If it was pending remove it
for (int i = 0; i < mPendingBubbles.size(); i++) {
if (mPendingBubbles.get(i).getKey().equals(key)) {
@@ -445,15 +448,14 @@ public class BubbleData {
if (reason == BubbleController.DISMISS_AGED
|| reason == BubbleController.DISMISS_USER_GESTURE) {
if (DEBUG_BUBBLE_DATA) {
Log.d(TAG, "overflowing bubble: " + bubble);
Log.d(TAG, "Overflowing: " + bubble);
}
mOverflowBubbles.add(0, bubble);
bubble.stopInflation();
if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) {
// Remove oldest bubble.
if (DEBUG_BUBBLE_DATA) {
Log.d(TAG, "Overflow full. Remove bubble: " + mOverflowBubbles.get(
Log.d(TAG, "Overflow full. Remove: " + mOverflowBubbles.get(
mOverflowBubbles.size() - 1));
}
mOverflowBubbles.remove(mOverflowBubbles.size() - 1);

View File

@@ -940,7 +940,6 @@ public class BubbleStackView extends FrameLayout {
ViewClippingUtil.setClippingDeactivated(bubble.getIconView(), true, mClippingParameters);
animateInFlyoutForBubble(bubble);
updatePointerPosition();
updateOverflowBtnVisibility( /*apply */ true);
requestUpdate();
logBubbleEvent(bubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__POSTED);
}
@@ -951,16 +950,18 @@ public class BubbleStackView extends FrameLayout {
Log.d(TAG, "removeBubble: " + bubble);
}
// Remove it from the views
int removedIndex = mBubbleContainer.indexOfChild(bubble.getIconView());
if (removedIndex >= 0) {
mBubbleContainer.removeViewAt(removedIndex);
bubble.cleanupExpandedState();
bubble.setInflated(false);
logBubbleEvent(bubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__DISMISSED);
} else {
Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
for (int i = 0; i < getBubbleCount(); i++) {
View v = mBubbleContainer.getChildAt(i);
if (v instanceof BadgedImageView
&& ((BadgedImageView) v).getKey().equals(bubble.getKey())) {
mBubbleContainer.removeViewAt(i);
bubble.cleanupExpandedState();
bubble.setInflated(false);
logBubbleEvent(bubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__DISMISSED);
return;
}
}
updateOverflowBtnVisibility(/* apply */ true);
Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
}
private void updateOverflowBtnVisibility(boolean apply) {