aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
diff options
context:
space:
mode:
authorsatok <satok@google.com>2012-03-13 01:41:46 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-03-13 01:41:46 -0700
commit8e08bfb8debe2c3e03f2feb47174922537d02aad (patch)
tree4804f7521b6307effe7ab348c3a46be187a05467 /native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
parentaee5f03d6ebf9cb03b52cbea003556f38745b4fe (diff)
parent552c3c27f04e6769e40cffbce3a9e8eed1269294 (diff)
downloadlatinime-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.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}
};