Merge "App bubble bar bubbles crash fix" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8a5e18bc5f
@@ -297,7 +297,7 @@ public class Bubble implements BubbleViewProvider {
|
|||||||
public BubbleInfo asBubbleBarBubble() {
|
public BubbleInfo asBubbleBarBubble() {
|
||||||
return new BubbleInfo(getKey(),
|
return new BubbleInfo(getKey(),
|
||||||
getFlags(),
|
getFlags(),
|
||||||
getShortcutInfo().getId(),
|
getShortcutId(),
|
||||||
getIcon(),
|
getIcon(),
|
||||||
getUser().getIdentifier(),
|
getUser().getIdentifier(),
|
||||||
getPackageName());
|
getPackageName());
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ public class BubbleInfo implements Parcelable {
|
|||||||
|
|
||||||
private String mKey; // Same key as the Notification
|
private String mKey; // Same key as the Notification
|
||||||
private int mFlags; // Flags from BubbleMetadata
|
private int mFlags; // Flags from BubbleMetadata
|
||||||
|
@Nullable
|
||||||
private String mShortcutId;
|
private String mShortcutId;
|
||||||
private int mUserId;
|
private int mUserId;
|
||||||
private String mPackageName;
|
private String mPackageName;
|
||||||
@@ -46,7 +47,7 @@ public class BubbleInfo implements Parcelable {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private Icon mIcon;
|
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) {
|
int userId, String packageName) {
|
||||||
mKey = key;
|
mKey = key;
|
||||||
mFlags = flags;
|
mFlags = flags;
|
||||||
@@ -69,10 +70,12 @@ public class BubbleInfo implements Parcelable {
|
|||||||
return mKey;
|
return mKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public String getShortcutId() {
|
public String getShortcutId() {
|
||||||
return mShortcutId;
|
return mShortcutId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public Icon getIcon() {
|
public Icon getIcon() {
|
||||||
return mIcon;
|
return mIcon;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import android.content.pm.ShortcutInfo;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.service.notification.StatusBarNotification;
|
import android.service.notification.StatusBarNotification;
|
||||||
import android.testing.AndroidTestingRunner;
|
import android.testing.AndroidTestingRunner;
|
||||||
import android.testing.TestableLooper;
|
import android.testing.TestableLooper;
|
||||||
@@ -42,6 +43,7 @@ import androidx.test.filters.SmallTest;
|
|||||||
import com.android.wm.shell.R;
|
import com.android.wm.shell.R;
|
||||||
import com.android.wm.shell.ShellTestCase;
|
import com.android.wm.shell.ShellTestCase;
|
||||||
import com.android.wm.shell.common.ShellExecutor;
|
import com.android.wm.shell.common.ShellExecutor;
|
||||||
|
import com.android.wm.shell.common.bubbles.BubbleInfo;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -179,6 +181,34 @@ public class BubbleTest extends ShellTestCase {
|
|||||||
assertThat(bubble.isConversation()).isFalse();
|
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() {
|
private Bubble createBubbleWithShortcut() {
|
||||||
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
|
ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(mContext)
|
||||||
.setId("mockShortcutId")
|
.setId("mockShortcutId")
|
||||||
|
|||||||
Reference in New Issue
Block a user