diff options
author | 2012-03-13 01:41:46 -0700 | |
---|---|---|
committer | 2012-03-13 01:41:46 -0700 | |
commit | 8e08bfb8debe2c3e03f2feb47174922537d02aad (patch) | |
tree | 4804f7521b6307effe7ab348c3a46be187a05467 /native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp | |
parent | aee5f03d6ebf9cb03b52cbea003556f38745b4fe (diff) | |
parent | 552c3c27f04e6769e40cffbce3a9e8eed1269294 (diff) | |
download | latinime-8e08bfb8debe2c3e03f2feb47174922537d02aad.tar.gz latinime-8e08bfb8debe2c3e03f2feb47174922537d02aad.tar.xz latinime-8e08bfb8debe2c3e03f2feb47174922537d02aad.zip |
Merge "Implement additional proximity characters in the native code Bug: 4343280"
Diffstat (limited to 'native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp')
-rw-r--r-- | native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp | 16 |
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} }; |