diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index e378e871394cc..9d1d03859f815 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -34,10 +34,9 @@ import android.view.animation.Interpolator; import android.widget.FrameLayout; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; -import com.android.systemui.DejankUtils; -import com.android.systemui.EventLogTags; -import com.android.systemui.Interpolators; import com.android.keyguard.LatencyTracker; +import com.android.systemui.DejankUtils; +import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.classifier.FalsingManager; import com.android.systemui.doze.DozeLog; @@ -833,6 +832,14 @@ public abstract class PanelView extends FrameLayout { } } + // If we are closing the panel and we are almost there due to a slow decelerating + // interpolator, abort the animation. + if (mExpandedHeight < 1f && mExpandedHeight != 0f && mClosing) { + mExpandedHeight = 0f; + if (mHeightAnimator != null) { + mHeightAnimator.end(); + } + } mExpandedFraction = Math.min(1f, fhWithoutOverExpansion == 0 ? 0 : mExpandedHeight / fhWithoutOverExpansion); onHeightUpdated(mExpandedHeight); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 916b603f54fa6..970d1de251d5b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -121,12 +121,12 @@ public class PhoneStatusBarView extends PanelBar { public void onPanelCollapsed() { super.onPanelCollapsed(); // Close the status bar in the next frame so we can show the end of the animation. - DejankUtils.postAfterTraversal(mHideExpandedRunnable); + post(mHideExpandedRunnable); mIsFullyOpenedPanel = false; } public void removePendingHideExpandedRunnables() { - DejankUtils.removeCallbacks(mHideExpandedRunnable); + removeCallbacks(mHideExpandedRunnable); } @Override