Loading native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, j const jsize numberOfOptions = env->GetArrayLength(suggestOptions); int options[numberOfOptions]; env->GetIntArrayRegion(suggestOptions, 0, numberOfOptions, options); SuggestOptions givenOptions(options, numberOfOptions); SuggestOptions givenSuggestOptions(options, numberOfOptions); // Output values /* By the way, let's check the output array length here to make sure */ Loading Loading @@ -190,12 +190,11 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, j memset(outputTypes, 0, sizeof(outputTypes)); int count; if (givenOptions.isGesture() || inputSize > 0) { if (givenSuggestOptions.isGesture() || inputSize > 0) { count = dictionary->getSuggestions(pInfo, traverseSession, xCoordinates, yCoordinates, times, pointerIds, inputCodePoints, inputSize, prevWordCodePoints, prevWordCodePointsLength, commitPoint, givenOptions.isGesture(), givenOptions.useFullEditDistance(), outputCodePoints, scores, spaceIndices, outputTypes); prevWordCodePointsLength, commitPoint, &givenSuggestOptions, outputCodePoints, scores, spaceIndices, outputTypes); } else { count = dictionary->getBigrams(prevWordCodePoints, prevWordCodePointsLength, inputCodePoints, inputSize, outputCodePoints, scores, outputTypes); Loading native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -34,12 +34,14 @@ static void latinime_initDicTraverseSession(JNIEnv *env, jclass clazz, jlong tra void *ts = reinterpret_cast<void *>(traverseSession); Dictionary *dict = reinterpret_cast<Dictionary *>(dictionary); if (!previousWord) { DicTraverseWrapper::initDicTraverseSession(ts, dict, 0, 0); DicTraverseWrapper::initDicTraverseSession( ts, dict, 0 /* prevWord */, 0 /* prevWordLength*/, 0 /* suggestOptions */); return; } int prevWord[previousWordLength]; env->GetIntArrayRegion(previousWord, 0, previousWordLength, prevWord); DicTraverseWrapper::initDicTraverseSession(ts, dict, prevWord, previousWordLength); DicTraverseWrapper::initDicTraverseSession( ts, dict, prevWord, previousWordLength, 0 /* suggestOptions */); } static void latinime_releaseDicTraverseSession(JNIEnv *env, jclass clazz, jlong traverseSession) { Loading native/jni/src/dic_traverse_wrapper.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -22,5 +22,5 @@ namespace latinime { void *(*DicTraverseWrapper::sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring) = 0; void (*DicTraverseWrapper::sDicTraverseSessionReleaseMethod)(void *) = 0; void (*DicTraverseWrapper::sDicTraverseSessionInitMethod)( void *, const Dictionary *const, const int *, const int) = 0; void *, const Dictionary *const, const int *, const int, const SuggestOptions *const) = 0; } // namespace latinime native/jni/src/dic_traverse_wrapper.h +8 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ namespace latinime { class Dictionary; class SuggestOptions; // TODO: Remove class DicTraverseWrapper { public: Loading @@ -32,9 +33,11 @@ class DicTraverseWrapper { return 0; } static void initDicTraverseSession(void *traverseSession, const Dictionary *const dictionary, const int *prevWord, const int prevWordLength) { const int *prevWord, const int prevWordLength, const SuggestOptions *const suggestOptions) { if (sDicTraverseSessionInitMethod) { sDicTraverseSessionInitMethod(traverseSession, dictionary, prevWord, prevWordLength); sDicTraverseSessionInitMethod( traverseSession, dictionary, prevWord, prevWordLength, suggestOptions); } } static void releaseDicTraverseSession(void *traverseSession) { Loading @@ -46,7 +49,8 @@ class DicTraverseWrapper { sDicTraverseSessionFactoryMethod = factoryMethod; } static void setTraverseSessionInitMethod( void (*initMethod)(void *, const Dictionary *const, const int *, const int)) { void (*initMethod)(void *, const Dictionary *const, const int *, const int, const SuggestOptions *const)) { sDicTraverseSessionInitMethod = initMethod; } static void setTraverseSessionReleaseMethod(void (*releaseMethod)(void *)) { Loading @@ -57,7 +61,7 @@ class DicTraverseWrapper { DISALLOW_IMPLICIT_CONSTRUCTORS(DicTraverseWrapper); static void *(*sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring); static void (*sDicTraverseSessionInitMethod)( void *, const Dictionary *const, const int *, const int); void *, const Dictionary *const, const int *, const int, const SuggestOptions *const); static void (*sDicTraverseSessionReleaseMethod)(void *); }; } // namespace latinime Loading native/jni/src/dictionary.cpp +9 −8 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include "binary_format.h" #include "defines.h" #include "dic_traverse_wrapper.h" #include "suggest_options.h" #include "suggest/core/suggest.h" #include "suggest/policyimpl/gesture/gesture_suggest_policy_factory.h" #include "suggest/policyimpl/typing/typing_suggest_policy_factory.h" Loading Loading @@ -53,13 +54,13 @@ Dictionary::~Dictionary() { int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSession, int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints, int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint, bool isGesture, bool useFullEditDistance, int *outWords, int *frequencies, int *spaceIndices, int *outputTypes) const { int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint, const SuggestOptions *const suggestOptions, int *outWords, int *frequencies, int *spaceIndices, int *outputTypes) const { int result = 0; if (isGesture) { if (suggestOptions->isGesture()) { DicTraverseWrapper::initDicTraverseSession( traverseSession, this, prevWordCodePoints, prevWordLength); traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions); result = mGestureSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates, ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint, outWords, frequencies, spaceIndices, outputTypes); Loading @@ -70,7 +71,7 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi } else { if (USE_SUGGEST_INTERFACE_FOR_TYPING) { DicTraverseWrapper::initDicTraverseSession( traverseSession, this, prevWordCodePoints, prevWordLength); traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions); result = mTypingSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates, ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint, outWords, frequencies, spaceIndices, outputTypes); Loading @@ -84,8 +85,8 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi mBigramDictionary->fillBigramAddressToProbabilityMapAndFilter(prevWordCodePoints, prevWordLength, &bigramMap, bigramFilter); result = mUnigramDictionary->getSuggestions(proximityInfo, xcoordinates, ycoordinates, inputCodePoints, inputSize, &bigramMap, bigramFilter, useFullEditDistance, outWords, frequencies, outputTypes); inputCodePoints, inputSize, &bigramMap, bigramFilter, suggestOptions->useFullEditDistance(), outWords, frequencies, outputTypes); return result; } } Loading Loading
native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, j const jsize numberOfOptions = env->GetArrayLength(suggestOptions); int options[numberOfOptions]; env->GetIntArrayRegion(suggestOptions, 0, numberOfOptions, options); SuggestOptions givenOptions(options, numberOfOptions); SuggestOptions givenSuggestOptions(options, numberOfOptions); // Output values /* By the way, let's check the output array length here to make sure */ Loading Loading @@ -190,12 +190,11 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jclass clazz, j memset(outputTypes, 0, sizeof(outputTypes)); int count; if (givenOptions.isGesture() || inputSize > 0) { if (givenSuggestOptions.isGesture() || inputSize > 0) { count = dictionary->getSuggestions(pInfo, traverseSession, xCoordinates, yCoordinates, times, pointerIds, inputCodePoints, inputSize, prevWordCodePoints, prevWordCodePointsLength, commitPoint, givenOptions.isGesture(), givenOptions.useFullEditDistance(), outputCodePoints, scores, spaceIndices, outputTypes); prevWordCodePointsLength, commitPoint, &givenSuggestOptions, outputCodePoints, scores, spaceIndices, outputTypes); } else { count = dictionary->getBigrams(prevWordCodePoints, prevWordCodePointsLength, inputCodePoints, inputSize, outputCodePoints, scores, outputTypes); Loading
native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -34,12 +34,14 @@ static void latinime_initDicTraverseSession(JNIEnv *env, jclass clazz, jlong tra void *ts = reinterpret_cast<void *>(traverseSession); Dictionary *dict = reinterpret_cast<Dictionary *>(dictionary); if (!previousWord) { DicTraverseWrapper::initDicTraverseSession(ts, dict, 0, 0); DicTraverseWrapper::initDicTraverseSession( ts, dict, 0 /* prevWord */, 0 /* prevWordLength*/, 0 /* suggestOptions */); return; } int prevWord[previousWordLength]; env->GetIntArrayRegion(previousWord, 0, previousWordLength, prevWord); DicTraverseWrapper::initDicTraverseSession(ts, dict, prevWord, previousWordLength); DicTraverseWrapper::initDicTraverseSession( ts, dict, prevWord, previousWordLength, 0 /* suggestOptions */); } static void latinime_releaseDicTraverseSession(JNIEnv *env, jclass clazz, jlong traverseSession) { Loading
native/jni/src/dic_traverse_wrapper.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -22,5 +22,5 @@ namespace latinime { void *(*DicTraverseWrapper::sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring) = 0; void (*DicTraverseWrapper::sDicTraverseSessionReleaseMethod)(void *) = 0; void (*DicTraverseWrapper::sDicTraverseSessionInitMethod)( void *, const Dictionary *const, const int *, const int) = 0; void *, const Dictionary *const, const int *, const int, const SuggestOptions *const) = 0; } // namespace latinime
native/jni/src/dic_traverse_wrapper.h +8 −4 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ namespace latinime { class Dictionary; class SuggestOptions; // TODO: Remove class DicTraverseWrapper { public: Loading @@ -32,9 +33,11 @@ class DicTraverseWrapper { return 0; } static void initDicTraverseSession(void *traverseSession, const Dictionary *const dictionary, const int *prevWord, const int prevWordLength) { const int *prevWord, const int prevWordLength, const SuggestOptions *const suggestOptions) { if (sDicTraverseSessionInitMethod) { sDicTraverseSessionInitMethod(traverseSession, dictionary, prevWord, prevWordLength); sDicTraverseSessionInitMethod( traverseSession, dictionary, prevWord, prevWordLength, suggestOptions); } } static void releaseDicTraverseSession(void *traverseSession) { Loading @@ -46,7 +49,8 @@ class DicTraverseWrapper { sDicTraverseSessionFactoryMethod = factoryMethod; } static void setTraverseSessionInitMethod( void (*initMethod)(void *, const Dictionary *const, const int *, const int)) { void (*initMethod)(void *, const Dictionary *const, const int *, const int, const SuggestOptions *const)) { sDicTraverseSessionInitMethod = initMethod; } static void setTraverseSessionReleaseMethod(void (*releaseMethod)(void *)) { Loading @@ -57,7 +61,7 @@ class DicTraverseWrapper { DISALLOW_IMPLICIT_CONSTRUCTORS(DicTraverseWrapper); static void *(*sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring); static void (*sDicTraverseSessionInitMethod)( void *, const Dictionary *const, const int *, const int); void *, const Dictionary *const, const int *, const int, const SuggestOptions *const); static void (*sDicTraverseSessionReleaseMethod)(void *); }; } // namespace latinime Loading
native/jni/src/dictionary.cpp +9 −8 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include "binary_format.h" #include "defines.h" #include "dic_traverse_wrapper.h" #include "suggest_options.h" #include "suggest/core/suggest.h" #include "suggest/policyimpl/gesture/gesture_suggest_policy_factory.h" #include "suggest/policyimpl/typing/typing_suggest_policy_factory.h" Loading Loading @@ -53,13 +54,13 @@ Dictionary::~Dictionary() { int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSession, int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints, int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint, bool isGesture, bool useFullEditDistance, int *outWords, int *frequencies, int *spaceIndices, int *outputTypes) const { int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint, const SuggestOptions *const suggestOptions, int *outWords, int *frequencies, int *spaceIndices, int *outputTypes) const { int result = 0; if (isGesture) { if (suggestOptions->isGesture()) { DicTraverseWrapper::initDicTraverseSession( traverseSession, this, prevWordCodePoints, prevWordLength); traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions); result = mGestureSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates, ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint, outWords, frequencies, spaceIndices, outputTypes); Loading @@ -70,7 +71,7 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi } else { if (USE_SUGGEST_INTERFACE_FOR_TYPING) { DicTraverseWrapper::initDicTraverseSession( traverseSession, this, prevWordCodePoints, prevWordLength); traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions); result = mTypingSuggest->getSuggestions(proximityInfo, traverseSession, xcoordinates, ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint, outWords, frequencies, spaceIndices, outputTypes); Loading @@ -84,8 +85,8 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, void *traverseSessi mBigramDictionary->fillBigramAddressToProbabilityMapAndFilter(prevWordCodePoints, prevWordLength, &bigramMap, bigramFilter); result = mUnigramDictionary->getSuggestions(proximityInfo, xcoordinates, ycoordinates, inputCodePoints, inputSize, &bigramMap, bigramFilter, useFullEditDistance, outWords, frequencies, outputTypes); inputCodePoints, inputSize, &bigramMap, bigramFilter, suggestOptions->useFullEditDistance(), outWords, frequencies, outputTypes); return result; } } Loading