diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index 255ef3ad1a3e047113ccc855332c5409a9cca23c..20c1b25db87e968a27b50850aaa7d604defc5290 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -116,7 +116,8 @@ public class BinaryDictionary extends Dictionary { ? null : StringUtils.toCodePointArray(prevWord.toString()); final int composerSize = composer.size(); - if (composerSize <= 1 || !composer.isBatchMode()) { + final boolean isGesture = composer.isBatchMode(); + if (composerSize <= 1 || !isGesture) { if (composerSize > MAX_WORD_LENGTH - 1) return null; for (int i = 0; i < composerSize; i++) { mInputCodes[i] = composer.getCodeAt(i); @@ -124,7 +125,7 @@ public class BinaryDictionary extends Dictionary { } final int count; - if (!composer.isBatchMode() && composer.size() <= 1) { + if (!isGesture && composerSize <= 1) { if (TextUtils.isEmpty(prevWord)) return null; int tmpCount = getBigramsNative(mNativeDict, prevWordCodePointArray, prevWordCodePointArray.length, mInputCodes, composerSize, @@ -132,23 +133,17 @@ public class BinaryDictionary extends Dictionary { count = Math.min(tmpCount, MAX_BIGRAMS); } else { final InputPointers ips = composer.getInputPointers(); - final boolean isGesture = composer.isBatchMode(); - final int codesSize; - if (isGesture) { - codesSize = ips.getPointerSize(); - } else { - codesSize = composer.size(); - } - + final int codesSize = isGesture ? ips.getPointerSize() : composerSize; // proximityInfo and/or prevWordForBigrams may not be null. count = getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(), ips.getXCoordinates(), ips.getYCoordinates(), ips.getTimes(), ips.getPointerIds(), mInputCodes, codesSize, 0 /* unused */, isGesture, prevWordCodePointArray, mUseFullEditDistance, mOutputChars, mOutputScores, mSpaceIndices); } + final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<SuggestedWordInfo>(); for (int j = 0; j < count; ++j) { - if (composer.size() > 0 && mOutputScores[j] < 1) break; + if (composerSize > 0 && mOutputScores[j] < 1) break; final int start = j * MAX_WORD_LENGTH; int len = 0; while (len < MAX_WORD_LENGTH && mOutputChars[start + len] != 0) {