aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java41
1 files changed, 18 insertions, 23 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 2d81298b0..387a3f7ce 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1709,16 +1709,27 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
final CharSequence typedWord;
+ final SuggestedWords suggestions;
if (isPredictions || !mWordComposer.isComposingWord()) {
+ if (!mCurrentSettings.mBigramPredictionEnabled) {
+ setPunctuationSuggestions();
+ return;
+ }
typedWord = "";
- updateBigramPredictions(typedWord);
+ suggestions = updateBigramPredictions(typedWord);
} else {
typedWord = mWordComposer.getTypedWord();
- updateSuggestions(typedWord);
+ suggestions = updateSuggestions(typedWord);
+ }
+
+ if (null != suggestions && suggestions.size() > 0) {
+ showSuggestions(suggestions, typedWord);
+ } else {
+ clearSuggestions();
}
}
- private void updateSuggestions(final CharSequence typedWord) {
+ private SuggestedWords updateSuggestions(final CharSequence typedWord) {
// TODO: May need a better way of retrieving previous word
final CharSequence prevWord = mConnection.getPreviousWord(mCurrentSettings.mWordSeparators);
// getSuggestedWords handles gracefully a null value of prevWord
@@ -1735,8 +1746,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
if (suggestedWords.size() > 1 || typedWord.length() == 1
|| !suggestedWords.mTypedWordValid
|| mSuggestionsView.isShowingAddToDictionaryHint()) {
- // We know suggestedWords.size() > 1
- showSuggestions(suggestedWords, typedWord);
+ return suggestedWords;
} else {
SuggestedWords previousSuggestions = mSuggestionsView.getSuggestions();
if (previousSuggestions == mCurrentSettings.mSuggestPuncList) {
@@ -1745,16 +1755,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final ArrayList<SuggestedWords.SuggestedWordInfo> typedWordAndPreviousSuggestions =
SuggestedWords.getTypedWordAndPreviousSuggestions(
typedWord, previousSuggestions);
- final SuggestedWords obsoleteSuggestedWords =
- new SuggestedWords(typedWordAndPreviousSuggestions,
+ return new SuggestedWords(typedWordAndPreviousSuggestions,
false /* typedWordValid */,
false /* hasAutoCorrectionCandidate */,
false /* isPunctuationSuggestions */,
true /* isObsoleteSuggestions */,
false /* isPrediction */);
- // getTypedWordAndPreviousSuggestions never returns an empty array, so we know we have
- // at least one element here.
- showSuggestions(obsoleteSuggestedWords, typedWord);
}
}
@@ -1927,12 +1933,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
separatorCode, prevWord);
}
- private void updateBigramPredictions(final CharSequence typedWord) {
- if (!mCurrentSettings.mBigramPredictionEnabled) {
- setPunctuationSuggestions();
- return;
- }
-
+ private SuggestedWords updateBigramPredictions(final CharSequence typedWord) {
final SuggestedWords suggestedWords;
if (mCurrentSettings.mCorrectionEnabled) {
final CharSequence prevWord = mConnection.getThisWord(mCurrentSettings.mWordSeparators);
@@ -1947,13 +1948,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
suggestedWords = null;
}
- if (null != suggestedWords && suggestedWords.size() > 0) {
- // Typed word is always empty. We pass it because the no-second-arg version of
- // showSuggestions will retrieve the word near the cursor, and we don't want that here
- showSuggestions(suggestedWords, typedWord);
- } else {
- clearSuggestions();
- }
+ return suggestedWords;
}
public void setPunctuationSuggestions() {