Merge "Fix Conversation widget on new notif pipeline" into tm-dev

This commit is contained in:
Julia Tuttle
2022-04-05 16:50:56 +00:00
committed by Android (Google) Code Review

View File

@@ -441,12 +441,16 @@ public class PeopleSpaceWidgetManager {
Log.d(TAG, "Notification removed, key: " + sbn.getKey());
}
}
if (DEBUG) Log.d(TAG, "Fetching notifications");
Collection<NotificationEntry> notifications = mNotifCollection.getAllNotifs();
mBgExecutor.execute(
() -> updateWidgetsWithNotificationChangedInBackground(sbn, notificationAction));
() -> updateWidgetsWithNotificationChangedInBackground(
sbn, notificationAction, notifications));
}
private void updateWidgetsWithNotificationChangedInBackground(StatusBarNotification sbn,
PeopleSpaceUtils.NotificationAction action) {
PeopleSpaceUtils.NotificationAction action,
Collection<NotificationEntry> notifications) {
try {
PeopleTileKey key = new PeopleTileKey(
sbn.getShortcutId(), sbn.getUser().getIdentifier(), sbn.getPackageName());
@@ -469,7 +473,7 @@ public class PeopleSpaceWidgetManager {
Log.d(TAG, "Widgets by URI to be updated:" + tilesUpdatedByUri.toString());
}
tilesUpdated.addAll(tilesUpdatedByUri);
updateWidgetIdsBasedOnNotifications(tilesUpdated);
updateWidgetIdsBasedOnNotifications(tilesUpdated, notifications);
}
} catch (Exception e) {
Log.e(TAG, "Throwing exception: " + e);
@@ -477,15 +481,15 @@ public class PeopleSpaceWidgetManager {
}
/** Updates {@code widgetIdsToUpdate} with {@code action}. */
private void updateWidgetIdsBasedOnNotifications(Set<String> widgetIdsToUpdate) {
private void updateWidgetIdsBasedOnNotifications(Set<String> widgetIdsToUpdate,
Collection<NotificationEntry> ungroupedNotifications) {
if (widgetIdsToUpdate.isEmpty()) {
if (DEBUG) Log.d(TAG, "No widgets to update, returning.");
return;
}
try {
if (DEBUG) Log.d(TAG, "Fetching grouped notifications");
Map<PeopleTileKey, Set<NotificationEntry>> groupedNotifications =
getGroupedConversationNotifications();
groupConversationNotifications(ungroupedNotifications);
widgetIdsToUpdate
.stream()
@@ -510,7 +514,7 @@ public class PeopleSpaceWidgetManager {
"Augmenting tile from NotificationEntryManager widget: " + key.toString());
}
Map<PeopleTileKey, Set<NotificationEntry>> notifications =
getGroupedConversationNotifications();
groupConversationNotifications(mNotifCollection.getAllNotifs());
String contactUri = null;
if (tile.getContactUri() != null) {
contactUri = tile.getContactUri().toString();
@@ -518,9 +522,10 @@ public class PeopleSpaceWidgetManager {
return augmentTileFromNotifications(tile, key, contactUri, notifications, appWidgetId);
}
/** Returns active and pending notifications grouped by {@link PeopleTileKey}. */
public Map<PeopleTileKey, Set<NotificationEntry>> getGroupedConversationNotifications() {
Collection<NotificationEntry> notifications = mNotifCollection.getAllNotifs();
/** Groups active and pending notifications grouped by {@link PeopleTileKey}. */
public Map<PeopleTileKey, Set<NotificationEntry>> groupConversationNotifications(
Collection<NotificationEntry> notifications
) {
if (DEBUG) Log.d(TAG, "Number of total notifications: " + notifications.size());
Map<PeopleTileKey, Set<NotificationEntry>> groupedNotifications =
notifications