Merge "Support bigram suggestions in Android spell checker" into jb-dev

This commit is contained in:
satok 2012-05-23 22:02:52 -07:00 committed by Android (Google) Code Review
commit 1e1235feeb

View file

@ -669,6 +669,28 @@ public class AndroidSpellCheckerService extends SpellCheckerService
return retval; 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 // Note : this must be reentrant
/** /**
* Gets a list of suggestions for a specific string. This returns a list of possible * 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 @Override
public SuggestionsInfo onGetSuggestions(final TextInfo textInfo, public SuggestionsInfo onGetSuggestions(final TextInfo textInfo,
final int suggestionsLimit) { final int suggestionsLimit) {
return onGetSuggestions(textInfo, null, suggestionsLimit);
}
private SuggestionsInfo onGetSuggestions(
final TextInfo textInfo, final String prevWord, final int suggestionsLimit) {
try { try {
final String inText = textInfo.getText(); final String inText = textInfo.getText();
final SuggestionsParams cachedSuggestionsParams = final SuggestionsParams cachedSuggestionsParams =
@ -732,7 +759,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService
try { try {
dictInfo = mDictionaryPool.takeOrGetNull(); dictInfo = mDictionaryPool.takeOrGetNull();
if (null == dictInfo) return getNotInDictEmptySuggestions(); if (null == dictInfo) return getNotInDictEmptySuggestions();
dictInfo.mDictionary.getWords(composer, null, suggestionsGatherer, dictInfo.mDictionary.getWords(composer, prevWord, suggestionsGatherer,
dictInfo.mProximityInfo); dictInfo.mProximityInfo);
isInDict = dictInfo.mDictionary.isValidWord(text); isInDict = dictInfo.mDictionary.isValidWord(text);
if (!isInDict && CAPITALIZE_NONE != capitalizeType) { if (!isInDict && CAPITALIZE_NONE != capitalizeType) {