diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 22d1a4025..dc5bd2efc 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -922,11 +922,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar return; } - final List applicationSuggestedWords = + final List applicationSuggestedWords = SuggestedWords.Builder.getFromApplicationSpecifiedCompletions( applicationSpecifiedCompletions); SuggestedWords.Builder builder = new SuggestedWords.Builder() - .addWords(applicationSuggestedWords, null) + .addWords(applicationSuggestedWords) .setTypedWordValid(false) .setHasMinimalSuggestion(false); // When in fullscreen mode, show completions generated by the application diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java index 1f4909f73..7e7702002 100644 --- a/java/src/com/android/inputmethod/latin/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/SettingsValues.java @@ -175,32 +175,36 @@ public class SettingsValues { } private static SuggestedWords createSuggestPuncList(final String[] puncs) { - final ArrayList puncList = new ArrayList(); + final ArrayList puncList = + new ArrayList(); if (puncs != null) { for (final String puncSpec : puncs) { - puncList.add(KeySpecParser.getLabel(puncSpec)); + puncList.add(new SuggestedWords.SuggestedWordInfo( + KeySpecParser.getLabel(puncSpec))); } } final SuggestedWords.Builder builder = new SuggestedWords.Builder() - .addWords(puncList, null) + .addWords(puncList) .setIsPunctuationSuggestions(); return builder.build(); } private static SuggestedWords createSuggestPuncOutputTextList(final String[] puncs) { - final ArrayList puncOutputTextList = new ArrayList(); + final ArrayList puncOutputTextList = + new ArrayList(); if (puncs != null) { for (final String puncSpec : puncs) { final String outputText = KeySpecParser.getOutputText(puncSpec); if (outputText != null) { - puncOutputTextList.add(outputText); + puncOutputTextList.add(new SuggestedWords.SuggestedWordInfo(outputText)); } else { - puncOutputTextList.add(KeySpecParser.getLabel(puncSpec)); + puncOutputTextList.add(new SuggestedWords.SuggestedWordInfo( + KeySpecParser.getLabel(puncSpec))); } } } final SuggestedWords.Builder builder = new SuggestedWords.Builder() - .addWords(puncOutputTextList, null) + .addWords(puncOutputTextList) .setIsPunctuationSuggestions(); return builder.build(); } diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index f17c1d95a..e04a4e8d1 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -291,7 +291,8 @@ public class Suggest implements Dictionary.WordCallback { StringUtils.removeDupes(mSuggestions); - return new SuggestedWords.Builder().addWords(mSuggestions, null) + return new SuggestedWords.Builder() + .addWords(SuggestedWords.Builder.getFromCharSequenceList(mSuggestions)) .setAllowsToBeAutoCorrected(false) .setHasAutoCorrection(false); } @@ -445,11 +446,12 @@ public class Suggest implements Dictionary.WordCallback { scoreInfoList.add(new SuggestedWords.SuggestedWordInfo(mSuggestions.get(i), "--", false)); } - builder = new SuggestedWords.Builder().addWords(mSuggestions, scoreInfoList) + builder = new SuggestedWords.Builder().addWords(scoreInfoList) .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected) .setHasAutoCorrection(hasAutoCorrection); } else { - builder = new SuggestedWords.Builder().addWords(mSuggestions, null) + builder = new SuggestedWords.Builder() + .addWords(SuggestedWords.Builder.getFromCharSequenceList(mSuggestions)) .setAllowsToBeAutoCorrected(allowsToBeAutoCorrected) .setHasAutoCorrection(hasAutoCorrection); } diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java index 9959292cb..7dd85f65b 100644 --- a/java/src/com/android/inputmethod/latin/SuggestedWords.java +++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java @@ -87,19 +87,17 @@ public class SuggestedWords { // Nothing to do here. } - public Builder addWords(List words, - List suggestedWordInfoList) { - final int N = words.size(); + // TODO: the following method is a wrapper to satisfy tests. Update tests and remove it. + public Builder addWords(final List words, + final List suggestedWordInfoList) { + return addWords(suggestedWordInfoList); + } + + public Builder addWords(List suggestedWordInfoList) { + final int N = suggestedWordInfoList.size(); for (int i = 0; i < N; ++i) { - final CharSequence word = words.get(i); - SuggestedWordInfo suggestedWordInfo = null; - if (suggestedWordInfoList != null) { - suggestedWordInfo = suggestedWordInfoList.get(i); - } - if (suggestedWordInfo == null) { - suggestedWordInfo = new SuggestedWordInfo(word); - } - addWord(word, suggestedWordInfo); + SuggestedWordInfo suggestedWordInfo = suggestedWordInfoList.get(i); + addWord(suggestedWordInfo.mWord, suggestedWordInfo); } return this; } @@ -113,11 +111,20 @@ public class SuggestedWords { return this; } - public static List getFromApplicationSpecifiedCompletions( + public static List getFromCharSequenceList( + final List wordList) { + final ArrayList result = new ArrayList(); + for (CharSequence word : wordList) { + if (null != word) result.add(new SuggestedWordInfo(word, null, false)); + } + return result; + } + + public static List getFromApplicationSpecifiedCompletions( final CompletionInfo[] infos) { - final ArrayList result = new ArrayList(); + final ArrayList result = new ArrayList(); for (CompletionInfo info : infos) { - if (null != info) result.add(info.getText()); + if (null != info) result.add(new SuggestedWordInfo(info.getText(), null, false)); } return result; }