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

Commit 89c85078 authored by Mady Mellor's avatar Mady Mellor Committed by Android (Google) Code Review
Browse files

Merge "Don't include a flyout for BubbleInfo object if we shouldn't show it" into main

parents a7bc64b4 6fab51bd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -496,7 +496,7 @@ public class Bubble implements BubbleViewProvider {
    /** Creates a parcelable flyout message to send to launcher. */
    @Nullable
    private ParcelableFlyoutMessage getParcelableFlyoutMessage() {
        if (mFlyoutMessage == null) {
        if (mFlyoutMessage == null || !showFlyout()) {
            return null;
        }
        // the icon is only used in group chats
+37 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.os.Bundle;
import android.os.UserHandle;
@@ -315,6 +316,42 @@ public class BubbleTest extends ShellTestCase {
        assertThat(bubble.getTaskId()).isEqualTo(INVALID_TASK_ID);
    }

    @Test
    public void testAsBubbleBarBubble_showFlyoutFalse() {
        Bubble b = createChatBubble(true);
        BubbleViewInfoTask.BubbleViewInfo info = new BubbleViewInfoTask.BubbleViewInfo();
        info.flyoutMessage = createFlyoutMessage();
        b.setViewInfo(info);
        b.setSuppressFlyout(true);

        assertThat(b.showFlyout()).isFalse();

        BubbleInfo bubbleInfo = b.asBubbleBarBubble();
        assertThat(bubbleInfo.getParcelableFlyoutMessage()).isNull();
    }

    @Test
    public void testAsBubbleBarBubble_showFlyoutTrue() {
        Bubble b = createChatBubble(true);
        BubbleViewInfoTask.BubbleViewInfo info = new BubbleViewInfoTask.BubbleViewInfo();
        info.flyoutMessage = createFlyoutMessage();
        b.setViewInfo(info);

        assertThat(b.showFlyout()).isTrue();

        BubbleInfo bubbleInfo = b.asBubbleBarBubble();
        assertThat(bubbleInfo.getParcelableFlyoutMessage()).isNotNull();
    }

    private Bubble.FlyoutMessage createFlyoutMessage() {
        Bubble.FlyoutMessage flyout = new Bubble.FlyoutMessage();
        flyout.senderIcon = mock(Icon.class);
        flyout.senderAvatar = mock(Drawable.class);
        flyout.senderName = "senderName";
        flyout.message = "help I'm trapped in a bubble";
        return flyout;
    }

    private Intent createIntent() {
        Intent intent = new Intent(mContext, BubblesTestActivity.class);
        intent.setPackage(mContext.getPackageName());