aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-06-24 10:46:42 +0900
committerTadashi G. Takaoka <takaoka@google.com>2013-06-24 17:39:36 +0900
commitbafe4b8a4eef6c656137e6bb7bce841e98119caf (patch)
tree8b91b6ea81d7d889f744e40e35e7002d63c12e46 /java/src
parent940cca4fa946c1a461d49a50de6a2ffc8355cdd6 (diff)
downloadlatinime-bafe4b8a4eef6c656137e6bb7bce841e98119caf.tar.gz
latinime-bafe4b8a4eef6c656137e6bb7bce841e98119caf.tar.xz
latinime-bafe4b8a4eef6c656137e6bb7bce841e98119caf.zip
Fix possible divided by zeror error
Bug: 9534022 Change-Id: I5ab575c724fd7a9e80c76a93d83949e81b2970bb
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java20
1 files changed, 7 insertions, 13 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
index ae08a5953..a87fc4cd2 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
@@ -279,8 +279,14 @@ public final class MoreKeysKeyboard extends Keyboard {
mParentKey = parentKey;
final int width, height;
+ // {@link KeyPreviewDrawParams#mPreviewVisibleWidth} should have been set at
+ // {@link MainKeyboardView#showKeyPreview(PointerTracker}, though there may be
+ // some chances that the value is zero. <code>width == 0</code> will cause
+ // zero-division error at
+ // {@link MoreKeysKeyboardParams#setParameters(int,int,int,int,int,int,boolean,int)}.
final boolean singleMoreKeyWithPreview = parentKeyboardView.isKeyPreviewPopupEnabled()
- && !parentKey.noKeyPreview() && parentKey.mMoreKeys.length == 1;
+ && !parentKey.noKeyPreview() && parentKey.mMoreKeys.length == 1
+ && keyPreviewDrawParams.mPreviewVisibleWidth > 0;
if (singleMoreKeyWithPreview) {
// Use pre-computed width and height if this more keys keyboard has only one key to
// mitigate visual flicker between key preview and more keys keyboard.
@@ -291,22 +297,10 @@ public final class MoreKeysKeyboard extends Keyboard {
// adjusted with their bottom paddings deducted.
width = keyPreviewDrawParams.mPreviewVisibleWidth;
height = keyPreviewDrawParams.mPreviewVisibleHeight + mParams.mVerticalGap;
- // TODO: Remove this check.
- if (width == 0) {
- throw new IllegalArgumentException(
- "Zero width key detected: " + parentKey + " in " + parentKeyboard.mId);
- }
} else {
width = getMaxKeyWidth(parentKeyboardView, parentKey, mParams.mDefaultKeyWidth,
context.getResources());
height = parentKeyboard.mMostCommonKeyHeight;
- // TODO: Remove this check.
- if (width == 0) {
- throw new IllegalArgumentException(
- "Zero width calculated: " + parentKey
- + " moreKeys=" + java.util.Arrays.toString(parentKey.mMoreKeys)
- + " in " + parentKeyboard.mId);
- }
}
final int dividerWidth;
if (parentKey.needsDividersInMoreKeys()) {