Pull up common code in the consolidated method (A76)

Change-Id: I3ebecec37b49e139c243cf9da8bfe491e7ddada1
main
Jean Chalard 2012-07-06 16:14:52 +09:00
parent ea92b7b987
commit 32f5384fc9
1 changed files with 18 additions and 26 deletions

View File

@ -1675,35 +1675,36 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
final String typedWord = mWordComposer.getTypedWord();
final SuggestedWords suggestions;
if (!mWordComposer.isComposingWord() && !mCurrentSettings.mBigramPredictionEnabled) {
setPunctuationSuggestions();
return;
}
if (!mWordComposer.isComposingWord()) {
suggestions = updateBigramPredictions();
} else {
suggestions = updateSuggestions(typedWord);
// Get the word on which we should search the bigrams. If we are composing a word, it's
// whatever is *before* the half-committed word in the buffer, hence 2; if we aren't, we
// should just skip whitespace if any, so 1.
// TODO: this is slow (2-way IPC) - we should probably cache this instead.
final CharSequence prevWord =
mConnection.getNthPreviousWord(mCurrentSettings.mWordSeparators,
mWordComposer.isComposingWord() ? 2 : 1);
SuggestedWords suggestedWords = mSuggest.getSuggestedWords(mWordComposer,
prevWord, mKeyboardSwitcher.getKeyboard().getProximityInfo(),
mCurrentSettings.mCorrectionEnabled, !mWordComposer.isComposingWord());
if (mWordComposer.isComposingWord()) {
suggestedWords = maybeRetrieveOlderSuggestions(typedWord, suggestedWords);
}
if (null != suggestions && suggestions.size() > 0) {
showSuggestions(suggestions, typedWord);
if (null != suggestedWords && suggestedWords.size() > 0) {
showSuggestions(suggestedWords, typedWord);
} else {
clearSuggestions();
}
}
private SuggestedWords updateSuggestions(final CharSequence typedWord) {
// TODO: May need a better way of retrieving previous word
final CharSequence prevWord =
mConnection.getNthPreviousWord(mCurrentSettings.mWordSeparators, 2);
// getSuggestedWords handles gracefully a null value of prevWord
final SuggestedWords suggestedWords = mSuggest.getSuggestedWords(mWordComposer,
prevWord, mKeyboardSwitcher.getKeyboard().getProximityInfo(),
// !mWordComposer.isComposingWord() is known to be false
mCurrentSettings.mCorrectionEnabled, !mWordComposer.isComposingWord());
private SuggestedWords maybeRetrieveOlderSuggestions(final CharSequence typedWord,
final SuggestedWords suggestedWords) {
// TODO: consolidate this into getSuggestedWords
// Basically, we update the suggestion strip only when suggestion count > 1. However,
// there is an exception: We update the suggestion strip whenever typed word's length
// is 1 or typed word is found in dictionary, regardless of suggestion count. Actually,
@ -1891,15 +1892,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
separatorCode, prevWord);
}
private SuggestedWords updateBigramPredictions() {
final CharSequence prevWord =
mConnection.getNthPreviousWord(mCurrentSettings.mWordSeparators, 1);
return mSuggest.getSuggestedWords(mWordComposer,
prevWord, mKeyboardSwitcher.getKeyboard().getProximityInfo(),
// !mWordComposer.isComposingWord() is known to be true
mCurrentSettings.mCorrectionEnabled, !mWordComposer.isComposingWord());
}
public void setPunctuationSuggestions() {
if (mCurrentSettings.mBigramPredictionEnabled) {
clearSuggestions();