Loading java/src/com/android/inputmethod/latin/KeyDetector.java +33 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; } Loading @@ -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); } Loading
java/src/com/android/inputmethod/latin/KeyDetector.java +33 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; } Loading @@ -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); }