Move some treatment to a more sensical place.

It makes more sense to catch words with the safety net in
updateSuggestions() than in showSuggestions(). Also, it's useless
to do it in updateBigramPredictions, because the result will
always be provably false.
This will also help with writing unit tests.

Change-Id: Ifab81e6c5a74b1aa75cf85ef7742fee69a98f5ce
main
Jean Chalard 2012-03-05 14:27:49 +09:00
parent 9b01890254
commit 895b70b8af
1 changed files with 6 additions and 6 deletions

View File

@ -1827,18 +1827,18 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
builder.addTypedWordAndPreviousSuggestions(typedWord, previousSuggestions); builder.addTypedWordAndPreviousSuggestions(typedWord, previousSuggestions);
} }
} }
final SuggestedWords suggestedWords = builder.build();
if (Utils.shouldBlockAutoCorrectionBySafetyNet(suggestedWords, mSuggest)) {
suggestedWords.setShouldBlockAutoCorrectionBySatefyNet();
}
showSuggestions(builder.build(), typedWord); showSuggestions(builder.build(), typedWord);
} }
public void showSuggestions(final SuggestedWords suggestedWords, final CharSequence typedWord) { public void showSuggestions(final SuggestedWords suggestedWords, final CharSequence typedWord) {
final boolean shouldBlockAutoCorrectionBySafetyNet =
Utils.shouldBlockAutoCorrectionBySafetyNet(suggestedWords, mSuggest);
if (shouldBlockAutoCorrectionBySafetyNet) {
suggestedWords.setShouldBlockAutoCorrectionBySatefyNet();
}
final CharSequence autoCorrection; final CharSequence autoCorrection;
if (suggestedWords.size() > 0) { if (suggestedWords.size() > 0) {
if (!shouldBlockAutoCorrectionBySafetyNet && suggestedWords.hasAutoCorrectionWord()) { if (!suggestedWords.shouldBlockAutoCorrectionBySafetyNet()
&& suggestedWords.hasAutoCorrectionWord()) {
autoCorrection = suggestedWords.getWord(1); autoCorrection = suggestedWords.getWord(1);
} else { } else {
autoCorrection = typedWord; autoCorrection = typedWord;