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

Commit bffa6cc1 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Initialize SubtypeLocale from Settings (DO NOT MERGE)

Bug: 6781106
Change-Id: Ic1b2b8363486820eabaa415ab3812c0e8565b7bb
parent 7f7947c9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -116,6 +116,10 @@ public class Settings extends InputMethodSettingsFragment
        final Resources res = getResources();
        final Context context = getActivity();

        // When we are called from the Settings application but we are not already running, the
        // {@link SubtypeLocale} class may not have been initialized. It is safe to call
        // {@link SubtypeLocale#init(Context)} multiple times.
        SubtypeLocale.init(context);
        mVoicePreference = (ListPreference) findPreference(PREF_VOICE_MODE);
        mShowCorrectionSuggestionsPreference =
                (ListPreference) findPreference(PREF_SHOW_SUGGESTIONS_SETTING);
+7 −1
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ public class SubtypeLocale {
    public static final String QWERTY = "qwerty";
    public static final int UNKNOWN_KEYBOARD_LAYOUT = R.string.subtype_generic;

    private static boolean sInitialized = false;
    private static String[] sPredefinedKeyboardLayoutSet;
    // Keyboard layout to its display name map.
    private static final HashMap<String, String> sKeyboardLayoutToDisplayNameMap =
@@ -69,7 +70,10 @@ public class SubtypeLocale {
        // Intentional empty constructor for utility class.
    }

    public static void init(Context context) {
    // Note that this initialization method can be called multiple times.
    public static synchronized void init(Context context) {
        if (sInitialized) return;

        final Resources res = context.getResources();

        final String[] predefinedLayoutSet = res.getStringArray(R.array.predefined_layouts);
@@ -109,6 +113,8 @@ public class SubtypeLocale {
            final String keyboardLayoutSet = keyboardLayoutSetMap[i + 1];
            sLocaleAndExtraValueToKeyboardLayoutSetMap.put(key, keyboardLayoutSet);
        }

        sInitialized = true;
    }

    public static String[] getPredefinedKeyboardLayoutSet() {