Use fixed order of dictionaries to get suggestions.
Bug: 8187060
Change-Id: Id287776e3a82c0a6b208d677b8f2891266c5fc8d
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
index ae2d7c9..9c6aa55 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java
@@ -36,7 +36,6 @@
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
-import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -54,6 +53,15 @@
// To synchronize assigning mDictionaries to ensure closing dictionaries.
private Object mLock = new Object();
+ private static final String[] dictTypesOrderedToGetSuggestion =
+ new String[] {
+ Dictionary.TYPE_MAIN,
+ Dictionary.TYPE_USER_HISTORY,
+ Dictionary.TYPE_PERSONALIZATION,
+ Dictionary.TYPE_USER,
+ Dictionary.TYPE_CONTACTS
+ };
+
/**
* Class contains dictionaries for a locale.
*/
@@ -453,7 +461,8 @@
final Map<String, Dictionary> dictMap = dictionaries.mDictMap;
final SuggestionResults suggestionResults =
new SuggestionResults(dictionaries.mLocale, SuggestedWords.MAX_SUGGESTIONS);
- for (final Dictionary dictionary : dictMap.values()) {
+ for (final String dictType : dictTypesOrderedToGetSuggestion) {
+ final Dictionary dictionary = dictMap.get(dictType);
if (null == dictionary) continue;
final ArrayList<SuggestedWordInfo> dictionarySuggestions =
dictionary.getSuggestionsWithSessionId(composer, prevWord, proximityInfo,