diff options
author | 2014-09-02 19:34:57 +0900 | |
---|---|---|
committer | 2014-09-11 19:05:22 +0900 | |
commit | 96f0ae5e68a865d390e3623eebe0fda30c3a62a8 (patch) | |
tree | 417a8b9ff44f8059979a87fd60ad2f799fe9f0fc /java/src | |
parent | e6df5f015c78ffea48e82ee9f9695991a6c4335e (diff) | |
download | latinime-96f0ae5e68a865d390e3623eebe0fda30c3a62a8.tar.gz latinime-96f0ae5e68a865d390e3623eebe0fda30c3a62a8.tar.xz latinime-96f0ae5e68a865d390e3623eebe0fda30c3a62a8.zip |
[ML6] Have asyncReloadMainDictionary support multiple locales
Change-Id: I4c3dfaad38ec1cc91d1a9f81d5ff45ef12f70029
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/DictionaryFacilitator.java | 25 |
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) { |