Fixed a crash with HUN notifications

Bug: 20925733
Change-Id: Id96c9e476d9faa770b5bcd3c35213dd0debdeaea
This commit is contained in:
Selim Cinek
2015-05-21 12:11:12 -07:00
parent 769832d111
commit ffa6eb8791

View File

@@ -1656,7 +1656,7 @@ public class NotificationStackScrollLayout extends ViewGroup
*/ */
private boolean generateRemoveAnimation(View child) { private boolean generateRemoveAnimation(View child) {
if (mIsExpanded && mAnimationsEnabled && !isChildInInvisibleGroup(child)) { if (mIsExpanded && mAnimationsEnabled && !isChildInInvisibleGroup(child)) {
if (!mChildrenToAddAnimated.contains(child)) { if (!mChildrenToAddAnimated.contains(child) && !mAddedHeadsUpChildren.contains(child)) {
// Generate Animations // Generate Animations
mChildrenToRemoveAnimated.add(child); mChildrenToRemoveAnimated.add(child);
mNeedsAnimation = true; mNeedsAnimation = true;
@@ -1664,12 +1664,27 @@ public class NotificationStackScrollLayout extends ViewGroup
} else { } else {
mChildrenToAddAnimated.remove(child); mChildrenToAddAnimated.remove(child);
mFromMoreCardAdditions.remove(child); mFromMoreCardAdditions.remove(child);
boolean remove = mAddedHeadsUpChildren.remove(child);
if (remove) {
removeChildFromHeadsUpChangeAnimations(child);
}
return false; return false;
} }
} }
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 * @param child the child to query
* @return whether a view is not a top level child but a child notification and that group is * @return whether a view is not a top level child but a child notification and that group is