aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-08-07 09:59:41 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-08-07 09:59:41 +0000
commit2cb9a1434ea1d22a37f1396b20670c4b0589c120 (patch)
tree57bc9ef7869d70ceb148e022ed2de1026f539cec /java/src
parentc05b3b56cc6af7ae33983792b8601c869d2ff4aa (diff)
parent45d020586258e4c9b2cc317be4e0559088d6e257 (diff)
downloadlatinime-2cb9a1434ea1d22a37f1396b20670c4b0589c120.tar.gz
latinime-2cb9a1434ea1d22a37f1396b20670c4b0589c120.tar.xz
latinime-2cb9a1434ea1d22a37f1396b20670c4b0589c120.zip
Merge "Make key label from supplementary code point"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 09f1145e9..61805286d 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -306,8 +306,15 @@ public class Key implements Comparable<Key> {
}
mActionFlags = actionFlags;
+ final int code = KeySpecParser.parseCode(style.getString(keyAttr,
+ R.styleable.Keyboard_Key_code), params.mCodesSet, CODE_UNSPECIFIED);
if ((mLabelFlags & LABEL_FLAGS_FROM_CUSTOM_ACTION_LABEL) != 0) {
mLabel = params.mId.mCustomActionLabel;
+ } else if (code >= Character.MIN_SUPPLEMENTARY_CODE_POINT) {
+ // This is a workaround to have a key that has a supplementary code point in its label.
+ // Because we can put a string in resource neither as a XML entity of a supplementary
+ // code point nor as a surrogate pair.
+ mLabel = new StringBuilder().appendCodePoint(code).toString();
} else {
mLabel = KeySpecParser.toUpperCaseOfStringForLocale(style.getString(keyAttr,
R.styleable.Keyboard_Key_keyLabel), needsToUpperCase, locale);
@@ -320,8 +327,6 @@ public class Key implements Comparable<Key> {
}
String outputText = KeySpecParser.toUpperCaseOfStringForLocale(style.getString(keyAttr,
R.styleable.Keyboard_Key_keyOutputText), needsToUpperCase, locale);
- final int code = KeySpecParser.parseCode(style.getString(keyAttr,
- R.styleable.Keyboard_Key_code), params.mCodesSet, CODE_UNSPECIFIED);
// Choose the first letter of the label as primary code if not specified.
if (code == CODE_UNSPECIFIED && TextUtils.isEmpty(outputText)
&& !TextUtils.isEmpty(mLabel)) {