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

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

Merge "Fix checking if subtype belongs to this ime" into jb-dev

parents aec1770e ae2388c7
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -63,7 +63,8 @@ public class ImfUtils {
        return getInputMethodInfoOfThisIme(context).getId();
    }

    public static boolean checkIfSubtypeBelongsToThisIme(Context context, InputMethodSubtype ims) {
    public static boolean checkIfSubtypeBelongsToThisImeAndEnabled(Context context,
            InputMethodSubtype ims) {
        final InputMethodInfo myImi = getInputMethodInfoOfThisIme(context);
        final InputMethodManager imm = getInputMethodManager(context);
        // TODO: Cache all subtypes of this IME for optimization
@@ -76,6 +77,19 @@ public class ImfUtils {
        return false;
    }

    public static boolean checkIfSubtypeBelongsToThisIme(Context context,
            InputMethodSubtype ims) {
        final InputMethodInfo myImi = getInputMethodInfoOfThisIme(context);
        final int count = myImi.getSubtypeCount();
        for (int i = 0; i < count; i++) {
            final InputMethodSubtype subtype = myImi.getSubtypeAt(i);
            if (subtype.equals(ims)) {
                return true;
            }
        }
        return false;
    }

    public static boolean hasMultipleEnabledIMEsOrSubtypes(Context context,
            final boolean shouldIncludeAuxiliarySubtypes) {
        final InputMethodManager imm = getInputMethodManager(context);
+2 −2
Original line number Diff line number Diff line
@@ -1148,8 +1148,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        final IBinder token = getWindow().getWindow().getAttributes().token;
        if (mShouldSwitchToLastSubtype) {
            final InputMethodSubtype lastSubtype = mImm.getLastInputMethodSubtype();
            final boolean lastSubtypeBelongsToThisIme = ImfUtils.checkIfSubtypeBelongsToThisIme(
                    this, lastSubtype);
            final boolean lastSubtypeBelongsToThisIme =
                    ImfUtils.checkIfSubtypeBelongsToThisImeAndEnabled(this, lastSubtype);
            if ((includesOtherImes || lastSubtypeBelongsToThisIme)
                    && mImm.switchToLastInputMethod(token)) {
                mShouldSwitchToLastSubtype = false;