Fix possible NPE and IndexOutOfBoundsException.

Bug: 2868304
Change-Id: I2c474736fb9bb95da9e04bdeb9b9b641e7c3adda
main
Tadashi G. Takaoka 2010-07-29 13:58:52 -07:00
parent bc305c21bf
commit 35f6cd905d
1 changed files with 8 additions and 7 deletions

View File

@ -320,7 +320,8 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
};
static class KeyDebouncer {
private Key[] mKeys;
private final Key[] mKeys;
private final int mKeyDebounceThresholdSquared;
// for move de-bouncing
private int mLastCodeX;
@ -334,9 +335,9 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
private long mLastMoveTime;
private long mCurrentKeyTime;
private final int mKeyDebounceThresholdSquared;
KeyDebouncer(Key[] keys, float hysteresisPixel) {
if (keys == null || hysteresisPixel < 1.0f)
throw new IllegalArgumentException();
mKeys = keys;
mKeyDebounceThresholdSquared = (int)(hysteresisPixel * hysteresisPixel);
}
@ -379,11 +380,11 @@ public class LatinKeyboardBaseView extends View implements View.OnClickListener
public boolean isMinorMoveBounce(int x, int y, int newKey, int curKey) {
if (newKey == curKey) {
return true;
} else if (curKey == NOT_A_KEY) {
return false;
} else {
} else if (curKey >= 0 && curKey < mKeys.length) {
return getSquareDistanceToKeyEdge(x, y, mKeys[curKey])
< mKeyDebounceThresholdSquared;
< mKeyDebounceThresholdSquared;
} else {
return false;
}
}