Loading java/src/com/android/inputmethod/latin/BinaryDictionary.java +8 −5 Original line number Diff line number Diff line Loading @@ -135,11 +135,12 @@ public class BinaryDictionary extends Dictionary { } } // proximityInfo may not be null. // proximityInfo and/or prevWordForBigrams may not be null. @Override public void getWords(final WordComposer codes, final WordCallback callback, final ProximityInfo proximityInfo) { final int count = getSuggestions(codes, proximityInfo, mOutputChars, mScores); public void getWords(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { final int count = getSuggestions(codes, prevWordForBigrams, proximityInfo, mOutputChars, mScores); for (int j = 0; j < count; ++j) { if (mScores[j] < 1) break; Loading @@ -161,7 +162,8 @@ public class BinaryDictionary extends Dictionary { // proximityInfo may not be null. /* package for test */ int getSuggestions(final WordComposer codes, final ProximityInfo proximityInfo, char[] outputChars, int[] scores) { final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo, char[] outputChars, int[] scores) { if (!isValidDictionary()) return -1; final int codesSize = codes.size(); Loading @@ -175,6 +177,7 @@ public class BinaryDictionary extends Dictionary { Arrays.fill(outputChars, (char) 0); Arrays.fill(scores, 0); // TODO: pass the previous word to native code return getSuggestionsNative( mNativeDict, proximityInfo.getNativeProximityInfo(), codes.getXCoordinates(), codes.getYCoordinates(), mInputCodes, codesSize, Loading java/src/com/android/inputmethod/latin/Dictionary.java +3 −1 Original line number Diff line number Diff line Loading @@ -61,11 +61,13 @@ public abstract class Dictionary { * Searches for words in the dictionary that match the characters in the composer. Matched * words are added through the callback object. * @param composer the key sequence to match * @param prevWordForBigrams the previous word, or null if none * @param callback the callback object to send matched words to as possible candidates * @param proximityInfo the object for key proximity. May be ignored by some implementations. * @see WordCallback#addWord(char[], int, int, int, int, int) */ abstract public void getWords(final WordComposer composer, final WordCallback callback, abstract public void getWords(final WordComposer composer, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo); /** Loading java/src/com/android/inputmethod/latin/DictionaryCollection.java +3 −3 Original line number Diff line number Diff line Loading @@ -50,10 +50,10 @@ public class DictionaryCollection extends Dictionary { } @Override public void getWords(final WordComposer composer, final WordCallback callback, final ProximityInfo proximityInfo) { public void getWords(final WordComposer composer, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { for (final Dictionary dict : mDictionaries) dict.getWords(composer, callback, proximityInfo); dict.getWords(composer, prevWordForBigrams, callback, proximityInfo); } @Override Loading java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +6 −5 Original line number Diff line number Diff line Loading @@ -173,20 +173,21 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { } @Override public void getWords(final WordComposer codes, final WordCallback callback, final ProximityInfo proximityInfo) { public void getWords(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { asyncReloadDictionaryIfRequired(); getWordsInner(codes, callback, proximityInfo); getWordsInner(codes, prevWordForBigrams, callback, proximityInfo); } protected final void getWordsInner(final WordComposer codes, final WordCallback callback, protected final void getWordsInner(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { // Ensure that there are no concurrent calls to getWords. If there are, do nothing and // return. if (mLocalDictionaryController.tryLock()) { try { if (mBinaryDictionary != null) { mBinaryDictionary.getWords(codes, callback, proximityInfo); mBinaryDictionary.getWords(codes, prevWordForBigrams, callback, proximityInfo); } } finally { mLocalDictionaryController.unlock(); Loading java/src/com/android/inputmethod/latin/ExpandableDictionary.java +5 −4 Original line number Diff line number Diff line Loading @@ -192,8 +192,8 @@ public class ExpandableDictionary extends Dictionary { } @Override public void getWords(final WordComposer codes, final WordCallback callback, final ProximityInfo proximityInfo) { public void getWords(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { synchronized (mUpdatingLock) { // If we need to update, start off a background task if (mRequiresReload) startDictionaryLoadingTaskLocked(); Loading @@ -203,10 +203,11 @@ public class ExpandableDictionary extends Dictionary { if (codes.size() >= BinaryDictionary.MAX_WORD_LENGTH) { return; } getWordsInner(codes, callback, proximityInfo); getWordsInner(codes, prevWordForBigrams, callback, proximityInfo); } protected final void getWordsInner(final WordComposer codes, final WordCallback callback, protected final void getWordsInner(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, @SuppressWarnings("unused") final ProximityInfo proximityInfo) { mInputLength = codes.size(); if (mCodes.length < mInputLength) mCodes = new int[mInputLength][]; Loading Loading
java/src/com/android/inputmethod/latin/BinaryDictionary.java +8 −5 Original line number Diff line number Diff line Loading @@ -135,11 +135,12 @@ public class BinaryDictionary extends Dictionary { } } // proximityInfo may not be null. // proximityInfo and/or prevWordForBigrams may not be null. @Override public void getWords(final WordComposer codes, final WordCallback callback, final ProximityInfo proximityInfo) { final int count = getSuggestions(codes, proximityInfo, mOutputChars, mScores); public void getWords(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { final int count = getSuggestions(codes, prevWordForBigrams, proximityInfo, mOutputChars, mScores); for (int j = 0; j < count; ++j) { if (mScores[j] < 1) break; Loading @@ -161,7 +162,8 @@ public class BinaryDictionary extends Dictionary { // proximityInfo may not be null. /* package for test */ int getSuggestions(final WordComposer codes, final ProximityInfo proximityInfo, char[] outputChars, int[] scores) { final CharSequence prevWordForBigrams, final ProximityInfo proximityInfo, char[] outputChars, int[] scores) { if (!isValidDictionary()) return -1; final int codesSize = codes.size(); Loading @@ -175,6 +177,7 @@ public class BinaryDictionary extends Dictionary { Arrays.fill(outputChars, (char) 0); Arrays.fill(scores, 0); // TODO: pass the previous word to native code return getSuggestionsNative( mNativeDict, proximityInfo.getNativeProximityInfo(), codes.getXCoordinates(), codes.getYCoordinates(), mInputCodes, codesSize, Loading
java/src/com/android/inputmethod/latin/Dictionary.java +3 −1 Original line number Diff line number Diff line Loading @@ -61,11 +61,13 @@ public abstract class Dictionary { * Searches for words in the dictionary that match the characters in the composer. Matched * words are added through the callback object. * @param composer the key sequence to match * @param prevWordForBigrams the previous word, or null if none * @param callback the callback object to send matched words to as possible candidates * @param proximityInfo the object for key proximity. May be ignored by some implementations. * @see WordCallback#addWord(char[], int, int, int, int, int) */ abstract public void getWords(final WordComposer composer, final WordCallback callback, abstract public void getWords(final WordComposer composer, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo); /** Loading
java/src/com/android/inputmethod/latin/DictionaryCollection.java +3 −3 Original line number Diff line number Diff line Loading @@ -50,10 +50,10 @@ public class DictionaryCollection extends Dictionary { } @Override public void getWords(final WordComposer composer, final WordCallback callback, final ProximityInfo proximityInfo) { public void getWords(final WordComposer composer, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { for (final Dictionary dict : mDictionaries) dict.getWords(composer, callback, proximityInfo); dict.getWords(composer, prevWordForBigrams, callback, proximityInfo); } @Override Loading
java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +6 −5 Original line number Diff line number Diff line Loading @@ -173,20 +173,21 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { } @Override public void getWords(final WordComposer codes, final WordCallback callback, final ProximityInfo proximityInfo) { public void getWords(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { asyncReloadDictionaryIfRequired(); getWordsInner(codes, callback, proximityInfo); getWordsInner(codes, prevWordForBigrams, callback, proximityInfo); } protected final void getWordsInner(final WordComposer codes, final WordCallback callback, protected final void getWordsInner(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { // Ensure that there are no concurrent calls to getWords. If there are, do nothing and // return. if (mLocalDictionaryController.tryLock()) { try { if (mBinaryDictionary != null) { mBinaryDictionary.getWords(codes, callback, proximityInfo); mBinaryDictionary.getWords(codes, prevWordForBigrams, callback, proximityInfo); } } finally { mLocalDictionaryController.unlock(); Loading
java/src/com/android/inputmethod/latin/ExpandableDictionary.java +5 −4 Original line number Diff line number Diff line Loading @@ -192,8 +192,8 @@ public class ExpandableDictionary extends Dictionary { } @Override public void getWords(final WordComposer codes, final WordCallback callback, final ProximityInfo proximityInfo) { public void getWords(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, final ProximityInfo proximityInfo) { synchronized (mUpdatingLock) { // If we need to update, start off a background task if (mRequiresReload) startDictionaryLoadingTaskLocked(); Loading @@ -203,10 +203,11 @@ public class ExpandableDictionary extends Dictionary { if (codes.size() >= BinaryDictionary.MAX_WORD_LENGTH) { return; } getWordsInner(codes, callback, proximityInfo); getWordsInner(codes, prevWordForBigrams, callback, proximityInfo); } protected final void getWordsInner(final WordComposer codes, final WordCallback callback, protected final void getWordsInner(final WordComposer codes, final CharSequence prevWordForBigrams, final WordCallback callback, @SuppressWarnings("unused") final ProximityInfo proximityInfo) { mInputLength = codes.size(); if (mCodes.length < mInputLength) mCodes = new int[mInputLength][]; Loading