Loading java/src/com/android/inputmethod/latin/BinaryDictionary.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -98,6 +98,7 @@ public class BinaryDictionary extends Dictionary { private static native float calcNormalizedScoreNative(char[] before, char[] after, int score); private static native float calcNormalizedScoreNative(char[] before, char[] after, int score); private static native int editDistanceNative(char[] before, char[] after); private static native int editDistanceNative(char[] before, char[] after); // TODO: Move native dict into session private final void loadDictionary(String path, long startOffset, long length) { private final void loadDictionary(String path, long startOffset, long length) { mNativeDict = openNative(path, startOffset, length, TYPED_LETTER_MULTIPLIER, mNativeDict = openNative(path, startOffset, length, TYPED_LETTER_MULTIPLIER, FULL_WORD_SCORE_MULTIPLIER, MAX_WORD_LENGTH, MAX_WORDS, MAX_PREDICTIONS); FULL_WORD_SCORE_MULTIPLIER, MAX_WORD_LENGTH, MAX_WORDS, MAX_PREDICTIONS); Loading java/src/com/android/inputmethod/latin/DicTraverseSession.java +7 −7 Original line number Original line Diff line number Diff line Loading @@ -23,8 +23,8 @@ public class DicTraverseSession { JniUtils.loadNativeLibrary(); JniUtils.loadNativeLibrary(); } } private native long setDicTraverseSessionNative(String locale); private native long setDicTraverseSessionNative(String locale); private native void initDicTraverseSessionNative( private native void initDicTraverseSessionNative(long nativeDicTraverseSession, long nativeDicTraverseSession, int[] previousWord, int previwousWordLength); long dictionary, int[] previousWord, int previwousWordLength); private native void releaseDicTraverseSessionNative(long nativeDicTraverseSession); private native void releaseDicTraverseSessionNative(long nativeDicTraverseSession); private long mNativeDicTraverseSession; private long mNativeDicTraverseSession; Loading @@ -32,19 +32,19 @@ public class DicTraverseSession { public DicTraverseSession(Locale locale) { public DicTraverseSession(Locale locale) { mNativeDicTraverseSession = createNativeDicTraverseSession( mNativeDicTraverseSession = createNativeDicTraverseSession( locale != null ? locale.toString() : ""); locale != null ? locale.toString() : ""); initSession(); } } public long getSession() { public long getSession() { return mNativeDicTraverseSession; return mNativeDicTraverseSession; } } public void initSession() { public void initSession(long dictionary) { initSession(null, 0); initSession(dictionary, null, 0); } } public void initSession(int[] previousWord, int previousWordLength) { public void initSession(long dictionary, int[] previousWord, int previousWordLength) { initDicTraverseSessionNative(mNativeDicTraverseSession, previousWord, previousWordLength); initDicTraverseSessionNative( mNativeDicTraverseSession, dictionary, previousWord, previousWordLength); } } private final long createNativeDicTraverseSession(String locale) { private final long createNativeDicTraverseSession(String locale) { Loading native/jni/Android.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,7 @@ LATIN_IME_CORE_SRC_FILES := \ char_utils.cpp \ char_utils.cpp \ correction.cpp \ correction.cpp \ dictionary.cpp \ dictionary.cpp \ dic_traverse_wrapper.cpp \ proximity_info.cpp \ proximity_info.cpp \ proximity_info_state.cpp \ proximity_info_state.cpp \ unigram_dictionary.cpp \ unigram_dictionary.cpp \ Loading native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp +9 −11 Original line number Original line Diff line number Diff line Loading @@ -17,25 +17,23 @@ #define LOG_TAG "LatinIME: jni: Session" #define LOG_TAG "LatinIME: jni: Session" #include "com_android_inputmethod_latin_DicTraverseSession.h" #include "com_android_inputmethod_latin_DicTraverseSession.h" #include "dic_traverse_wrapper.h" #include "jni.h" #include "jni.h" #include "jni_common.h" #include "jni_common.h" namespace latinime { namespace latinime { void *(*DicTraverseWrapper::sDicTraverseSessionFactoryMethod)() = 0; static jlong latinime_setDicTraverseSession(JNIEnv *env, jobject object, jstring localeJStr) { void (*DicTraverseWrapper::sDicTraverseSessionReleaseMethod)(void *) = 0; void *traverseSession = DicTraverseWrapper::getDicTraverseSession(env, localeJStr); void (*DicTraverseWrapper::sDicTraverseSessionInitMethod)( JNIEnv *, void *, const jintArray, const jint) = 0; static jlong latinime_setDicTraverseSession(JNIEnv *env, jobject object, jstring localejStr) { void *traverseSession = DicTraverseWrapper::getDicTraverseSession(); return reinterpret_cast<jlong>(traverseSession); return reinterpret_cast<jlong>(traverseSession); } } static void latinime_initDicTraverseSession(JNIEnv *env, jlong traverseSession, static void latinime_initDicTraverseSession(JNIEnv *env, jlong traverseSession, jintArray previousWord, jint previousWordLength) { jlong dictionary, jintArray previousWord, jint previousWordLength) { void *ts = reinterpret_cast<void*>(traverseSession); void *ts = reinterpret_cast<void*>(traverseSession); DicTraverseWrapper::initDicTraverseSession(env, ts, previousWord, previousWordLength); Dictionary *dict = reinterpret_cast<Dictionary*>(dictionary); int prevWord[previousWordLength]; env->GetIntArrayRegion(previousWord, 0, previousWordLength, prevWord); DicTraverseWrapper::initDicTraverseSession(ts, dict, prevWord, previousWordLength); } } static void latinime_DicTraverseSession_release( static void latinime_DicTraverseSession_release( Loading @@ -46,7 +44,7 @@ static void latinime_DicTraverseSession_release( static JNINativeMethod sMethods[] = { static JNINativeMethod sMethods[] = { {"setDicTraverseSessionNative", "(Ljava/lang/String;)J", (void*)latinime_setDicTraverseSession}, {"setDicTraverseSessionNative", "(Ljava/lang/String;)J", (void*)latinime_setDicTraverseSession}, {"initDicTraverseSessionNative", "(J[II)V", (void*)latinime_initDicTraverseSession}, {"initDicTraverseSessionNative", "(JJ[II)V", (void*)latinime_initDicTraverseSession}, {"releaseDicTraverseSessionNative", "(J)V", (void*)latinime_DicTraverseSession_release} {"releaseDicTraverseSessionNative", "(J)V", (void*)latinime_DicTraverseSession_release} }; }; Loading native/jni/com_android_inputmethod_latin_DicTraverseSession.h +0 −27 Original line number Original line Diff line number Diff line Loading @@ -21,33 +21,6 @@ #include "jni.h" #include "jni.h" namespace latinime { namespace latinime { // TODO: Remove class DicTraverseWrapper { public: static void *getDicTraverseSession() { if (sDicTraverseSessionFactoryMethod) { return sDicTraverseSessionFactoryMethod(); } return 0; } static void initDicTraverseSession(JNIEnv *env, void *traverseSession, const jintArray prevWord, const jint prevWordLength) { if (sDicTraverseSessionInitMethod) { sDicTraverseSessionInitMethod(env, traverseSession, prevWord, prevWordLength); } } static void releaseDicTraverseSession(void *traverseSession) { if (sDicTraverseSessionReleaseMethod) { sDicTraverseSessionReleaseMethod(traverseSession); } } private: DISALLOW_IMPLICIT_CONSTRUCTORS(DicTraverseWrapper); static void *(*sDicTraverseSessionFactoryMethod)(); static void (*sDicTraverseSessionInitMethod)(JNIEnv *, void *, const jintArray, const jint); static void (*sDicTraverseSessionReleaseMethod)(void *); }; int register_DicTraverseSession(JNIEnv *env); int register_DicTraverseSession(JNIEnv *env); } // namespace latinime } // namespace latinime #endif // _COM_ANDROID_INPUTMETHOD_LATIN_DICTRAVERSESESSION_H #endif // _COM_ANDROID_INPUTMETHOD_LATIN_DICTRAVERSESESSION_H Loading
java/src/com/android/inputmethod/latin/BinaryDictionary.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -98,6 +98,7 @@ public class BinaryDictionary extends Dictionary { private static native float calcNormalizedScoreNative(char[] before, char[] after, int score); private static native float calcNormalizedScoreNative(char[] before, char[] after, int score); private static native int editDistanceNative(char[] before, char[] after); private static native int editDistanceNative(char[] before, char[] after); // TODO: Move native dict into session private final void loadDictionary(String path, long startOffset, long length) { private final void loadDictionary(String path, long startOffset, long length) { mNativeDict = openNative(path, startOffset, length, TYPED_LETTER_MULTIPLIER, mNativeDict = openNative(path, startOffset, length, TYPED_LETTER_MULTIPLIER, FULL_WORD_SCORE_MULTIPLIER, MAX_WORD_LENGTH, MAX_WORDS, MAX_PREDICTIONS); FULL_WORD_SCORE_MULTIPLIER, MAX_WORD_LENGTH, MAX_WORDS, MAX_PREDICTIONS); Loading
java/src/com/android/inputmethod/latin/DicTraverseSession.java +7 −7 Original line number Original line Diff line number Diff line Loading @@ -23,8 +23,8 @@ public class DicTraverseSession { JniUtils.loadNativeLibrary(); JniUtils.loadNativeLibrary(); } } private native long setDicTraverseSessionNative(String locale); private native long setDicTraverseSessionNative(String locale); private native void initDicTraverseSessionNative( private native void initDicTraverseSessionNative(long nativeDicTraverseSession, long nativeDicTraverseSession, int[] previousWord, int previwousWordLength); long dictionary, int[] previousWord, int previwousWordLength); private native void releaseDicTraverseSessionNative(long nativeDicTraverseSession); private native void releaseDicTraverseSessionNative(long nativeDicTraverseSession); private long mNativeDicTraverseSession; private long mNativeDicTraverseSession; Loading @@ -32,19 +32,19 @@ public class DicTraverseSession { public DicTraverseSession(Locale locale) { public DicTraverseSession(Locale locale) { mNativeDicTraverseSession = createNativeDicTraverseSession( mNativeDicTraverseSession = createNativeDicTraverseSession( locale != null ? locale.toString() : ""); locale != null ? locale.toString() : ""); initSession(); } } public long getSession() { public long getSession() { return mNativeDicTraverseSession; return mNativeDicTraverseSession; } } public void initSession() { public void initSession(long dictionary) { initSession(null, 0); initSession(dictionary, null, 0); } } public void initSession(int[] previousWord, int previousWordLength) { public void initSession(long dictionary, int[] previousWord, int previousWordLength) { initDicTraverseSessionNative(mNativeDicTraverseSession, previousWord, previousWordLength); initDicTraverseSessionNative( mNativeDicTraverseSession, dictionary, previousWord, previousWordLength); } } private final long createNativeDicTraverseSession(String locale) { private final long createNativeDicTraverseSession(String locale) { Loading
native/jni/Android.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,7 @@ LATIN_IME_CORE_SRC_FILES := \ char_utils.cpp \ char_utils.cpp \ correction.cpp \ correction.cpp \ dictionary.cpp \ dictionary.cpp \ dic_traverse_wrapper.cpp \ proximity_info.cpp \ proximity_info.cpp \ proximity_info_state.cpp \ proximity_info_state.cpp \ unigram_dictionary.cpp \ unigram_dictionary.cpp \ Loading
native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp +9 −11 Original line number Original line Diff line number Diff line Loading @@ -17,25 +17,23 @@ #define LOG_TAG "LatinIME: jni: Session" #define LOG_TAG "LatinIME: jni: Session" #include "com_android_inputmethod_latin_DicTraverseSession.h" #include "com_android_inputmethod_latin_DicTraverseSession.h" #include "dic_traverse_wrapper.h" #include "jni.h" #include "jni.h" #include "jni_common.h" #include "jni_common.h" namespace latinime { namespace latinime { void *(*DicTraverseWrapper::sDicTraverseSessionFactoryMethod)() = 0; static jlong latinime_setDicTraverseSession(JNIEnv *env, jobject object, jstring localeJStr) { void (*DicTraverseWrapper::sDicTraverseSessionReleaseMethod)(void *) = 0; void *traverseSession = DicTraverseWrapper::getDicTraverseSession(env, localeJStr); void (*DicTraverseWrapper::sDicTraverseSessionInitMethod)( JNIEnv *, void *, const jintArray, const jint) = 0; static jlong latinime_setDicTraverseSession(JNIEnv *env, jobject object, jstring localejStr) { void *traverseSession = DicTraverseWrapper::getDicTraverseSession(); return reinterpret_cast<jlong>(traverseSession); return reinterpret_cast<jlong>(traverseSession); } } static void latinime_initDicTraverseSession(JNIEnv *env, jlong traverseSession, static void latinime_initDicTraverseSession(JNIEnv *env, jlong traverseSession, jintArray previousWord, jint previousWordLength) { jlong dictionary, jintArray previousWord, jint previousWordLength) { void *ts = reinterpret_cast<void*>(traverseSession); void *ts = reinterpret_cast<void*>(traverseSession); DicTraverseWrapper::initDicTraverseSession(env, ts, previousWord, previousWordLength); Dictionary *dict = reinterpret_cast<Dictionary*>(dictionary); int prevWord[previousWordLength]; env->GetIntArrayRegion(previousWord, 0, previousWordLength, prevWord); DicTraverseWrapper::initDicTraverseSession(ts, dict, prevWord, previousWordLength); } } static void latinime_DicTraverseSession_release( static void latinime_DicTraverseSession_release( Loading @@ -46,7 +44,7 @@ static void latinime_DicTraverseSession_release( static JNINativeMethod sMethods[] = { static JNINativeMethod sMethods[] = { {"setDicTraverseSessionNative", "(Ljava/lang/String;)J", (void*)latinime_setDicTraverseSession}, {"setDicTraverseSessionNative", "(Ljava/lang/String;)J", (void*)latinime_setDicTraverseSession}, {"initDicTraverseSessionNative", "(J[II)V", (void*)latinime_initDicTraverseSession}, {"initDicTraverseSessionNative", "(JJ[II)V", (void*)latinime_initDicTraverseSession}, {"releaseDicTraverseSessionNative", "(J)V", (void*)latinime_DicTraverseSession_release} {"releaseDicTraverseSessionNative", "(J)V", (void*)latinime_DicTraverseSession_release} }; }; Loading
native/jni/com_android_inputmethod_latin_DicTraverseSession.h +0 −27 Original line number Original line Diff line number Diff line Loading @@ -21,33 +21,6 @@ #include "jni.h" #include "jni.h" namespace latinime { namespace latinime { // TODO: Remove class DicTraverseWrapper { public: static void *getDicTraverseSession() { if (sDicTraverseSessionFactoryMethod) { return sDicTraverseSessionFactoryMethod(); } return 0; } static void initDicTraverseSession(JNIEnv *env, void *traverseSession, const jintArray prevWord, const jint prevWordLength) { if (sDicTraverseSessionInitMethod) { sDicTraverseSessionInitMethod(env, traverseSession, prevWord, prevWordLength); } } static void releaseDicTraverseSession(void *traverseSession) { if (sDicTraverseSessionReleaseMethod) { sDicTraverseSessionReleaseMethod(traverseSession); } } private: DISALLOW_IMPLICIT_CONSTRUCTORS(DicTraverseWrapper); static void *(*sDicTraverseSessionFactoryMethod)(); static void (*sDicTraverseSessionInitMethod)(JNIEnv *, void *, const jintArray, const jint); static void (*sDicTraverseSessionReleaseMethod)(void *); }; int register_DicTraverseSession(JNIEnv *env); int register_DicTraverseSession(JNIEnv *env); } // namespace latinime } // namespace latinime #endif // _COM_ANDROID_INPUTMETHOD_LATIN_DICTRAVERSESESSION_H #endif // _COM_ANDROID_INPUTMETHOD_LATIN_DICTRAVERSESESSION_H