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

Commit 0a4a1fa3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Show last selected bubble when stack expands" into rvc-dev am:...

Merge "Show last selected bubble when stack expands" into rvc-dev am: 2b40d3c4 am: b0b73c60 am: 39a2bbe8

Change-Id: I321bc9619df0badc6c05a2cf6cabf18f2ee436a0
parents 8aee8bc0 39a2bbe8
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -120,6 +120,7 @@ public class BubbleData {
    /** Bubbles that are being loaded but haven't been added to the stack just yet. */
    private final List<Bubble> mPendingBubbles;
    private Bubble mSelectedBubble;
    private boolean mShowingOverflow;
    private boolean mExpanded;
    private final int mMaxBubbles;
    private final int mMaxOverflowBubbles;
@@ -215,6 +216,10 @@ public class BubbleData {
        dispatchPendingChanges();
    }

    void setShowingOverflow(boolean showingOverflow) {
        mShowingOverflow = showingOverflow;
    }

    private void moveOverflowBubbleToPending(Bubble b) {
        // Preserve new order for next repack, which sorts by last updated time.
        b.markUpdatedAt(mTimeSource.currentTimeMillis());
@@ -513,9 +518,11 @@ public class BubbleData {
        if (DEBUG_BUBBLE_DATA) {
            Log.d(TAG, "setSelectedBubbleInternal: " + bubble);
        }
        if (Objects.equals(bubble, mSelectedBubble)) {
        if (!mShowingOverflow && Objects.equals(bubble, mSelectedBubble)) {
            return;
        }
        // Otherwise, if we are showing the overflow menu, return to the previously selected bubble.

        if (bubble != null && !mBubbles.contains(bubble) && !mOverflowBubbles.contains(bubble)) {
            Log.e(TAG, "Cannot select bubble which doesn't exist!"
                    + " (" + bubble + ") bubbles=" + mBubbles);
@@ -559,6 +566,10 @@ public class BubbleData {
            mStateChange.orderChanged |= repackAll();
            // Save the state which should be returned to when expanded (with no other changes)

            if (mShowingOverflow) {
                // Show previously selected bubble instead of overflow menu on next expansion.
                setSelectedBubbleInternal(mSelectedBubble);
            }
            if (mBubbles.indexOf(mSelectedBubble) > 0) {
                // Move the selected bubble to the top while collapsed.
                if (!mSelectedBubble.isOngoing() && mBubbles.get(0).isOngoing()) {
+5 −2
Original line number Diff line number Diff line
@@ -442,8 +442,8 @@ public class BubbleStackView extends FrameLayout {
                    // that means overflow was previously expanded. Set the selected bubble
                    // internally without going through BubbleData (which would ignore it since it's
                    // already selected).
                    mBubbleData.setShowingOverflow(true);
                    setSelectedBubble(clickedBubble);

                }
            } else {
                // Otherwise, we either tapped the stack (which means we're collapsed
@@ -1232,8 +1232,12 @@ public class BubbleStackView extends FrameLayout {
        if (mExpandedBubble != null && mExpandedBubble.equals(bubbleToSelect)) {
            return;
        }
        if (bubbleToSelect == null || bubbleToSelect.getKey() != BubbleOverflow.KEY) {
            mBubbleData.setShowingOverflow(false);
        }
        final BubbleViewProvider previouslySelected = mExpandedBubble;
        mExpandedBubble = bubbleToSelect;
        updatePointerPosition();

        if (mIsExpanded) {
            // Make the container of the expanded view transparent before removing the expanded view
@@ -1243,7 +1247,6 @@ public class BubbleStackView extends FrameLayout {
            mSurfaceSynchronizer.syncSurfaceAndRun(() -> {
                previouslySelected.setContentVisibility(false);
                updateExpandedBubble();
                updatePointerPosition();
                requestUpdate();

                logBubbleEvent(previouslySelected,