Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f526c9a authored by Mohammadinamul Sheik's avatar Mohammadinamul Sheik
Browse files

Use the complete Locale in generating the dictionary id.

- Also deleted a couple of dead methods.

Bug:19929051
Change-Id: I4f88dbc2a8204d5e2a20d1ad8c205a23c6319f8d
parent 622093dd
Loading
Loading
Loading
Loading
+2 −25
Original line number Diff line number Diff line
@@ -313,35 +313,12 @@ public class DictionaryInfoUtils {
     * unique ID to them. This ID is just the name of the language (locale-wise) they
     * 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
        // 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.
        return BinaryDictionaryGetter.MAIN_DICTIONARY_CATEGORY +
                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());
                BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR + locale.toString().toLowerCase();
    }

    public static DictionaryHeader getDictionaryFileHeaderOrNull(final File file,
+18 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.res.Resources;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;

import com.android.inputmethod.latin.common.LocaleUtils;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations;

import java.util.Locale;
@@ -44,4 +45,21 @@ public class DictionaryInfoUtilsTests extends AndroidTestCase {
                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")));
    }
}