[ML25] Add an hasDict method.

We used to have separate methods for existence of dicts
according to whether it's a file or a resource. This unifies both.

Bug: 11230254
Bug: 17979623
Change-Id: I728773461f3465f756d06297c3f3bee34390c3e6
This commit is contained in:
Jean Chalard 2014-10-15 23:23:30 +09:00
parent 8fff6ae68b
commit f13487dfbf
3 changed files with 25 additions and 5 deletions

View file

@ -18,7 +18,6 @@ package com.android.inputmethod.latin.settings;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.preference.PreferenceFragment;
import android.view.inputmethod.InputMethodSubtype;
@ -50,7 +49,7 @@ public class AdditionalFeaturesSettingUtils {
public static RichInputMethodSubtype createRichInputMethodSubtype(
@Nonnull final RichInputMethodManager imm,
@Nonnull final InputMethodSubtype subtype,
final Resources resources) {
final Context context) {
return new RichInputMethodSubtype(subtype);
}
}

View file

@ -52,7 +52,7 @@ public class RichInputMethodManager {
private static final RichInputMethodManager sInstance = new RichInputMethodManager();
private Resources mResources;
private Context mContext;
private InputMethodManagerCompatWrapper mImmWrapper;
private InputMethodInfoCache mInputMethodInfoCache;
final HashMap<InputMethodInfo, List<InputMethodSubtype>>
@ -86,7 +86,7 @@ public class RichInputMethodManager {
return;
}
mImmWrapper = new InputMethodManagerCompatWrapper(context);
mResources = context.getResources();
mContext = context;
mInputMethodInfoCache = new InputMethodInfoCache(
mImmWrapper.mImm, context.getPackageName());
@ -309,7 +309,7 @@ public class RichInputMethodManager {
public RichInputMethodSubtype createCurrentRichInputMethodSubtype(
final InputMethodSubtype rawSubtype) {
return AdditionalFeaturesSettingUtils.createRichInputMethodSubtype(this, rawSubtype,
mResources);
mContext);
}
public boolean hasMultipleEnabledIMEsOrSubtypes(final boolean shouldIncludeAuxiliarySubtypes) {

View file

@ -230,6 +230,7 @@ public class DictionaryInfoUtils {
/**
* Helper method to return a dictionary res id for a locale, or 0 if none.
* @param res resources for the app
* @param locale dictionary locale
* @return main dictionary resource id
*/
@ -258,6 +259,7 @@ public class DictionaryInfoUtils {
/**
* Returns a main dictionary resource id
* @param res resources for the app
* @param locale dictionary locale
* @return main dictionary resource id
*/
@ -283,6 +285,25 @@ public class DictionaryInfoUtils {
BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR + locale.getLanguage().toString();
}
/**
* Returns whether a main dictionary is readily available for this locale.
*
* This does not query the content provider.
*
* @param context context to open files upon
* @param locale dictionary locale
* @return true if a dictionary is available right away, false otherwise
*/
public static boolean hasReadilyAvailableMainDictionaryForLocale(final Context context,
final Locale locale) {
final Resources res = context.getResources();
if (0 != getMainDictionaryResourceIdIfAvailableForLocale(res, locale)) {
return true;
}
final String fileName = getCacheFileName(getMainDictId(locale), locale.toString(), context);
return new File(fileName).exists();
}
public static DictionaryHeader getDictionaryFileHeaderOrNull(final File file) {
return getDictionaryFileHeaderOrNull(file, 0, file.length());
}