aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsatok <satok@google.com>2012-05-23 22:02:52 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-05-23 22:02:52 -0700
commit1e1235feeb5454dc8dd76d68dbf634b35d2d20f2 (patch)
tree84ecc5a13e45fd0caa8c63de153de8c010b11b17
parent7b1570e60c2e04fe7d132df758476b34685eb709 (diff)
parent315d731d8f11929b6202020475a477024067c1f1 (diff)
downloadlatinime-1e1235feeb5454dc8dd76d68dbf634b35d2d20f2.tar.gz
latinime-1e1235feeb5454dc8dd76d68dbf634b35d2d20f2.tar.xz
latinime-1e1235feeb5454dc8dd76d68dbf634b35d2d20f2.zip
Merge "Support bigram suggestions in Android spell checker" into jb-dev
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 9807d2892..afd59c3f8 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -669,6 +669,28 @@ public class AndroidSpellCheckerService extends SpellCheckerService
return retval;
}
+ @Override
+ public SuggestionsInfo[] onGetSuggestionsMultiple(TextInfo[] textInfos,
+ int suggestionsLimit, boolean sequentialWords) {
+ final int length = textInfos.length;
+ final SuggestionsInfo[] retval = new SuggestionsInfo[length];
+ for (int i = 0; i < length; ++i) {
+ final String prevWord;
+ if (sequentialWords && i > 0) {
+ final String prevWordCandidate = textInfos[i - 1].getText();
+ // Note that an empty string would be used to indicate the initial word
+ // in the future.
+ prevWord = TextUtils.isEmpty(prevWordCandidate) ? null : prevWordCandidate;
+ } else {
+ prevWord = null;
+ }
+ retval[i] = onGetSuggestions(textInfos[i], prevWord, suggestionsLimit);
+ retval[i].setCookieAndSequence(
+ textInfos[i].getCookie(), textInfos[i].getSequence());
+ }
+ return retval;
+ }
+
// Note : this must be reentrant
/**
* Gets a list of suggestions for a specific string. This returns a list of possible
@@ -678,6 +700,11 @@ public class AndroidSpellCheckerService extends SpellCheckerService
@Override
public SuggestionsInfo onGetSuggestions(final TextInfo textInfo,
final int suggestionsLimit) {
+ return onGetSuggestions(textInfo, null, suggestionsLimit);
+ }
+
+ private SuggestionsInfo onGetSuggestions(
+ final TextInfo textInfo, final String prevWord, final int suggestionsLimit) {
try {
final String inText = textInfo.getText();
final SuggestionsParams cachedSuggestionsParams =
@@ -732,7 +759,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService
try {
dictInfo = mDictionaryPool.takeOrGetNull();
if (null == dictInfo) return getNotInDictEmptySuggestions();
- dictInfo.mDictionary.getWords(composer, null, suggestionsGatherer,
+ dictInfo.mDictionary.getWords(composer, prevWord, suggestionsGatherer,
dictInfo.mProximityInfo);
isInDict = dictInfo.mDictionary.isValidWord(text);
if (!isInDict && CAPITALIZE_NONE != capitalizeType) {