use of android.view.MotionEvent.PointerCoords in project android_frameworks_base by AOSPA.
the class DocumentHolderTest method createEvent.
public MotionEvent createEvent(int tooltype) {
long time = SystemClock.uptimeMillis();
PointerProperties[] properties = new PointerProperties[] { new PointerProperties() };
properties[0].toolType = tooltype;
PointerCoords[] coords = new PointerCoords[] { new PointerCoords() };
Rect rect = new Rect();
mHolder.itemView.getHitRect(rect);
coords[0].x = rect.left;
coords[0].y = rect.top;
return MotionEvent.obtain(// down time
time, // event time
time, // action
MotionEvent.ACTION_UP, // pointer count
1, // pointer properties
properties, // pointer coords
coords, // metastate
0, // button state
0, // xprecision
0, // yprecision
0, // deviceid
0, // edgeflags
0, // source
0, // flags
0);
}
use of android.view.MotionEvent.PointerCoords in project android_frameworks_base by ResurrectionRemix.
the class DocumentHolderTest method createEvent.
public MotionEvent createEvent(int tooltype) {
long time = SystemClock.uptimeMillis();
PointerProperties[] properties = new PointerProperties[] { new PointerProperties() };
properties[0].toolType = tooltype;
PointerCoords[] coords = new PointerCoords[] { new PointerCoords() };
Rect rect = new Rect();
mHolder.itemView.getHitRect(rect);
coords[0].x = rect.left;
coords[0].y = rect.top;
return MotionEvent.obtain(// down time
time, // event time
time, // action
MotionEvent.ACTION_UP, // pointer count
1, // pointer properties
properties, // pointer coords
coords, // metastate
0, // button state
0, // xprecision
0, // yprecision
0, // deviceid
0, // edgeflags
0, // source
0, // flags
0);
}
use of android.view.MotionEvent.PointerCoords in project android_frameworks_base by ResurrectionRemix.
the class MagnificationGestureHandler method getTempPointerCoordsWithMinSize.
private PointerCoords[] getTempPointerCoordsWithMinSize(int size) {
final int oldSize = (mTempPointerCoords != null) ? mTempPointerCoords.length : 0;
if (oldSize < size) {
PointerCoords[] oldTempPointerCoords = mTempPointerCoords;
mTempPointerCoords = new PointerCoords[size];
if (oldTempPointerCoords != null) {
System.arraycopy(oldTempPointerCoords, 0, mTempPointerCoords, 0, oldSize);
}
}
for (int i = oldSize; i < size; i++) {
mTempPointerCoords[i] = new PointerCoords();
}
return mTempPointerCoords;
}
use of android.view.MotionEvent.PointerCoords in project android_frameworks_base by ResurrectionRemix.
the class TouchExplorer method offsetEvent.
/**
* Offsets all pointers in the given event by adding the specified X and Y
* offsets.
*
* @param event The event to offset.
* @param offsetX The X offset.
* @param offsetY The Y offset.
* @return An event with the offset pointers or the original event if both
* offsets are zero.
*/
private MotionEvent offsetEvent(MotionEvent event, int offsetX, int offsetY) {
if (offsetX == 0 && offsetY == 0) {
return event;
}
final int remappedIndex = event.findPointerIndex(mLongPressingPointerId);
final int pointerCount = event.getPointerCount();
PointerProperties[] props = PointerProperties.createArray(pointerCount);
PointerCoords[] coords = PointerCoords.createArray(pointerCount);
for (int i = 0; i < pointerCount; i++) {
event.getPointerProperties(i, props[i]);
event.getPointerCoords(i, coords[i]);
if (i == remappedIndex) {
coords[i].x += offsetX;
coords[i].y += offsetY;
}
}
return MotionEvent.obtain(event.getDownTime(), event.getEventTime(), event.getAction(), event.getPointerCount(), props, coords, event.getMetaState(), event.getButtonState(), 1.0f, 1.0f, event.getDeviceId(), event.getEdgeFlags(), event.getSource(), event.getFlags());
}
use of android.view.MotionEvent.PointerCoords in project android_frameworks_base by ResurrectionRemix.
the class TouchExplorer method onDoubleTap.
@Override
public boolean onDoubleTap(MotionEvent event, int policyFlags) {
// Ignore the event if we aren't touch exploring.
if (mCurrentState != STATE_TOUCH_EXPLORING) {
return false;
}
// Remove pending event deliveries.
mSendHoverEnterAndMoveDelayed.cancel();
mSendHoverExitDelayed.cancel();
if (mSendTouchExplorationEndDelayed.isPending()) {
mSendTouchExplorationEndDelayed.forceSendAndRemove();
}
if (mSendTouchInteractionEndDelayed.isPending()) {
mSendTouchInteractionEndDelayed.forceSendAndRemove();
}
final int pointerIndex = event.getActionIndex();
final int pointerId = event.getPointerId(pointerIndex);
Point clickLocation = mTempPoint;
final int result = computeClickLocation(clickLocation);
if (result == CLICK_LOCATION_NONE) {
// consumed.
return true;
}
// Do the click.
PointerProperties[] properties = new PointerProperties[1];
properties[0] = new PointerProperties();
event.getPointerProperties(pointerIndex, properties[0]);
PointerCoords[] coords = new PointerCoords[1];
coords[0] = new PointerCoords();
coords[0].x = clickLocation.x;
coords[0].y = clickLocation.y;
MotionEvent click_event = MotionEvent.obtain(event.getDownTime(), event.getEventTime(), MotionEvent.ACTION_DOWN, 1, properties, coords, 0, 0, 1.0f, 1.0f, event.getDeviceId(), 0, event.getSource(), event.getFlags());
final boolean targetAccessibilityFocus = (result == CLICK_LOCATION_ACCESSIBILITY_FOCUS);
sendActionDownAndUp(click_event, policyFlags, targetAccessibilityFocus);
click_event.recycle();
return true;
}
Aggregations