diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java b/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java index a8bbdf6b68c96..b615885596eee 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 @@ class Bubble implements BubbleViewProvider { // 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 @@ class Bubble implements BubbleViewProvider { 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 @@ class Bubble implements BubbleViewProvider { 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 390f7064a2271..db64a13f3df34 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 @@ internal class BubbleDataRepository @Inject constructor( 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 7c3e027e2e655..71d10875e9f2e 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 @@ public class BubbleExpandedView extends LinearLayout { 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 @@ public class BubbleExpandedView extends LinearLayout { 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 @@ public class BubbleExpandedView extends LinearLayout { } private boolean usingActivityView() { - return (mPendingIntent != null || mBubble.getShortcutInfo() != null) + return (mPendingIntent != null || mBubble.hasMetadataShortcutId()) && mActivityView != null; }