aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-06-29 15:20:28 +0900
committerJean Chalard <jchalard@google.com>2012-07-05 17:21:44 +0900
commit7ed22f1f72dfa14b13ad6775617fd9e89f0ca224 (patch)
tree898d6333191349e60a7d9268b4586a0717dac5e1 /java/src
parent0726f466f7789ca112697adf6505870bb821ea17 (diff)
downloadlatinime-7ed22f1f72dfa14b13ad6775617fd9e89f0ca224.tar.gz
latinime-7ed22f1f72dfa14b13ad6775617fd9e89f0ca224.tar.xz
latinime-7ed22f1f72dfa14b13ad6775617fd9e89f0ca224.zip
Factorize some common code (A49)
Also add some comment to clarify what's happening inside those methods Change-Id: I5b9b1e105b3145f0b050f35d12c5b6ca6e4a4d8c
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java46
1 files changed, 16 insertions, 30 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 21f0ea007..4089462e8 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1003,7 +1003,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// the composing word, reset the last composed word, tell the inputconnection about it.
private void resetEntireInputState() {
resetComposingState(true /* alsoResetLastComposedWord */);
- updateSuggestionsOrPredictions(false /* isPredictions */);
+ clearSuggestions();
mConnection.finishComposingText();
}
@@ -1695,35 +1695,27 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
public void updateSuggestionsOrPredictions(final boolean isPredictions) {
- if (isPredictions) {
- updateBigramPredictions();
- } else {
- updateSuggestions();
- }
- }
-
- private void updateSuggestions() {
mHandler.cancelUpdateSuggestions();
mHandler.cancelUpdateBigramPredictions();
// Check if we have a suggestion engine attached.
- if ((mSuggest == null || !mCurrentSettings.isSuggestionsRequested(mDisplayOrientation))) {
+ if (mSuggest == null || !mCurrentSettings.isSuggestionsRequested(mDisplayOrientation)) {
if (mWordComposer.isComposingWord()) {
- Log.w(TAG, "Called updateSuggestions but suggestions were not requested!");
+ Log.w(TAG, "Called updateSuggestionsOrPredictions but suggestions were not "
+ + "requested!");
mWordComposer.setAutoCorrection(mWordComposer.getTypedWord());
}
return;
}
- if (!mWordComposer.isComposingWord()) {
- // We are never called with an empty word composer, but if because of a bug
- // we are, what we should do here is just call updateBigramsPredictions. This will
- // update the predictions if the "predict next word" option is on, or display
- // punctuation signs if it's off.
+ if (isPredictions || !mWordComposer.isComposingWord()) {
updateBigramPredictions();
- return;
+ } else {
+ updateSuggestions();
}
+ }
+ private void updateSuggestions() {
// TODO: May need a better way of retrieving previous word
final CharSequence prevWord = mConnection.getPreviousWord(mCurrentSettings.mWordSeparators);
final CharSequence typedWord = mWordComposer.getTypedWord();
@@ -1741,6 +1733,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);
} else {
SuggestedWords previousSuggestions = mSuggestionsView.getSuggestions();
@@ -1757,11 +1750,15 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
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);
}
}
- public void showSuggestions(final SuggestedWords suggestedWords, final CharSequence typedWord) {
+ private void showSuggestions(final SuggestedWords suggestedWords,
+ final CharSequence typedWord) {
+ // This method is only ever called by updateSuggestions or updateBigramPredictions.
final CharSequence autoCorrection;
if (suggestedWords.size() > 0) {
if (suggestedWords.mWillAutoCorrect) {
@@ -1928,18 +1925,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
separatorCode, prevWord);
}
- public void updateBigramPredictions() {
- mHandler.cancelUpdateSuggestions();
- mHandler.cancelUpdateBigramPredictions();
-
- if (mSuggest == null || !mCurrentSettings.isSuggestionsRequested(mDisplayOrientation)) {
- if (mWordComposer.isComposingWord()) {
- Log.w(TAG, "Called updateBigramPredictions but suggestions were not requested!");
- mWordComposer.setAutoCorrection(mWordComposer.getTypedWord());
- }
- return;
- }
-
+ private void updateBigramPredictions() {
if (!mCurrentSettings.mBigramPredictionEnabled) {
setPunctuationSuggestions();
return;