aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2011-08-18 19:55:16 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-18 19:55:16 -0700
commit1e841de2ce52476f965516f9d06477ab78028237 (patch)
treec0f69420be3416d773a55c099363b0c5b27620f9 /java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
parenta018c679146e0f465178ca4acaf14a356d832cdf (diff)
parentee7daefd972979898d91974ea0d92fcc9f3ca169 (diff)
downloadlatinime-1e841de2ce52476f965516f9d06477ab78028237.tar.gz
latinime-1e841de2ce52476f965516f9d06477ab78028237.tar.xz
latinime-1e841de2ce52476f965516f9d06477ab78028237.zip
Merge "Check the main dict id to be able to fallback."
Diffstat (limited to 'java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java')
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
index 18df797f0..5d2dab0a9 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
@@ -214,6 +214,13 @@ class BinaryDictionaryGetter {
}
/**
+ * Returns the id of the main dict for a specified locale.
+ */
+ private static String getMainDictId(final Locale locale) {
+ return locale.toString();
+ }
+
+ /**
* Returns a list of file addresses for a given locale, trying relevant methods in order.
*
* Tries to get binary dictionaries from various sources, in order:
@@ -234,12 +241,18 @@ class BinaryDictionaryGetter {
BinaryDictionaryFileDumper.cacheDictionariesFromContentProvider(locale, context);
final File[] cachedDictionaryList = getCachedDictionaryList(locale, context);
+ final String mainDictId = getMainDictId(locale);
+
final DictPackSettings dictPackSettings = new DictPackSettings(context);
+ boolean foundMainDict = false;
final ArrayList<AssetFileAddress> fileList = new ArrayList<AssetFileAddress>();
// cachedDictionaryList may not be null, see doc for getCachedDictionaryList
for (final File f : cachedDictionaryList) {
final String wordListId = getWordListIdFromFileName(f.getName());
+ if (wordListId.equals(mainDictId)) {
+ foundMainDict = true;
+ }
if (!dictPackSettings.isWordListActive(wordListId)) continue;
if (f.canRead()) {
fileList.add(AssetFileAddress.makeFromFileName(f.getPath()));
@@ -248,14 +261,14 @@ class BinaryDictionaryGetter {
}
}
- if (!fileList.isEmpty()) {
- return fileList;
+ if (!foundMainDict && dictPackSettings.isWordListActive(mainDictId)) {
+ final AssetFileAddress fallbackAsset = loadFallbackResource(context, fallbackResId,
+ locale);
+ if (null != fallbackAsset) {
+ fileList.add(fallbackAsset);
+ }
}
- // If the list is empty, fall through and return the fallback
- final AssetFileAddress fallbackAsset = loadFallbackResource(context, fallbackResId,
- locale);
- if (null == fallbackAsset) return null;
- return Arrays.asList(fallbackAsset);
+ return fileList;
}
}