List of usage examples for com.facebook.react.common SystemClock nanoTime
public static long nanoTime()
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;/*from w w w . jav a 2s . c om*/ } 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 w ww . j av a 2 s. c o m*/ } 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)); }