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

Commit 80166f36 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ensure expanding a bubble bar chat bubble hides the notification" into main

parents 068860c6 3e1d0094
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1608,7 +1608,7 @@ public class BubbleController implements ConfigurationChangeListener,
        mBubblePositioner.updateBubbleBarTopOnScreen(bubbleBarTopToScreenBottom);

        if (BubbleOverflow.KEY.equals(key)) {
            mBubbleData.setSelectedBubbleFromLauncher(mBubbleData.getOverflow());
            mBubbleData.expandAndSelectBubbleFromLauncher(mBubbleData.getOverflow());
            mLayerView.showExpandedView(mBubbleData.getOverflow());
            mLogger.log(BubbleLogger.Event.BUBBLE_BAR_OVERFLOW_SELECTED);
            return;
@@ -1622,7 +1622,7 @@ public class BubbleController implements ConfigurationChangeListener,
        final boolean wasExpanded = (mLayerView != null && mLayerView.isExpanded());
        if (mBubbleData.hasBubbleInStackWithKey(b.getKey())) {
            // already in the stack
            mBubbleData.setSelectedBubbleFromLauncher(b);
            mBubbleData.expandAndSelectBubbleFromLauncher(b);
            mLayerView.showExpandedView(b);
            if (wasExpanded) {
                mLogger.log(b, BubbleLogger.Event.BUBBLE_BAR_BUBBLE_SWITCHED);
+1 −4
Original line number Diff line number Diff line
@@ -383,13 +383,10 @@ public class BubbleData {
     * will already be updated so we don't need to notify them again, but BubbleData should be
     * updated to have the correct state.
     */
    public void setSelectedBubbleFromLauncher(BubbleViewProvider bubble) {
    public void expandAndSelectBubbleFromLauncher(BubbleViewProvider bubble) {
        ProtoLog.d(WM_SHELL_BUBBLES, "setSelectedBubbleFromLauncher=%s",
                (bubble != null ? bubble.getKey() : "null"));
        mExpanded = true;
        if (Objects.equals(bubble, mSelectedBubble)) {
            return;
        }
        boolean isOverflow = bubble != null && BubbleOverflow.KEY.equals(bubble.getKey());
        if (bubble != null
                && !mBubbles.contains(bubble)
+28 −0
Original line number Diff line number Diff line
@@ -1403,12 +1403,14 @@ public class BubbleDataTest extends ShellTestCase {
        sendUpdatedEntryAtTime(mEntryA1, 1000);
        sendUpdatedEntryAtTime(mEntryA2, 2000);
        mBubbleData.setListener(mListener);
        assertThat(mBubbleA1.showInShade()).isTrue();

        mBubbleData.setSelectedBubbleAndExpandStack(mBubbleA1);

        verifyUpdateReceived();
        assertSelectionChangedTo(mBubbleA1);
        assertExpandedChangedTo(true);
        assertThat(mBubbleA1.showInShade()).isFalse();
    }

    @Test
@@ -1416,6 +1418,7 @@ public class BubbleDataTest extends ShellTestCase {
        sendUpdatedEntryAtTime(mEntryA1, 1000);
        sendUpdatedEntryAtTime(mEntryA2, 2000);
        mBubbleData.setListener(mListener);
        assertThat(mBubbleA1.showInShade()).isTrue();

        mBubbleData.setSelectedBubbleAndExpandStack(mBubbleA1, BubbleBarLocation.LEFT);

@@ -1423,6 +1426,7 @@ public class BubbleDataTest extends ShellTestCase {
        assertSelectionChangedTo(mBubbleA1);
        assertExpandedChangedTo(true);
        assertLocationChangedTo(BubbleBarLocation.LEFT);
        assertThat(mBubbleA1.showInShade()).isFalse();
    }

    @Test
@@ -1470,6 +1474,30 @@ public class BubbleDataTest extends ShellTestCase {
        assertThat(mBubbleData.getOverflowBubbles()).isEmpty();
    }

    @Test
    public void testExpandAndSelectBubbleFromLauncher_sameSelection() {
        sendUpdatedEntryAtTime(mEntryA1, 1000);
        assertThat(mBubbleA1.showInShade()).isTrue();

        mBubbleData.expandAndSelectBubbleFromLauncher(mBubbleA1);
        assertThat(mBubbleA1.showInShade()).isFalse();
        assertThat(mBubbleData.isExpanded()).isTrue();
    }

    @Test
    public void testExpandAndSelectBubbleFromLauncher_newSelection() {
        sendUpdatedEntryAtTime(mEntryA1, 1000);
        sendUpdatedEntryAtTime(mEntryA2, 1000);
        assertThat(mBubbleA1.showInShade()).isTrue();
        assertThat(mBubbleA2.showInShade()).isTrue();
        assertThat(mBubbleData.getSelectedBubble()).isEqualTo(mBubbleA2);

        mBubbleData.expandAndSelectBubbleFromLauncher(mBubbleA1);
        assertThat(mBubbleA1.showInShade()).isFalse();
        assertThat(mBubbleA2.showInShade()).isTrue();
        assertThat(mBubbleData.isExpanded()).isTrue();
    }

    private void verifyUpdateReceived() {
        verify(mListener).applyUpdate(mUpdateCaptor.capture());
        reset(mListener);