aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-03-03 22:58:08 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2014-03-03 22:58:08 -0800
commit49b7a5993c91edfa0c7e01e14ce31c1f7db97d29 (patch)
tree4774b4e9003e21529e370d20be9ae36df240082b /java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
parentf2bfd35c56526a7b0da5399b53e2dc00b58768f3 (diff)
parente110018e2a7cc5809aaadb4c0e9cfef70760543f (diff)
downloadlatinime-49b7a5993c91edfa0c7e01e14ce31c1f7db97d29.tar.gz
latinime-49b7a5993c91edfa0c7e01e14ce31c1f7db97d29.tar.xz
latinime-49b7a5993c91edfa0c7e01e14ce31c1f7db97d29.zip
am e110018e: [IL114] Move a method to InputLogic
* commit 'e110018e2a7cc5809aaadb4c0e9cfef70760543f': [IL114] Move a method to InputLogic
Diffstat (limited to 'java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java')
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java34
1 files changed, 31 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 8b83155ea..7be60fd31 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -1229,9 +1229,8 @@ public final class InputLogic {
@Override
public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
final SuggestedWords suggestedWordsWithMaybeOlderSuggestions =
- mLatinIME.maybeRetrieveOlderSuggestions(
- mWordComposer.getTypedWord(), suggestedWords,
- mSuggestedWords);
+ maybeRetrieveOlderSuggestions(mWordComposer.getTypedWord(),
+ suggestedWords, mSuggestedWords);
holder.set(suggestedWordsWithMaybeOlderSuggestions);
}
}
@@ -1657,6 +1656,35 @@ public final class InputLogic {
}
/**
+ * Given a typed word and computed suggested words, return an object that may or may not
+ * contain older suggestions according to the contents of the current suggestions.
+ * @param typedWord The typed word as a string.
+ * @param suggestedWords The computed suggested words for this typed word.
+ * @param previousSuggestedWords The previous suggested words.
+ * @return suggestions possibly enriched with older suggestions.
+ */
+ private SuggestedWords maybeRetrieveOlderSuggestions(final String typedWord,
+ final SuggestedWords suggestedWords, final SuggestedWords previousSuggestedWords) {
+ // TODO: consolidate this into performUpdateSuggestionStripSync?
+ // We update the suggestion strip only when we have some suggestions to show, i.e. when
+ // the suggestion count is > 1; else, we leave the old suggestions, with the typed word
+ // replaced with the new one. However, when the length of the typed word is 1 or 0 (after
+ // a deletion typically), we do want to remove the old suggestions.
+ if (suggestedWords.size() > 1 || typedWord.length() <= 1) {
+ return suggestedWords;
+ } else {
+ final SuggestedWords oldSuggestedWords =
+ previousSuggestedWords.isPunctuationSuggestions() ? SuggestedWords.EMPTY
+ : previousSuggestedWords;
+ final ArrayList<SuggestedWords.SuggestedWordInfo> typedWordAndPreviousSuggestions =
+ SuggestedWords.getTypedWordAndPreviousSuggestions(typedWord, oldSuggestedWords);
+ return new SuggestedWords(typedWordAndPreviousSuggestions, null /* rawSuggestions */,
+ false /* typedWordValid */, false /* hasAutoCorrectionCandidate */,
+ true /* isObsoleteSuggestions */, false /* isPrediction */);
+ }
+ }
+
+ /**
* Gets a chunk of text with or the auto-correction indicator underline span as appropriate.
*
* This method looks at the old state of the auto-correction indicator to put or not put