diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index dd0474165bd5c..eca89396a33e8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -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)); - } } } 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 67cc5e33d4b53..fd40c683931d3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -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();