Merge "Followup TBR in I87060049" into gingerbread
This commit is contained in:
commit
5583cb0afc
1 changed files with 33 additions and 2 deletions
|
@ -24,11 +24,15 @@ import java.util.List;
|
||||||
|
|
||||||
abstract class KeyDetector {
|
abstract class KeyDetector {
|
||||||
protected Keyboard mKeyboard;
|
protected Keyboard mKeyboard;
|
||||||
|
|
||||||
private Key[] mKeys;
|
private Key[] mKeys;
|
||||||
|
|
||||||
protected int mCorrectionX;
|
protected int mCorrectionX;
|
||||||
|
|
||||||
protected int mCorrectionY;
|
protected int mCorrectionY;
|
||||||
|
|
||||||
protected boolean mProximityCorrectOn;
|
protected boolean mProximityCorrectOn;
|
||||||
|
|
||||||
protected int mProximityThresholdSquare;
|
protected int mProximityThresholdSquare;
|
||||||
|
|
||||||
public Key[] setKeyboard(Keyboard keyboard, float correctionX, float correctionY) {
|
public Key[] setKeyboard(Keyboard keyboard, float correctionX, float correctionY) {
|
||||||
|
@ -54,7 +58,7 @@ abstract class KeyDetector {
|
||||||
protected Key[] getKeys() {
|
protected Key[] getKeys() {
|
||||||
if (mKeys == null)
|
if (mKeys == null)
|
||||||
throw new IllegalStateException("keyboard isn't set");
|
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;
|
return mKeys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,13 +74,40 @@ abstract class KeyDetector {
|
||||||
mProximityThresholdSquare = threshold * threshold;
|
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() {
|
public int[] newCodeArray() {
|
||||||
int[] codes = new int[getMaxNearbyKeys()];
|
int[] codes = new int[getMaxNearbyKeys()];
|
||||||
Arrays.fill(codes, LatinKeyboardBaseView.NOT_A_KEY);
|
Arrays.fill(codes, LatinKeyboardBaseView.NOT_A_KEY);
|
||||||
return codes;
|
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();
|
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);
|
abstract public int getKeyIndexAndNearbyCodes(int x, int y, int[] allKeys);
|
||||||
}
|
}
|
Loading…
Reference in a new issue