Example usage for android.support.v4.view MotionEventCompat getActionMasked

List of usage examples for android.support.v4.view MotionEventCompat getActionMasked

Introduction

In this page you can find the example usage for android.support.v4.view MotionEventCompat getActionMasked.

Prototype

public static int getActionMasked(MotionEvent event) 

Source Link

Document

Call MotionEvent#getAction , returning only the #ACTION_MASK portion.

Usage

From source file:com.github.ppamorim.dragger.DraggerView.java

/**
 * Detect the type of motion event (like touch)
 * at the DraggerView, this can be a simple
 * detector of the touch, not the listener ifself.
 *
 * @param ev Event of MotionEvent/*from  ww  w .  j ava 2s  .  co m*/
 * @return View is touched
 */
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (!isEnabled() || !canSlide()) {
        return false;
    }
    final int action = MotionEventCompat.getActionMasked(ev);
    switch (action) {
    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
        dragHelper.cancel();
        return false;
    case MotionEvent.ACTION_DOWN:
        int index = MotionEventCompat.getActionIndex(ev);
        activePointerId = MotionEventCompat.getPointerId(ev, index);
        if (activePointerId == INVALID_POINTER) {
            return false;
        }
    default:
        return dragHelper.shouldInterceptTouchEvent(ev);
    }
}

From source file:com.waz.zclient.pages.main.conversationlist.views.listview.SwipeListView.java

/**
 * @see android.widget.ListView#onInterceptTouchEvent(android.view.MotionEvent)
 *///  w w  w. j a v a  2 s  . co  m
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    int action = MotionEventCompat.getActionMasked(ev);
    final float x = ev.getX();
    final float y = ev.getY();
    switch (action) {
    case MotionEvent.ACTION_DOWN:
        touchState = TOUCH_STATE_REST;
        velocityTracker = VelocityTracker.obtain();
        velocityTracker.addMovement(ev);
        lastMotionX = x;
        lastMotionY = y;
        if (isItemOpen) {
            getParent().requestDisallowInterceptTouchEvent(true);
            //return true;
        }
        return super.onInterceptTouchEvent(ev);
    case MotionEvent.ACTION_MOVE:
        if (touchState != TOUCH_STATE_REST) {
            return true;
        }
        break;
    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
        velocityTracker.recycle();
        velocityTracker = null;
        break;
    }
    return super.onInterceptTouchEvent(ev);
}

From source file:com.android2.calculator3.view.CalculatorPadView.java

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    int action = MotionEventCompat.getActionMasked(ev);
    float pos = ev.getRawX();
    mInterceptingTouchEvents = false;//from   w w w  .j  a va  2 s  .  co  m

    switch (action) {
    case MotionEvent.ACTION_DOWN:
        mInitialMotion = pos;
        mLastMotion = pos;
        handleDown();
        break;
    case MotionEvent.ACTION_MOVE:
        // Reset initial motion if the user drags in a different direction suddenly
        if ((pos - mInitialMotion) / Math.abs(pos - mInitialMotion) != (pos - mLastMotion)
                / Math.abs(pos - mLastMotion)) {
            mInitialMotion = mLastMotion;
        }

        float delta = Math.abs(pos - mInitialMotion);
        if (delta > mTouchSlop) {
            float dx = pos - mInitialMotion;
            if (dx < 0) {
                mInterceptingTouchEvents = getState() == TranslateState.COLLAPSED;
            } else if (dx > 0) {
                mInterceptingTouchEvents = getState() == TranslateState.EXPANDED;
            }
        }
        mLastMotion = pos;
        break;
    }

    return mInterceptingTouchEvents;
}

From source file:com.github.ppamorim.cult.CultView.java

/**
 * Override method to dispatch touch//from   ww w .java2s . co  m
 * event to the dragged view.
 *
 * @param ev captured.
 * @return true if the touch event is realized over the drag.
 */
