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
main
Yohei Yukawa 2014-02-17 14:44:01 +09:00
parent 95d16561e0
commit 6d43124215
1 changed files with 20 additions and 11 deletions

View File

@ -35,6 +35,7 @@ import android.view.inputmethod.InputMethodSubtype;
import android.widget.EditText; import android.widget.EditText;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
@ -290,17 +291,25 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
protected void changeLanguageWithoutWait(final String locale) { protected void changeLanguageWithoutWait(final String locale) {
mEditText.mCurrentLocale = LocaleUtils.constructLocaleFromString(locale); mEditText.mCurrentLocale = LocaleUtils.constructLocaleFromString(locale);
final InputMethodSubtype subtype = new InputMethodSubtype( // TODO: this is forcing a QWERTY keyboard for all locales, which is wrong.
R.string.subtype_no_language_qwerty, R.drawable.ic_ime_switcher_dark, // It's still better than using whatever keyboard is the current one, but we
locale, "keyboard", "KeyboardLayoutSet=" // should actually use the default keyboard for this locale.
// TODO: this is forcing a QWERTY keyboard for all locales, which is wrong. // TODO: Use {@link InputMethodSubtype.InputMethodSubtypeBuilder} directly or indirectly so
// It's still better than using whatever keyboard is the current one, but we // that {@link InputMethodSubtype#isAsciiCapable} can return the correct value.
// should actually use the default keyboard for this locale. final String EXTRA_VALUE_FOR_TEST =
+ SubtypeLocaleUtils.QWERTY "KeyboardLayoutSet=" + SubtypeLocaleUtils.QWERTY
+ "," + Constants.Subtype.ExtraValue.ASCII_CAPABLE + "," + Constants.Subtype.ExtraValue.ASCII_CAPABLE
+ "," + Constants.Subtype.ExtraValue.ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE + "," + Constants.Subtype.ExtraValue.ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE
+ "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE, + "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */); 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); SubtypeSwitcher.getInstance().forceSubtype(subtype);
mLatinIME.loadKeyboard(); mLatinIME.loadKeyboard();
runMessages(); runMessages();