diff options
Diffstat (limited to 'packages/SystemUI/src/com/android')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java | 17 |
1 files changed, 16 insertions, 1 deletions
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<Pair<ExpandableNotificationRow, Boolean> > toRemove = new ArrayList<>(); + for (Pair<ExpandableNotificationRow, Boolean> 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 |