aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2011-10-06 15:57:43 +0900
committerJean Chalard <jchalard@google.com>2011-10-06 16:05:21 +0900
commit3458d61807a03ed7fb8571488ee0fcbff39e07f8 (patch)
tree2d248c13e5e1cf917f7b2d8048f3d0eeadfa58fa /java/src
parentafb907650338e66dbdccaf891e13d334b73bcc7f (diff)
downloadlatinime-3458d61807a03ed7fb8571488ee0fcbff39e07f8.tar.gz
latinime-3458d61807a03ed7fb8571488ee0fcbff39e07f8.tar.xz
latinime-3458d61807a03ed7fb8571488ee0fcbff39e07f8.zip
Make the whitelist an instanciable class.
This goes together with I6b8628b9acc32449e4147a2a754b222fbb76c754 or it will break the build Bug: 5402436 Change-Id: I07c6266b713773a8de80bb22afdd4c566261f78a
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java18
-rw-r--r--java/src/com/android/inputmethod/latin/WhitelistDictionary.java23
2 files changed, 18 insertions, 23 deletions
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 208fd13ec..f6f55819d 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -113,14 +113,15 @@ public class Suggest implements Dictionary.WordCallback {
initAsynchronously(context, dictionaryResId, locale);
}
- /* package for test */ Suggest(Context context, File dictionary, long startOffset, long length,
- Flag[] flagArray) {
+ /* package for test */ Suggest(final Context context, final File dictionary,
+ final long startOffset, final long length, final Flag[] flagArray,
+ final Locale locale) {
initSynchronously(null, DictionaryFactory.createDictionaryForTest(context, dictionary,
- startOffset, length, flagArray));
+ startOffset, length, flagArray), locale);
}
- private void initWhitelistAndAutocorrectAndPool(final Context context) {
- mWhiteListDictionary = WhitelistDictionary.init(context);
+ private void initWhitelistAndAutocorrectAndPool(final Context context, final Locale locale) {
+ mWhiteListDictionary = new WhitelistDictionary(context, locale);
addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_WHITELIST, mWhiteListDictionary);
mAutoCorrection = new AutoCorrection();
StringBuilderPool.ensureCapacity(mPrefMaxSuggestions, getApproxMaxWordLength());
@@ -132,14 +133,15 @@ public class Suggest implements Dictionary.WordCallback {
// TODO: read the whitelist and init the pool asynchronously too.
// initPool should be done asynchronously now that the pool is thread-safe.
- initWhitelistAndAutocorrectAndPool(context);
+ initWhitelistAndAutocorrectAndPool(context, locale);
}
- private void initSynchronously(Context context, Dictionary mainDict) {
+ private void initSynchronously(final Context context, final Dictionary mainDict,
+ final Locale locale) {
mMainDict = mainDict;
addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_MAIN, mainDict);
addOrReplaceDictionary(mBigramDictionaries, DICT_KEY_MAIN, mainDict);
- initWhitelistAndAutocorrectAndPool(context);
+ initWhitelistAndAutocorrectAndPool(context, locale);
}
private void addOrReplaceDictionary(Map<String, Dictionary> dictionaries, String key,
diff --git a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java
index 639c96681..93474b654 100644
--- a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java
+++ b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java
@@ -17,6 +17,7 @@
package com.android.inputmethod.latin;
import android.content.Context;
+import android.content.res.Resources;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
@@ -24,6 +25,7 @@ import android.util.Pair;
import com.android.inputmethod.keyboard.ProximityInfo;
import java.util.HashMap;
+import java.util.Locale;
public class WhitelistDictionary extends Dictionary {
@@ -33,22 +35,13 @@ public class WhitelistDictionary extends Dictionary {
private final HashMap<String, Pair<Integer, String>> mWhitelistWords =
new HashMap<String, Pair<Integer, String>>();
- private static final WhitelistDictionary sInstance = new WhitelistDictionary();
-
- private WhitelistDictionary() {
- }
-
- public static WhitelistDictionary init(Context context) {
- synchronized (sInstance) {
- if (context != null) {
- // Wordlist is initialized by the proper language in Suggestion.java#init
- sInstance.initWordlist(
- context.getResources().getStringArray(R.array.wordlist_whitelist));
- } else {
- sInstance.mWhitelistWords.clear();
- }
+ public WhitelistDictionary(final Context context, final Locale locale) {
+ final Resources res = context.getResources();
+ final Locale previousLocale = LocaleUtils.setSystemLocale(res, locale);
+ if (context != null) {
+ initWordlist(context.getResources().getStringArray(R.array.wordlist_whitelist));
}
- return sInstance;
+ LocaleUtils.setSystemLocale(res, previousLocale);
}
private void initWordlist(String[] wordlist) {