am 5583cb0a
: Merge "Followup TBR in I87060049" into gingerbread
Merge commit '5583cb0afcb2104a10689a1c60c051a99e98678b' into gingerbread-plus-aosp * commit '5583cb0afcb2104a10689a1c60c051a99e98678b': Followup TBR in I87060049
This commit is contained in:
commit
1274cd160f
1 changed files with 33 additions and 2 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue