diff --git a/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java b/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java index 73b0552..7242946 100644 --- a/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java +++ b/library/src/main/java/com/hackplan/androidarcmenu/ArcMenuLayout.java @@ -120,26 +120,6 @@ public class ArcMenuLayout extends ViewGroup { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: hideOnTouchUp = true; - break; - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_CANCEL: - if (!show) break; - if (lastFocusIndex != -1) { - show = false; - AnimatorUtils.openMenu(this, lastFocusIndex, animListener); - if (onClickMenuListener != null) { - View clickedView = getChildAt(lastFocusIndex); - onClickMenuListener.onClickArcMenu(arcMenu, viewForListener, (int) clickedView.getTag()); - } - } else if (hideOnTouchUp) { - if (showAnimSet != null && showAnimSet.isRunning()) showAnimSet.cancel(); - AnimatorUtils.hideMenu(this, touchPoint); - show = false; - } else { - hideOnTouchUp = true; - } - lastFocusIndex = -1; - break; case MotionEvent.ACTION_MOVE: if (!animFinished) break; tempRect = new Rect(); @@ -161,6 +141,25 @@ public class ArcMenuLayout extends ViewGroup { lastFocusIndex = -1; } break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + if (!show) break; + if (lastFocusIndex != -1) { + show = false; + AnimatorUtils.openMenu(this, lastFocusIndex, animListener); + if (onClickMenuListener != null) { + View clickedView = getChildAt(lastFocusIndex); + onClickMenuListener.onClickArcMenu(arcMenu, viewForListener, (int) clickedView.getTag()); + } + } else if (hideOnTouchUp) { + if (showAnimSet != null && showAnimSet.isRunning()) showAnimSet.cancel(); + AnimatorUtils.hideMenu(this, touchPoint); + show = false; + } else { + hideOnTouchUp = true; + } + lastFocusIndex = -1; + break; } return show;