From 0529a04b6aece3db34b4e7c895c67ad0858c8bd9 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Fri, 3 Sep 2010 14:46:14 +0900 Subject: [PATCH] Followup TBR in I87060049 This change is followup TBR in I87060049cad6f9d6432b6c4a246c15587ae0d837 Change-Id: I02ee33da269162f5e95ce5b985dbf5094ba14c0d --- .../inputmethod/latin/KeyDetector.java | 35 +++++++++++++++++-- 1 file 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 +}