diff options
2 files changed, 16 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java index e8388ceded04..879a8dfa2875 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java @@ -355,10 +355,10 @@ public class NotificationEntryManager implements // a child we're keeping around for reply! continue; } - entry.setKeepInParent(true); + childEntry.setKeepInParent(true); // we need to set this state earlier as otherwise we might generate some weird // animations - entry.removeRow(); + childEntry.removeRow(); } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java index a3e18efa1915..92c261c4cad7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java @@ -122,7 +122,6 @@ public final class NotificationEntry { public boolean suspended; 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 int mCachedContrastColor = COLOR_INVALID; @@ -277,10 +276,20 @@ public final class NotificationEntry { @Nullable public List<NotificationEntry> getChildren() { - if (children.size() <= 0) { + if (row == 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; } @@ -740,7 +749,9 @@ public final class NotificationEntry { if (notification == null || !notification.isClearable()) { return false; } - if (children.size() > 0) { + + List<NotificationEntry> children = getChildren(); + if (children != null && children.size() > 0) { for (int i = 0; i < children.size(); i++) { NotificationEntry child = children.get(i); if (!child.isClearable()) { |