am 8cbb4eb9: Merge "Make popup hint letter theme-aware" into lmp-dev

* commit '8cbb4eb984f327bb6f1990b0efb5ca3e080ca0a9':
  Make popup hint letter theme-aware
This commit is contained in:
Tadashi G. Takaoka 2014-08-05 13:19:30 +00:00 committed by Android Git Automerger
commit c34a384212
6 changed files with 18 additions and 5 deletions

View file

@ -52,7 +52,9 @@
<attr name="spacebarIconWidthRatio" format="float" /> <attr name="spacebarIconWidthRatio" format="float" />
<!-- Right padding of hint letter to the edge of the key.--> <!-- Right padding of hint letter to the edge of the key.-->
<attr name="keyHintLetterPadding" format="dimension" /> <attr name="keyHintLetterPadding" format="dimension" />
<!-- Bottom padding of popup hint letter "..." to the edge of the key.--> <!-- Popup hint letter string-->
<attr name="keyPopupHintLetter" format="string" />
<!-- Bottom padding of popup hint letter to the edge of the key.-->
<attr name="keyPopupHintLetterPadding" format="dimension" /> <attr name="keyPopupHintLetterPadding" format="dimension" />
<!-- Right padding of shifted letter hint to the edge of the key.--> <!-- Right padding of shifted letter hint to the edge of the key.-->
<attr name="keyShiftedLetterHintPadding" format="dimension" /> <attr name="keyShiftedLetterHintPadding" format="dimension" />

View file

@ -60,6 +60,8 @@
<item name="keyPreviewTextColor">@color/key_text_color_holo</item> <item name="keyPreviewTextColor">@color/key_text_color_holo</item>
<!-- A negative value to disable key text shadow layer. --> <!-- A negative value to disable key text shadow layer. -->
<item name="keyTextShadowRadius">-1.0</item> <item name="keyTextShadowRadius">-1.0</item>
<!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
<item name="keyPopupHintLetter">&#x2026;</item>
</style> </style>
<style <style
name="MainKeyboardView.ICS" name="MainKeyboardView.ICS"

View file

@ -60,6 +60,8 @@
<item name="keyPreviewTextColor">@color/key_text_color_holo</item> <item name="keyPreviewTextColor">@color/key_text_color_holo</item>
<!-- A negative value to disable key text shadow layer. --> <!-- A negative value to disable key text shadow layer. -->
<item name="keyTextShadowRadius">-1.0</item> <item name="keyTextShadowRadius">-1.0</item>
<!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
<item name="keyPopupHintLetter">&#x2026;</item>
</style> </style>
<style <style
name="MainKeyboardView.KLP" name="MainKeyboardView.KLP"

View file

@ -61,6 +61,7 @@
<item name="keyPreviewTextColor">@color/key_text_color_lxx_dark</item> <item name="keyPreviewTextColor">@color/key_text_color_lxx_dark</item>
<!-- A negative value to disable key text shadow layer. --> <!-- A negative value to disable key text shadow layer. -->
<item name="keyTextShadowRadius">-1.0</item> <item name="keyTextShadowRadius">-1.0</item>
<item name="keyPopupHintLetter"></item> <!-- No popup hint letter -->
</style> </style>
<style <style
name="MainKeyboardView.LXX_Dark" name="MainKeyboardView.LXX_Dark"

View file

@ -61,6 +61,7 @@
<item name="keyPreviewTextColor">@color/key_text_color_lxx_light</item> <item name="keyPreviewTextColor">@color/key_text_color_lxx_light</item>
<!-- A negative value to disable key text shadow layer. --> <!-- A negative value to disable key text shadow layer. -->
<item name="keyTextShadowRadius">-1.0</item> <item name="keyTextShadowRadius">-1.0</item>
<item name="keyPopupHintLetter"></item> <!-- No popup hint letter -->
</style> </style>
<style <style
name="MainKeyboardView.LXX_Light" name="MainKeyboardView.LXX_Light"

View file

