aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/Suggest.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin/Suggest.java')
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java38
1 files changed, 9 insertions, 29 deletions
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 9e478fab4..336a76f4b 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -26,9 +26,9 @@ import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import java.io.File;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
+import java.util.concurrent.ConcurrentHashMap;
/**
* This class loads a dictionary and provides a list of suggestions for a given sequence of
@@ -68,10 +68,10 @@ public class Suggest implements Dictionary.WordCallback {
private boolean mHasMainDictionary;
private Dictionary mContactsDict;
private WhitelistDictionary mWhiteListDictionary;
- private final HashMap<String, Dictionary> mUnigramDictionaries =
- new HashMap<String, Dictionary>();
- private final HashMap<String, Dictionary> mBigramDictionaries =
- new HashMap<String, Dictionary>();
+ private final ConcurrentHashMap<String, Dictionary> mUnigramDictionaries =
+ new ConcurrentHashMap<String, Dictionary>();
+ private final ConcurrentHashMap<String, Dictionary> mBigramDictionaries =
+ new ConcurrentHashMap<String, Dictionary>();
private int mPrefMaxSuggestions = 18;
@@ -117,8 +117,9 @@ public class Suggest implements Dictionary.WordCallback {
initWhitelistAndAutocorrectAndPool(context, locale);
}
- private static void addOrReplaceDictionary(HashMap<String, Dictionary> dictionaries, String key,
- Dictionary dict) {
+ private static void addOrReplaceDictionary(
+ final ConcurrentHashMap<String, Dictionary> dictionaries,
+ final String key, final Dictionary dict) {
final Dictionary oldDict = (dict == null)
? dictionaries.remove(key)
: dictionaries.put(key, dict);
@@ -151,7 +152,7 @@ public class Suggest implements Dictionary.WordCallback {
return mContactsDict;
}
- public HashMap<String, Dictionary> getUnigramDictionaries() {
+ public ConcurrentHashMap<String, Dictionary> getUnigramDictionaries() {
return mUnigramDictionaries;
}
@@ -503,27 +504,6 @@ public class Suggest implements Dictionary.WordCallback {
return true;
}
- // TODO: Use codepoint instead of char
- private int searchBigramSuggestion(final char[] word, final int offset, final int length) {
- // TODO This is almost O(n^2). Might need fix.
- // search whether the word appeared in bigram data
- int bigramSuggestSize = mBigramSuggestions.size();
- for (int i = 0; i < bigramSuggestSize; i++) {
- if (mBigramSuggestions.get(i).codePointCount() == length) {
- boolean chk = true;
- for (int j = 0; j < length; j++) {
- if (mBigramSuggestions.get(i).codePointAt(j) != word[offset+j]) {
- chk = false;
- break;
- }
- }
- if (chk) return i;
- }
- }
-
- return -1;
- }
-
public void close() {
final HashSet<Dictionary> dictionaries = new HashSet<Dictionary>();
dictionaries.addAll(mUnigramDictionaries.values());