diff options
author | 2012-10-03 13:01:52 +0900 | |
---|---|---|
committer | 2012-10-03 14:33:52 +0900 | |
commit | d445b56ce14152b30143302899790af255691148 (patch) | |
tree | 4ffba8ea02830105f386734a431e7f0565c51587 /java/src/com/android/inputmethod/latin/WordComposer.java | |
parent | 15281adbc1580262888aba6fc73bbbe7fa9e0de8 (diff) | |
download | latinime-d445b56ce14152b30143302899790af255691148.tar.gz latinime-d445b56ce14152b30143302899790af255691148.tar.xz latinime-d445b56ce14152b30143302899790af255691148.zip |
Fix possible NPE caused while monkey test
Bug: 7269036
Change-Id: I9054b33ad3c8996cac3ee5f0e9c01ba8ceea4971
Diffstat (limited to 'java/src/com/android/inputmethod/latin/WordComposer.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/WordComposer.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java index 8a1bbed12..da0071adc 100644 --- a/java/src/com/android/inputmethod/latin/WordComposer.java +++ b/java/src/com/android/inputmethod/latin/WordComposer.java @@ -177,14 +177,16 @@ public final class WordComposer { * Internal method to retrieve reasonable proximity info for a character. */ private void addKeyInfo(final int codePoint, final Keyboard keyboard) { - final Key key = keyboard.getKey(codePoint); - if (key != null) { - final int x = key.mX + key.mWidth / 2; - final int y = key.mY + key.mHeight / 2; - add(codePoint, x, y); - return; + final int x, y; + final Key key; + if (keyboard != null && (key = keyboard.getKey(codePoint)) != null) { + x = key.mX + key.mWidth / 2; + y = key.mY + key.mHeight / 2; + } else { + x = Constants.NOT_A_COORDINATE; + y = Constants.NOT_A_COORDINATE; } - add(codePoint, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE); + add(codePoint, x, y); } /** @@ -195,7 +197,7 @@ public final class WordComposer { reset(); final int length = word.length(); for (int i = 0; i < length; i = Character.offsetByCodePoints(word, i, 1)) { - int codePoint = Character.codePointAt(word, i); + final int codePoint = Character.codePointAt(word, i); addKeyInfo(codePoint, keyboard); } mIsResumed = true; |