@Override
public boolean onTouchEvent(MotionEvent ev) {
    int actionMasked = MotionEventCompat.getActionMasked(ev);
    if ((actionMasked & MotionEventCompat.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
        activePointerId = MotionEventCompat.getPointerId(ev, actionMasked);
    }
    if (activePointerId == INVALID_POINTER) {
        return false;
    }
    dragHelper.processTouchEvent(ev);
    return ViewUtil.isViewHit(this, contentOut, (int) ev.getX(), (int) ev.getY());
}

From source file:com.kuloud.android.unity.ui.widget.steprefresh.PullToRefreshView.java

@Override
public boolean onTouchEvent(@NonNull MotionEvent ev) {

    //        if (!mIsBeingDragged) {
    //            return super.onTouchEvent(ev);
    //        }/*from ww  w .  j  a va2s  .com*/

    final int action = MotionEventCompat.getActionMasked(ev);

    switch (action) {
    case MotionEvent.ACTION_MOVE: {
        final int pointerIndex = MotionEventCompat.findPointerIndex(ev, mActivePointerId);
        if (pointerIndex < 0) {
            return false;
        }

        final float y = MotionEventCompat.getY(ev, pointerIndex);
        final float yDiff = y - mInitialMotionY;
        final float scrollTop = yDiff * DRAG_RATE;
        mCurrentDragPercent = scrollTop / mTotalDragDistance;
        if (mCurrentDragPercent < 0) {
            return false;
        }
        float boundedDragPercent = Math.min(1f, Math.abs(mCurrentDragPercent));
        float extraOS = Math.abs(scrollTop) - mTotalDragDistance;
        float slingshotDist = mTotalDragDistance;
        float tensionSlingshotPercent = Math.max(0, Math.min(extraOS, slingshotDist * 2) / slingshotDist);
        float tensionPercent = (float) ((tensionSlingshotPercent / 4)
                - Math.pow((tensionSlingshotPercent / 4), 2)) * 2f;
        float extraMove = (slingshotDist) * tensionPercent / 2;
        int targetY = (int) ((slingshotDist * boundedDragPercent) + extraMove);

        mBaseRefreshView.setPercent(mCurrentDragPercent, true);
        setTargetOffsetTop(targetY - mCurrentOffsetTop);
        break;
    }
    case MotionEventCompat.ACTION_POINTER_DOWN:
        final int index = MotionEventCompat.getActionIndex(ev);
        mActivePointerId = MotionEventCompat.getPointerId(ev, index);
        break;
    case MotionEventCompat.ACTION_POINTER_UP:
        onSecondaryPointerUp(ev);
        break;
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL: {
        if (mActivePointerId == INVALID_POINTER) {
            return false;
        }
        final int pointerIndex = MotionEventCompat.findPointerIndex(ev, mActivePointerId);
        final float y = MotionEventCompat.getY(ev, pointerIndex);
        final float overScrollTop = (y - mInitialMotionY) * DRAG_RATE;
        mIsBeingDragged = false;
        if (overScrollTop > mTotalDragDistance) {
            setRefreshing(true, true);
        } else {
            mRefreshing = false;
            animateOffsetToPosition(mAnimateToStartPosition, false);
        }
        mActivePointerId = INVALID_POINTER;
        return false;
    }
    }

    return true;
}

From source file:com.example.administrator.iclub21.view.SlideSwitch.java

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (slideable == false)
        return super.onTouchEvent(event);
    int action = MotionEventCompat.getActionMasked(event);
    switch (action) {
    case MotionEvent.ACTION_DOWN:
        eventStartX = (int) event.getRawX();
        break;//from w  w  w  .j  ava 2 s .  c om
    case MotionEvent.ACTION_MOVE:
        eventLastX = (int) event.getRawX();
        diffX = eventLastX - eventStartX;
        int tempX = diffX + frontRect_left_begin;
        tempX = (tempX > max_left ? max_left : tempX);
        tempX = (tempX < min_left ? min_left : tempX);
        if (tempX >= min_left && tempX <= max_left) {
            frontRect_left = tempX;
            alpha = (int) (255 * (float) tempX / (float) max_left);
            invalidateView();
        }
        break;
    case MotionEvent.ACTION_UP:
        int wholeX = (int) (event.getRawX() - eventStartX);
        frontRect_left_begin = frontRect_left;
        boolean toRight;
        toRight = (frontRect_left_begin > max_left / 2 ? true : false);
        if (Math.abs(wholeX) < 3) {
            toRight = !toRight;
        }
        moveToDest(toRight);
        break;
    default:
        break;
    }
    return true;
}

