aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod')
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionary.java19
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFactory.java7
2 files changed, 20 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index c43683f2d..92019c0ed 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -17,10 +17,14 @@
package com.android.inputmethod.latin;
import android.content.Context;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.Resources;
import com.android.inputmethod.keyboard.ProximityInfo;
+import com.android.inputmethod.latin.LocaleUtils.RunInLocale;
import java.util.Arrays;
+import java.util.Locale;
/**
* Implements a static, compacted, binary dictionary of standard words.
@@ -94,14 +98,23 @@ public class BinaryDictionary extends Dictionary {
* @param flagArray the flags to limit the dictionary to, or null for default.
*/
public BinaryDictionary(final Context context,
- final String filename, final long offset, final long length, Flag[] flagArray) {
+ final String filename, final long offset, final long length, final Flag[] flagArray,
+ Locale locale) {
// Note: at the moment a binary dictionary is always of the "main" type.
// Initializing this here will help transitioning out of the scheme where
// the Suggest class knows everything about every single dictionary.
mDicTypeId = Suggest.DIC_MAIN;
// TODO: Stop relying on the state of SubtypeSwitcher, get it as a parameter
- mFlags = Flag.initFlags(null == flagArray ? ALL_CONFIG_FLAGS : flagArray, context,
- SubtypeSwitcher.getInstance());
+ final RunInLocale<Void> job = new RunInLocale<Void>() {
+ @Override
+ protected Void job(Resources res) {
+ // TODO: remove this when all flags are moved to the native code
+ mFlags = Flag.initFlags(null == flagArray ? ALL_CONFIG_FLAGS : flagArray, context,
+ SubtypeSwitcher.getInstance());
+ return null;
+ }
+ };
+ job.runInLocale(context.getResources(), locale);
loadDictionary(filename, offset, length);
}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFactory.java b/java/src/com/android/inputmethod/latin/DictionaryFactory.java
index 7be374db5..7a59d80f1 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFactory.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFactory.java
@@ -59,7 +59,8 @@ public class DictionaryFactory {
if (null != assetFileList) {
for (final AssetFileAddress f : assetFileList) {
final BinaryDictionary binaryDictionary =
- new BinaryDictionary(context, f.mFilename, f.mOffset, f.mLength, flagArray);
+ new BinaryDictionary(context, f.mFilename, f.mOffset, f.mLength, flagArray,
+ locale);
if (binaryDictionary.isValidDictionary()) {
dictList.add(binaryDictionary);
}
@@ -119,7 +120,7 @@ public class DictionaryFactory {
return null;
}
return new BinaryDictionary(context,
- sourceDir, afd.getStartOffset(), afd.getLength(), null);
+ sourceDir, afd.getStartOffset(), afd.getLength(), null, locale);
} catch (android.content.res.Resources.NotFoundException e) {
Log.e(TAG, "Could not find the resource. resId=" + resId);
return null;
@@ -147,7 +148,7 @@ public class DictionaryFactory {
long startOffset, long length, Flag[] flagArray) {
if (dictionary.isFile()) {
return new BinaryDictionary(context, dictionary.getAbsolutePath(), startOffset, length,
- flagArray);
+ flagArray, null);
} else {
Log.e(TAG, "Could not find the file. path=" + dictionary.getAbsolutePath());
return null;