Merge "Move the settings test to a more appropriate place."
This commit is contained in:
commit
89fdb82753
1 changed files with 28 additions and 22 deletions
|
@ -41,6 +41,11 @@ class BinaryDictionaryGetter {
|
||||||
*/
|
*/
|
||||||
private static final String TAG = BinaryDictionaryGetter.class.getSimpleName();
|
private static final String TAG = BinaryDictionaryGetter.class.getSimpleName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to return empty lists
|
||||||
|
*/
|
||||||
|
private static final File[] EMPTY_FILE_ARRAY = new File[0];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name of the common preferences name to know which word list are on and which are off.
|
* Name of the common preferences name to know which word list are on and which are off.
|
||||||
*/
|
*/
|
||||||
|
@ -198,29 +203,14 @@ class BinaryDictionaryGetter {
|
||||||
*
|
*
|
||||||
* @param locale the locale to find the dictionary files for.
|
* @param locale the locale to find the dictionary files for.
|
||||||
* @param context the context on which to open the files upon.
|
* @param context the context on which to open the files upon.
|
||||||
* @return a list of binary dictionary files, which may be null but may not be empty.
|
* @return an array of binary dictionary files, which may be empty but may not be null.
|
||||||
*/
|
*/
|
||||||
private static List<AssetFileAddress> getCachedDictionaryList(final Locale locale,
|
private static File[] getCachedDictionaryList(final Locale locale,
|
||||||
final Context context) {
|
final Context context) {
|
||||||
final String directoryName = getCacheDirectoryForLocale(locale, context);
|
final String directoryName = getCacheDirectoryForLocale(locale, context);
|
||||||
final File[] cacheFiles = new File(directoryName).listFiles();
|
final File[] cacheFiles = new File(directoryName).listFiles();
|
||||||
// TODO: Never return null. Fallback on the built-in dictionary, and if that's
|
if (null == cacheFiles) return EMPTY_FILE_ARRAY;
|
||||||
// not present or disabled, then return an empty list.
|
return cacheFiles;
|
||||||
if (null == cacheFiles) return null;
|
|
||||||
|
|
||||||
final DictPackSettings dictPackSettings = new DictPackSettings(context);
|
|
||||||
|
|
||||||
final ArrayList<AssetFileAddress> fileList = new ArrayList<AssetFileAddress>();
|
|
||||||
for (File f : cacheFiles) {
|
|
||||||
final String wordListId = getWordListIdFromFileName(f.getName());
|
|
||||||
if (!dictPackSettings.isWordListActive(wordListId)) continue;
|
|
||||||
if (f.canRead()) {
|
|
||||||
fileList.add(AssetFileAddress.makeFromFileName(f.getPath()));
|
|
||||||
} else {
|
|
||||||
Log.e(TAG, "Found a cached dictionary file but cannot read it");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fileList.size() > 0 ? fileList : null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -242,11 +232,27 @@ class BinaryDictionaryGetter {
|
||||||
// storage, but we don't really care about what was copied NOW: what we want is the
|
// storage, but we don't really care about what was copied NOW: what we want is the
|
||||||
// list of everything we ever cached, so we ignore the return value.
|
// list of everything we ever cached, so we ignore the return value.
|
||||||
BinaryDictionaryFileDumper.cacheDictionariesFromContentProvider(locale, context);
|
BinaryDictionaryFileDumper.cacheDictionariesFromContentProvider(locale, context);
|
||||||
List<AssetFileAddress> cachedDictionaryList = getCachedDictionaryList(locale, context);
|
final File[] cachedDictionaryList = getCachedDictionaryList(locale, context);
|
||||||
if (null != cachedDictionaryList) {
|
|
||||||
return cachedDictionaryList;
|
final DictPackSettings dictPackSettings = new DictPackSettings(context);
|
||||||
|
|
||||||
|
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 (!dictPackSettings.isWordListActive(wordListId)) continue;
|
||||||
|
if (f.canRead()) {
|
||||||
|
fileList.add(AssetFileAddress.makeFromFileName(f.getPath()));
|
||||||
|
} else {
|
||||||
|
Log.e(TAG, "Found a cached dictionary file but cannot read it");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!fileList.isEmpty()) {
|
||||||
|
return fileList;
|
||||||
|
}
|
||||||
|
// If the list is empty, fall through and return the fallback
|
||||||
|
|
||||||
final AssetFileAddress fallbackAsset = loadFallbackResource(context, fallbackResId,
|
final AssetFileAddress fallbackAsset = loadFallbackResource(context, fallbackResId,
|
||||||
locale);
|
locale);
|
||||||
if (null == fallbackAsset) return null;
|
if (null == fallbackAsset) return null;
|
||||||
|
|
Loading…
Reference in a new issue