summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java17
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()) {