Set shortcut info even if metadata doesn't have shortcut id
Fixes: 159540176
Test: overflow labels set to chat name instead of app name
Test: only bubbles with metadata shortcut persist after phone reboot
Change-Id: Ia102f257953c7ba09cacb37aa1915f1dd1798d5f
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java b/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java
index a8bbdf6..b615885 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java
@@ -71,6 +71,7 @@
// Items that are typically loaded later
private String mAppName;
private ShortcutInfo mShortcutInfo;
+ private String mMetadataShortcutId;
private BadgedImageView mIconView;
private BubbleExpandedView mExpandedView;
@@ -218,6 +219,14 @@
return mTitle;
}
+ String getMetadataShortcutId() {
+ return mMetadataShortcutId;
+ }
+
+ boolean hasMetadataShortcutId() {
+ return (mMetadataShortcutId != null && !mMetadataShortcutId.isEmpty());
+ }
+
/**
* Call when the views should be removed, ensure this is called to clean up ActivityView
* content.
@@ -350,9 +359,9 @@
mAppUid = entry.getSbn().getUid();
mInstanceId = entry.getSbn().getInstanceId();
mFlyoutMessage = BubbleViewInfoTask.extractFlyoutMessage(entry);
- mShortcutInfo = (entry.getBubbleMetadata() != null
- && entry.getBubbleMetadata().getShortcutId() != null
- && entry.getRanking() != null) ? entry.getRanking().getShortcutInfo() : null;
+ mShortcutInfo = (entry.getRanking() != null ? entry.getRanking().getShortcutInfo() : null);
+ mMetadataShortcutId = (entry.getBubbleMetadata() != null
+ ? entry.getBubbleMetadata().getShortcutId() : null);
if (entry.getRanking() != null) {
mIsVisuallyInterruptive = entry.getRanking().visuallyInterruptive();
}
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDataRepository.kt b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDataRepository.kt
index 390f706..db64a13 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDataRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleDataRepository.kt
@@ -77,7 +77,7 @@
BubbleEntity(
userId,
b.packageName,
- b.shortcutInfo?.id ?: return@mapNotNull null,
+ b.metadataShortcutId ?: return@mapNotNull null,
b.key,
b.rawDesiredHeight,
b.rawDesiredHeightResId,
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
index 7c3e027..71d1087 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
@@ -173,7 +173,8 @@
return;
}
try {
- if (!mIsOverflow && mBubble.getShortcutInfo() != null) {
+ if (!mIsOverflow && mBubble.hasMetadataShortcutId()
+ && mBubble.getShortcutInfo() != null) {
options.setApplyActivityFlagsForBubbles(true);
mActivityView.startShortcutActivity(mBubble.getShortcutInfo(),
options, null /* sourceBounds */);
@@ -616,7 +617,7 @@
if (isNew) {
mPendingIntent = mBubble.getBubbleIntent();
- if (mPendingIntent != null || mBubble.getShortcutInfo() != null) {
+ if (mPendingIntent != null || mBubble.hasMetadataShortcutId()) {
setContentVisibility(false);
mActivityView.setVisibility(VISIBLE);
}
@@ -788,7 +789,7 @@
}
private boolean usingActivityView() {
- return (mPendingIntent != null || mBubble.getShortcutInfo() != null)
+ return (mPendingIntent != null || mBubble.hasMetadataShortcutId())
&& mActivityView != null;
}