Use enum class for tool type

Update jni code to use enum class

Bug: 198472780
Test: compile
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d873b263ee5937ba93a2252424148c0552312332)
Merged-In: Ia129a28593c4f7a5ae0326a1aabdd5e6d0b67b82
Change-Id: Ia129a28593c4f7a5ae0326a1aabdd5e6d0b67b82
diff --git a/core/jni/android_view_MotionEvent.cpp b/core/jni/android_view_MotionEvent.cpp
index 49f47c5..2e9f179 100644
--- a/core/jni/android_view_MotionEvent.cpp
+++ b/core/jni/android_view_MotionEvent.cpp
@@ -316,8 +316,9 @@
     outPointerProperties->clear();
     outPointerProperties->id = env->GetIntField(pointerPropertiesObj,
             gPointerPropertiesClassInfo.id);
-    outPointerProperties->toolType = env->GetIntField(pointerPropertiesObj,
+    const int32_t toolType = env->GetIntField(pointerPropertiesObj,
             gPointerPropertiesClassInfo.toolType);
+    outPointerProperties->toolType = static_cast<ToolType>(toolType);
 }
 
 static void pointerPropertiesFromNative(JNIEnv* env, const PointerProperties* pointerProperties,
@@ -325,7 +326,7 @@
     env->SetIntField(outPointerPropertiesObj, gPointerPropertiesClassInfo.id,
             pointerProperties->id);
     env->SetIntField(outPointerPropertiesObj, gPointerPropertiesClassInfo.toolType,
-            pointerProperties->toolType);
+            static_cast<int32_t>(pointerProperties->toolType));
 }
 
 
@@ -535,7 +536,7 @@
     if (!validatePointerIndex(env, pointerIndex, *event)) {
         return -1;
     }
-    return event->getToolType(pointerIndex);
+    return static_cast<jint>(event->getToolType(pointerIndex));
 }
 
 static jlong android_view_MotionEvent_nativeGetEventTimeNanos(JNIEnv* env, jclass clazz,
diff --git a/native/android/input.cpp b/native/android/input.cpp
index f1c3088..432e21c 100644
--- a/native/android/input.cpp
+++ b/native/android/input.cpp
@@ -149,7 +149,8 @@
 }
 
 int32_t AMotionEvent_getToolType(const AInputEvent* motion_event, size_t pointer_index) {
-    return static_cast<const MotionEvent*>(motion_event)->getToolType(pointer_index);
+    const MotionEvent& motion = static_cast<const MotionEvent&>(*motion_event);
+    return static_cast<int32_t>(motion.getToolType(pointer_index));
 }
 
 float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index) {