aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-11-06 12:22:01 +0900
committerTadashi G. Takaoka <takaoka@google.com>2014-11-06 12:30:16 +0900
commitb68f90ac1a8b9fe2a53b7ee9f4a174b7ea511a8e (patch)
tree1ed974ab9010044f4e22953ab49ff757031ea706
parentab68143ad0fb784db38a3fd65612632fca90c789 (diff)
downloadlatinime-b68f90ac1a8b9fe2a53b7ee9f4a174b7ea511a8e.tar.gz
latinime-b68f90ac1a8b9fe2a53b7ee9f4a174b7ea511a8e.tar.xz
latinime-b68f90ac1a8b9fe2a53b7ee9f4a174b7ea511a8e.zip
Clean up KeyboardLayoutSet a bit
This CL moves getScriptId() from KeyboardLayoutSet.Builder to KeyboardLayoutSet. Change-Id: I13588467e3d03abb92120acb367f021ee3490a50
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java47
1 files changed, 19 insertions, 28 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
index 7eb91b588..a512ccdd6 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
@@ -52,6 +52,9 @@ import java.io.IOException;
import java.lang.ref.SoftReference;
import java.util.HashMap;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
/**
* This class represents a set of keyboard layouts. Each of them represents a different keyboard
* specific to a keyboard state, such as alphabet, symbols, and so on. Layouts in the same
@@ -83,6 +86,8 @@ public final class KeyboardLayoutSet {
private static final HashMap<KeyboardId, SoftReference<Keyboard>> sKeyboardCache =
new HashMap<>();
private static final KeysCache sKeysCache = new KeysCache();
+ private final static HashMap<InputMethodSubtype, Integer> sScriptIdsForSubtypes =
+ new HashMap<>();
@SuppressWarnings("serial")
public static final class KeyboardLayoutSetException extends RuntimeException {
@@ -141,6 +146,16 @@ public final class KeyboardLayoutSet {
sKeysCache.clear();
}
+ public static int getScriptId(final Resources resources, final InputMethodSubtype subtype) {
+ final Integer value = sScriptIdsForSubtypes.get(subtype);
+ if (null == value) {
+ final int scriptId = Builder.readScriptId(resources, subtype);
+ sScriptIdsForSubtypes.put(subtype, scriptId);
+ return scriptId;
+ }
+ return value;
+ }
+
KeyboardLayoutSet(final Context context, final Params params) {
mContext = context;
mParams = params;
@@ -245,7 +260,7 @@ public final class KeyboardLayoutSet {
private static final EditorInfo EMPTY_EDITOR_INFO = new EditorInfo();
- public Builder(final Context context, final EditorInfo ei) {
+ public Builder(final Context context, @Nullable final EditorInfo ei) {
mContext = context;
mPackageName = context.getPackageName();
mResources = context.getResources();
@@ -266,7 +281,7 @@ public final class KeyboardLayoutSet {
return this;
}
- public Builder setSubtype(final RichInputMethodSubtype subtype) {
+ public Builder setSubtype(@Nonnull final RichInputMethodSubtype subtype) {
final boolean asciiCapable = InputMethodSubtypeCompatUtils.isAsciiCapable(subtype);
// TODO: Consolidate with {@link InputAttributes}.
@SuppressWarnings("deprecation")
@@ -304,31 +319,13 @@ public final class KeyboardLayoutSet {
return this;
}
- public Builder setScriptId(final int scriptId) {
- mParams.mScriptId = scriptId;
- return this;
- }
-
public Builder setSplitLayoutEnabledByUser(final boolean enabled) {
mParams.mIsSplitLayoutEnabledByUser = enabled;
return this;
}
- private final static HashMap<InputMethodSubtype, Integer> sScriptIdsForSubtypes =
- new HashMap<>();
- public static int getScriptId(final Resources resources, final InputMethodSubtype subtype) {
- final Integer value = sScriptIdsForSubtypes.get(subtype);
- if (null == value) {
- final int scriptId = readScriptId(resources, subtype);
- sScriptIdsForSubtypes.put(subtype, scriptId);
- return scriptId;
- }
- return value;
- }
-
// Super redux version of reading the script ID for some subtype from Xml.
- private static int readScriptId(final Resources resources,
- final InputMethodSubtype subtype) {
+ static int readScriptId(final Resources resources, final InputMethodSubtype subtype) {
final String layoutSetName = KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX
+ SubtypeLocaleUtils.getKeyboardLayoutSetName(subtype);
final int xmlId = getXmlId(resources, layoutSetName);
@@ -415,7 +412,7 @@ public final class KeyboardLayoutSet {
if (TAG_ELEMENT.equals(tag)) {
parseKeyboardLayoutSetElement(parser);
} else if (TAG_FEATURE.equals(tag)) {
- parseKeyboardLayoutSetFeature(parser);
+ mParams.mScriptId = readScriptIdFromTagFeature(mResources, parser);
} else {
throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD_SET);
}
@@ -460,12 +457,6 @@ public final class KeyboardLayoutSet {
}
}
- private void parseKeyboardLayoutSetFeature(final XmlPullParser parser)
- throws XmlPullParserException, IOException {
- final int scriptId = readScriptIdFromTagFeature(mResources, parser);
- setScriptId(scriptId);
- }
-
private static int getKeyboardMode(final EditorInfo editorInfo) {
final int inputType = editorInfo.inputType;
final int variation = inputType & InputType.TYPE_MASK_VARIATION;