Use fixed order of dictionaries to get suggestions.

Bug: 8187060
Change-Id: Id287776e3a82c0a6b208d677b8f2891266c5fc8d
main
Keisuke Kuroyanagi 2014-04-02 22:17:18 +09:00
parent 543fea98a4
commit 5b00d74c2e
1 changed files with 11 additions and 2 deletions

View File

@ -36,7 +36,6 @@ import java.util.ArrayList;
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 @@ public class DictionaryFacilitatorForSuggest {
// 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 @@ public class DictionaryFacilitatorForSuggest {
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,