summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/Keyboard.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/Keyboard.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/Keyboard.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index bc48b85ef..67e4e4a96 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -130,6 +130,7 @@ public class Keyboard {
private final HashMap<Integer, Key> mKeyCache = new HashMap<Integer, Key>();
private final ProximityInfo mProximityInfo;
+ private final boolean mProximityCharsCorrectionEnabled;
public Keyboard(Params params) {
mId = params.mId;
@@ -153,6 +154,19 @@ public class Keyboard {
mProximityInfo = new ProximityInfo(params.mId.mLocale.toString(),
params.GRID_WIDTH, params.GRID_HEIGHT, mOccupiedWidth, mOccupiedHeight,
mMostCommonKeyWidth, mMostCommonKeyHeight, mKeys, params.mTouchPositionCorrection);
+ mProximityCharsCorrectionEnabled = params.mProximityCharsCorrectionEnabled;
+ }
+
+ public boolean hasProximityCharsCorrection(int code) {
+ if (!mProximityCharsCorrectionEnabled) {
+ return false;
+ }
+ // Note: The native code has the main keyboard layout only at this moment.
+ // TODO: Figure out how to handle proximity characters information of all layouts.
+ final boolean canAssumeNativeHasProximityCharsInfoOfAllKeys = (
+ mId.mElementId == KeyboardId.ELEMENT_ALPHABET
+ || mId.mElementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED);
+ return canAssumeNativeHasProximityCharsInfoOfAllKeys || Character.isLetter(code);
}
public ProximityInfo getProximityInfo() {
@@ -230,6 +244,8 @@ public class Keyboard {
public int mMostCommonKeyHeight = 0;
public int mMostCommonKeyWidth = 0;
+ public boolean mProximityCharsCorrectionEnabled;
+
public final TouchPositionCorrection mTouchPositionCorrection =
new TouchPositionCorrection();
@@ -647,6 +663,10 @@ public class Keyboard {
mParams.mTouchPositionCorrection.setEnabled(enabled);
}
+ public void setProximityCharsCorrectionEnabled(boolean enabled) {
+ mParams.mProximityCharsCorrectionEnabled = enabled;
+ }
+
public Keyboard build() {
return new Keyboard(mParams);
}
@@ -753,9 +773,9 @@ public class Keyboard {
params.mMaxMoreKeysKeyboardColumn = keyAttr.getInt(
R.styleable.Keyboard_Key_maxMoreKeysColumn, 5);
+ params.mThemeId = keyboardAttr.getInt(R.styleable.Keyboard_themeId, 0);
params.mIconsSet.loadIcons(keyboardAttr);
- params.mThemeId = keyboardAttr.getInt(R.styleable.Keyboard_themeId, 0);
final int resourceId = keyboardAttr.getResourceId(
R.styleable.Keyboard_touchPositionCorrectionData, 0);
params.mTouchPositionCorrection.setEnabled(resourceId != 0);