aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp')
-rw-r--r--native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp25
1 files changed, 20 insertions, 5 deletions
diff --git a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
index f3e2a7e60..07cee4053 100644
--- a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
+++ b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
@@ -30,10 +30,25 @@ namespace latinime {
static jint latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object,
jint maxProximityCharsSize, jint displayWidth, jint displayHeight, jint gridWidth,
- jint gridHeight, jintArray proximityCharsArray) {
- jint* proximityChars = env->GetIntArrayElements(proximityCharsArray, NULL);
+ jint gridHeight, jintArray proximityCharsArray, jint keyCount,
+ jintArray keyXCoordinateArray, jintArray keyYCoordinateArray, jintArray keyWidthArray,
+ jintArray keyHeightArray, jintArray keyCharCodeArray, jint themeId) {
+ jint *proximityChars = env->GetIntArrayElements(proximityCharsArray, NULL);
+ jint *keyXCoordinates = safeGetIntArrayElements(env, keyXCoordinateArray);
+ jint *keyYCoordinates = safeGetIntArrayElements(env, keyYCoordinateArray);
+ jint *keyWidths = safeGetIntArrayElements(env, keyWidthArray);
+ jint *keyHeights = safeGetIntArrayElements(env, keyHeightArray);
+ jint *keyCharCodes = safeGetIntArrayElements(env, keyCharCodeArray);
ProximityInfo *proximityInfo = new ProximityInfo(maxProximityCharsSize, displayWidth,
- displayHeight, gridWidth, gridHeight, (const uint32_t *)proximityChars);
+ displayHeight, gridWidth, gridHeight, (const uint32_t*)proximityChars,
+ keyCount, (const int32_t*)keyXCoordinates, (const int32_t*)keyYCoordinates,
+ (const int32_t*)keyWidths, (const int32_t*)keyHeights, (const int32_t*)keyCharCodes,
+ themeId);
+ safeReleaseIntArrayElements(env, keyCharCodeArray, keyCharCodes);
+ safeReleaseIntArrayElements(env, keyHeightArray, keyHeights);
+ safeReleaseIntArrayElements(env, keyWidthArray, keyWidths);
+ safeReleaseIntArrayElements(env, keyYCoordinateArray, keyYCoordinates);
+ safeReleaseIntArrayElements(env, keyXCoordinateArray, keyXCoordinates);
env->ReleaseIntArrayElements(proximityCharsArray, proximityChars, 0);
return (jint)proximityInfo;
}
@@ -45,12 +60,12 @@ static void latinime_Keyboard_release(JNIEnv *env, jobject object, jint proximit
}
static JNINativeMethod sKeyboardMethods[] = {
- {"setProximityInfoNative", "(IIIII[I)I", (void*)latinime_Keyboard_setProximityInfo},
+ {"setProximityInfoNative", "(IIIII[II[I[I[I[I[II)I", (void*)latinime_Keyboard_setProximityInfo},
{"releaseProximityInfoNative", "(I)V", (void*)latinime_Keyboard_release}
};
int register_ProximityInfo(JNIEnv *env) {
- const char* const kClassPathName = "com/android/inputmethod/keyboard/ProximityInfo";
+ const char *const kClassPathName = "com/android/inputmethod/keyboard/ProximityInfo";
return registerNativeMethods(env, kClassPathName, sKeyboardMethods,
sizeof(sKeyboardMethods) / sizeof(sKeyboardMethods[0]));
}