diff options
author | 2011-09-21 12:02:47 +0900 | |
---|---|---|
committer | 2011-09-22 18:39:34 +0900 | |
commit | 0e1f656c1be7f2916cf57c94d99b001795856270 (patch) | |
tree | 97f2d04d944f2c13d1e95e8f90b9ff7287793c6b /native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp | |
parent | a35ea4cba88868a8c45b4d132d0c49b128f76927 (diff) | |
download | latinime-0e1f656c1be7f2916cf57c94d99b001795856270.tar.gz latinime-0e1f656c1be7f2916cf57c94d99b001795856270.tar.xz latinime-0e1f656c1be7f2916cf57c94d99b001795856270.zip |
Extend JNI interface to pass the key coordinate information
Change-Id: Iec0d1415d6abba43b775a014516b961b167597b7
Diffstat (limited to 'native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp')
-rw-r--r-- | native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp index f3e2a7e60..d4fa436cc 100644 --- a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp +++ b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp @@ -30,10 +30,24 @@ namespace latinime { static jint latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object, jint maxProximityCharsSize, jint displayWidth, jint displayHeight, jint gridWidth, - jint gridHeight, jintArray proximityCharsArray) { + jint gridHeight, jintArray proximityCharsArray, jint keyCount, + jintArray keyXCoordinateArray, jintArray keyYCoordinateArray, jintArray keyWidthArray, + jintArray keyHeightArray, jintArray keyCharCodeArray) { jint* proximityChars = env->GetIntArrayElements(proximityCharsArray, NULL); + jint* keyXCoordinates = env->GetIntArrayElements(keyXCoordinateArray, NULL); + jint* keyYCoordinates = env->GetIntArrayElements(keyYCoordinateArray, NULL); + jint* keyWidths = env->GetIntArrayElements(keyWidthArray, NULL); + jint* keyHeights = env->GetIntArrayElements(keyHeightArray, NULL); + jint* keyCharCodes = env->GetIntArrayElements(keyCharCodeArray, NULL); 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); + env->ReleaseIntArrayElements(keyCharCodeArray, keyCharCodes, 0); + env->ReleaseIntArrayElements(keyHeightArray, keyHeights, 0); + env->ReleaseIntArrayElements(keyWidthArray, keyWidths, 0); + env->ReleaseIntArrayElements(keyYCoordinateArray, keyYCoordinates, 0); + env->ReleaseIntArrayElements(keyXCoordinateArray, keyXCoordinates, 0); env->ReleaseIntArrayElements(proximityCharsArray, proximityChars, 0); return (jint)proximityInfo; } @@ -45,7 +59,7 @@ 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[I)I", (void*)latinime_Keyboard_setProximityInfo}, {"releaseProximityInfoNative", "(I)V", (void*)latinime_Keyboard_release} }; |