diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index b47b7e39d1e88..0b1c8b7f5335c 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -182,6 +182,8 @@ extern int register_android_view_KeyEvent(JNIEnv* env);
extern int register_android_view_MotionEvent(JNIEnv* env);
extern int register_android_view_PointerIcon(JNIEnv* env);
extern int register_android_view_VelocityTracker(JNIEnv* env);
+extern int register_android_view_VerifiedKeyEvent(JNIEnv* env);
+extern int register_android_view_VerifiedMotionEvent(JNIEnv* env);
extern int register_android_content_res_ObbScanner(JNIEnv* env);
extern int register_android_content_res_Configuration(JNIEnv* env);
extern int register_android_animation_PropertyValuesHolder(JNIEnv *env);
@@ -1562,6 +1564,8 @@ static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_view_MotionEvent),
REG_JNI(register_android_view_PointerIcon),
REG_JNI(register_android_view_VelocityTracker),
+ REG_JNI(register_android_view_VerifiedKeyEvent),
+ REG_JNI(register_android_view_VerifiedMotionEvent),
REG_JNI(register_android_content_res_ObbScanner),
REG_JNI(register_android_content_res_Configuration),
diff --git a/core/jni/android_view_VerifiedKeyEvent.cpp b/core/jni/android_view_VerifiedKeyEvent.cpp
index 8fc301ccc735f..bba10aa0afeb5 100644
--- a/core/jni/android_view_VerifiedKeyEvent.cpp
+++ b/core/jni/android_view_VerifiedKeyEvent.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#define LOG_TAG "MotionEvent-JNI"
+#define LOG_TAG "VerifiedKey-JNI"
#include "android_view_VerifiedKeyEvent.h"
#include
@@ -22,18 +22,29 @@
namespace android {
+static struct {
+ jclass clazz;
+
+ jmethodID constructor;
+} gVerifiedKeyEventClassInfo;
+
// ----------------------------------------------------------------------------
jobject android_view_VerifiedKeyEvent(JNIEnv* env, const VerifiedKeyEvent& event) {
- static jclass clazz = FindClassOrDie(env, "android/view/VerifiedKeyEvent");
+ return env->NewObject(gVerifiedKeyEventClassInfo.clazz, gVerifiedKeyEventClassInfo.constructor,
+ event.deviceId, event.eventTimeNanos, event.source, event.displayId,
+ event.action, event.downTimeNanos, event.flags, event.keyCode,
+ event.scanCode, event.metaState, event.repeatCount);
+}
- static jmethodID constructor = GetMethodIDOrDie(env, clazz, "", "(IJIIIJIIIII)V");
+int register_android_view_VerifiedKeyEvent(JNIEnv* env) {
+ jclass clazz = FindClassOrDie(env, "android/view/VerifiedKeyEvent");
+ gVerifiedKeyEventClassInfo.clazz = MakeGlobalRefOrDie(env, clazz);
- jobject object =
- env->NewObject(clazz, constructor, event.deviceId, event.eventTimeNanos, event.source,
- event.displayId, event.action, event.downTimeNanos, event.flags,
- event.keyCode, event.scanCode, event.metaState, event.repeatCount);
- return object;
+ gVerifiedKeyEventClassInfo.constructor =
+ GetMethodIDOrDie(env, clazz, "", "(IJIIIJIIIII)V");
+
+ return OK;
}
} // namespace android
diff --git a/core/jni/android_view_VerifiedMotionEvent.cpp b/core/jni/android_view_VerifiedMotionEvent.cpp
index 7a5c71aa6602f..c2811975ce232 100644
--- a/core/jni/android_view_VerifiedMotionEvent.cpp
+++ b/core/jni/android_view_VerifiedMotionEvent.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#define LOG_TAG "MotionEvent-JNI"
+#define LOG_TAG "VerifiedMotion-JNI"
#include "android_view_VerifiedMotionEvent.h"
#include
@@ -22,18 +22,30 @@
namespace android {
+static struct {
+ jclass clazz;
+
+ jmethodID constructor;
+} gVerifiedMotionEventClassInfo;
+
// ----------------------------------------------------------------------------
jobject android_view_VerifiedMotionEvent(JNIEnv* env, const VerifiedMotionEvent& event) {
- static jclass clazz = FindClassOrDie(env, "android/view/VerifiedMotionEvent");
+ return env->NewObject(gVerifiedMotionEventClassInfo.clazz,
+ gVerifiedMotionEventClassInfo.constructor, event.deviceId,
+ event.eventTimeNanos, event.source, event.displayId, event.rawX,
+ event.rawY, event.actionMasked, event.downTimeNanos, event.flags,
+ event.metaState, event.buttonState);
+}
- static jmethodID constructor = GetMethodIDOrDie(env, clazz, "", "(IJIIFFIJIII)V");
+int register_android_view_VerifiedMotionEvent(JNIEnv* env) {
+ jclass clazz = FindClassOrDie(env, "android/view/VerifiedMotionEvent");
+ gVerifiedMotionEventClassInfo.clazz = MakeGlobalRefOrDie(env, clazz);
- jobject object =
- env->NewObject(clazz, constructor, event.deviceId, event.eventTimeNanos, event.source,
- event.displayId, event.rawX, event.rawY, event.actionMasked,
- event.downTimeNanos, event.flags, event.metaState, event.buttonState);
- return object;
+ gVerifiedMotionEventClassInfo.constructor =
+ GetMethodIDOrDie(env, clazz, "", "(IJIIFFIJIII)V");
+
+ return OK;
}
} // namespace android