Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1395578 authored by Lyn Han's avatar Lyn Han
Browse files

Remove bubble from stack by key instead of icon

Fixes: 152251180
Test: manual - bubbles trimmed on overflow
Test: manual - normal bubble removal still works fine
Change-Id: I19b8fa54f28ae6c959354f4a3a7f4d0e8ed70d44
parent 2ca22c98
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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);
+11 −10
Original line number Diff line number Diff line
@@ -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);
        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);
        } else {
            Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
                return;
            }
        }
        updateOverflowBtnVisibility(/* apply */ true);
        Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
    }

    private void updateOverflowBtnVisibility(boolean apply) {