aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
diff options
context:
space:
mode:
authorsatok <satok@google.com>2012-03-13 16:33:47 +0900
committersatok <satok@google.com>2012-03-13 17:38:50 +0900
commit552c3c27f04e6769e40cffbce3a9e8eed1269294 (patch)
treef7feb3c264efd23ed14cf76e694448a0de018e23 /native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
parent95fcb0cce939fa730d90ed975f65bfaa1ffbfbcb (diff)
downloadlatinime-552c3c27f04e6769e40cffbce3a9e8eed1269294.tar.gz
latinime-552c3c27f04e6769e40cffbce3a9e8eed1269294.tar.xz
latinime-552c3c27f04e6769e40cffbce3a9e8eed1269294.zip
Implement additional proximity characters in the native code
Bug: 4343280 Change-Id: I9bbc5cab2fef1ee80c1fe32017df811ef8af10bc
Diffstat (limited to 'native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp')
-rw-r--r--native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
index 844b23054..a9b6cca5b 100644
--- a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
+++ b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
@@ -25,16 +25,19 @@
#include <assert.h>
#include <errno.h>
#include <stdio.h>
+#include <string>
namespace latinime {
static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object,
- jint maxProximityCharsSize, jint displayWidth, jint displayHeight, jint gridWidth,
- jint gridHeight, jint mostCommonkeyWidth, jintArray proximityCharsArray, jint keyCount,
- jintArray keyXCoordinateArray, jintArray keyYCoordinateArray, jintArray keyWidthArray,
- jintArray keyHeightArray, jintArray keyCharCodeArray,
+ jstring localejStr, jint maxProximityCharsSize, jint displayWidth, jint displayHeight,
+ jint gridWidth, jint gridHeight, jint mostCommonkeyWidth, jintArray proximityCharsArray,
+ jint keyCount, jintArray keyXCoordinateArray, jintArray keyYCoordinateArray,
+ jintArray keyWidthArray, jintArray keyHeightArray, jintArray keyCharCodeArray,
jfloatArray sweetSpotCenterXArray, jfloatArray sweetSpotCenterYArray,
jfloatArray sweetSpotRadiusArray) {
+ const char *localeStrPtr = env->GetStringUTFChars(localejStr, 0);
+ const std::string localeStr(localeStrPtr);
jint *proximityChars = env->GetIntArrayElements(proximityCharsArray, 0);
jint *keyXCoordinates = safeGetIntArrayElements(env, keyXCoordinateArray);
jint *keyYCoordinates = safeGetIntArrayElements(env, keyYCoordinateArray);
@@ -44,7 +47,7 @@ static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object,
jfloat *sweetSpotCenterXs = safeGetFloatArrayElements(env, sweetSpotCenterXArray);
jfloat *sweetSpotCenterYs = safeGetFloatArrayElements(env, sweetSpotCenterYArray);
jfloat *sweetSpotRadii = safeGetFloatArrayElements(env, sweetSpotRadiusArray);
- ProximityInfo *proximityInfo = new ProximityInfo(maxProximityCharsSize, displayWidth,
+ ProximityInfo *proximityInfo = new ProximityInfo(localeStr, maxProximityCharsSize, displayWidth,
displayHeight, gridWidth, gridHeight, mostCommonkeyWidth,
(const uint32_t*)proximityChars,
keyCount, (const int32_t*)keyXCoordinates, (const int32_t*)keyYCoordinates,
@@ -60,6 +63,7 @@ static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jobject object,
safeReleaseIntArrayElements(env, keyYCoordinateArray, keyYCoordinates);
safeReleaseIntArrayElements(env, keyXCoordinateArray, keyXCoordinates);
env->ReleaseIntArrayElements(proximityCharsArray, proximityChars, 0);
+ env->ReleaseStringUTFChars(localejStr, localeStrPtr);
return (jlong)proximityInfo;
}
@@ -70,7 +74,7 @@ static void latinime_Keyboard_release(JNIEnv *env, jobject object, jlong proximi
}
static JNINativeMethod sKeyboardMethods[] = {
- {"setProximityInfoNative", "(IIIIII[II[I[I[I[I[I[F[F[F)J",
+ {"setProximityInfoNative", "(Ljava/lang/String;IIIIII[II[I[I[I[I[I[F[F[F)J",
(void*)latinime_Keyboard_setProximityInfo},
{"releaseProximityInfoNative", "(J)V", (void*)latinime_Keyboard_release}
};