aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-08-06 10:50:19 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-08-06 11:09:50 +0900
commit4e9e6cd1544f59be2ae02536af62fe5301e0cebb (patch)
tree20556cfa9012e9e3124cd830198dcda5b4f7a04b /java
parent0ef87868c2a1f0cb0249cfc0e53c357f04ea9366 (diff)
downloadlatinime-4e9e6cd1544f59be2ae02536af62fe5301e0cebb.tar.gz
latinime-4e9e6cd1544f59be2ae02536af62fe5301e0cebb.tar.xz
latinime-4e9e6cd1544f59be2ae02536af62fe5301e0cebb.zip
Fix IllegalStateException of KeyDetector
A KeyDetector without Keyboard may exist in some rare cases. This change eliminates throwing IllegalStateException and checks explicitly against null. Bug: 6891020 Change-Id: I29ec3e9f10484f30288fac76f0c45b3707bc2259
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyDetector.java5
-rw-r--r--java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java6
2 files changed, 7 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
index a3b7776b3..97d88af4a 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java
@@ -37,8 +37,9 @@ public class KeyDetector {
}
public void setKeyboard(Keyboard keyboard, float correctionX, float correctionY) {
- if (keyboard == null)
+ if (keyboard == null) {
throw new NullPointerException();
+ }
mCorrectionX = (int)correctionX;
mCorrectionY = (int)correctionY;
mKeyboard = keyboard;
@@ -58,8 +59,6 @@ public class KeyDetector {
}
public Keyboard getKeyboard() {
- if (mKeyboard == null)
- throw new IllegalStateException("keyboard isn't set");
return mKeyboard;
}
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java b/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java
index cd4e3001e..a183546dd 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysDetector.java
@@ -39,7 +39,11 @@ public class MoreKeysDetector extends KeyDetector {
Key nearestKey = null;
int nearestDist = (y < 0) ? mSlideAllowanceSquareTop : mSlideAllowanceSquare;
- for (final Key key : getKeyboard().mKeys) {
+ final Keyboard keyboard = getKeyboard();
+ if (keyboard == null) {
+ throw new NullPointerException("Keyboard isn't set");
+ }
+ for (final Key key : keyboard.mKeys) {
final int dist = key.squaredDistanceToEdge(touchX, touchY);
if (dist < nearestDist) {
nearestKey = key;