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

Commit 732edc1f authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Fix NPE where the current subtype is null"

parents 48ded4e3 d6a18cde
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -90,6 +90,13 @@ public class ImfUtils {
        return false;
        return false;
    }
    }


    public static InputMethodSubtype getCurrentInputMethodSubtype(Context context,
            InputMethodSubtype defaultSubtype) {
        final InputMethodManager imm = getInputMethodManager(context);
        final InputMethodSubtype currentSubtype = imm.getCurrentInputMethodSubtype();
        return (currentSubtype != null) ? currentSubtype : defaultSubtype;
    }

    public static boolean hasMultipleEnabledIMEsOrSubtypes(Context context,
    public static boolean hasMultipleEnabledIMEsOrSubtypes(Context context,
            final boolean shouldIncludeAuxiliarySubtypes) {
            final boolean shouldIncludeAuxiliarySubtypes) {
        final InputMethodManager imm = getInputMethodManager(context);
        final InputMethodManager imm = getInputMethodManager(context);
+3 −3
Original line number Original line Diff line number Diff line
@@ -98,9 +98,9 @@ public class SubtypeSwitcher {
        mConnectivityManager = (ConnectivityManager) service.getSystemService(
        mConnectivityManager = (ConnectivityManager) service.getSystemService(
                Context.CONNECTIVITY_SERVICE);
                Context.CONNECTIVITY_SERVICE);
        mCurrentSystemLocale = mResources.getConfiguration().locale;
        mCurrentSystemLocale = mResources.getConfiguration().locale;
        mCurrentSubtype = mImm.getCurrentInputMethodSubtype();
        mNoLanguageSubtype = ImfUtils.findSubtypeByLocaleAndKeyboardLayoutSet(
        mNoLanguageSubtype = ImfUtils.findSubtypeByLocaleAndKeyboardLayoutSet(
                service, SubtypeLocale.NO_LANGUAGE, SubtypeLocale.QWERTY);
                service, SubtypeLocale.NO_LANGUAGE, SubtypeLocale.QWERTY);
        mCurrentSubtype = ImfUtils.getCurrentInputMethodSubtype(service, mNoLanguageSubtype);
        if (mNoLanguageSubtype == null) {
        if (mNoLanguageSubtype == null) {
            throw new RuntimeException("Can't find no lanugage with QWERTY subtype");
            throw new RuntimeException("Can't find no lanugage with QWERTY subtype");
        }
        }
@@ -113,7 +113,7 @@ public class SubtypeSwitcher {
    // Only configuration changed event is allowed to call this because this is heavy.
    // Only configuration changed event is allowed to call this because this is heavy.
    private void updateAllParameters() {
    private void updateAllParameters() {
        mCurrentSystemLocale = mResources.getConfiguration().locale;
        mCurrentSystemLocale = mResources.getConfiguration().locale;
        updateSubtype(mImm.getCurrentInputMethodSubtype());
        updateSubtype(ImfUtils.getCurrentInputMethodSubtype(mService, mNoLanguageSubtype));
        updateParametersOnStartInputView();
        updateParametersOnStartInputView();
    }
    }


@@ -142,7 +142,7 @@ public class SubtypeSwitcher {
                        + currentSubtype.getLocale() + "/" + currentSubtype.getExtraValue());
                        + currentSubtype.getLocale() + "/" + currentSubtype.getExtraValue());
                Log.w(TAG, "Last subtype was disabled. Update to the current one.");
                Log.w(TAG, "Last subtype was disabled. Update to the current one.");
            }
            }
            updateSubtype(mImm.getCurrentInputMethodSubtype());
            updateSubtype(ImfUtils.getCurrentInputMethodSubtype(mService, mNoLanguageSubtype));
        }
        }
    }
    }