Fixed a crash with the autocancelling
Change-Id: If9cb9cc89bafbc9e7e053b4758382239bac97adc
Fixes: 28878632
Fixes: 28898623
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 7a9b264..70f7c2c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
@@ -215,17 +215,23 @@
public boolean isOnlyChildInSuppressedGroup(StatusBarNotification sbn) {
return isGroupSuppressed(sbn.getGroupKey())
- && isOnlyChildInGroup(sbn);
+ && isOnlyChild(sbn);
}
- public boolean isOnlyChildInGroup(StatusBarNotification sbn) {
+ private boolean isOnlyChild(StatusBarNotification sbn) {
return !sbn.getNotification().isGroupSummary()
&& getTotalNumberOfChildren(sbn) == 1;
}
+ public boolean isOnlyChildInGroup(StatusBarNotification sbn) {
+ return isOnlyChild(sbn) && getLogicalGroupSummary(sbn) != null;
+ }
+
private int getTotalNumberOfChildren(StatusBarNotification sbn) {
- return getNumberOfIsolatedChildren(sbn.getGroupKey())
- + mGroupMap.get(sbn.getGroupKey()).children.size();
+ int isolatedChildren = getNumberOfIsolatedChildren(sbn.getGroupKey());
+ NotificationGroup group = mGroupMap.get(sbn.getGroupKey());
+ int realChildren = group != null ? group.children.size() : 0;
+ return isolatedChildren + realChildren;
}
private boolean isGroupSuppressed(String groupKey) {