summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java25
1 files changed, 15 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
index f6e1cd49eb40..08249a3d493e 100644
--- a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
+++ b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
@@ -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