diff --git a/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java b/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java index 2f5afe2..cbe2286 100644 --- a/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java +++ b/materialintro/src/main/java/co/mobiwise/materialintro/view/MaterialIntroView.java @@ -220,6 +220,11 @@ public class MaterialIntroView extends RelativeLayout { */ private boolean usesCustomShape = false; + /** + * status of dismiss + */ + private boolean isDismiss = false; + public MaterialIntroView(Context context) { super(context); init(context); @@ -372,16 +377,17 @@ public boolean onTouchEvent(MotionEvent event) { return true; case MotionEvent.ACTION_UP: - - if (isTouchOnFocus || dismissOnTouch) - dismiss(); - - if (isTouchOnFocus && isPerformClick) { - targetView.getView().performClick(); - targetView.getView().setPressed(true); - targetView.getView().invalidate(); - targetView.getView().setPressed(false); - targetView.getView().invalidate(); + if(!isDismiss){ + if (isTouchOnFocus || dismissOnTouch) + dismiss(); + + if (isTouchOnFocus && isPerformClick) { + targetView.getView().performClick(); + targetView.getView().setPressed(true); + targetView.getView().invalidate(); + targetView.getView().setPressed(false); + targetView.getView().invalidate(); + } } return true; @@ -425,12 +431,14 @@ public void onAnimationStart() { if(isIdempotent) { preferencesManager.setDisplayed(materialIntroViewId); } + isDismiss = false; } /** * Dismiss Material Intro View */ public void dismiss() { + isDismiss = true; if(!isIdempotent) { preferencesManager.setDisplayed(materialIntroViewId); }