diff options
author | 2010-09-03 00:37:59 -0700 | |
---|---|---|
committer | 2010-09-03 00:37:59 -0700 | |
commit | 5583cb0afcb2104a10689a1c60c051a99e98678b (patch) | |
tree | e3f30f473c32573abc80bd924a9bdc88954d6e72 /java/src | |
parent | 6f8ff3b971b5ac17e0912e5cdae1ddf2e2afa242 (diff) | |
parent | 0529a04b6aece3db34b4e7c895c67ad0858c8bd9 (diff) | |
download | latinime-5583cb0afcb2104a10689a1c60c051a99e98678b.tar.gz latinime-5583cb0afcb2104a10689a1c60c051a99e98678b.tar.xz latinime-5583cb0afcb2104a10689a1c60c051a99e98678b.zip |
Merge "Followup TBR in I87060049" into gingerbread
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/KeyDetector.java | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/KeyDetector.java b/java/src/com/android/inputmethod/latin/KeyDetector.java index e443f272b..76fe1200e 100644 --- a/java/src/com/android/inputmethod/latin/KeyDetector.java +++ b/java/src/com/android/inputmethod/latin/KeyDetector.java @@ -24,11 +24,15 @@ import java.util.List; abstract class KeyDetector { protected Keyboard mKeyboard; + private Key[] mKeys; protected int mCorrectionX; + protected int mCorrectionY; + protected boolean mProximityCorrectOn; + protected int mProximityThresholdSquare; public Key[] setKeyboard(Keyboard keyboard, float correctionX, float correctionY) { @@ -54,7 +58,7 @@ abstract class KeyDetector { protected Key[] getKeys() { if (mKeys == null) throw new IllegalStateException("keyboard isn't set"); - // mKeyboard is guaranteed not null at setKeybaord() method + // mKeyboard is guaranteed not to be null at setKeybaord() method if mKeys is not null return mKeys; } @@ -70,13 +74,40 @@ abstract class KeyDetector { mProximityThresholdSquare = threshold * threshold; } + /** + * Allocates array that can hold all key indices returned by {@link #getKeyIndexAndNearbyCodes} + * method. The maximum size of the array should be computed by {@link #getMaxNearbyKeys}. + * + * @return Allocates and returns an array that can hold all key indices returned by + * {@link #getKeyIndexAndNearbyCodes} method. All elements in the returned array are + * initialized by {@link com.android.inputmethod.latin.LatinKeyboardView.NOT_A_KEY} + * value. + */ public int[] newCodeArray() { int[] codes = new int[getMaxNearbyKeys()]; Arrays.fill(codes, LatinKeyboardBaseView.NOT_A_KEY); return codes; } + /** + * Computes maximum size of the array that can contain all nearby key indices returned by + * {@link #getKeyIndexAndNearbyCodes}. + * + * @return Returns maximum size of the array that can contain all nearby key indices returned + * by {@link #getKeyIndexAndNearbyCodes}. + */ abstract protected int getMaxNearbyKeys(); + /** + * Finds all possible nearby key indices around a touch event point and returns the nearest key + * index. The algorithm to determine the nearby keys depends on the threshold set by + * {@link #setProximityThreshold(int)} and the mode set by + * {@link #setProximityCorrectionEnabled(boolean)}. + * + * @param x The x-coordinate of a touch point + * @param y The y-coordinate of a touch point + * @param allKeys All nearby key indices are returned in this array + * @return The nearest key index + */ abstract public int getKeyIndexAndNearbyCodes(int x, int y, int[] allKeys); -}
\ No newline at end of file +} |