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

Commit fa4323fe authored by Ivan Tkachenko's avatar Ivan Tkachenko Committed by Automerger Merge Worker
Browse files

Merge "App bubble bar bubbles crash fix" into udc-dev am: 8a5e18bc

parents 5df4a7cb 8a5e18bc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -297,7 +297,7 @@ public class Bubble implements BubbleViewProvider {
    public BubbleInfo asBubbleBarBubble() {
        return new BubbleInfo(getKey(),
                getFlags(),
                getShortcutInfo().getId(),
                getShortcutId(),
                getIcon(),
                getUser().getIdentifier(),
                getPackageName());
+4 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ public class BubbleInfo implements Parcelable {

    private String mKey; // Same key as the Notification
    private int mFlags;  // Flags from BubbleMetadata
    @Nullable
    private String mShortcutId;
    private int mUserId;
    private String mPackageName;
@@ -46,7 +47,7 @@ public class BubbleInfo implements Parcelable {
    @Nullable
    private Icon mIcon;

    public BubbleInfo(String key, int flags, String shortcutId, @Nullable Icon icon,
    public BubbleInfo(String key, int flags, @Nullable String shortcutId, @Nullable Icon icon,
            int userId, String packageName) {
        mKey = key;
        mFlags = flags;
@@ -69,10 +70,12 @@ public class BubbleInfo implements Parcelable {
        return mKey;
    }

    @Nullable
    public String getShortcutId() {
        return mShortcutId;
    }

    @Nullable
    public Icon getIcon() {
        return mIcon;
    }
+31 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.content.pm.ShortcutInfo;
import android.content.res.Resources;
import android.graphics.drawable.Icon;
import android.os.Bundle;
import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -42,6 +43,7 @@ import androidx.test.filters.SmallTest;
import com.android.wm.shell.R;
import com.android.wm.shell.ShellTestCase;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.bubbles.BubbleInfo;

import org.junit.Before;
import org.junit.Test;
@@ -179,6 +181,34 @@ public class BubbleTest extends ShellTestCase {
        assertThat(bubble.isConversation()).isFalse();
    }

    @Test
    public void testBubbleAsBubbleBarBubble_withShortcut() {
        Bubble bubble = createBubbleWithShortcut();
        BubbleInfo bubbleInfo = bubble.asBubbleBarBubble();

        assertThat(bubble.getShortcutInfo()).isNotNull();
        assertThat(bubbleInfo.getShortcutId()).isNotNull();
        assertThat(bubbleInfo.getShortcutId()).isEqualTo(bubble.getShortcutId());
        assertThat(bubbleInfo.getKey()).isEqualTo(bubble.getKey());
        assertThat(bubbleInfo.getUserId()).isEqualTo(bubble.getUser().getIdentifier());
        assertThat(bubbleInfo.getPackageName()).isEqualTo(bubble.getPackageName());
    }

    @Test
    public void testBubbleAsBubbleBarBubble_withoutShortcut() {
        Intent intent = new Intent(mContext, BubblesTestActivity.class);
        intent.setPackage(mContext.getPackageName());
        Bubble bubble = Bubble.createAppBubble(intent, new UserHandle(1 /* userId */),
                null /* icon */, mMainExecutor);
        BubbleInfo bubbleInfo = bubble.asBubbleBarBubble();

        assertThat(bubble.getShortcutInfo()).isNull();
        assertThat(bubbleInfo.getShortcutId()).isNull();
        assertThat(bubbleInfo.getKey()).isEqualTo(bubble.getKey());
        assertThat(bubbleInfo.getUserId()).isEqualTo(bubble.getUser().getIdentifier());
        assertThat(bubbleInfo.getPackageName()).isEqualTo(bubble.getPackageName());
    }

    private Bubble createBubbleWithShortcut() {
        ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
                .setId("mockShortcutId")