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 { 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); }