diff --git a/src/com/android/launcher3/views/AbstractSlideInView.java b/src/com/android/launcher3/views/AbstractSlideInView.java index 59bea48c8c..26c8f243b5 100644 --- a/src/com/android/launcher3/views/AbstractSlideInView.java +++ b/src/com/android/launcher3/views/AbstractSlideInView.java @@ -108,7 +108,8 @@ public abstract class AbstractSlideInView extends AbstractFloatingView @Override public boolean onControllerTouchEvent(MotionEvent ev) { mSwipeDetector.onTouchEvent(ev); - if (ev.getAction() == MotionEvent.ACTION_UP && mSwipeDetector.isIdleState()) { + if (ev.getAction() == MotionEvent.ACTION_UP && mSwipeDetector.isIdleState() + && !isOpeningAnimationRunning()) { // If we got ACTION_UP without ever starting swipe, close the panel. if (!getPopupContainer().isEventOverView(mContent, ev)) { close(true); @@ -117,6 +118,10 @@ public abstract class AbstractSlideInView extends AbstractFloatingView return true; } + private boolean isOpeningAnimationRunning() { + return mIsOpen && mOpenCloseAnimator.isRunning(); + } + /* SwipeDetector.Listener */ @Override @@ -154,7 +159,7 @@ public abstract class AbstractSlideInView extends AbstractFloatingView onCloseComplete(); return; } - if (!mIsOpen || mOpenCloseAnimator.isRunning()) { + if (!mIsOpen) { return; } mOpenCloseAnimator.setValues(