From source file:com.tasomaniac.openwith.resolver.ResolverDrawerLayout.java

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    final int action = MotionEventCompat.getActionMasked(ev);

    if (action == MotionEvent.ACTION_DOWN) {
        mVelocityTracker.clear();/*from  w ww.  j  av a 2s.c o m*/
    }

    mVelocityTracker.addMovement(ev);

    switch (action) {
    case MotionEvent.ACTION_DOWN: {
        final float x = ev.getX(0);
        final float y = ev.getY(0);
        mInitialTouchX = x;
        mInitialTouchY = mLastTouchY = y;
        mOpenOnClick = isListChildUnderClipped(x, y) && mCollapsibleHeight > 0;
    }
        break;

    case MotionEvent.ACTION_MOVE: {
        final float x = ev.getX(0);
        final float y = ev.getY(0);
        final float dy = y - mInitialTouchY;
        if (Math.abs(dy) > mTouchSlop && findChildUnder(x, y) != null
                && (getNestedScrollAxes() & ViewCompat.SCROLL_AXIS_VERTICAL) == 0) {
            mActivePointerId = ev.getPointerId(0);
            mIsDragging = true;
            mLastTouchY = Math.max(mLastTouchY - mTouchSlop,
                    Math.min(mLastTouchY + dy, mLastTouchY + mTouchSlop));
        }
    }
        break;

    case MotionEvent.ACTION_POINTER_UP: {
        onSecondaryPointerUp(ev);
    }
        break;

    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP: {
        resetTouch();
    }
        break;
    }

    if (mIsDragging) {
        abortAnimation();
    }
    return mIsDragging || mOpenOnClick;
}

From source file:android.support.design.widget.SwipeDismissBehavior.java

@Override
public boolean onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent event) {
    boolean dispatchEventToHelper = mInterceptingEvents;

    switch (MotionEventCompat.getActionMasked(event)) {
    case MotionEvent.ACTION_DOWN:
        mInterceptingEvents = parent.isPointInChildBounds(child, (int) event.getX(), (int) event.getY());
        dispatchEventToHelper = mInterceptingEvents;
        break;//w  ww  .j  a v  a 2s. c o  m
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL:
        // Reset the ignore flag for next time
        mInterceptingEvents = false;
        break;
    }

    if (dispatchEventToHelper) {
        ensureViewDragHelper(parent);
        return mViewDragHelper.shouldInterceptTouchEvent(event);
    }
    return false;
}

From source file:com.repkap11.repcast.queue.ui.QueueListAdapter.java

@Override
public void onBindViewHolder(final QueueItemViewHolder holder, int position) {
    Log.d(TAG, "[upcoming] onBindViewHolder() for position: " + position);
    final MediaQueueItem item = mProvider.getItem(position);
    holder.mContainer.setTag(R.string.queue_tag_item, item);
    holder.mPlayPause.setTag(R.string.queue_tag_item, item);
    holder.mPlayUpcoming.setTag(R.string.queue_tag_item, item);
    holder.mStopUpcoming.setTag(R.string.queue_tag_item, item);

    // set listeners
    holder.mContainer.setOnClickListener(mItemViewOnClickListener);
    holder.mPlayPause.setOnClickListener(mItemViewOnClickListener);
    holder.mPlayUpcoming.setOnClickListener(mItemViewOnClickListener);
    holder.mStopUpcoming.setOnClickListener(mItemViewOnClickListener);

    MediaInfo info = item.getMedia();/* w w w  . j a v  a  2  s .  c om*/
    MediaMetadata metaData = info.getMetadata();
    holder.mTitleView.setText(metaData.getString(MediaMetadata.KEY_TITLE));
    holder.mDescriptionView.setText(metaData.getString(MediaMetadata.KEY_SUBTITLE));
    AQuery aq = new AQuery(holder.itemView);
    if (!metaData.getImages().isEmpty()) {
        aq.id(holder.mImageView).width(64).image(metaData.getImages().get(0).getUrl().toString(), true, true, 0,
                R.drawable.default_video, null, 0, mAspectRatio);
    }

    holder.mDragHandle.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) {
                mDragStartListener.onStartDrag(holder);
            }
            return false;
        }
    });

    if (item == mProvider.getCurrentItem()) {
        holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.CURRENT);
        updateImageResource(holder.mPlayPause);
    } else if (item == mProvider.getUpcomingItem()) {
        holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.UPCOMING);
    } else {
        holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.NONE);
        holder.mPlayPause.setVisibility(View.GONE);
    }

}

From source file:CustomSwipeDismissBehavior.java

@Override
public boolean onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent event) {
    switch (MotionEventCompat.getActionMasked(event)) {
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL:
        // Reset the ignore flag
        if (mIgnoreEvents) {
            mIgnoreEvents = false;//from  ww w.j av  a 2  s .c om
            return false;
        }
        break;
    default:
        mIgnoreEvents = !parent.isPointInChildBounds(child, (int) event.getX(), (int) event.getY());
        break;
    }

    if (mIgnoreEvents) {
        return false;
    }

    ensureViewDragHelper(parent);
    return mViewDragHelper.shouldInterceptTouchEvent(event);
}