未验证 提交 b1b388f1 编写于 作者: J Jason Simmons 提交者: GitHub

Encode scroll motion events in the Android touch processor (#8149)

上级 2daebebf
......@@ -150,7 +150,9 @@ public class AndroidTouchProcessor {
// Mouse hover support is not implemented for API < 18.
boolean isPointerEvent = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2
&& event.isFromSource(InputDevice.SOURCE_CLASS_POINTER);
if (!isPointerEvent || event.getActionMasked() != MotionEvent.ACTION_HOVER_MOVE) {
boolean isMovementEvent = (event.getActionMasked() == MotionEvent.ACTION_HOVER_MOVE
|| event.getActionMasked() == MotionEvent.ACTION_SCROLL);
if (!isPointerEvent || !isMovementEvent) {
return false;
}
......@@ -181,7 +183,9 @@ public class AndroidTouchProcessor {
int pointerKind = getPointerDeviceTypeForToolType(event.getToolType(pointerIndex));
int signalKind = PointerSignalKind.NONE;
int signalKind = event.getActionMasked() == MotionEvent.ACTION_SCROLL
? PointerSignalKind.SCROLL
: PointerSignalKind.NONE;
long timeStamp = event.getEventTime() * 1000; // Convert from milliseconds to microseconds.
......@@ -242,8 +246,13 @@ public class AndroidTouchProcessor {
packet.putLong(pointerData); // platformData
packet.putDouble(0.0); // scroll_delta_x
packet.putDouble(0.0); // scroll_delta_y
if (signalKind == PointerSignalKind.SCROLL) {
packet.putDouble(-event.getAxisValue(MotionEvent.AXIS_HSCROLL)); // scroll_delta_x
packet.putDouble(-event.getAxisValue(MotionEvent.AXIS_VSCROLL)); // scroll_delta_y
} else {
packet.putDouble(0.0); // scroll_delta_x
packet.putDouble(0.0); // scroll_delta_x
}
}
@PointerChange
......@@ -269,6 +278,9 @@ public class AndroidTouchProcessor {
if (maskedAction == MotionEvent.ACTION_CANCEL) {
return PointerChange.CANCEL;
}
if (maskedAction == MotionEvent.ACTION_SCROLL) {
return PointerChange.HOVER;
}
return -1;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册