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 ab25c45190dc1..e63be974a723c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -2008,6 +2008,9 @@ public class NotificationStackScrollLayout extends ViewGroup mStackScrollAlgorithm.onExpansionStopped(); if (!mIsExpanded) { mOwnScrollY = 0; + + // lets make sure nothing is in the overlay anymore + getOverlay().clear(); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java index 674642b3c437f..a56440ce31de8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java @@ -794,6 +794,11 @@ public class StackStateAnimator { mHostLayout.getOverlay().remove(changingView); } }); + } else if (event.animationType == + NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_REMOVE_SWIPED_OUT) { + // A race condition can trigger the view to be added to the overlay even though + // it is swiped out. So let's remove it + mHostLayout.getOverlay().remove(changingView); } mNewEvents.add(event); }