aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-09-02 19:34:57 +0900
committerJean Chalard <jchalard@google.com>2014-09-11 19:05:22 +0900
commit96f0ae5e68a865d390e3623eebe0fda30c3a62a8 (patch)
tree417a8b9ff44f8059979a87fd60ad2f799fe9f0fc /java/src/com
parente6df5f015c78ffea48e82ee9f9695991a6c4335e (diff)
downloadlatinime-96f0ae5e68a865d390e3623eebe0fda30c3a62a8.tar.gz
latinime-96f0ae5e68a865d390e3623eebe0fda30c3a62a8.tar.xz
latinime-96f0ae5e68a865d390e3623eebe0fda30c3a62a8.zip
[ML6] Have asyncReloadMainDictionary support multiple locales
Change-Id: I4c3dfaad38ec1cc91d1a9f81d5ff45ef12f70029
Diffstat (limited to 'java/src/com')
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFacilitator.java25
1 files changed, 14 insertions, 11 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index 31ff88e3c..c20546607 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -309,7 +309,7 @@ public class DictionaryFacilitator {
mDictionaryGroup = newDictionaryGroup;
mIsUserDictEnabled = UserBinaryDictionary.isEnabled(context);
if (null == newDictionaryGroup.getDict(Dictionary.TYPE_MAIN)) {
- asyncReloadMainDictionary(context, newLocaleToUse, listener);
+ asyncReloadUninitializedMainDictionaries(context, newLocales, listener);
}
}
if (listener != null) {
@@ -327,21 +327,24 @@ public class DictionaryFacilitator {
}
}
- private void asyncReloadMainDictionary(final Context context, final Locale locale,
- final DictionaryInitializationListener listener) {
+ private void asyncReloadUninitializedMainDictionaries(final Context context,
+ final Locale[] locales, final DictionaryInitializationListener listener) {
final CountDownLatch latchForWaitingLoadingMainDictionary = new CountDownLatch(1);
mLatchForWaitingLoadingMainDictionary = latchForWaitingLoadingMainDictionary;
ExecutorUtils.getExecutor("InitializeBinaryDictionary").execute(new Runnable() {
@Override
public void run() {
- final Dictionary mainDict =
- DictionaryFactory.createMainDictionaryFromManager(context, locale);
- synchronized (mLock) {
- if (locale.equals(mDictionaryGroup.mLocale)) {
- mDictionaryGroup.setMainDict(mainDict);
- } else {
- // Dictionary facilitator has been reset for another locale.
- mainDict.close();
+ for (final Locale locale : locales) {
+ final DictionaryGroup dictionaryGroup = mDictionaryGroup;
+ final Dictionary mainDict =
+ DictionaryFactory.createMainDictionaryFromManager(context, locale);
+ synchronized (mLock) {
+ if (locale.equals(dictionaryGroup.mLocale)) {
+ dictionaryGroup.setMainDict(mainDict);
+ } else {
+ // Dictionary facilitator has been reset for another locale.
+ mainDict.close();
+ }
}
}
if (listener != null) {