List of usage examples for com.facebook.react.uimanager.events TouchEvent obtain
public static TouchEvent obtain(int viewTag, TouchEventType touchEventType, MotionEvent motionEventToCopy, long gestureStartTime, float viewX, float viewY, TouchEventCoalescingKeyHelper touchEventCoalescingKeyHelper)
From source file:com.horcrux.svg.RNSVGSvgView.java
License:Open Source License
public void handleTouchEvent(MotionEvent ev, EventDispatcher eventDispatcher) { int action = ev.getAction() & MotionEvent.ACTION_MASK; if (action == MotionEvent.ACTION_DOWN) { eventDispatcher.dispatchEvent(TouchEvent.obtain(mTargetTag, SystemClock.nanoTime(), TouchEventType.START, ev, ev.getX(), ev.getX(), mTouchEventCoalescingKeyHelper)); } else if (mTargetTag == -1) { // All the subsequent action types are expected to be called after ACTION_DOWN thus target // is supposed to be set for them. Log.e("error", "Unexpected state: received touch event but didn't get starting ACTION_DOWN for this " + "gesture before"); } else if (action == MotionEvent.ACTION_UP) { // End of the gesture. We reset target tag to -1 and expect no further event associated with // this gesture. eventDispatcher.dispatchEvent(TouchEvent.obtain(mTargetTag, SystemClock.nanoTime(), TouchEventType.END, ev, ev.getX(), ev.getY(), mTouchEventCoalescingKeyHelper)); mTargetTag = -1;/* w w w. ja v a 2 s . co m*/ } else if (action == MotionEvent.ACTION_MOVE) { // Update pointer position for current gesture eventDispatcher.dispatchEvent(TouchEvent.obtain(mTargetTag, SystemClock.nanoTime(), TouchEventType.MOVE, ev, ev.getX(), ev.getY(), mTouchEventCoalescingKeyHelper)); } else if (action == MotionEvent.ACTION_POINTER_DOWN) { // New pointer goes down, this can only happen after ACTION_DOWN is sent for the first pointer eventDispatcher.dispatchEvent(TouchEvent.obtain(mTargetTag, SystemClock.nanoTime(), TouchEventType.START, ev, ev.getX(), ev.getY(), mTouchEventCoalescingKeyHelper)); } else if (action == MotionEvent.ACTION_POINTER_UP) { // Exactly onw of the pointers goes up eventDispatcher.dispatchEvent(TouchEvent.obtain(mTargetTag, SystemClock.nanoTime(), TouchEventType.END, ev, ev.getX(), ev.getY(), mTouchEventCoalescingKeyHelper)); } else if (action == MotionEvent.ACTION_CANCEL) { dispatchCancelEvent(ev, eventDispatcher); mTargetTag = -1; } else { Log.w("IGNORE", "Warning : touch event was ignored. Action=" + action + " Target=" + mTargetTag); } }
From source file:com.horcrux.svg.RNSVGSvgView.java
License:Open Source License
private void dispatchCancelEvent(MotionEvent androidEvent, EventDispatcher eventDispatcher) { // This means the gesture has already ended, via some other CANCEL or UP event. This is not // expected to happen very often as it would mean some child View has decided to intercept the // touch stream and start a native gesture only upon receiving the UP/CANCEL event. if (mTargetTag == -1) { Log.w("error", "Can't cancel already finished gesture. Is a child View trying to start a gesture from " + "an UP/CANCEL event?"); return;//from www . ja v a2s .c om } Assertions.assertNotNull(eventDispatcher) .dispatchEvent(TouchEvent.obtain(mTargetTag, SystemClock.nanoTime(), TouchEventType.CANCEL, androidEvent, androidEvent.getX(), androidEvent.getY(), mTouchEventCoalescingKeyHelper)); }
From source file:versioned.host.exp.exponent.modules.api.components.svg.RNSVGSvgView.java
License:Open Source License
private void dispatch(MotionEvent ev, TouchEventType type) { mEventDispatcher.dispatchEvent(TouchEvent.obtain(mTargetTag, SystemClock.nanoTime(), type, ev, ev.getX(), ev.getX(), mTouchEventCoalescingKeyHelper)); }