am dc711101
: Merge "Fix IllegalArgumentException in MoreKeysKeyboard"
* commit 'dc7111013f84ca5f82998a875054c28fec829358': Fix IllegalArgumentException in MoreKeysKeyboard
This commit is contained in:
commit
b62a5ed1e1
3 changed files with 13 additions and 16 deletions
|
@ -17,7 +17,6 @@
|
||||||
package com.android.inputmethod.keyboard;
|
package com.android.inputmethod.keyboard;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
|
||||||
|
@ -76,10 +75,8 @@ public final class MoreKeysKeyboard extends Keyboard {
|
||||||
final boolean isFixedColumnOrder, final int dividerWidth) {
|
final boolean isFixedColumnOrder, final int dividerWidth) {
|
||||||
mIsFixedOrder = isFixedColumnOrder;
|
mIsFixedOrder = isFixedColumnOrder;
|
||||||
if (parentKeyboardWidth / keyWidth < Math.min(numKeys, maxColumns)) {
|
if (parentKeyboardWidth / keyWidth < Math.min(numKeys, maxColumns)) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException("Keyboard is too small to hold more keys: "
|
||||||
"Keyboard is too small to hold more keys keyboard: "
|
+ parentKeyboardWidth + " " + keyWidth + " " + numKeys + " " + maxColumns);
|
||||||
+ parentKeyboardWidth + " " + keyWidth + " "
|
|
||||||
+ numKeys + " " + maxColumns);
|
|
||||||
}
|
}
|
||||||
mDefaultKeyWidth = keyWidth;
|
mDefaultKeyWidth = keyWidth;
|
||||||
mDefaultRowHeight = rowHeight;
|
mDefaultRowHeight = rowHeight;
|
||||||
|
@ -299,8 +296,12 @@ public final class MoreKeysKeyboard extends Keyboard {
|
||||||
width = keyPreviewDrawParams.mPreviewVisibleWidth;
|
width = keyPreviewDrawParams.mPreviewVisibleWidth;
|
||||||
height = keyPreviewDrawParams.mPreviewVisibleHeight + mParams.mVerticalGap;
|
height = keyPreviewDrawParams.mPreviewVisibleHeight + mParams.mVerticalGap;
|
||||||
} else {
|
} else {
|
||||||
width = getMaxKeyWidth(parentKeyboardView, parentKey, mParams.mDefaultKeyWidth,
|
final float padding = context.getResources().getDimension(
|
||||||
context.getResources());
|
R.dimen.more_keys_keyboard_key_horizontal_padding)
|
||||||
|
+ (parentKey.hasLabelsInMoreKeys()
|
||||||
|
? mParams.mDefaultKeyWidth * LABEL_PADDING_RATIO : 0.0f);
|
||||||
|
width = getMaxKeyWidth(parentKey, mParams.mDefaultKeyWidth, padding,
|
||||||
|
parentKeyboardView.newLabelPaint(parentKey));
|
||||||
height = parentKeyboard.mMostCommonKeyHeight;
|
height = parentKeyboard.mMostCommonKeyHeight;
|
||||||
}
|
}
|
||||||
final int dividerWidth;
|
final int dividerWidth;
|
||||||
|
@ -313,16 +314,12 @@ public final class MoreKeysKeyboard extends Keyboard {
|
||||||
}
|
}
|
||||||
mParams.setParameters(parentKey.mMoreKeys.length, parentKey.getMoreKeysColumn(),
|
mParams.setParameters(parentKey.mMoreKeys.length, parentKey.getMoreKeysColumn(),
|
||||||
width, height, parentKey.mX + parentKey.mWidth / 2,
|
width, height, parentKey.mX + parentKey.mWidth / 2,
|
||||||
parentKeyboardView.getMeasuredWidth(), parentKey.isFixedColumnOrderMoreKeys(),
|
parentKeyboard.mId.mWidth, parentKey.isFixedColumnOrderMoreKeys(),
|
||||||
dividerWidth);
|
dividerWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getMaxKeyWidth(final KeyboardView view, final Key parentKey,
|
private static int getMaxKeyWidth(final Key parentKey, final int minKeyWidth,
|
||||||
final int minKeyWidth, final Resources res) {
|
final float padding, final Paint paint) {
|
||||||
final float padding =
|
|
||||||
res.getDimension(R.dimen.more_keys_keyboard_key_horizontal_padding)
|
|
||||||
+ (parentKey.hasLabelsInMoreKeys() ? minKeyWidth * LABEL_PADDING_RATIO : 0.0f);
|
|
||||||
final Paint paint = view.newLabelPaint(parentKey);
|
|
||||||
int maxWidth = minKeyWidth;
|
int maxWidth = minKeyWidth;
|
||||||
for (final MoreKeySpec spec : parentKey.mMoreKeys) {
|
for (final MoreKeySpec spec : parentKey.mMoreKeys) {
|
||||||
final String label = spec.mLabel;
|
final String label = spec.mLabel;
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class MoreKeysKeyboardBuilderFixedOrderTests extends AndroidTestCase {
|
||||||
final int coordXInParent) {
|
final int coordXInParent) {
|
||||||
final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
|
final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
|
||||||
params.setParameters(numKeys, columnNum, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH,
|
params.setParameters(numKeys, columnNum, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH,
|
||||||
/* isFixedOrderColumn */true, /* dividerWidth */0);
|
true /* isFixedOrderColumn */, 0 /* dividerWidth */);
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class MoreKeysKeyboardBuilderTests extends AndroidTestCase {
|
||||||
final int coordXInParent) {
|
final int coordXInParent) {
|
||||||
final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
|
final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
|
||||||
params.setParameters(numKeys, maxColumns, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH,
|
params.setParameters(numKeys, maxColumns, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH,
|
||||||
/* isFixedOrderColumn */false, /* dividerWidth */0);
|
false /* isFixedOrderColumn */, 0 /* dividerWidth */);
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue