@Implementation(minSdk = LOLLIPOP) @HiddenApi protected static long nativeReadFromParcel(long nativePtr, Parcel parcelObj) { NativeInput.MotionEvent event; if (nativePtr == 0) { event = new NativeInput.MotionEvent(); nativePtr = nativeMotionEventRegistry.register(event); } else { event = nativeMotionEventRegistry.getNativeObject(nativePtr); } boolean status = event.readFromParcel(parcelObj); if (!status) { if (nativePtr > 0) { nativeMotionEventRegistry.unregister(nativePtr); } throw new RuntimeException("Failed to read MotionEvent parcel."); } return nativePtr; }
mSampleEventTimes.clear(); mSamplePointerCoords.clear(); addSample(eventTime, Arrays.asList(pointerCoords).subList(0, pointerCount));
/** * @deprecated use {@link MotionEvent#obtain} or {@link * androidx.test.core.view.MotionEventBuilder#setPointerAction(int, int)} to create a * MotionEvent with desired data. */ @Deprecated public void setPointerIndex(int pointerIndex) { NativeInput.MotionEvent event = getNativeMotionEvent(); // pointer index is stored in upper two bytes of action event.setAction( event.getAction() | ((pointerIndex & 0xff) << MotionEvent.ACTION_POINTER_INDEX_SHIFT)); }
event = nativeMotionEventRegistry.getNativeObject(nativePtr); } else { event = new NativeInput.MotionEvent(); nativePtr = nativeMotionEventRegistry.register(event); event.initialize( deviceId, source,
mSampleEventTimes.clear(); mSamplePointerCoords.clear(); addSample(eventTime, Arrays.asList(pointerCoords).subList(0, pointerCount));
public void copyFrom(MotionEvent other, boolean keepHistory) { super.initialize(other.getDeviceId(), other.getSource()); mAction = other.mAction; mActionButton = other.mActionButton; mSamplePointerCoords.addAll(other.mSamplePointerCoords); } else { mSampleEventTimes.add(other.getEventTime()); int pointerCount = other.getPointerCount(); int historySize = other.getHistorySize();
@Implementation(minSdk = LOLLIPOP) @HiddenApi protected static long nativeReadFromParcel(long nativePtr, Parcel parcelObj) { NativeInput.MotionEvent event; if (nativePtr == 0) { event = new NativeInput.MotionEvent(); nativePtr = nativeMotionEventRegistry.register(event); } else { event = nativeMotionEventRegistry.getNativeObject(nativePtr); } boolean status = event.readFromParcel(parcelObj); if (!status) { if (nativePtr > 0) { nativeMotionEventRegistry.unregister(nativePtr); } throw new RuntimeException("Failed to read MotionEvent parcel."); } return nativePtr; }
@Implementation(minSdk = LOLLIPOP) @HiddenApi protected static void nativeAddBatch( long nativePtr, long eventTimeNanos, PointerCoords[] pointerCoordsObjArray, int metaState) { NativeInput.MotionEvent event = getNativeMotionEvent(nativePtr); int pointerCount = event.getPointerCount(); validatePointerCoordsObjArray(pointerCoordsObjArray, pointerCount); NativeInput.PointerCoords[] rawPointerCoords = new NativeInput.PointerCoords[pointerCount]; for (int i = 0; i < pointerCount; i++) { PointerCoords pointerCoordsObj = pointerCoordsObjArray[i]; checkNotNull(pointerCoordsObj); rawPointerCoords[i] = pointerCoordsToNative(pointerCoordsObj, event.getXOffset(), event.getYOffset()); } event.addSample(eventTimeNanos, rawPointerCoords); event.setMetaState(event.getMetaState() | metaState); }
@Implementation(minSdk = LOLLIPOP) @HiddenApi protected static float nativeGetAxisValue( long nativePtr, int axis, int pointerIndex, int historyPos) { NativeInput.MotionEvent event = getNativeMotionEvent(nativePtr); int pointerCount = event.getPointerCount(); validatePointerIndex(pointerIndex, pointerCount); if (historyPos == HISTORY_CURRENT) { return event.getAxisValue(axis, pointerIndex); } else { int historySize = event.getHistorySize(); validateHistoryPos(historyPos, historySize); return event.getHistoricalAxisValue(axis, pointerIndex, historyPos); } }
public float getSize(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_SIZE, pointerIndex); }
public float getOrientation(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_ORIENTATION, pointerIndex); }
public float getToolMajor(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_TOOL_MAJOR, pointerIndex); }
public float getTouchMajor(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_TOUCH_MAJOR, pointerIndex); }
public float getY(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_Y, pointerIndex); }
public float getToolMinor(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_TOOL_MINOR, pointerIndex); }
public float getPressure(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_PRESSURE, pointerIndex); }
public float getX(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_X, pointerIndex); }
public float getTouchMinor(int pointerIndex) { return getAxisValue(AMOTION_EVENT_AXIS_TOUCH_MINOR, pointerIndex); }
public void addSample(long eventTime, PointerCoords[] pointerCoords) { addSample(eventTime, Arrays.asList(pointerCoords)); }
@Implementation(minSdk = M) @HiddenApi protected static int nativeGetActionButton(long nativePtr) { NativeInput.MotionEvent event = getNativeMotionEvent(nativePtr); return event.getActionButton(); }