Merge "Fix leak in NotificationStackScroller by nulling out translatingParent"
This commit is contained in:
committed by
Android (Google) Code Review
commit
89f423d375
@@ -1684,6 +1684,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
|
||||
if (entry != null && entry.row != null) {
|
||||
entry.row.setRemoved();
|
||||
mStackScroller.cleanUpViewState(entry.row);
|
||||
}
|
||||
// Let's remove the children if this was a summary
|
||||
handleGroupSummaryRemoved(key, ranking);
|
||||
@@ -1740,12 +1741,6 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
// animations
|
||||
toRemove.get(i).setRemoved();
|
||||
}
|
||||
for (int i = 0; i < toRemove.size(); i++) {
|
||||
removeNotification(toRemove.get(i).getStatusBarNotification().getKey(), ranking);
|
||||
// we need to ensure that the view is actually properly removed from the viewstate
|
||||
// as this won't happen anymore when kept in the parent.
|
||||
mStackScroller.removeViewStateForView(toRemove.get(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2473,6 +2473,17 @@ public class NotificationStackScrollLayout extends ViewGroup
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a notification is removed from the shade. This cleans up the state for a given
|
||||
* view.
|
||||
*/
|
||||
public void cleanUpViewState(View child) {
|
||||
if (child == mTranslatingParentView) {
|
||||
mTranslatingParentView = null;
|
||||
}
|
||||
mCurrentStackScrollState.removeViewStateForView(child);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
|
||||
super.requestDisallowInterceptTouchEvent(disallowIntercept);
|
||||
@@ -4070,15 +4081,6 @@ public class NotificationStackScrollLayout extends ViewGroup
|
||||
setFadingOut(alpha != 1.0f);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the a given view from the viewstate. This is currently used when the children are
|
||||
* kept in the parent artificially to have a nicer animation.
|
||||
* @param view the view to remove
|
||||
*/
|
||||
public void removeViewStateForView(View view) {
|
||||
mCurrentStackScrollState.removeViewStateForView(view);
|
||||
}
|
||||
|
||||
public void setQsExpanded(boolean qsExpanded) {
|
||||
mQsExpanded = qsExpanded;
|
||||
updateAlgorithmLayoutMinHeight();
|
||||
|
||||
Reference in New Issue
Block a user