Don't query for the bubble shortcut if it's already on the NotifRecord

Test: atest NotificationManagerTest
Fixes: 150226770
Change-Id: I9d3a4e368155ea7c8b5611e0d6a3d8b95470022f
This commit is contained in:
Mady Mellor
2020-03-05 11:35:21 -08:00
parent 774d5fe0cd
commit 53af63e0f1

View File

@@ -157,8 +157,8 @@ public class BubbleExtractor implements NotificationSignalExtractor {
}
/**
* @return whether the user has enabled the provided notification to bubble, does not
* account for policy.
* @return whether the user has enabled the provided notification to bubble, and if the
* developer has provided valid information for the notification to bubble.
*/
@VisibleForTesting
boolean canBubble(NotificationRecord r, String pkg, int userId) {
@@ -184,8 +184,17 @@ public class BubbleExtractor implements NotificationSignalExtractor {
}
String shortcutId = metadata.getShortcutId();
boolean shortcutValid = shortcutId != null
&& mShortcutHelper.getValidShortcutInfo(shortcutId, pkg, r.getUser()) != null;
String notificationShortcutId = r.getShortcutInfo() != null
? r.getShortcutInfo().getId()
: null;
boolean shortcutValid = false;
if (notificationShortcutId != null && shortcutId != null) {
// NoMan already checks validity of shortcut, just check if they match.
shortcutValid = shortcutId.equals(notificationShortcutId);
} else if (shortcutId != null) {
shortcutValid =
mShortcutHelper.getValidShortcutInfo(shortcutId, pkg, r.getUser()) != null;
}
if (metadata.getIntent() == null && !shortcutValid) {
// Should have a shortcut if intent is null
logBubbleError(r.getKey(),