aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/values/attrs.xml39
-rw-r--r--java/res/values/dimens.xml3
-rw-r--r--java/res/values/styles.xml27
-rw-r--r--java/res/xml-land/kbd_number.xml3
-rw-r--r--java/res/xml-land/kbd_phone.xml3
-rw-r--r--java/res/xml-land/kbd_phone_symbols.xml3
-rw-r--r--java/res/xml-sw600dp-land/kbd_number.xml3
-rw-r--r--java/res/xml-sw600dp-land/kbd_phone.xml3
-rw-r--r--java/res/xml-sw600dp-land/kbd_phone_symbols.xml3
-rw-r--r--java/res/xml-sw768dp-land/kbd_number.xml3
-rw-r--r--java/res/xml-sw768dp-land/kbd_phone.xml3
-rw-r--r--java/res/xml-sw768dp-land/kbd_phone_symbols.xml3
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java20
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java10
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java55
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java26
17 files changed, 112 insertions, 99 deletions
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 5b3898709..3a7b39e3a 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -173,18 +173,18 @@
<attr name="themeId" format="integer" />
<!-- Touch position correction -->
<attr name="touchPositionCorrectionData" format="reference" />
- <!-- Keyboard top, bottom, both horizontal edges paddings. -->
- <attr name="keyboardTopPadding" format="dimension|fraction" />
- <attr name="keyboardBottomPadding" format="dimension|fraction" />
- <attr name="keyboardHorizontalEdgesPadding" format="dimension|fraction" />
- <!-- Default height of a row (key height + vertical gap), in pixels or percentage of
+ <!-- Keyboard top, bottom, left, right edges paddings, in propotion of keyboard height. -->
+ <attr name="keyboardTopPadding" format="fraction" />
+ <attr name="keyboardBottomPadding" format="fraction" />
+ <attr name="keyboardLeftPadding" format="fraction" />
+ <attr name="keyboardRightPadding" format="fraction" />
+ <!-- Default height of a row (key height + vertical gap), in pixels or in the proportion of
keyboard height. -->
<attr name="rowHeight" format="dimension|fraction" />
- <!-- Default horizontal gap between keys, in pixels or percentage of keyboard width. -->
- <attr name="horizontalGap" format="dimension|fraction" />
- <!-- Default vertical gap between rows of keys, in pixels or percentage of keyboard
- height. -->
- <attr name="verticalGap" format="dimension|fraction" />
+ <!-- Default horizontal gap between keys, in the proportion of keyboard width. -->
+ <attr name="horizontalGap" format="fraction" />
+ <!-- Default vertical gap between rows of keys, in the proportion of keyboard height. -->
+ <attr name="verticalGap" format="fraction" />
<!-- More keys keyboard layout template -->
<attr name="moreKeysTemplate" format="reference" />
<!-- Icon set for key top and key preview.
@@ -288,19 +288,20 @@
<attr name="keyIconPreview" format="string" />
<!-- The key style to specify a set of key attributes defined by <key_style/> -->
<attr name="keyStyle" format="string" />
- <!-- Visual insets -->
- <attr name="visualInsetsLeft" format="dimension|fraction" />
- <attr name="visualInsetsRight" format="dimension|fraction" />
- <!-- Width of the key, in pixels or percentage of display width.
- If the value is fillRight, the actual key width will be determined to fill out the area
- up to the right edge of the keyboard. -->
+ <!-- Visual insets, in the proportion of keyboard width. -->
+ <attr name="visualInsetsLeft" format="fraction" />
+ <attr name="visualInsetsRight" format="fraction" />
+ <!-- Width of the key, in the proportion of keyboard width.
+ If the value is fillRight, the actual key width will be determined to fill out the
+ area up to the right edge of the keyboard. -->
<!-- This should be aligned with KeyboardBuilder.Row.KEYWIDTH_* -->
- <attr name="keyWidth" format="dimension|fraction|enum">
+ <attr name="keyWidth" format="fraction|enum">
<enum name="fillRight" value="-1" />
</attr>
- <!-- The X-coordinate of upper right corner of this key including horizontal gap.
+ <!-- The X-coordinate of upper right corner of this key including horizontal gap, in the
+ proportion of keyboard width.
If the value is negative, the origin is the right edge of the keyboard. -->
- <attr name="keyXPos" format="dimension|fraction" />
+ <attr name="keyXPos" format="fraction" />
<!-- Key top visual attributes -->
<attr name="keyTypeface" format="enum">
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index eb0934c63..dd42acf3c 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -31,7 +31,8 @@
<fraction name="keyboard_top_padding">1.556%p</fraction>
<fraction name="keyboard_bottom_padding">4.669%p</fraction>
- <fraction name="keyboard_horizontal_edges_padding">0%p</fraction>
+ <fraction name="keyboard_left_padding">0%p</fraction>
+ <fraction name="keyboard_right_padding">0%p</fraction>
<fraction name="key_bottom_gap">6.250%p</fraction>
<fraction name="key_horizontal_gap">1.352%p</fraction>
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 19d6da86e..fb59c745f 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -24,7 +24,8 @@
<item name="moreKeysTemplate">@xml/kbd_more_keys_keyboard_template</item>
<item name="keyboardTopPadding">@fraction/keyboard_top_padding</item>
<item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding</item>
- <item name="keyboardHorizontalEdgesPadding">@fraction/keyboard_horizontal_edges_padding</item>
+ <item name="keyboardLeftPadding">@fraction/keyboard_left_padding</item>
+ <item name="keyboardRightPadding">@fraction/keyboard_right_padding</item>
<item name="horizontalGap">@fraction/key_horizontal_gap</item>
<item name="verticalGap">@fraction/key_bottom_gap</item>
<item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
@@ -119,9 +120,9 @@
name="MoreKeysKeyboard"
parent="Keyboard"
>
- <item name="keyboardTopPadding">0dp</item>
- <item name="keyboardBottomPadding">0dp</item>
- <item name="horizontalGap">0dp</item>
+ <item name="keyboardTopPadding">0%p</item>
+ <item name="keyboardBottomPadding">0%p</item>
+ <item name="horizontalGap">0%p</item>
<item name="touchPositionCorrectionData">@null</item>
</style>
<style
@@ -224,9 +225,9 @@
name="MoreKeysKeyboard.Stone"
parent="Keyboard.Stone"
>
- <item name="keyboardTopPadding">0dp</item>
- <item name="keyboardBottomPadding">0dp</item>
- <item name="horizontalGap">0dp</item>
+ <item name="keyboardTopPadding">0%p</item>
+ <item name="keyboardBottomPadding">0%p</item>
+ <item name="horizontalGap">0%p</item>
<item name="touchPositionCorrectionData">@null</item>
</style>
<style
@@ -294,9 +295,9 @@
name="MoreKeysKeyboard.Gingerbread"
parent="Keyboard.Gingerbread"
>
- <item name="keyboardTopPadding">0dp</item>
- <item name="keyboardBottomPadding">0dp</item>
- <item name="horizontalGap">0dp</item>
+ <item name="keyboardTopPadding">0%p</item>
+ <item name="keyboardBottomPadding">0%p</item>
+ <item name="horizontalGap">0%p</item>
<item name="touchPositionCorrectionData">@null</item>
</style>
<style
@@ -353,9 +354,9 @@
name="MoreKeysKeyboard.IceCreamSandwich"
parent="Keyboard.IceCreamSandwich"
>
- <item name="keyboardTopPadding">0dp</item>
- <item name="keyboardBottomPadding">0dp</item>
- <item name="horizontalGap">0dp</item>
+ <item name="keyboardTopPadding">0%p</item>
+ <item name="keyboardBottomPadding">0%p</item>
+ <item name="horizontalGap">0%p</item>
<item name="touchPositionCorrectionData">@null</item>
</style>
<style
diff --git a/java/res/xml-land/kbd_number.xml b/java/res/xml-land/kbd_number.xml
index 8d31df1f8..0dced28ac 100644
--- a/java/res/xml-land/kbd_number.xml
+++ b/java/res/xml-land/kbd_number.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="26.67%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-land/kbd_phone.xml b/java/res/xml-land/kbd_phone.xml
index 2f8fc3560..e5d7b443f 100644
--- a/java/res/xml-land/kbd_phone.xml
+++ b/java/res/xml-land/kbd_phone.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="26.67%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-land/kbd_phone_symbols.xml b/java/res/xml-land/kbd_phone_symbols.xml
index 0e6bcdd6a..b881e6234 100644
--- a/java/res/xml-land/kbd_phone_symbols.xml
+++ b/java/res/xml-land/kbd_phone_symbols.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="26.67%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-sw600dp-land/kbd_number.xml b/java/res/xml-sw600dp-land/kbd_number.xml
index 63dfc90d0..a9e812171 100644
--- a/java/res/xml-sw600dp-land/kbd_number.xml
+++ b/java/res/xml-sw600dp-land/kbd_number.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="18%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-sw600dp-land/kbd_phone.xml b/java/res/xml-sw600dp-land/kbd_phone.xml
index b6161111b..4cabdeb5a 100644
--- a/java/res/xml-sw600dp-land/kbd_phone.xml
+++ b/java/res/xml-sw600dp-land/kbd_phone.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="18%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-sw600dp-land/kbd_phone_symbols.xml b/java/res/xml-sw600dp-land/kbd_phone_symbols.xml
index 9b0bee026..9c3e8259e 100644
--- a/java/res/xml-sw600dp-land/kbd_phone_symbols.xml
+++ b/java/res/xml-sw600dp-land/kbd_phone_symbols.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="18%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-sw768dp-land/kbd_number.xml b/java/res/xml-sw768dp-land/kbd_number.xml
index de8d55904..1cb775ef7 100644
--- a/java/res/xml-sw768dp-land/kbd_number.xml
+++ b/java/res/xml-sw768dp-land/kbd_number.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="13.250%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-sw768dp-land/kbd_phone.xml b/java/res/xml-sw768dp-land/kbd_phone.xml
index f88a076f6..890518210 100644
--- a/java/res/xml-sw768dp-land/kbd_phone.xml
+++ b/java/res/xml-sw768dp-land/kbd_phone.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="13.250%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/res/xml-sw768dp-land/kbd_phone_symbols.xml b/java/res/xml-sw768dp-land/kbd_phone_symbols.xml
index eaa413e7d..6038b1f1e 100644
--- a/java/res/xml-sw768dp-land/kbd_phone_symbols.xml
+++ b/java/res/xml-sw768dp-land/kbd_phone_symbols.xml
@@ -20,7 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHorizontalEdgesPadding="10%p"
+ latin:keyboardLeftPadding="10%p"
+ latin:keyboardRightPadding="10%p"
latin:keyWidth="13.250%p"
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 9b971755e..1e5af5154 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,
@@ -470,11 +470,11 @@ public class Key implements Comparable<Key> {
}
public void markAsLeftEdge(final KeyboardParams params) {
- mHitBox.left = params.mHorizontalEdgesPadding;
+ mHitBox.left = params.mLeftPadding;
}
public void markAsRightEdge(final KeyboardParams params) {
- mHitBox.right = params.mOccupiedWidth - params.mHorizontalEdgesPadding;
+ mHitBox.right = params.mOccupiedWidth - params.mRightPadding;
}
public void markAsTopEdge(final KeyboardParams params) {
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..e087a4565 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
- - 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
+ 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);
+ params.mLeftPadding = (int)keyboardAttr.getFraction(
+ R.styleable.Keyboard_keyboardLeftPadding, width, width, 0);
+ params.mRightPadding = (int)keyboardAttr.getFraction(
+ R.styleable.Keyboard_keyboardRightPadding, width, width, 0);
+
+ final int baseWidth =
+ params.mOccupiedWidth - params.mLeftPadding - params.mRightPadding;
+ 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);
@@ -737,7 +742,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
}
private void startRow(final KeyboardRow row) {
- addEdgeSpace(mParams.mHorizontalEdgesPadding, row);
+ addEdgeSpace(mParams.mLeftPadding, row);
mCurrentRow = row;
mLeftEdge = true;
mRightEdgeKey = null;
@@ -751,7 +756,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
mRightEdgeKey.markAsRightEdge(mParams);
mRightEdgeKey = null;
}
- addEdgeSpace(mParams.mHorizontalEdgesPadding, row);
+ addEdgeSpace(mParams.mRightPadding, row);
mCurrentY += row.mRowHeight;
mCurrentRow = null;
mTopEdge = false;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
index e13dbe5d0..15eb690e1 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
@@ -42,8 +42,8 @@ public class KeyboardParams {
public int mTopPadding;
public int mBottomPadding;
- public int mHorizontalEdgesPadding;
- public int mHorizontalCenterPadding;
+ public int mLeftPadding;
+ public int mRightPadding;
public KeyVisualAttributes mKeyVisualAttributes;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardRow.java
index 22780205d..855f65507 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();
@@ -112,20 +111,19 @@ public final class KeyboardRow {
}
public float getKeyX(final TypedArray keyAttr) {
- 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.
// keyXPos shouldn't be less than mCurrentX because drawable area for this
// key starts at mCurrentX. Or, this key will overlaps the adjacent key on
// its left hand side.
+ final int keyboardRightEdge = mParams.mOccupiedWidth - mParams.mRightPadding;
return Math.max(keyXPos + keyboardRightEdge, mCurrentX);
} else {
- return keyXPos + mParams.mHorizontalEdgesPadding;
+ return keyXPos + mParams.mLeftPadding;
}
}
return mCurrentX;
@@ -140,15 +138,13 @@ public final class KeyboardRow {
R.styleable.Keyboard_Key_keyWidth, KEYWIDTH_NOT_ENUM);
switch (widthType) {
case KEYWIDTH_FILL_RIGHT:
- final int keyboardRightEdge =
- mParams.mOccupiedWidth - mParams.mHorizontalEdgesPadding;
// If keyWidth is fillRight, the actual key width will be determined to fill
// out the area up to the right edge of the keyboard.
+ final int keyboardRightEdge = mParams.mOccupiedWidth - mParams.mRightPadding;
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);
}
}
}