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

Commit ef35cb63 authored by Jean Chalard's avatar Jean Chalard
Browse files

Move locale-related utility methods to LocaleUtils.

Change-Id: I7e9e6e5bc4486d8618d0213b112308c3d305c15e
parent 0ada663f
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.inputmethod.deprecated.languageswitcher;


import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
import com.android.inputmethod.latin.DictionaryFactory;
import com.android.inputmethod.latin.DictionaryFactory;
import com.android.inputmethod.latin.LocaleUtils;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.Settings;
import com.android.inputmethod.latin.Settings;
import com.android.inputmethod.latin.SharedPreferencesCompat;
import com.android.inputmethod.latin.SharedPreferencesCompat;
@@ -155,7 +156,7 @@ public class InputLanguageSelection extends PreferenceActivity {
    private Pair<Long, Boolean> hasDictionaryOrLayout(Locale locale) {
    private Pair<Long, Boolean> hasDictionaryOrLayout(Locale locale) {
        if (locale == null) return new Pair<Long, Boolean>(null, false);
        if (locale == null) return new Pair<Long, Boolean>(null, false);
        final Resources res = getResources();
        final Resources res = getResources();
        final Locale saveLocale = Utils.setSystemLocale(res, locale);
        final Locale saveLocale = LocaleUtils.setSystemLocale(res, locale);
        final Long dictionaryId = DictionaryFactory.getDictionaryId(this, locale);
        final Long dictionaryId = DictionaryFactory.getDictionaryId(this, locale);
        boolean hasLayout = false;
        boolean hasLayout = false;


@@ -174,7 +175,7 @@ public class InputLanguageSelection extends PreferenceActivity {
        } catch (XmlPullParserException e) {
        } catch (XmlPullParserException e) {
        } catch (IOException e) {
        } catch (IOException e) {
        }
        }
        Utils.setSystemLocale(res, saveLocale);
        LocaleUtils.setSystemLocale(res, saveLocale);
        return new Pair<Long, Boolean>(dictionaryId, hasLayout);
        return new Pair<Long, Boolean>(dictionaryId, hasLayout);
    }
    }


+2 −2
Original line number Original line Diff line number Diff line
@@ -18,9 +18,9 @@ package com.android.inputmethod.deprecated.languageswitcher;


import com.android.inputmethod.latin.LatinIME;
import com.android.inputmethod.latin.LatinIME;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.LocaleUtils;
import com.android.inputmethod.latin.Settings;
import com.android.inputmethod.latin.Settings;
import com.android.inputmethod.latin.SharedPreferencesCompat;
import com.android.inputmethod.latin.SharedPreferencesCompat;
import com.android.inputmethod.latin.Utils;


