diff --git a/java/res/drawable/transparent.xml b/java/res/drawable/transparent.xml new file mode 100644 index 000000000..855cf2ad5 --- /dev/null +++ b/java/res/drawable/transparent.xml @@ -0,0 +1,30 @@ + + + + + + + diff --git a/java/res/values/keyboard-icons-ics.xml b/java/res/values/keyboard-icons-ics.xml index 3029695e6..1dfbdf96e 100644 --- a/java/res/values/keyboard-icons-ics.xml +++ b/java/res/values/keyboard-icons-ics.xml @@ -60,7 +60,7 @@ @drawable/sym_keyboard_num0 @drawable/sym_keyboard_shift_locked - @drawable/sym_keyboard_space_holo + @drawable/transparent @drawable/sym_keyboard_feedback_tab @@ -72,7 +72,7 @@ @drawable/sym_keyboard_voice_off_holo @drawable/sym_keyboard_language_arrows_left @drawable/sym_keyboard_language_arrows_right - @drawable/sym_keyboard_feedback_language_arrows_left - @drawable/sym_keyboard_feedback_language_arrows_right + + diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 8d4bfd7a7..9dc019c61 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -130,6 +130,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { // Key preview private boolean mInForeground; private TextView mPreviewText; + private Drawable mPreviewBackground; private float mPreviewTextRatio; private int mPreviewTextSize; private boolean mShowKeyPreviewPopup = true; @@ -357,6 +358,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { if (previewLayout != 0) { mPreviewText = (TextView) LayoutInflater.from(context).inflate(previewLayout, null); + mPreviewBackground = mPreviewText.getBackground(); mPreviewTextRatio = getRatio(res, R.fraction.key_preview_text_ratio); } else { mShowKeyPreviewPopup = false; @@ -982,6 +984,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { previewIcon != null ? previewIcon : key.getIcon()); previewText.setText(null); } + if (key.mCode == Keyboard.CODE_SPACE) { + previewText.setBackgroundColor(Color.TRANSPARENT); + } else { + previewText.setBackgroundDrawable(mPreviewBackground); + } // Set the preview background state previewText.getBackground().setState( key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET); diff --git a/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java b/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java index df4b575f1..f8c81adfb 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java +++ b/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java @@ -58,7 +58,7 @@ public class SlidingLocaleDrawable extends Drawable { public SlidingLocaleDrawable(Context context, Drawable background, int width, int height) { mBackground = background; - Keyboard.setDefaultBounds(mBackground); + Keyboard.setDefaultBounds(background); mWidth = width; mHeight = height; final TextPaint textPaint = new TextPaint(); @@ -68,7 +68,7 @@ public class SlidingLocaleDrawable extends Drawable { textPaint.setTextAlign(Align.CENTER); textPaint.setAntiAlias(true); mTextPaint = textPaint; - mMiddleX = (mWidth - mBackground.getIntrinsicWidth()) / 2; + mMiddleX = (background != null) ? (mWidth - mBackground.getIntrinsicWidth()) / 2 : 0; final TypedArray a = context.obtainStyledAttributes( null, R.styleable.LatinKeyboard, R.attr.latinKeyboardStyle, R.style.LatinKeyboard); @@ -119,11 +119,13 @@ public class SlidingLocaleDrawable extends Drawable { canvas.drawText(mNextLanguage, diff - width / 2, baseline, paint); canvas.drawText(mPrevLanguage, diff + width + width / 2, baseline, paint); - Keyboard.setDefaultBounds(lArrow); - rArrow.setBounds(width - rArrow.getIntrinsicWidth(), 0, width, - rArrow.getIntrinsicHeight()); - lArrow.draw(canvas); - rArrow.draw(canvas); + if (lArrow != null && rArrow != null) { + Keyboard.setDefaultBounds(lArrow); + rArrow.setBounds(width - rArrow.getIntrinsicWidth(), 0, width, + rArrow.getIntrinsicHeight()); + lArrow.draw(canvas); + rArrow.draw(canvas); + } } if (mBackground != null) { canvas.translate(mMiddleX, 0);