From ea98e026f1ad7732279aec6d06107f46ea0af93d Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Tue, 10 Jul 2012 20:26:34 +0900 Subject: [PATCH] Pull up some more common code (A95) Change-Id: I3ac7ee823471a6d1da8031e064bce38b0e5a8f5c --- .../inputmethod/latin/BinaryDictionary.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index 252cdf1f9..c9402d96d 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -111,24 +111,26 @@ public class BinaryDictionary extends Dictionary { Arrays.fill(mInputCodes, WordComposer.NOT_A_CODE); Arrays.fill(mOutputChars, (char) 0); Arrays.fill(mOutputScores, 0); + // TODO: toLowerCase in the native code + final int[] prevWordCodePointArray = (null == prevWord) + ? null : StringUtils.toCodePointArray(prevWord.toString()); if (composer.size() <= 1) { - return TextUtils.isEmpty(prevWord) ? null : getBigramsInternal(composer, prevWord); + return TextUtils.isEmpty(prevWord) ? null : getBigramsInternal(composer, + prevWordCodePointArray); } else { - return getWordsInternal(composer, prevWord, proximityInfo); + return getWordsInternal(composer, prevWordCodePointArray, proximityInfo); } } // TODO: move to native code private ArrayList getBigramsInternal(final WordComposer codes, - final CharSequence previousWord) { - int[] codePoints = StringUtils.toCodePointArray(previousWord.toString()); - + final int[] previousWord) { int codesSize = codes.size(); if (codesSize > 0) { mInputCodes[0] = codes.getCodeAt(0); } - int count = getBigramsNative(mNativeDict, codePoints, codePoints.length, mInputCodes, + int count = getBigramsNative(mNativeDict, previousWord, previousWord.length, mInputCodes, codesSize, mOutputChars, mOutputScores, MAX_WORD_LENGTH, MAX_BIGRAMS); if (count > MAX_BIGRAMS) { count = MAX_BIGRAMS; @@ -154,9 +156,9 @@ public class BinaryDictionary extends Dictionary { // TODO: move to native code // proximityInfo and/or prevWordForBigrams may not be null. private ArrayList getWordsInternal(final WordComposer codes, - final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo) { - final int count = getWordsInternalInternal(codes, prevWordForBigrams, proximityInfo, - mOutputChars, mOutputScores, mSpaceIndices); + final int[] prevWord, final ProximityInfo proximityInfo) { + final int count = getWordsInternalInternal(codes, prevWord, proximityInfo, mOutputChars, + mOutputScores, mSpaceIndices); final ArrayList suggestions = new ArrayList(); for (int j = 0; j < count; ++j) { @@ -183,7 +185,7 @@ public class BinaryDictionary extends Dictionary { // proximityInfo may not be null. // TODO: remove this method by inlining it into getWordsInternal private int getWordsInternalInternal(final WordComposer codes, - final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo, + final int[] prevWord, final ProximityInfo proximityInfo, char[] outputChars, int[] scores, int[] spaceIndices) { final InputPointers ips = codes.getInputPointers(); final boolean isGesture = codes.isBatchMode(); @@ -199,13 +201,9 @@ public class BinaryDictionary extends Dictionary { } } - // TODO: toLowerCase in the native code - final int[] prevWordCodePointArray = (null == prevWordForBigrams) - ? null : StringUtils.toCodePointArray(prevWordForBigrams.toString()); - return getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(), ips.getXCoordinates(), ips.getYCoordinates(), ips.getTimes(), ips.getPointerIds(), - mInputCodes, codesSize, 0 /* unused */, isGesture, prevWordCodePointArray, + mInputCodes, codesSize, 0 /* unused */, isGesture, prevWord, mUseFullEditDistance, outputChars, scores, spaceIndices); }