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

Commit 80def300 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Dismiss bubbles into overflow"

parents 5cbf9d68 d698186a
Loading
Loading
Loading
Loading
+19 −15
Original line number Diff line number Diff line
@@ -443,11 +443,26 @@ public class BubbleData {
            mStateChange.orderChanged |= repackAll();
        }

        if (reason == BubbleController.DISMISS_AGED) {
        overflowBubble(reason, bubbleToRemove);

        // Note: If mBubbles.isEmpty(), then mSelectedBubble is now null.
        if (Objects.equals(mSelectedBubble, bubbleToRemove)) {
            // Move selection to the new bubble at the same position.
            int newIndex = Math.min(indexToRemove, mBubbles.size() - 1);
            Bubble newSelected = mBubbles.get(newIndex);
            setSelectedBubbleInternal(newSelected);
        }
        maybeSendDeleteIntent(reason, bubbleToRemove.getEntry());
    }

    void overflowBubble(@DismissReason int reason, Bubble bubble) {
        if (reason == BubbleController.DISMISS_AGED
                || reason == BubbleController.DISMISS_USER_GESTURE) {
            if (DEBUG_BUBBLE_DATA) {
                Log.d(TAG, "overflowing bubble: " + bubbleToRemove);
                Log.d(TAG, "overflowing bubble: " + bubble);
            }
            mOverflowBubbles.add(0, bubbleToRemove);
            mOverflowBubbles.add(0, bubble);

            if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) {
                // Remove oldest bubble.
                if (DEBUG_BUBBLE_DATA) {
@@ -457,15 +472,6 @@ public class BubbleData {
                mOverflowBubbles.remove(mOverflowBubbles.size() - 1);
            }
        }

        // Note: If mBubbles.isEmpty(), then mSelectedBubble is now null.
        if (Objects.equals(mSelectedBubble, bubbleToRemove)) {
            // Move selection to the new bubble at the same position.
            int newIndex = Math.min(indexToRemove, mBubbles.size() - 1);
            Bubble newSelected = mBubbles.get(newIndex);
            setSelectedBubbleInternal(newSelected);
        }
        maybeSendDeleteIntent(reason, bubbleToRemove.getEntry());
    }

    public void dismissAll(@DismissReason int reason) {
@@ -478,9 +484,7 @@ public class BubbleData {
        setExpandedInternal(false);
        setSelectedBubbleInternal(null);
        while (!mBubbles.isEmpty()) {
            Bubble bubble = mBubbles.remove(0);
            maybeSendDeleteIntent(reason, bubble.getEntry());
            mStateChange.bubbleRemoved(bubble, reason);
            doRemove(mBubbles.get(0).getKey(), reason);
        }
        dispatchPendingChanges();
    }
+1 −7
Original line number Diff line number Diff line
@@ -55,7 +55,6 @@ public class BubbleOverflowActivity extends Activity {
    private BubbleOverflowAdapter mAdapter;
    private RecyclerView mRecyclerView;
    private List<Bubble> mOverflowBubbles = new ArrayList<>();
    private int mMaxBubbles;

    @Inject
    public BubbleOverflowActivity(BubbleController controller) {
@@ -68,7 +67,6 @@ public class BubbleOverflowActivity extends Activity {
        setContentView(R.layout.bubble_overflow_activity);
        setBackgroundColor();

        mMaxBubbles = getResources().getInteger(R.integer.bubbles_max_rendered);
        mEmptyState = findViewById(R.id.bubble_overflow_empty_state);
        mRecyclerView = findViewById(R.id.bubble_overflow_recycler);
        mRecyclerView.setLayoutManager(
@@ -95,11 +93,7 @@ public class BubbleOverflowActivity extends Activity {

    void onDataChanged(List<Bubble> bubbles) {
        mOverflowBubbles.clear();
        if (bubbles.size() > mMaxBubbles) {
            mOverflowBubbles.addAll(bubbles.subList(mMaxBubbles, bubbles.size()));
        } else {
        mOverflowBubbles.addAll(bubbles);
        }
        mAdapter.notifyDataSetChanged();

        if (mOverflowBubbles.isEmpty()) {