diff options
Diffstat (limited to 'java/src')
3 files changed, 20 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java index c51f1849b..762039625 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java @@ -38,7 +38,6 @@ import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.SubtypeSwitcher; import com.android.inputmethod.latin.Utils; -import java.lang.ref.SoftReference; import java.util.Arrays; import java.util.HashMap; import java.util.Locale; @@ -329,10 +328,12 @@ public class LatinKeyboard extends Keyboard { Math.max(0, Math.min(y, mOccupiedHeight - 1))); } + private static final int[] ATTR_TEXT_SIZE = { android.R.attr.textSize }; + public static int getTextSizeFromTheme(Theme theme, int style, int defValue) { - TypedArray array = theme.obtainStyledAttributes( - style, new int[] { android.R.attr.textSize }); - int textSize = array.getDimensionPixelSize(array.getResourceId(0, 0), defValue); + final TypedArray a = theme.obtainStyledAttributes(style, ATTR_TEXT_SIZE); + final int textSize = a.getDimensionPixelSize(a.getResourceId(0, 0), defValue); + a.recycle(); return textSize; } } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java index 613ce587b..c2e96f877 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java @@ -323,7 +323,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> { if (TAG_KEYBOARD.equals(tag)) { final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard); - return keyboardAttr.getString(R.styleable.Keyboard_keyboardLocale); + final String locale = keyboardAttr.getString( + R.styleable.Keyboard_keyboardLocale); + keyboardAttr.recycle(); + return locale; } else { throw new IllegalStartTag(parser, TAG_KEYBOARD); } diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 2bd173526..d12708db9 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -764,14 +764,24 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (attribute == null) return; final int inputType = attribute.inputType; + if (inputType == InputType.TYPE_NULL) { + // TODO: We should honor TYPE_NULL specification. + Log.i(TAG, "InputType.TYPE_NULL is specified"); + } + final int inputClass = inputType & InputType.TYPE_MASK_CLASS; final int variation = inputType & InputType.TYPE_MASK_VARIATION; + if (inputClass == 0) { + Log.w(TAG, String.format("Unexpected input class: inputType=0x%08x imeOptions=0x%08x", + inputType, attribute.imeOptions)); + } + mShouldInsertMagicSpace = false; mInputTypeNoAutoCorrect = false; mIsSettingsSuggestionStripOn = false; mApplicationSpecifiedCompletionOn = false; mApplicationSpecifiedCompletions = null; - if ((inputType & InputType.TYPE_MASK_CLASS) == InputType.TYPE_CLASS_TEXT) { + if (inputClass == InputType.TYPE_CLASS_TEXT) { mIsSettingsSuggestionStripOn = true; // Make sure that passwords are not displayed in {@link SuggestionsView}. if (InputTypeCompatUtils.isPasswordInputType(inputType) |