Merge "Fix always-null children on NotificationEntry" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-05-31 17:03:05 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 5 deletions

View File

@@ -355,10 +355,10 @@ public class NotificationEntryManager implements
// a child we're keeping around for reply! // a child we're keeping around for reply!
continue; continue;
} }
entry.setKeepInParent(true); childEntry.setKeepInParent(true);
// we need to set this state earlier as otherwise we might generate some weird // we need to set this state earlier as otherwise we might generate some weird
// animations // animations
entry.removeRow(); childEntry.removeRow();
} }
} }
} }

View File

@@ -122,7 +122,6 @@ public final class NotificationEntry {
public boolean suspended; public boolean suspended;
private NotificationEntry parent; // our parent (if we're in a group) private NotificationEntry parent; // our parent (if we're in a group)
private ArrayList<NotificationEntry> children = new ArrayList<NotificationEntry>();
private ExpandableNotificationRow row; // the outer expanded view private ExpandableNotificationRow row; // the outer expanded view
private int mCachedContrastColor = COLOR_INVALID; private int mCachedContrastColor = COLOR_INVALID;
@@ -277,10 +276,20 @@ public final class NotificationEntry {
@Nullable @Nullable
public List<NotificationEntry> getChildren() { public List<NotificationEntry> getChildren() {
if (children.size() <= 0) { if (row == null) {
return null; return null;
} }
List<ExpandableNotificationRow> rowChildren = row.getNotificationChildren();
if (rowChildren == null) {
return null;
}
ArrayList<NotificationEntry> children = new ArrayList<>();
for (ExpandableNotificationRow child : rowChildren) {
children.add(child.getEntry());
}
return children; return children;
} }
@@ -740,7 +749,9 @@ public final class NotificationEntry {
if (notification == null || !notification.isClearable()) { if (notification == null || !notification.isClearable()) {
return false; return false;
} }
if (children.size() > 0) {
List<NotificationEntry> children = getChildren();
if (children != null && children.size() > 0) {
for (int i = 0; i < children.size(); i++) { for (int i = 0; i < children.size(); i++) {
NotificationEntry child = children.get(i); NotificationEntry child = children.get(i);
if (!child.isClearable()) { if (!child.isClearable()) {