summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-03-28 17:33:25 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-03-29 16:11:54 +0900
commit8dcad2ed4776b849ddacb623a94b4301afcf055a (patch)
treee126b25e31a5e888c0415f99b244497d9125c714 /java/src/com/android/inputmethod/keyboard/KeyboardSet.java
parenta501caa9a51267adefd12bc4020392cfd11bd229 (diff)
Don't send touch coordinates if proximity characters correction is disabled
Bug: 6225317 Change-Id: I4fa65e020d838f53066d4a071f58fb6f40583e0b
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/KeyboardSet.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSet.java37
1 files changed, 24 insertions, 13 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
index bb11a9b77..1bf2fc04e 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
@@ -28,6 +28,7 @@ import android.view.inputmethod.EditorInfo;
import com.android.inputmethod.compat.EditorInfoCompatUtils;
import com.android.inputmethod.compat.InputTypeCompatUtils;
+import com.android.inputmethod.keyboard.KeyboardSet.Params.ElementParams;
import com.android.inputmethod.latin.LatinIME;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.LocaleUtils;
@@ -53,7 +54,7 @@ public class KeyboardSet {
private static final String TAG = KeyboardSet.class.getSimpleName();
private static final boolean DEBUG_CACHE = LatinImeLogger.sDBG;
- private static final String TAG_KEYBOARD_SET = TAG;
+ private static final String TAG_KEYBOARD_SET = "KeyboardSet";
private static final String TAG_ELEMENT = "Element";
private final Context mContext;
@@ -104,10 +105,14 @@ public class KeyboardSet {
Locale mLocale;
int mOrientation;
int mWidth;
- // KeyboardSet element id to keyboard layout XML id map.
- final HashMap<Integer, Integer> mKeyboardSetElementIdToXmlIdMap =
- new HashMap<Integer, Integer>();
- Params() {}
+ // KeyboardSet element id to element's parameters map.
+ final HashMap<Integer, ElementParams> mKeyboardSetElementIdToParamsMap =
+ new HashMap<Integer, ElementParams>();
+
+ static class ElementParams {
+ int mKeyboardXmlId;
+ boolean mProximityCharsCorrectionEnabled;
+ }
}
public static void clearKeyboardCache() {
@@ -141,20 +146,21 @@ public class KeyboardSet {
break;
}
- Integer keyboardXmlId = mParams.mKeyboardSetElementIdToXmlIdMap.get(keyboardSetElementId);
- if (keyboardXmlId == null) {
- keyboardXmlId = mParams.mKeyboardSetElementIdToXmlIdMap.get(
+ ElementParams elementParams = mParams.mKeyboardSetElementIdToParamsMap.get(
+ keyboardSetElementId);
+ if (elementParams == null) {
+ elementParams = mParams.mKeyboardSetElementIdToParamsMap.get(
KeyboardId.ELEMENT_ALPHABET);
}
final KeyboardId id = getKeyboardId(keyboardSetElementId);
try {
- return getKeyboard(mContext, keyboardXmlId, id);
+ return getKeyboard(mContext, elementParams, id);
} catch (RuntimeException e) {
throw new KeyboardSetException(e, id);
}
}
- private Keyboard getKeyboard(Context context, int keyboardXmlId, KeyboardId id) {
+ private Keyboard getKeyboard(Context context, ElementParams elementParams, KeyboardId id) {
final Resources res = context.getResources();
final SoftReference<Keyboard> ref = sKeyboardCache.get(id);
Keyboard keyboard = (ref == null) ? null : ref.get();
@@ -166,8 +172,10 @@ public class KeyboardSet {
if (id.isAlphabetKeyboard()) {
builder.setAutoGenerate(sKeysCache);
}
- builder.load(keyboardXmlId, id);
+ builder.load(elementParams.mKeyboardXmlId, id);
builder.setTouchPositionCorrectionEnabled(mParams.mTouchPositionCorrectionEnabled);
+ builder.setProximityCharsCorrectionEnabled(
+ elementParams.mProximityCharsCorrectionEnabled);
keyboard = builder.build();
} finally {
LocaleUtils.setSystemLocale(res, savedLocale);
@@ -331,11 +339,14 @@ public class KeyboardSet {
TAG_ELEMENT, parser);
XmlParseUtils.checkEndTag(TAG_ELEMENT, parser);
+ final ElementParams elementParams = new ElementParams();
final int elementName = a.getInt(
R.styleable.KeyboardSet_Element_elementName, 0);
- final int elementKeyboard = a.getResourceId(
+ elementParams.mKeyboardXmlId = a.getResourceId(
R.styleable.KeyboardSet_Element_elementKeyboard, 0);
- mParams.mKeyboardSetElementIdToXmlIdMap.put(elementName, elementKeyboard);
+ elementParams.mProximityCharsCorrectionEnabled = a.getBoolean(
+ R.styleable.KeyboardSet_Element_enableProximityCharsCorrection, false);
+ mParams.mKeyboardSetElementIdToParamsMap.put(elementName, elementParams);
} finally {
a.recycle();
}