aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-08-07 15:18:20 +0900
committerTadashi G. Takaoka <takaoka@google.com>2013-08-07 18:34:20 +0900
commit45d020586258e4c9b2cc317be4e0559088d6e257 (patch)
tree06db4f787efb9c21a3b2a563b117e0311fa8d124 /java/src
parent0f47d5163dabb7b4205826dd2d829a55c8621577 (diff)
downloadlatinime-45d020586258e4c9b2cc317be4e0559088d6e257.tar.gz
latinime-45d020586258e4c9b2cc317be4e0559088d6e257.tar.xz
latinime-45d020586258e4c9b2cc317be4e0559088d6e257.zip
Make key label from supplementary code point
Change-Id: I0a7834b5c4908a2116a8772cf85985ab8bed7091
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)) {