Merge "Propagate isResampled into MotionEvent.PointerCoords."
This commit is contained in:
@@ -4233,6 +4233,13 @@ public final class MotionEvent extends InputEvent implements Parcelable {
|
||||
*/
|
||||
public float relativeY;
|
||||
|
||||
/**
|
||||
* Whether these coordinate data were generated by resampling.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public boolean isResampled;
|
||||
|
||||
/**
|
||||
* Clears the contents of this object.
|
||||
* Resets all axes to zero.
|
||||
@@ -4251,6 +4258,7 @@ public final class MotionEvent extends InputEvent implements Parcelable {
|
||||
orientation = 0;
|
||||
relativeX = 0;
|
||||
relativeY = 0;
|
||||
isResampled = false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4283,6 +4291,7 @@ public final class MotionEvent extends InputEvent implements Parcelable {
|
||||
orientation = other.orientation;
|
||||
relativeX = other.relativeX;
|
||||
relativeY = other.relativeY;
|
||||
isResampled = other.isResampled;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,6 +59,7 @@ static struct {
|
||||
jfieldID orientation;
|
||||
jfieldID relativeX;
|
||||
jfieldID relativeY;
|
||||
jfieldID isResampled;
|
||||
} gPointerCoordsClassInfo;
|
||||
|
||||
static struct {
|
||||
@@ -223,6 +224,8 @@ static void pointerCoordsToNative(JNIEnv* env, jobject pointerCoordsObj,
|
||||
outRawPointerCoords->setAxisValue(AMOTION_EVENT_AXIS_RELATIVE_Y,
|
||||
env->GetFloatField(pointerCoordsObj,
|
||||
gPointerCoordsClassInfo.relativeY));
|
||||
outRawPointerCoords->isResampled =
|
||||
env->GetBooleanField(pointerCoordsObj, gPointerCoordsClassInfo.isResampled);
|
||||
|
||||
BitSet64 bits =
|
||||
BitSet64(env->GetLongField(pointerCoordsObj, gPointerCoordsClassInfo.mPackedAxisBits));
|
||||
@@ -440,6 +443,11 @@ static void android_view_MotionEvent_nativeGetPointerCoords(JNIEnv* env, jclass
|
||||
bits.clearBit(axis);
|
||||
}
|
||||
pointerCoordsFromNative(env, rawPointerCoords, bits, outPointerCoordsObj);
|
||||
|
||||
const bool isResampled = historyPos == HISTORY_CURRENT
|
||||
? event->isResampled(pointerIndex, event->getHistorySize())
|
||||
: event->isResampled(pointerIndex, historyPos);
|
||||
env->SetBooleanField(outPointerCoordsObj, gPointerCoordsClassInfo.isResampled, isResampled);
|
||||
}
|
||||
|
||||
static void android_view_MotionEvent_nativeGetPointerProperties(JNIEnv* env, jclass clazz,
|
||||
@@ -881,6 +889,7 @@ int register_android_view_MotionEvent(JNIEnv* env) {
|
||||
gPointerCoordsClassInfo.orientation = GetFieldIDOrDie(env, clazz, "orientation", "F");
|
||||
gPointerCoordsClassInfo.relativeX = GetFieldIDOrDie(env, clazz, "relativeX", "F");
|
||||
gPointerCoordsClassInfo.relativeY = GetFieldIDOrDie(env, clazz, "relativeY", "F");
|
||||
gPointerCoordsClassInfo.isResampled = GetFieldIDOrDie(env, clazz, "isResampled", "Z");
|
||||
|
||||
clazz = FindClassOrDie(env, "android/view/MotionEvent$PointerProperties");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user