package com.appboy.ui.inappmessage.listeners; import android.view.MotionEvent; import android.view.View; /** * Adds touch events to the SwipeDismissTouchListener. * * Note: The SwipeDismissTouchListener requires API level 12 or later due to use of {@link * android.view.ViewPropertyAnimator}.</p> */ public class TouchAwareSwipeDismissTouchListener extends SwipeDismissTouchListener { private ITouchListener mTouchListener; public interface ITouchListener { void onTouchStartedOrContinued(); void onTouchEnded(); } public TouchAwareSwipeDismissTouchListener(View view, Object token, DismissCallbacks callbacks) { super(view, token, callbacks); } public void setTouchListener(ITouchListener touchListener) { mTouchListener = touchListener; } @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: if (mTouchListener != null) { mTouchListener.onTouchStartedOrContinued(); } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: if (mTouchListener != null) { mTouchListener.onTouchEnded(); } break; default: break; } return super.onTouch(view, motionEvent); } }