Fixed a bug where the statusbar could become empty
Because fullscreen intent notifications could suddenly
become children.
Change-Id: I2eb8f2bf671b5d039ac3493f281debbe730dc828
Fixes: 28166429
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
index a51ee4d..9778a3a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
@@ -119,11 +119,22 @@
group.expanded = added.row.areChildrenExpanded();
updateSuppression(group);
if (!group.children.isEmpty()) {
+ HashSet<NotificationData.Entry> childrenCopy =
+ (HashSet<NotificationData.Entry>) group.children.clone();
+ for (NotificationData.Entry child : childrenCopy) {
+ onEntryBecomingChild(child);
+ }
mListener.onGroupCreatedFromChildren(group);
}
}
}
+ private void onEntryBecomingChild(NotificationData.Entry entry) {
+ if (entry.row.isHeadsUp()) {
+ onHeadsUpStateChanged(entry, true);
+ }
+ }
+
public void onEntryBundlingUpdated(final NotificationData.Entry updated,
final String overrideGroupKey) {
final StatusBarNotification oldSbn = updated.notification.clone();
@@ -188,6 +199,8 @@
updateSuppression(mGroupMap.get(oldKey));
updateSuppression(mGroupMap.get(newKey));
}
+ } else if (!isGroupChild(oldNotification) && isGroupChild(entry.notification)) {
+ onEntryBecomingChild(entry);
}
}
@@ -354,7 +367,6 @@
mListener.onGroupsChanged();
} else {
handleSuppressedSummaryHeadsUpped(entry);
-
}
} else {
if (mIsolatedEntries.containsKey(sbn.getKey())) {