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

Commit 6d431242 authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Stop using deprecated InputMethodSubtype constructor

The constructors of InputMethodSubtype were deprecated in API level 19.
However we cannot yet switch to a new InputMethodSubtypeBuilder style
due to our minimum support API level.

As an intermediate solution, this patch replaces the these API calls
with InputMethodSubtypeCompatUtils.newInputMethodSubtype so that
these legacy API call can be consolidated at the same place.

BUG: 13030512
Change-Id: I561a585f5dbea56c337680b645be5ef07015a0b1
parent 95d16561
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.view.inputmethod.InputMethodSubtype;
import android.widget.EditText;
import android.widget.FrameLayout;

import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
@@ -290,17 +291,25 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {

    protected void changeLanguageWithoutWait(final String locale) {
        mEditText.mCurrentLocale = LocaleUtils.constructLocaleFromString(locale);
        final InputMethodSubtype subtype = new InputMethodSubtype(
            R.string.subtype_no_language_qwerty, R.drawable.ic_ime_switcher_dark,
            locale, "keyboard", "KeyboardLayoutSet="
        // TODO: this is forcing a QWERTY keyboard for all locales, which is wrong.
        // It's still better than using whatever keyboard is the current one, but we
        // should actually use the default keyboard for this locale.
                    + SubtypeLocaleUtils.QWERTY
        // TODO: Use {@link InputMethodSubtype.InputMethodSubtypeBuilder} directly or indirectly so
        // that {@link InputMethodSubtype#isAsciiCapable} can return the correct value.
        final String EXTRA_VALUE_FOR_TEST =
                "KeyboardLayoutSet=" + SubtypeLocaleUtils.QWERTY
                + "," + Constants.Subtype.ExtraValue.ASCII_CAPABLE
                + "," + Constants.Subtype.ExtraValue.ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE
                    + "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE,
                    false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */);
                + "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
        final InputMethodSubtype subtype = InputMethodSubtypeCompatUtils.newInputMethodSubtype(
                R.string.subtype_no_language_qwerty,
                R.drawable.ic_ime_switcher_dark,
                locale,
                Constants.Subtype.KEYBOARD_MODE,
                EXTRA_VALUE_FOR_TEST,
                false /* isAuxiliary */,
                false /* overridesImplicitlyEnabledSubtype */,
                0 /* id */);
        SubtypeSwitcher.getInstance().forceSubtype(subtype);
        mLatinIME.loadKeyboard();
        runMessages();