diff options
-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 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SuggestionsView.java | 76 |
13 files changed, 62 insertions, 62 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; } } diff --git a/java/src/com/android/inputmethod/latin/SuggestionsView.java b/java/src/com/android/inputmethod/latin/SuggestionsView.java index 07a44f72d..10cd73dd3 100644 --- a/java/src/com/android/inputmethod/latin/SuggestionsView.java +++ b/java/src/com/android/inputmethod/latin/SuggestionsView.java @@ -89,7 +89,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On private SuggestedWords mSuggestions = SuggestedWords.EMPTY; private boolean mShowingAutoCorrectionInverted; - private final SuggestionsStripParams mStripParams; + private final SuggestionsViewParams mParams; private static final float MIN_TEXT_XSCALE = 0.70f; private final UiHandler mHandler = new UiHandler(this); @@ -144,41 +144,22 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On } private static class SuggestionsViewParams { + private static final int DEFAULT_SUGGESTIONS_COUNT_IN_STRIP = 3; + private static final int DEFAULT_CENTER_SUGGESTION_PERCENTILE = 40; + private static final int PUNCTUATIONS_IN_STRIP = 6; + public final int mPadding; public final int mDividerWidth; public final int mSuggestionsStripHeight; + public final int mSuggestionsCountInStrip; - protected final List<TextView> mWords; - protected final List<View> mDividers; - protected final List<TextView> mInfos; - - protected SuggestionsViewParams(List<TextView> words, List<View> dividers, - List<TextView> infos) { - mWords = words; - mDividers = dividers; - mInfos = infos; - - final TextView word = words.get(0); - final View divider = dividers.get(0); - mPadding = word.getCompoundPaddingLeft() + word.getCompoundPaddingRight(); - divider.measure( - ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - mDividerWidth = divider.getMeasuredWidth(); - - final Resources res = word.getResources(); - mSuggestionsStripHeight = res.getDimensionPixelSize(R.dimen.suggestions_strip_height); - } - } - - private static class SuggestionsStripParams extends SuggestionsViewParams { - private static final int DEFAULT_SUGGESTIONS_COUNT_IN_STRIP = 3; - private static final int DEFAULT_CENTER_SUGGESTION_PERCENTILE = 40; - private static final int PUNCTUATIONS_IN_STRIP = 6; + private final List<TextView> mWords; + private final List<View> mDividers; + private final List<TextView> mInfos; private final int mColorTypedWord; private final int mColorAutoCorrect; private final int mColorSuggested; - public final int mSuggestionsCountInStrip; private final float mCenterSuggestionWeight; private final int mCenterSuggestionIndex; private final Drawable mMoreSuggestionsHint; @@ -202,9 +183,22 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On private final TextView mHintToSaveView; private final CharSequence mHintToSaveText; - public SuggestionsStripParams(Context context, AttributeSet attrs, int defStyle, + public SuggestionsViewParams(Context context, AttributeSet attrs, int defStyle, List<TextView> words, List<View> dividers, List<TextView> infos) { - super(words, dividers, infos); + mWords = words; + mDividers = dividers; + mInfos = infos; + + final TextView word = words.get(0); + final View divider = dividers.get(0); + mPadding = word.getCompoundPaddingLeft() + word.getCompoundPaddingRight(); + divider.measure( + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); + mDividerWidth = divider.getMeasuredWidth(); + + final Resources res = word.getResources(); + mSuggestionsStripHeight = res.getDimensionPixelSize(R.dimen.suggestions_strip_height); + final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.SuggestionsView, defStyle, R.style.SuggestionsViewStyle); mSuggestionStripOption = a.getInt(R.styleable.SuggestionsView_suggestionStripOption, 0); @@ -220,7 +214,6 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On a.recycle(); mCenterSuggestionIndex = mSuggestionsCountInStrip / 2; - final Resources res = context.getResources(); mMoreSuggestionsHint = res.getDrawable(R.drawable.more_suggestions_hint); mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorTypedWord ^ 0x00ffffff); @@ -496,9 +489,8 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On mInfos.add((TextView)inflater.inflate(R.layout.suggestion_info, null)); } - mStripParams = new SuggestionsStripParams(context, attrs, defStyle, mWords, mDividers, - mInfos); - mStripParams.mWordToSaveView.setOnClickListener(this); + mParams = new SuggestionsViewParams(context, attrs, defStyle, mWords, mDividers, mInfos); + mParams.mWordToSaveView.setOnClickListener(this); mMoreSuggestionsContainer = inflater.inflate(R.layout.more_suggestions, null); mMoreSuggestionsView = (MoreSuggestionsView)mMoreSuggestionsContainer @@ -535,7 +527,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On if (mSuggestions.size() == 0) return; - mStripParams.layout(mSuggestions, mSuggestionsStrip, mSuggestionsPlacer, getWidth()); + mParams.layout(mSuggestions, mSuggestionsStrip, mSuggestionsPlacer, getWidth()); } private static CharSequence getDebugInfo(SuggestedWords suggestions, int pos) { @@ -624,7 +616,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On } public void onAutoCorrectionInverted(CharSequence autoCorrectedWord) { - final CharSequence inverted = mStripParams.getInvertedText(autoCorrectedWord); + final CharSequence inverted = mParams.getInvertedText(autoCorrectedWord); if (inverted == null) return; final TextView tv = mWords.get(1); @@ -634,12 +626,12 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On public boolean isShowingAddToDictionaryHint() { return mSuggestionsStrip.getChildCount() > 0 - && mSuggestionsStrip.getChildAt(0) == mStripParams.mWordToSaveView; + && mSuggestionsStrip.getChildAt(0) == mParams.mWordToSaveView; } public void showAddToDictionaryHint(CharSequence word) { clear(); - mStripParams.layoutAddToDictionaryHint(word, mSuggestionsStrip, getWidth()); + mParams.layoutAddToDictionaryHint(word, mSuggestionsStrip, getWidth()); } public boolean dismissAddToDictionaryHint() { @@ -671,7 +663,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On return; final TextView previewText = mPreviewText; - previewText.setTextColor(mStripParams.mColorTypedWord); + previewText.setTextColor(mParams.mColorTypedWord); previewText.setText(word); previewText.measure( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); @@ -692,7 +684,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On private void addToDictionary(CharSequence word) { if (mListener.addWordToDictionary(word.toString())) { final CharSequence message = getContext().getString(R.string.added_word, word); - showPreview(mStripParams.mWordToSaveView, message); + showPreview(mParams.mWordToSaveView, message); } } @@ -732,7 +724,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On @Override public boolean onLongClick(View view) { - final SuggestionsStripParams params = mStripParams; + final SuggestionsViewParams params = mParams; if (params.mMoreSuggestionsAvailable) { final int stripWidth = getWidth(); final View container = mMoreSuggestionsContainer; @@ -799,7 +791,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On @Override public void onClick(View view) { - if (view == mStripParams.mWordToSaveView) { + if (view == mParams.mWordToSaveView) { addToDictionary((CharSequence)view.getTag()); clear(); return; |