diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png | bin | 126 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/ic_dialog_keyboard.png | bin | 1157 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/ic_subtype_mic.png | bin | 892 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png | bin | 999 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_dialog_keyboard.png | bin | 528 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_subtype_mic.png | bin | 648 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-xhdpi/btn_keyboard_key_light_popup_normal.9.png | bin | 126 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-xhdpi/ic_dialog_keyboard.png | bin | 1589 -> 0 bytes | |||
-rw-r--r-- | java/res/drawable-xhdpi/ic_subtype_mic.png | bin | 1099 -> 0 bytes | |||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/Key.java | 15 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java | 24 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/Row.java | 9 |
12 files changed, 28 insertions, 20 deletions
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png Binary files differdeleted file mode 100644 index 2ed1b3447..000000000 --- a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/ic_dialog_keyboard.png b/java/res/drawable-hdpi/ic_dialog_keyboard.png Binary files differdeleted file mode 100644 index 305441633..000000000 --- a/java/res/drawable-hdpi/ic_dialog_keyboard.png +++ /dev/null diff --git a/java/res/drawable-hdpi/ic_subtype_mic.png b/java/res/drawable-hdpi/ic_subtype_mic.png Binary files differdeleted file mode 100644 index 25c9ee2ab..000000000 --- a/java/res/drawable-hdpi/ic_subtype_mic.png +++ /dev/null diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png Binary files differdeleted file mode 100644 index 0e828a6cf..000000000 --- a/java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/ic_dialog_keyboard.png b/java/res/drawable-mdpi/ic_dialog_keyboard.png Binary files differdeleted file mode 100644 index 9a5aada8b..000000000 --- a/java/res/drawable-mdpi/ic_dialog_keyboard.png +++ /dev/null diff --git a/java/res/drawable-mdpi/ic_subtype_mic.png b/java/res/drawable-mdpi/ic_subtype_mic.png Binary files differdeleted file mode 100644 index 0b6aca802..000000000 --- a/java/res/drawable-mdpi/ic_subtype_mic.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_normal.9.png Binary files differdeleted file mode 100644 index 2ed1b3447..000000000 --- a/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_normal.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/ic_dialog_keyboard.png b/java/res/drawable-xhdpi/ic_dialog_keyboard.png Binary files differdeleted file mode 100644 index f114c93b6..000000000 --- a/java/res/drawable-xhdpi/ic_dialog_keyboard.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/ic_subtype_mic.png b/java/res/drawable-xhdpi/ic_subtype_mic.png Binary files differdeleted file mode 100644 index fc8d18cc2..000000000 --- a/java/res/drawable-xhdpi/ic_subtype_mic.png +++ /dev/null diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index b919bcfc4..c2f0a3db6 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -243,14 +243,13 @@ public class Key { * parser. * @param res resources associated with the caller's context * @param params the keyboard building parameters. - * @param row the row that this key belongs to. - * @param x the x coordinate of the top-left - * @param y the y coordinate of the top-left + * @param row the row that this key belongs to. row's x-coordinate will be the right edge of + * this key. * @param parser the XML parser containing the attributes for this key * @param keyStyles active key styles set */ - public Key(Resources res, KeyboardParams params, Row row, int x, int y, - XmlResourceParser parser, KeyStyles keyStyles) { + public Key(Resources res, KeyboardParams params, Row row, XmlResourceParser parser, + KeyStyles keyStyles) { final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard); @@ -284,6 +283,7 @@ public class Key { } final int keyboardWidth = params.mOccupiedWidth; + final int x = row.mCurrentX; int keyXPos = KeyboardBuilder.getDimensionOrFraction(keyAttr, R.styleable.Keyboard_Key_keyXPos, keyboardWidth, x); if (keyXPos < 0) { @@ -309,9 +309,12 @@ public class Key { // Horizontal gap is divided equally to both sides of the key. mX = keyXPos + mHorizontalGap / 2; - mY = y; + mY = row.mCurrentY; mWidth = keyWidth - mHorizontalGap; + // Update row to have x-coordinate of the right edge of this key. + row.mCurrentX = keyXPos + keyWidth; + final CharSequence[] moreKeys = style.getTextArray( keyAttr, R.styleable.Keyboard_Key_moreKeys); // In Arabic symbol layouts, we'd like to keep digits in more keys regardless of diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java index c605debab..ff26b5977 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java @@ -128,7 +128,6 @@ public class KeyboardBuilder<KP extends KeyboardParams> { protected final Resources mResources; private final DisplayMetrics mDisplayMetrics; - private int mCurrentX = 0; private int mCurrentY = 0; private Row mCurrentRow = null; private boolean mLeftEdge; @@ -314,7 +313,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { throw new IllegalAttribute(parser, "horizontalGap"); if (a.hasValue(R.styleable.Keyboard_verticalGap)) throw new IllegalAttribute(parser, "verticalGap"); - return new Row(mResources, mParams, parser); + return new Row(mResources, mParams, parser, mCurrentY); } finally { a.recycle(); } @@ -344,7 +343,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { if (TAG_ROW.equals(tag)) { if (DEBUG) Log.d(TAG, String.format("</%s>", TAG_ROW)); if (!skip) - endRow(); + endRow(row); break; } else if (TAG_CASE.equals(tag) || TAG_DEFAULT.equals(tag) || TAG_MERGE.equals(tag)) { @@ -364,7 +363,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { if (skip) { checkEndTag(TAG_KEY, parser); } else { - Key key = new Key(mResources, mParams, row, mCurrentX, mCurrentY, parser, mKeyStyles); + Key key = new Key(mResources, mParams, row, parser, mKeyStyles); if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d moreKeys=%s />", TAG_KEY, (key.isEnabled() ? "" : " disabled"), key.mLabel, key.mCode, Arrays.toString(key.mMoreKeys))); @@ -392,14 +391,14 @@ public class KeyboardBuilder<KP extends KeyboardParams> { final TypedArray keyAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard_Key); int keyXPos = KeyboardBuilder.getDimensionOrFraction(keyAttr, - R.styleable.Keyboard_Key_keyXPos, keyboardWidth, mCurrentX); + R.styleable.Keyboard_Key_keyXPos, keyboardWidth, row.mCurrentX); if (keyXPos < 0) { // If keyXPos is negative, the actual x-coordinate will be display_width + keyXPos. keyXPos += keyboardWidth; } checkEndTag(TAG_SPACER, parser); - setSpacer(keyXPos, keyWidth); + setSpacer(keyXPos, keyWidth, row); } } @@ -655,28 +654,27 @@ public class KeyboardBuilder<KP extends KeyboardParams> { } private void startRow(Row row) { - mCurrentX = 0; - setSpacer(mCurrentX, mParams.mHorizontalEdgesPadding); + row.mCurrentX = 0; + setSpacer(row.mCurrentX, mParams.mHorizontalEdgesPadding, row); mCurrentRow = row; mLeftEdge = true; mRightEdgeKey = null; } - private void endRow() { + private void endRow(Row row) { if (mCurrentRow == null) throw new InflateException("orphant end row tag"); if (mRightEdgeKey != null) { mRightEdgeKey.addEdgeFlags(Keyboard.EDGE_RIGHT); mRightEdgeKey = null; } - setSpacer(mCurrentX, mParams.mHorizontalEdgesPadding); + setSpacer(row.mCurrentX, mParams.mHorizontalEdgesPadding, row); mCurrentY += mCurrentRow.mRowHeight; mCurrentRow = null; mTopEdge = false; } private void endKey(Key key) { - mCurrentX = key.mX - key.mHorizontalGap / 2 + key.mWidth + key.mHorizontalGap; if (mLeftEdge) { key.addEdgeFlags(Keyboard.EDGE_LEFT); mLeftEdge = false; @@ -690,8 +688,8 @@ public class KeyboardBuilder<KP extends KeyboardParams> { private void endKeyboard() { } - private void setSpacer(int keyXPos, int width) { - mCurrentX = keyXPos + width; + private void setSpacer(int keyXPos, int width, Row row) { + row.mCurrentX = keyXPos + width; mLeftEdge = false; mRightEdgeKey = null; } diff --git a/java/src/com/android/inputmethod/keyboard/internal/Row.java b/java/src/com/android/inputmethod/keyboard/internal/Row.java index d53fe12e2..fdf1dec68 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/Row.java +++ b/java/src/com/android/inputmethod/keyboard/internal/Row.java @@ -35,7 +35,11 @@ public class Row { /** Default height of a key in this row. */ public final int mRowHeight; - public Row(Resources res, KeyboardParams params, XmlResourceParser parser) { + public final int mCurrentY; + // Will be updated by {@link Key}'s constructor. + public int mCurrentX; + + public Row(Resources res, KeyboardParams params, XmlResourceParser parser, int y) { final int keyboardWidth = params.mWidth; final int keyboardHeight = params.mHeight; TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser), @@ -45,5 +49,8 @@ public class Row { mRowHeight = KeyboardBuilder.getDimensionOrFraction(a, R.styleable.Keyboard_rowHeight, keyboardHeight, params.mDefaultRowHeight); a.recycle(); + + mCurrentY = y; + mCurrentX = 0; } } |