aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-02-26 16:32:40 +0900
committerJean Chalard <jchalard@google.com>2014-03-04 14:46:04 +0900
commite110018e2a7cc5809aaadb4c0e9cfef70760543f (patch)
tree4774b4e9003e21529e370d20be9ae36df240082b /java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
parent5d8f6660bfd7b9e8a04d8deff8127f07b8d56e69 (diff)
downloadlatinime-e110018e2a7cc5809aaadb4c0e9cfef70760543f.tar.gz
latinime-e110018e2a7cc5809aaadb4c0e9cfef70760543f.tar.xz
latinime-e110018e2a7cc5809aaadb4c0e9cfef70760543f.zip
[IL114] Move a method to InputLogic
Bug: 8636060 Change-Id: I0d8f93985ddc6e93ce9af0d92a8056620351a498
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