aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-01-30 04:08:16 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-01-30 04:08:16 +0000
commit48409b9ac60fb64eb80d1d8da3452f9ab40f5002 (patch)
treeaa64e9efcb075706d2a1d60cb2624948f170cc99 /java/src
parentcffb3126acc5c4cb1fc1742ecd0cdf9d6a18f8a3 (diff)
parent5ee2d79e41872610946b5a5c1caf14f3e5696c26 (diff)
downloadlatinime-48409b9ac60fb64eb80d1d8da3452f9ab40f5002.tar.gz
latinime-48409b9ac60fb64eb80d1d8da3452f9ab40f5002.tar.xz
latinime-48409b9ac60fb64eb80d1d8da3452f9ab40f5002.zip
Merge "Remove "dimension|fraction" format from Key and Keyboard attributes"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java16
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java10
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java49
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java18
4 files changed, 48 insertions, 45 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 9b971755e..e137b922a 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -41,7 +41,6 @@ import com.android.inputmethod.keyboard.internal.KeyboardRow;
import com.android.inputmethod.keyboard.internal.MoreKeySpec;
import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.ResourceUtils;
import com.android.inputmethod.latin.StringUtils;
import org.xmlpull.v1.XmlPullParser;
@@ -225,8 +224,8 @@ public class Key implements Comparable<Key> {
public Key(final Resources res, final KeyboardParams params, final KeyboardRow row,
final XmlPullParser parser) throws XmlPullParserException {
final float horizontalGap = isSpacer() ? 0 : params.mHorizontalGap;
- final int keyHeight = row.mRowHeight;
- mHeight = keyHeight - params.mVerticalGap;
+ final int rowHeight = row.mRowHeight;
+ mHeight = rowHeight - params.mVerticalGap;
final TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard_Key);
@@ -241,17 +240,18 @@ public class Key implements Comparable<Key> {
mY = keyYPos;
mWidth = Math.round(keyWidth - horizontalGap);
mHitBox.set(Math.round(keyXPos), keyYPos, Math.round(keyXPos + keyWidth) + 1,
- keyYPos + keyHeight);
+ keyYPos + rowHeight);
// Update row to have current x coordinate.
row.setXPos(keyXPos + keyWidth);
mBackgroundType = style.getInt(keyAttr,
R.styleable.Keyboard_Key_backgroundType, row.getDefaultBackgroundType());
- final int visualInsetsLeft = Math.round(ResourceUtils.getDimensionOrFraction(keyAttr,
- R.styleable.Keyboard_Key_visualInsetsLeft, params.mBaseWidth, 0));
- final int visualInsetsRight = Math.round(ResourceUtils.getDimensionOrFraction(keyAttr,
- R.styleable.Keyboard_Key_visualInsetsRight, params.mBaseWidth, 0));
+ final int baseWidth = params.mBaseWidth;
+ final int visualInsetsLeft = Math.round(keyAttr.getFraction(
+ R.styleable.Keyboard_Key_visualInsetsLeft, baseWidth, baseWidth, 0));
+ final int visualInsetsRight = Math.round(keyAttr.getFraction(
+ R.styleable.Keyboard_Key_visualInsetsRight, baseWidth, baseWidth, 0));
mIconId = KeySpecParser.getIconId(style.getString(keyAttr,
R.styleable.Keyboard_Key_keyIcon));
final int disabledIconId = KeySpecParser.getIconId(style.getString(keyAttr,
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index c2036fc43..e87ecbc7e 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -30,11 +30,11 @@ import com.android.inputmethod.latin.Constants;
* <p>The layout file for a keyboard contains XML that looks like the following snippet:</p>
* <pre>
* &lt;Keyboard
- * latin:keyWidth="%10p"
- * latin:keyHeight="50px"
- * latin:horizontalGap="2px"
- * latin:verticalGap="2px" &gt;
- * &lt;Row latin:keyWidth="32px" &gt;
+ * latin:keyWidth="10%p"
+ * latin:rowHeight="50px"
+ * latin:horizontalGap="2%p"
+ * latin:verticalGap="2%p" &gt;
+ * &lt;Row latin:keyWidth="10%p" &gt;
* &lt;Key latin:keyLabel="A" /&gt;
* ...
* &lt;/Row&gt;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index 802d926ce..20edf6598 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -235,31 +235,36 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
R.styleable.Keyboard_Key);
try {
final KeyboardParams params = mParams;
- params.mOccupiedHeight = params.mId.mHeight;
- params.mOccupiedWidth = params.mId.mWidth;
- params.mTopPadding = (int)ResourceUtils.getDimensionOrFraction(keyboardAttr,
- R.styleable.Keyboard_keyboardTopPadding, params.mOccupiedHeight, 0);
- params.mBottomPadding = (int)ResourceUtils.getDimensionOrFraction(keyboardAttr,
- R.styleable.Keyboard_keyboardBottomPadding, params.mOccupiedHeight, 0);
- params.mHorizontalEdgesPadding = (int)ResourceUtils.getDimensionOrFraction(
- keyboardAttr,
- R.styleable.Keyboard_keyboardHorizontalEdgesPadding,
- mParams.mOccupiedWidth, 0);
-
- params.mBaseWidth = params.mOccupiedWidth - params.mHorizontalEdgesPadding * 2
+ final int height = params.mId.mHeight;
+ final int width = params.mId.mWidth;
+ params.mOccupiedHeight = height;
+ params.mOccupiedWidth = width;
+ params.mTopPadding = (int)keyboardAttr.getFraction(
+ R.styleable.Keyboard_keyboardTopPadding, height, height, 0);
+ params.mBottomPadding = (int)keyboardAttr.getFraction(
+ R.styleable.Keyboard_keyboardBottomPadding, height, height, 0);
+ // TODO: Split keyboardHorizontalEdgesPadding into two, keyboardLeftPaddings and
+ // keyboardRightPaddings.
+ params.mHorizontalEdgesPadding = (int)keyboardAttr.getFraction(
+ R.styleable.Keyboard_keyboardHorizontalEdgesPadding, width, width, 0);
+
+ final int baseWidth = params.mOccupiedWidth - params.mHorizontalEdgesPadding * 2
- params.mHorizontalCenterPadding;
- params.mDefaultKeyWidth = (int)ResourceUtils.getDimensionOrFraction(keyAttr,
- R.styleable.Keyboard_Key_keyWidth, params.mBaseWidth,
- params.mBaseWidth / DEFAULT_KEYBOARD_COLUMNS);
- params.mHorizontalGap = (int)ResourceUtils.getDimensionOrFraction(keyboardAttr,
- R.styleable.Keyboard_horizontalGap, params.mBaseWidth, 0);
- params.mVerticalGap = (int)ResourceUtils.getDimensionOrFraction(keyboardAttr,
- R.styleable.Keyboard_verticalGap, params.mOccupiedHeight, 0);
- params.mBaseHeight = params.mOccupiedHeight - params.mTopPadding
+ params.mBaseWidth = baseWidth;
+ params.mDefaultKeyWidth = (int)keyAttr.getFraction(R.styleable.Keyboard_Key_keyWidth,
+ baseWidth, baseWidth, baseWidth / DEFAULT_KEYBOARD_COLUMNS);
+ params.mHorizontalGap = (int)keyboardAttr.getFraction(
+ R.styleable.Keyboard_horizontalGap, baseWidth, baseWidth, 0);
+ // TODO: Fix keyboard geometry calculation clearer. Historically vertical gap between
+ // rows are determined based on the entire keyboard height including top and bottom
+ // paddings.
+ params.mVerticalGap = (int)keyboardAttr.getFraction(
+ R.styleable.Keyboard_verticalGap, height, height, 0);
+ final int baseHeight = params.mOccupiedHeight - params.mTopPadding
- params.mBottomPadding + params.mVerticalGap;
+ params.mBaseHeight = baseHeight;
params.mDefaultRowHeight = (int)ResourceUtils.getDimensionOrFraction(keyboardAttr,
- R.styleable.Keyboard_rowHeight, params.mBaseHeight,
- params.mBaseHeight / DEFAULT_KEYBOARD_ROWS);
+ R.styleable.Keyboard_rowHeight, baseHeight, baseHeight / DEFAULT_KEYBOARD_ROWS);
params.mKeyVisualAttributes = KeyVisualAttributes.newInstance(keyAttr);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java
index 22780205d..e2256faba 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java
@@ -54,17 +54,16 @@ public final class KeyboardRow {
public KeyboardRow(final Resources res, final KeyboardParams params, final XmlPullParser parser,
final int y) {
mParams = params;
- TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
+ final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard);
mRowHeight = (int)ResourceUtils.getDimensionOrFraction(keyboardAttr,
R.styleable.Keyboard_rowHeight,
params.mBaseHeight, params.mDefaultRowHeight);
keyboardAttr.recycle();
- TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
+ final TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard_Key);
- mDefaultKeyWidth = ResourceUtils.getDimensionOrFraction(keyAttr,
- R.styleable.Keyboard_Key_keyWidth,
- params.mBaseWidth, params.mDefaultKeyWidth);
+ mDefaultKeyWidth = keyAttr.getFraction(R.styleable.Keyboard_Key_keyWidth,
+ params.mBaseWidth, params.mBaseWidth, params.mDefaultKeyWidth);
mDefaultBackgroundType = keyAttr.getInt(R.styleable.Keyboard_Key_backgroundType,
Key.BACKGROUND_TYPE_NORMAL);
keyAttr.recycle();
@@ -115,8 +114,8 @@ public final class KeyboardRow {
final int keyboardRightEdge = mParams.mOccupiedWidth
- mParams.mHorizontalEdgesPadding;
if (keyAttr.hasValue(R.styleable.Keyboard_Key_keyXPos)) {
- final float keyXPos = ResourceUtils.getDimensionOrFraction(keyAttr,
- R.styleable.Keyboard_Key_keyXPos, mParams.mBaseWidth, 0);
+ final float keyXPos = keyAttr.getFraction(R.styleable.Keyboard_Key_keyXPos,
+ mParams.mBaseWidth, mParams.mBaseWidth, 0);
if (keyXPos < 0) {
// If keyXPos is negative, the actual x-coordinate will be
// keyboardWidth + keyXPos.
@@ -146,9 +145,8 @@ public final class KeyboardRow {
// out the area up to the right edge of the keyboard.
return keyboardRightEdge - keyXPos;
default: // KEYWIDTH_NOT_ENUM
- return ResourceUtils.getDimensionOrFraction(keyAttr,
- R.styleable.Keyboard_Key_keyWidth,
- mParams.mBaseWidth, mDefaultKeyWidth);
+ return keyAttr.getFraction(R.styleable.Keyboard_Key_keyWidth,
+ mParams.mBaseWidth, mParams.mBaseWidth, mDefaultKeyWidth);
}
}
}