aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
index 1e67eec70..0507554a3 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
@@ -43,6 +43,7 @@ public class MiniKeyboardBuilder {
public final int mNumColumns;
public final int mLeftKeys;
public final int mRightKeys; // includes default key.
+ public final int mTopPadding;
/**
* The object holding mini keyboard layout parameters.
@@ -53,14 +54,17 @@ public class MiniKeyboardBuilder {
* @param rowHeight mini keyboard row height in pixel, including vertical gap.
* @param coordXInParent coordinate x of the popup key in parent keyboard.
* @param parentKeyboardWidth parent keyboard width in pixel.
+ * @param topPadding top padding of mini keyboard, maybe equals to vertical gap of the
+ * parent keyboard.
*/
public MiniKeyboardLayoutParams(int numKeys, int maxColumns, int keyWidth, int rowHeight,
- int coordXInParent, int parentKeyboardWidth) {
+ int coordXInParent, int parentKeyboardWidth, int topPadding) {
if (parentKeyboardWidth / keyWidth < maxColumns)
throw new IllegalArgumentException("Keyboard is too small to hold mini keyboard: "
+ parentKeyboardWidth + " " + keyWidth + " " + maxColumns);
mKeyWidth = keyWidth;
mRowHeight = rowHeight;
+ mTopPadding = topPadding;
final int numRows = (numKeys + maxColumns - 1) / maxColumns;
mNumRows = numRows;
@@ -170,7 +174,7 @@ public class MiniKeyboardBuilder {
}
public int getY(int row) {
- return (mNumRows - 1 - row) * mRowHeight;
+ return (mNumRows - 1 - row) * mRowHeight + mTopPadding;
}
public int getRowFlags(int row) {
@@ -183,6 +187,14 @@ public class MiniKeyboardBuilder {
private boolean isTopRow(int rowCount) {
return rowCount == mNumRows - 1;
}
+
+ public int getKeyboardHeight() {
+ return mNumRows * mRowHeight + mTopPadding;
+ }
+
+ public int getKeyboardWidth() {
+ return mNumColumns * mKeyWidth;
+ }
}
public MiniKeyboardBuilder(KeyboardView view, int layoutTemplateResId, Key parentKey,
@@ -199,12 +211,12 @@ public class MiniKeyboardBuilder {
mPopupCharacters.length, parentKey.mMaxPopupColumn,
keyWidth, parentKeyboard.getRowHeight(),
parentKey.mX + (parentKey.mWidth + parentKey.mGap) / 2 - keyWidth / 2,
- view.getMeasuredWidth());
+ view.getMeasuredWidth(), keyboard.getVerticalGap());
mParams = params;
keyboard.setRowHeight(params.mRowHeight);
- keyboard.setHeight(params.mNumRows * params.mRowHeight);
- keyboard.setMinWidth(params.mNumColumns * params.mKeyWidth);
+ keyboard.setHeight(params.getKeyboardHeight());
+ keyboard.setMinWidth(params.getKeyboardWidth());
keyboard.setDefaultCoordX(params.getDefaultKeyCoordX() + params.mKeyWidth / 2);
}