From ffa6eb8791b65d3959682ee187124c1a06d28884 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Thu, 21 May 2015 12:11:12 -0700 Subject: Fixed a crash with HUN notifications Bug: 20925733 Change-Id: Id96c9e476d9faa770b5bcd3c35213dd0debdeaea --- .../statusbar/stack/NotificationStackScrollLayout.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'packages/SystemUI/src/com/android') diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index bd3b9eb..e73c593 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -1656,7 +1656,7 @@ public class NotificationStackScrollLayout extends ViewGroup */ private boolean generateRemoveAnimation(View child) { if (mIsExpanded && mAnimationsEnabled && !isChildInInvisibleGroup(child)) { - if (!mChildrenToAddAnimated.contains(child)) { + if (!mChildrenToAddAnimated.contains(child) && !mAddedHeadsUpChildren.contains(child)) { // Generate Animations mChildrenToRemoveAnimated.add(child); mNeedsAnimation = true; @@ -1664,12 +1664,27 @@ public class NotificationStackScrollLayout extends ViewGroup } else { mChildrenToAddAnimated.remove(child); mFromMoreCardAdditions.remove(child); + boolean remove = mAddedHeadsUpChildren.remove(child); + if (remove) { + removeChildFromHeadsUpChangeAnimations(child); + } return false; } } return false; } + private void removeChildFromHeadsUpChangeAnimations(View child) { + ArrayList > toRemove = new ArrayList<>(); + for (Pair eventPair : mHeadsUpChangeAnimations) { + ExpandableNotificationRow row = eventPair.first; + if (child == row) { + toRemove.add(eventPair); + } + } + mHeadsUpChangeAnimations.removeAll(toRemove); + } + /** * @param child the child to query * @return whether a view is not a top level child but a child notification and that group is -- cgit v1.1