aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-03-08 18:57:55 +0900
committerTadashi G. Takaoka <takaoka@google.com>2013-03-08 19:44:22 +0900
commit914d054ea26d18a1ba6a60f8c5e749136477bbf2 (patch)
tree68c6445bbb8b8e4dfd3ead1f96fca79e7052edd6 /java/src
parenteb26838afad3c384da53dd2150d81c3b22403433 (diff)
downloadlatinime-914d054ea26d18a1ba6a60f8c5e749136477bbf2.tar.gz
latinime-914d054ea26d18a1ba6a60f8c5e749136477bbf2.tar.xz
latinime-914d054ea26d18a1ba6a60f8c5e749136477bbf2.zip
Move logic of selecting key preview attribute to Key class
This change also fixes the size of a key preview letter to follow a keyLabelFlags specification. Change-Id: Ie13790788a16c5a053c1a2cbcac3d38314b14b7f
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java41
-rw-r--r--java/src/com/android/inputmethod/keyboard/MainKeyboardView.java12
2 files changed, 36 insertions, 17 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 1e5af5154..d160038ad 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -519,11 +519,11 @@ public class Key implements Comparable<Key> {
// TODO: Handle "bold" here too?
if ((mLabelFlags & LABEL_FLAGS_FONT_NORMAL) != 0) {
return Typeface.DEFAULT;
- } else if ((mLabelFlags & LABEL_FLAGS_FONT_MONO_SPACE) != 0) {
+ }
+ if ((mLabelFlags & LABEL_FLAGS_FONT_MONO_SPACE) != 0) {
return Typeface.MONOSPACE;
- } else {
- return params.mTypeface;
}
+ return params.mTypeface;
}
public final int selectTextSize(final KeyDrawParams params) {
@@ -550,28 +550,51 @@ public class Key implements Comparable<Key> {
public final int selectHintTextSize(final KeyDrawParams params) {
if (hasHintLabel()) {
return params.mHintLabelSize;
- } else if (hasShiftedLetterHint()) {
+ }
+ if (hasShiftedLetterHint()) {
return params.mShiftedLetterHintSize;
- } else {
- return params.mHintLetterSize;
}
+ return params.mHintLetterSize;
}
public final int selectHintTextColor(final KeyDrawParams params) {
if (hasHintLabel()) {
return params.mHintLabelColor;
- } else if (hasShiftedLetterHint()) {
+ }
+ if (hasShiftedLetterHint()) {
return isShiftedLetterActivated() ? params.mShiftedLetterHintActivatedColor
: params.mShiftedLetterHintInactivatedColor;
- } else {
- return params.mHintLetterColor;
}
+ return params.mHintLetterColor;
}
public final int selectMoreKeyTextSize(final KeyDrawParams params) {
return hasLabelsInMoreKeys() ? params.mLabelSize : params.mLetterSize;
}
+ public final String getPreviewLabel() {
+ return isShiftedLetterActivated() ? mHintLabel : mLabel;
+ }
+
+ private boolean previewHasLetterSize() {
+ return (mLabelFlags & LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO) != 0
+ || StringUtils.codePointCount(getPreviewLabel()) == 1;
+ }
+
+ public final int selectPreviewTextSize(final KeyDrawParams params) {
+ if (previewHasLetterSize()) {
+ return params.mPreviewTextSize;
+ }
+ return params.mLetterSize;
+ }
+
+ public Typeface selectPreviewTypeface(final KeyDrawParams params) {
+ if (previewHasLetterSize()) {
+ return selectTypeface(params);
+ }
+ return Typeface.DEFAULT_BOLD;
+ }
+
public final boolean isAlignLeft() {
return (mLabelFlags & LABEL_FLAGS_ALIGN_LEFT) != 0;
}
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index bc27f8553..d37b69b00 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -811,18 +811,14 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
background.setState(KEY_PREVIEW_BACKGROUND_DEFAULT_STATE);
background.setAlpha(PREVIEW_ALPHA);
}
- final String label = key.isShiftedLetterActivated() ? key.mHintLabel : key.mLabel;
+ final String label = key.getPreviewLabel();
// What we show as preview should match what we show on a key top in onDraw().
if (label != null) {
// TODO Should take care of temporaryShiftLabel here.
previewText.setCompoundDrawables(null, null, null, null);
- if (StringUtils.codePointCount(label) > 1) {
- previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, drawParams.mLetterSize);
- previewText.setTypeface(Typeface.DEFAULT_BOLD);
- } else {
- previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, drawParams.mPreviewTextSize);
- previewText.setTypeface(key.selectTypeface(drawParams));
- }
+ previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+ key.selectPreviewTextSize(drawParams));
+ previewText.setTypeface(key.selectPreviewTypeface(drawParams));
previewText.setText(label);
} else {
previewText.setCompoundDrawables(null, null, null,