From 88cb95278221edb428acdd67615553cdcbd2ab3f Mon Sep 17 00:00:00 2001 From: krimin_killr21 Date: Sun, 31 Jan 2016 22:48:20 -0500 Subject: [PATCH] Added option to dismiss when the target is touched. --- .../MaterialShowcaseView.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/library/src/main/java/uk/co/deanwild/materialshowcaseview/MaterialShowcaseView.java b/library/src/main/java/uk/co/deanwild/materialshowcaseview/MaterialShowcaseView.java index cfae32a0..dd48fe4f 100644 --- a/library/src/main/java/uk/co/deanwild/materialshowcaseview/MaterialShowcaseView.java +++ b/library/src/main/java/uk/co/deanwild/materialshowcaseview/MaterialShowcaseView.java @@ -75,6 +75,7 @@ public class MaterialShowcaseView extends FrameLayout implements View.OnTouchLis private UpdateOnGlobalLayout mLayoutListener; private IDetachedListener mDetachedListener; private boolean mTargetTouchable = false; + private boolean mDismissOnTargetTouch = true; public MaterialShowcaseView(Context context) { super(context); @@ -204,6 +205,9 @@ public boolean onTouch(View v, MotionEvent event) { hide(); } if(mTargetTouchable && mTarget.getBounds().contains((int)event.getX(), (int)event.getY())){ + if(mDismissOnTargetTouch){ + hide(); + } return false; } return true; @@ -412,6 +416,10 @@ private void setTargetTouchable(boolean targetTouchable){ mTargetTouchable = targetTouchable; } + private void setDismissOnTargetTouch(boolean dismissOnTargetTouch){ + mDismissOnTargetTouch = dismissOnTargetTouch; + } + public void addShowcaseListener(IShowcaseListener showcaseListener) { mListeners.add(showcaseListener); } @@ -554,6 +562,16 @@ public Builder setTargetTouchable(boolean targetTouchable){ return this; } + /** + * Set whether or not the showcase should dismiss when the target is touched. + * + * True by default. + */ + public Builder setDismissOnTargetTouch(boolean dismissOnTargetTouch){ + showcaseView.setDismissOnTargetTouch(dismissOnTargetTouch); + return this; + } + public Builder setDismissOnTouch(boolean dismissOnTouch) { showcaseView.setDismissOnTouch(dismissOnTouch); return this;