From 3033cc51b82889188fe6ac8ae1e3bec34529e5d0 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Mon, 20 Jan 2014 12:06:44 +0900 Subject: [PATCH] Refactor logic to retrieve relevant suggestions a bit Change-Id: Ic7d2cbb2c1b2deaa4e735484bdc7413c0b3b1939 --- .../android/inputmethod/latin/LatinIME.java | 38 ++++++++----------- .../latin/inputlogic/InputLogic.java | 3 +- 2 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 3fca4fd19..d3e6a1bc2 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1407,7 +1407,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // TODO[IL]: Move this to InputLogic public SuggestedWords maybeRetrieveOlderSuggestions(final String typedWord, - final SuggestedWords suggestedWords) { + final SuggestedWords suggestedWords, final SuggestedWords previousSuggestedWords) { // TODO: consolidate this into getSuggestedWords // 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 @@ -1420,30 +1420,24 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen || mSuggestionStripView.isShowingAddToDictionaryHint()) { return suggestedWords; } else { - return getOlderSuggestions(typedWord); + final SuggestedWords punctuationList = + mSettings.getCurrent().mSpacingAndPunctuations.mSuggestPuncList; + final SuggestedWords oldSuggestedWords = previousSuggestedWords == punctuationList + ? SuggestedWords.EMPTY : previousSuggestedWords; + if (TextUtils.isEmpty(typedWord)) { + return oldSuggestedWords; + } + final ArrayList typedWordAndPreviousSuggestions = + SuggestedWords.getTypedWordAndPreviousSuggestions(typedWord, oldSuggestedWords); + return new SuggestedWords(typedWordAndPreviousSuggestions, + false /* typedWordValid */, + false /* hasAutoCorrectionCandidate */, + false /* isPunctuationSuggestions */, + true /* isObsoleteSuggestions */, + false /* isPrediction */); } } - private SuggestedWords getOlderSuggestions(final String typedWord) { - SuggestedWords previousSuggestedWords = mInputLogic.mSuggestedWords; - if (previousSuggestedWords - == mSettings.getCurrent().mSpacingAndPunctuations.mSuggestPuncList) { - previousSuggestedWords = SuggestedWords.EMPTY; - } - if (typedWord == null) { - return previousSuggestedWords; - } - final ArrayList typedWordAndPreviousSuggestions = - SuggestedWords.getTypedWordAndPreviousSuggestions(typedWord, - previousSuggestedWords); - return new SuggestedWords(typedWordAndPreviousSuggestions, - false /* typedWordValid */, - false /* hasAutoCorrectionCandidate */, - false /* isPunctuationSuggestions */, - true /* isObsoleteSuggestions */, - false /* isPrediction */); - } - private void showSuggestionStripWithTypedWord(final SuggestedWords suggestedWords, final String typedWord) { if (suggestedWords.isEmpty()) { diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index 3ff20791f..d290daa7f 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -1031,7 +1031,8 @@ public final class InputLogic { public void onGetSuggestedWords(final SuggestedWords suggestedWords) { final SuggestedWords suggestedWordsWithMaybeOlderSuggestions = mLatinIME.maybeRetrieveOlderSuggestions( - mWordComposer.getTypedWord(), suggestedWords); + mWordComposer.getTypedWord(), suggestedWords, + mSuggestedWords); holder.set(suggestedWordsWithMaybeOlderSuggestions); } }