aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-04-11 21:12:09 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-04-11 21:12:09 -0700
commit4c9b2504e2ce7204fc5a9a5f89f5016c320f3713 (patch)
treebe2f6176f21a13b5783ffe420664c48286d9ab59 /java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
parent5abbf24eb0b21adf0d9e33bdda6010cdc5450cdd (diff)
parentcec8552b18fd74517512a43a8d75f64e64bd12c3 (diff)
downloadlatinime-4c9b2504e2ce7204fc5a9a5f89f5016c320f3713.tar.gz
latinime-4c9b2504e2ce7204fc5a9a5f89f5016c320f3713.tar.xz
latinime-4c9b2504e2ce7204fc5a9a5f89f5016c320f3713.zip
Merge "Pass a parameter to the dict pack if we don't have a default dict"
Diffstat (limited to 'java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java')
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java27
1 files changed, 19 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index 311d3dc9d..e4d081b56 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -53,17 +53,23 @@ public class BinaryDictionaryFileDumper {
private static final String DICTIONARY_PROJECTION[] = { "id" };
+ public static final String QUERY_PARAMETER_MAY_PROMPT_USER = "mayPrompt";
+ public static final String QUERY_PARAMETER_TRUE = "true";
+
// Prevents this class to be accidentally instantiated.
private BinaryDictionaryFileDumper() {
}
/**
- * Return for a given locale or dictionary id the provider URI to get the dictionary.
+ * Returns a URI builder pointing to the dictionary pack.
+ *
+ * This creates a URI builder able to build a URI pointing to the dictionary
+ * pack content provider for a specific dictionary id.
*/
- private static Uri getProviderUri(String path) {
+ private static Uri.Builder getProviderUriBuilder(final String path) {
return new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
.authority(BinaryDictionary.DICTIONARY_PACK_AUTHORITY).appendPath(
- path).build();
+ path);
}
/**
@@ -71,9 +77,13 @@ public class BinaryDictionaryFileDumper {
* available to copy into Latin IME.
*/
private static List<WordListInfo> getWordListWordListInfos(final Locale locale,
- final Context context) {
+ final Context context, final boolean hasDefaultWordList) {
final ContentResolver resolver = context.getContentResolver();
- final Uri dictionaryPackUri = getProviderUri(locale.toString());
+ final Uri.Builder builder = getProviderUriBuilder(locale.toString());
+ if (!hasDefaultWordList) {
+ builder.appendQueryParameter(QUERY_PARAMETER_MAY_PROMPT_USER, QUERY_PARAMETER_TRUE);
+ }
+ final Uri dictionaryPackUri = builder.build();
final Cursor c = resolver.query(dictionaryPackUri, DICTIONARY_PROJECTION, null, null, null);
if (null == c) return Collections.<WordListInfo>emptyList();
@@ -132,7 +142,7 @@ public class BinaryDictionaryFileDumper {
final int MODE_MIN = COMPRESSED_CRYPTED_COMPRESSED;
final int MODE_MAX = NONE;
- final Uri wordListUri = getProviderUri(id);
+ final Uri wordListUri = getProviderUriBuilder(id).build();
final String outputFileName = BinaryDictionaryGetter.getCacheFileName(id, locale, context);
for (int mode = MODE_MIN; mode <= MODE_MAX; ++mode) {
@@ -231,9 +241,10 @@ public class BinaryDictionaryFileDumper {
* @throw IOException if the provider-returned data could not be read.
*/
public static List<AssetFileAddress> cacheWordListsFromContentProvider(final Locale locale,
- final Context context) {
+ final Context context, final boolean hasDefaultWordList) {
final ContentResolver resolver = context.getContentResolver();
- final List<WordListInfo> idList = getWordListWordListInfos(locale, context);
+ final List<WordListInfo> idList = getWordListWordListInfos(locale, context,
+ hasDefaultWordList);
final List<AssetFileAddress> fileAddressList = new ArrayList<AssetFileAddress>();
for (WordListInfo id : idList) {
final AssetFileAddress afd = cacheWordList(id.mId, id.mLocale, resolver, context);