Use the complete Locale in generating the dictionary id.

- Also deleted a couple of dead methods.

Bug:19929051
Change-Id: I4f88dbc2a8204d5e2a20d1ad8c205a23c6319f8d
main
Mohammadinamul Sheik 2015-03-25 16:45:56 -07:00
parent 622093dd3a
commit 8f526c9a55
2 changed files with 20 additions and 25 deletions

View File

@ -313,35 +313,12 @@ public class DictionaryInfoUtils {
* unique ID to them. This ID is just the name of the language (locale-wise) they * unique ID to them. This ID is just the name of the language (locale-wise) they
* are for, and this method returns this ID. * are for, and this method returns this ID.
*/ */
public static String getMainDictId(final Locale locale) { public static String getMainDictId(@Nonnull final Locale locale) {
// This works because we don't include by default different dictionaries for // This works because we don't include by default different dictionaries for
// different countries. This actually needs to return the id that we would // different countries. This actually needs to return the id that we would
// like to use for word lists included in resources, and the following is okay. // like to use for word lists included in resources, and the following is okay.
return BinaryDictionaryGetter.MAIN_DICTIONARY_CATEGORY + return BinaryDictionaryGetter.MAIN_DICTIONARY_CATEGORY +
BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR + locale.getLanguage().toString(); BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR + locale.toString().toLowerCase();
}
/**
* 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());
} }
public static DictionaryHeader getDictionaryFileHeaderOrNull(final File file, public static DictionaryHeader getDictionaryFileHeaderOrNull(final File file,

View File

@ -20,6 +20,7 @@ import android.content.res.Resources;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest; import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.latin.common.LocaleUtils;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations; import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
import java.util.Locale; import java.util.Locale;
@ -44,4 +45,21 @@ public class DictionaryInfoUtilsTests extends AndroidTestCase {
sp)); sp));
assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("!!!", sp)); assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("!!!", sp));
} }
public void testGetMainDictId() {
assertEquals("main:en",
DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en")));
assertEquals("main:en_us",
DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en_US")));
assertEquals("main:en_gb",
DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en_GB")));
assertEquals("main:es",
DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("es")));
assertEquals("main:es_us",
DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("es_US")));
assertEquals("main:en_us_posix", DictionaryInfoUtils.getMainDictId(
LocaleUtils.constructLocaleFromString("en_US_POSIX")));
}
} }