am 60b2d84d: am 1e1235fe: Merge "Support bigram suggestions in Android spell checker" into jb-dev

* commit '60b2d84d82ce8fd4a7bf4592d5229ee2436a675c':
  Support bigram suggestions in Android spell checker
main
satok 2012-05-23 22:07:06 -07:00 committed by Android Git Automerger
commit 8822d5a346
1 changed files with 28 additions and 1 deletions

View File

@ -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) {