import android.content.SharedPreferences;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.SharedPreferences.Editor;
@@ -126,7 +126,7 @@ public class LanguageSwitcher {
    private void constructLocales() {
    private void constructLocales() {
        mLocales.clear();
        mLocales.clear();
        for (final String lang : mSelectedLanguageArray) {
        for (final String lang : mSelectedLanguageArray) {
            final Locale locale = Utils.constructLocaleFromString(lang);
            final Locale locale = LocaleUtils.constructLocaleFromString(lang);
            mLocales.add(locale);
            mLocales.add(locale);
        }
        }
    }
    }
+3 −2
Original line number Original line Diff line number Diff line
@@ -33,6 +33,7 @@ import com.android.inputmethod.keyboard.internal.ModifierKeyState;
import com.android.inputmethod.keyboard.internal.ShiftKeyState;
import com.android.inputmethod.keyboard.internal.ShiftKeyState;
import com.android.inputmethod.latin.LatinIME;
import com.android.inputmethod.latin.LatinIME;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.LocaleUtils;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.Settings;
import com.android.inputmethod.latin.Settings;
import com.android.inputmethod.latin.SubtypeSwitcher;
import com.android.inputmethod.latin.SubtypeSwitcher;
@@ -258,11 +259,11 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
        final SoftReference<LatinKeyboard> ref = mKeyboardCache.get(id);
        final SoftReference<LatinKeyboard> ref = mKeyboardCache.get(id);
        LatinKeyboard keyboard = (ref == null) ? null : ref.get();
        LatinKeyboard keyboard = (ref == null) ? null : ref.get();
        if (keyboard == null) {
        if (keyboard == null) {
            final Locale savedLocale = Utils.setSystemLocale(mResources, id.mLocale);
            final Locale savedLocale = LocaleUtils.setSystemLocale(mResources, id.mLocale);
            try {
            try {
                keyboard = new LatinKeyboard.Builder(mThemeContext).load(id).build();
                keyboard = new LatinKeyboard.Builder(mThemeContext).load(id).build();
            } finally {
            } finally {
                Utils.setSystemLocale(mResources, savedLocale);
                LocaleUtils.setSystemLocale(mResources, savedLocale);
            }
            }
            mKeyboardCache.put(id, new SoftReference<LatinKeyboard>(keyboard));
            mKeyboardCache.put(id, new SoftReference<LatinKeyboard>(keyboard));


+2 −2
Original line number Original line Diff line number Diff line
@@ -157,9 +157,9 @@ class BinaryDictionaryGetter {
    private static AssetFileAddress loadFallbackResource(final Context context,
    private static AssetFileAddress loadFallbackResource(final Context context,
            final int fallbackResId, final Locale locale) {
            final int fallbackResId, final Locale locale) {
        final Resources res = context.getResources();
        final Resources res = context.getResources();
        final Locale savedLocale = Utils.setSystemLocale(res, locale);
        final Locale savedLocale = LocaleUtils.setSystemLocale(res, locale);
        final AssetFileDescriptor afd = res.openRawResourceFd(fallbackResId);
        final AssetFileDescriptor afd = res.openRawResourceFd(fallbackResId);
        Utils.setSystemLocale(res, savedLocale);
        LocaleUtils.setSystemLocale(res, savedLocale);


        if (afd == null) {
        if (afd == null) {
            Log.e(TAG, "Found the resource but cannot read it. Is it compressed? resId="
            Log.e(TAG, "Found the resource but cannot read it. Is it compressed? resId="
+7 −7
Original line number Original line Diff line number Diff line
@@ -83,9 +83,9 @@ public class DictionaryFactory {
        try {
        try {
            final Resources res = context.getResources();
            final Resources res = context.getResources();
            if (null != locale) {
            if (null != locale) {
                final Locale savedLocale = Utils.setSystemLocale(res, locale);
                final Locale savedLocale = LocaleUtils.setSystemLocale(res, locale);
                afd = res.openRawResourceFd(resId);
                afd = res.openRawResourceFd(resId);
                Utils.setSystemLocale(res, savedLocale);
                LocaleUtils.setSystemLocale(res, savedLocale);
            } else {
            } else {
                afd = res.openRawResourceFd(resId);
                afd = res.openRawResourceFd(resId);
            }
            }
@@ -145,7 +145,7 @@ public class DictionaryFactory {
     */
     */
    public static boolean isDictionaryAvailable(Context context, Locale locale) {
    public static boolean isDictionaryAvailable(Context context, Locale locale) {
        final Resources res = context.getResources();
        final Resources res = context.getResources();
        final Locale saveLocale = Utils.setSystemLocale(res, locale);
        final Locale saveLocale = LocaleUtils.setSystemLocale(res, locale);


        final int resourceId = Utils.getMainDictionaryResourceId(res);
        final int resourceId = Utils.getMainDictionaryResourceId(res);
        final AssetFileDescriptor afd = res.openRawResourceFd(resourceId);
        final AssetFileDescriptor afd = res.openRawResourceFd(resourceId);
@@ -156,14 +156,14 @@ public class DictionaryFactory {
            /* Um, what can we do here exactly? */
            /* Um, what can we do here exactly? */
        }
        }


        Utils.setSystemLocale(res, saveLocale);
        LocaleUtils.setSystemLocale(res, saveLocale);
        return hasDictionary;
        return hasDictionary;
    }
    }


    // TODO: Do not use the size of the dictionary as an unique dictionary ID.
    // TODO: Do not use the size of the dictionary as an unique dictionary ID.
    public static Long getDictionaryId(Context context, Locale locale) {
    public static Long getDictionaryId(final Context context, final Locale locale) {
        final Resources res = context.getResources();
        final Resources res = context.getResources();
        final Locale saveLocale = Utils.setSystemLocale(res, locale);
        final Locale saveLocale = LocaleUtils.setSystemLocale(res, locale);


        final int resourceId = Utils.getMainDictionaryResourceId(res);
        final int resourceId = Utils.getMainDictionaryResourceId(res);
        final AssetFileDescriptor afd = res.openRawResourceFd(resourceId);
        final AssetFileDescriptor afd = res.openRawResourceFd(resourceId);
@@ -175,7 +175,7 @@ public class DictionaryFactory {
        } catch (java.io.IOException e) {
        } catch (java.io.IOException e) {
        }
        }


        Utils.setSystemLocale(res, saveLocale);
        LocaleUtils.setSystemLocale(res, saveLocale);
        return size;
        return size;
    }
    }


Loading