@ -29,6 +29,7 @@ import android.graphics.Region;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.graphics.drawable.NinePatchDrawable; import android.graphics.drawable.NinePatchDrawable;
import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
@ -48,6 +49,7 @@ import java.util.HashSet;
* @attr ref R.styleable#KeyboardView_spacebarBackground * @attr ref R.styleable#KeyboardView_spacebarBackground
* @attr ref R.styleable#KeyboardView_spacebarIconWidthRatio * @attr ref R.styleable#KeyboardView_spacebarIconWidthRatio
* @attr ref R.styleable#KeyboardView_keyHintLetterPadding * @attr ref R.styleable#KeyboardView_keyHintLetterPadding
* @attr ref R.styleable#KeyboardView_keyPopupHintLetter
* @attr ref R.styleable#KeyboardView_keyPopupHintLetterPadding * @attr ref R.styleable#KeyboardView_keyPopupHintLetterPadding
* @attr ref R.styleable#KeyboardView_keyShiftedLetterHintPadding * @attr ref R.styleable#KeyboardView_keyShiftedLetterHintPadding
* @attr ref R.styleable#KeyboardView_keyTextShadowRadius * @attr ref R.styleable#KeyboardView_keyTextShadowRadius
@ -74,6 +76,7 @@ public class KeyboardView extends View {
// XML attributes // XML attributes
private final KeyVisualAttributes mKeyVisualAttributes; private final KeyVisualAttributes mKeyVisualAttributes;
private final float mKeyHintLetterPadding; private final float mKeyHintLetterPadding;
private final String mKeyPopupHintLetter;
private final float mKeyPopupHintLetterPadding; private final float mKeyPopupHintLetterPadding;
private final float mKeyShiftedLetterHintPadding; private final float mKeyShiftedLetterHintPadding;
private final float mKeyTextShadowRadius; private final float mKeyTextShadowRadius;
@ -85,9 +88,6 @@ public class KeyboardView extends View {
private final Rect mKeyBackgroundPadding = new Rect(); private final Rect mKeyBackgroundPadding = new Rect();
private static final float KET_TEXT_SHADOW_RADIUS_DISABLED = -1.0f; private static final float KET_TEXT_SHADOW_RADIUS_DISABLED = -1.0f;
// HORIZONTAL ELLIPSIS "...", character for popup hint.
private static final String POPUP_HINT_CHAR = "\u2026";
// The maximum key label width in the proportion to the key width. // The maximum key label width in the proportion to the key width.
private static final float MAX_LABEL_RATIO = 0.90f; private static final float MAX_LABEL_RATIO = 0.90f;
@ -132,6 +132,8 @@ public class KeyboardView extends View {
R.styleable.KeyboardView_spacebarIconWidthRatio, 1.0f); R.styleable.KeyboardView_spacebarIconWidthRatio, 1.0f);
mKeyHintLetterPadding = keyboardViewAttr.getDimension( mKeyHintLetterPadding = keyboardViewAttr.getDimension(
R.styleable.KeyboardView_keyHintLetterPadding, 0.0f); R.styleable.KeyboardView_keyHintLetterPadding, 0.0f);
mKeyPopupHintLetter = keyboardViewAttr.getString(
R.styleable.KeyboardView_keyPopupHintLetter);
mKeyPopupHintLetterPadding = keyboardViewAttr.getDimension( mKeyPopupHintLetterPadding = keyboardViewAttr.getDimension(
R.styleable.KeyboardView_keyPopupHintLetterPadding, 0.0f); R.styleable.KeyboardView_keyPopupHintLetterPadding, 0.0f);
mKeyShiftedLetterHintPadding = keyboardViewAttr.getDimension( mKeyShiftedLetterHintPadding = keyboardViewAttr.getDimension(
@ -468,6 +470,9 @@ public class KeyboardView extends View {
// Draw popup hint "..." at the bottom right corner of the key. // Draw popup hint "..." at the bottom right corner of the key.
protected void drawKeyPopupHint(final Key key, final Canvas canvas, final Paint paint, protected void drawKeyPopupHint(final Key key, final Canvas canvas, final Paint paint,
final KeyDrawParams params) { final KeyDrawParams params) {
if (TextUtils.isEmpty(mKeyPopupHintLetter)) {
return;
}
final int keyWidth = key.getDrawWidth(); final int keyWidth = key.getDrawWidth();
final int keyHeight = key.getHeight(); final int keyHeight = key.getHeight();
@ -478,7 +483,7 @@ public class KeyboardView extends View {
final float hintX = keyWidth - mKeyHintLetterPadding final float hintX = keyWidth - mKeyHintLetterPadding
- TypefaceUtils.getReferenceCharWidth(paint) / 2.0f; - TypefaceUtils.getReferenceCharWidth(paint) / 2.0f;
final float hintY = keyHeight - mKeyPopupHintLetterPadding; final float hintY = keyHeight - mKeyPopupHintLetterPadding;
canvas.drawText(POPUP_HINT_CHAR, hintX, hintY, paint); canvas.drawText(mKeyPopupHintLetter, hintX, hintY, paint);
} }
protected static void drawIcon(final Canvas canvas, final Drawable icon, final int x, protected static void drawIcon(final Canvas canvas, final Drawable icon, final int x,