aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-06-21 13:16:45 +0900
committerJean Chalard <jchalard@google.com>2012-06-26 17:36:47 +0900
commitd9df8094e625c92f6a66ebe9048afc7f88c14b33 (patch)
treeeac4894dd2a3d418f4f37b1a62df1e2f149aa5aa /java
parent783047602295819c89e489e707cabfedf6dd6dd4 (diff)
downloadlatinime-d9df8094e625c92f6a66ebe9048afc7f88c14b33.tar.gz
latinime-d9df8094e625c92f6a66ebe9048afc7f88c14b33.tar.xz
latinime-d9df8094e625c92f6a66ebe9048afc7f88c14b33.zip
Neutralize AndroidSpellChecker.SuggestionsGatherer#addWords (A13)
Bug: 6252660 Bug: 6166228 Bug: 2704000 Bug: 6225530 Change-Id: Ia54e1e44e1fd4e8ba2c9316928c0595cbe3f933c
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 0bbf2acb1..f68fc10ea 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -38,6 +38,7 @@ import com.android.inputmethod.latin.DictionaryFactory;
import com.android.inputmethod.latin.LocaleUtils;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.StringUtils;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.SynchronouslyLoadedContactsBinaryDictionary;
import com.android.inputmethod.latin.SynchronouslyLoadedUserBinaryDictionary;
import com.android.inputmethod.latin.UserBinaryDictionary;
@@ -203,6 +204,8 @@ public class AndroidSpellCheckerService extends SpellCheckerService
EMPTY_STRING_ARRAY);
}
+ // TODO: remove this class when WordCallback is finally out of the picture and
+ // replace it by storage local to the session.
private static class SuggestionsGatherer implements WordCallback {
public static class Result {
public final String[] mSuggestions;
@@ -240,6 +243,11 @@ public class AndroidSpellCheckerService extends SpellCheckerService
@Override
synchronized public boolean addWord(char[] word, int[] spaceIndices, int wordOffset,
int wordLength, int score, int dicTypeId, int dataType) {
+ return true;
+ }
+
+ synchronized public boolean oldAddWord(char[] word, int[] spaceIndices, int wordOffset,
+ int wordLength, int score, int dicTypeId /* unused */, int dataType) {
final int positionIndex = Arrays.binarySearch(mScores, 0, mLength, score);
// binarySearch returns the index if the element exists, and -<insertion index> - 1
// if it doesn't. See documentation for binarySearch.
@@ -780,8 +788,14 @@ public class AndroidSpellCheckerService extends SpellCheckerService
try {
dictInfo = mDictionaryPool.takeOrGetNull();
if (null == dictInfo) return getNotInDictEmptySuggestions();
- dictInfo.mDictionary.getWords(composer, prevWord, suggestionsGatherer,
- dictInfo.mProximityInfo);
+ final ArrayList<SuggestedWordInfo> suggestions = dictInfo.mDictionary.getWords(
+ composer, prevWord, suggestionsGatherer, dictInfo.mProximityInfo);
+ for (final SuggestedWordInfo suggestion : suggestions) {
+ final String suggestionStr = suggestion.mWord.toString();
+ suggestionsGatherer.oldAddWord(suggestionStr.toCharArray(), 0,
+ suggestionStr.length(), suggestion.mScore, 0 /* ignored */,
+ Dictionary.UNIGRAM);
+ }
isInDict = dictInfo.mDictionary.isValidWord(text);
if (!isInDict && CAPITALIZE_NONE != capitalizeType) {
// We want to test the word again if it's all caps or first caps only.