diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index f4b7728055987..3c6e999329110 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1544,6 +1544,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } 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 6f3c95e189463..ffa246ae3fdc5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -3589,6 +3589,15 @@ public class NotificationStackScrollLayout extends ViewGroup setFadedOut(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); + } + /** * A listener that is notified when some child locations might have changed. */