aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 5e3167bc3..8970e671d 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -147,10 +147,17 @@ static int latinime_BinaryDictionary_getSuggestions(JNIEnv *env, jobject object,
jint *prevWordChars = prevWordForBigrams
? env->GetIntArrayElements(prevWordForBigrams, 0) : 0;
jsize prevWordLength = prevWordChars ? env->GetArrayLength(prevWordForBigrams) : 0;
- int count = dictionary->getSuggestions(pInfo, xCoordinates, yCoordinates, times, pointerIds,
- inputCodes, arraySize, prevWordChars, prevWordLength, commitPoint, isGesture,
- useFullEditDistance, (unsigned short*) outputChars,
- frequencies, spaceIndices);
+
+ int count;
+ if (isGesture || arraySize > 1) {
+ count = dictionary->getSuggestions(pInfo, xCoordinates, yCoordinates, times, pointerIds,
+ inputCodes, arraySize, prevWordChars, prevWordLength, commitPoint, isGesture,
+ useFullEditDistance, (unsigned short*) outputChars, frequencies, spaceIndices);
+ } else {
+ count = dictionary->getBigrams(prevWordChars, prevWordLength, inputCodes,
+ arraySize, (unsigned short*) outputChars, frequencies);
+ }
+
if (prevWordChars) {
env->ReleaseIntArrayElements(prevWordForBigrams, prevWordChars, JNI_ABORT);
}