aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-07-09 22:41:33 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-07-09 22:41:33 -0700
commit75e605f7ca723dc215ac7946234af6bc29b83d27 (patch)
tree3da5da3afe3dfd12e320f65b5a68f22f6371c9fc /java/src
parent1e8fb312bffdda448021679cdb5d5ba18779fade (diff)
parent32f5384fc955f1e9fa8613ca86081f1bf4ccc421 (diff)
downloadlatinime-75e605f7ca723dc215ac7946234af6bc29b83d27.tar.gz
latinime-75e605f7ca723dc215ac7946234af6bc29b83d27.tar.xz
latinime-75e605f7ca723dc215ac7946234af6bc29b83d27.zip
Merge "Pull up common code in the consolidated method (A76)"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java44
1 files changed, 18 insertions, 26 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 4be2a1799..080172982 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -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();