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

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

Fix singleton/utility classes initialization in SettingsFragment

This is a follow up of Ide3cd3acba.

Bug: 8632344
Change-Id: Iafe51798a1a74eff5d8fcd6f0117d16b419d447d
parent 888a194c
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -77,12 +77,13 @@ public final class SettingsFragment 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.
        // When we are called from the Settings application but we are not already running, some
        // singleton and utility classes may not have been initialized.  We have to call
        // initialization method of these classes here. See {@link LatinIME#onCreate()}.
        SubtypeSwitcher.init(context);
        SubtypeLocale.init(context);
        // Ditto for {@link AudioAndHapticFeedbackManager} class.
        AudioAndHapticFeedbackManager.init(context);

        mVoicePreference = (ListPreference) findPreference(Settings.PREF_VOICE_MODE);
        mShowCorrectionSuggestionsPreference =
                (ListPreference) findPreference(Settings.PREF_SHOW_SUGGESTIONS_SETTING);
+7 −3
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ public final class SubtypeSwitcher {

    public static void init(final Context context) {
        SubtypeLocale.init(context);
        RichInputMethodManager.init(context);
        sInstance.initialize(context);
    }

@@ -87,10 +88,13 @@ public final class SubtypeSwitcher {
        // Intentional empty constructor for singleton.
    }

    private void initialize(final Context service) {
        mResources = service.getResources();
    private void initialize(final Context context) {
        if (mResources != null) {
            return;
        }
        mResources = context.getResources();
        mRichImm = RichInputMethodManager.getInstance();
        mConnectivityManager = (ConnectivityManager) service.getSystemService(
        mConnectivityManager = (ConnectivityManager) context.getSystemService(
                Context.CONNECTIVITY_SERVICE);
        mNoLanguageSubtype = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
                SubtypeLocale.NO_LANGUAGE, SubtypeLocale.QWERTY);