diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java index 4ea2fd1ec5c..d8134bd1e3f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java @@ -7,6 +7,7 @@ package com.facebook.react.uimanager.events; +import android.view.InputDevice; import android.view.MotionEvent; import android.view.View; import androidx.annotation.Nullable; @@ -22,8 +23,6 @@ public class PointerEventHelper { public static final String POINTER_TYPE_MOUSE = "mouse"; public static final String POINTER_TYPE_UNKNOWN = ""; - private static final int X_FLAG_SUPPORTS_HOVER = 0x01000000; - public static enum EVENT { CANCEL, CANCEL_CAPTURE, @@ -147,26 +146,7 @@ public class PointerEventHelper { } public static boolean supportsHover(MotionEvent motionEvent) { - // A flag has been set on the MotionEvent to indicate it supports hover - // See D36958947 on justifications for this. - // TODO(luwe): Leverage previous events to determine if MotionEvent - // is from an input device that supports hover - boolean supportsHoverFlag = (motionEvent.getFlags() & X_FLAG_SUPPORTS_HOVER) != 0; - if (supportsHoverFlag) { - return true; - } - - int toolType = motionEvent.getToolType(motionEvent.getActionIndex()); - String pointerType = getW3CPointerType(toolType); - - if (pointerType.equals(POINTER_TYPE_MOUSE)) { - return true; - } else if (pointerType.equals(POINTER_TYPE_PEN)) { - return true; // true? - } else if (pointerType.equals(POINTER_TYPE_TOUCH)) { - return false; - } - - return false; + int source = motionEvent.getSource(); + return source == InputDevice.SOURCE_MOUSE || source == InputDevice.SOURCE_CLASS_POINTER; } }