diff options
author | 2013-08-07 09:59:41 +0000 | |
---|---|---|
committer | 2013-08-07 09:59:41 +0000 | |
commit | 2cb9a1434ea1d22a37f1396b20670c4b0589c120 (patch) | |
tree | 57bc9ef7869d70ceb148e022ed2de1026f539cec /java/src | |
parent | c05b3b56cc6af7ae33983792b8601c869d2ff4aa (diff) | |
parent | 45d020586258e4c9b2cc317be4e0559088d6e257 (diff) | |
download | latinime-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.java | 9 |
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)) { |