diff options
Diffstat (limited to 'java/src')
6 files changed, 239 insertions, 115 deletions
diff --git a/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java b/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java new file mode 100644 index 000000000..09f39a756 --- /dev/null +++ b/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +import android.view.textservice.TextInfo; + +import com.android.inputmethod.annotations.UsedForTesting; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; + +@UsedForTesting +public final class TextInfoCompatUtils { + // Note that TextInfo.getCharSequence() is supposed to be available in API level 21 and later. + private static final Method TEXT_INFO_GET_CHAR_SEQUENCE = + CompatUtils.getMethod(TextInfo.class, "getCharSequence"); + private static final Constructor<?> TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE = + CompatUtils.getConstructor(TextInfo.class, CharSequence.class, int.class, int.class, + int.class, int.class); + + @UsedForTesting + public static boolean isCharSequenceSupported() { + return TEXT_INFO_GET_CHAR_SEQUENCE != null && + TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE != null; + } + + @UsedForTesting + public static TextInfo newInstance(CharSequence charSequence, int start, int end, int cookie, + int sequenceNumber) { + if (TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE != null) { + return (TextInfo) CompatUtils.newInstance(TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE, + charSequence, start, end, cookie, sequenceNumber); + } + return new TextInfo(charSequence.subSequence(start, end).toString(), cookie, + sequenceNumber); + } + + /** + * Returns the result of {@link TextInfo#getCharSequence()} when available. Otherwise returns + * the result of {@link TextInfo#getText()} as fall back. + * @param textInfo the instance for which {@link TextInfo#getCharSequence()} or + * {@link TextInfo#getText()} is called. + * @return the result of {@link TextInfo#getCharSequence()} when available. Otherwise returns + * the result of {@link TextInfo#getText()} as fall back. If {@code textInfo} is {@code null}, + * returns {@code null}. + */ + @UsedForTesting + public static CharSequence getCharSequenceOrString(final TextInfo textInfo) { + final CharSequence defaultValue = (textInfo == null ? null : textInfo.getText()); + return (CharSequence) CompatUtils.invoke(textInfo, defaultValue, + TEXT_INFO_GET_CHAR_SEQUENCE); + } +} diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index ed3b2b347..665d9f7a1 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -148,33 +148,28 @@ public class Key implements Comparable<Key> { public final int mAltCode; /** Icon for disabled state */ public final int mDisabledIconId; - /** Preview version of the icon, for the preview popup */ - public final int mPreviewIconId; /** The visual insets */ public final int mVisualInsetsLeft; public final int mVisualInsetsRight; private OptionalAttributes(final String outputText, final int altCode, - final int disabledIconId, final int previewIconId, - final int visualInsetsLeft, final int visualInsetsRight) { + final int disabledIconId, final int visualInsetsLeft, final int visualInsetsRight) { mOutputText = outputText; mAltCode = altCode; mDisabledIconId = disabledIconId; - mPreviewIconId = previewIconId; mVisualInsetsLeft = visualInsetsLeft; mVisualInsetsRight = visualInsetsRight; } public static OptionalAttributes newInstance(final String outputText, final int altCode, - final int disabledIconId, final int previewIconId, - final int visualInsetsLeft, final int visualInsetsRight) { + final int disabledIconId, final int visualInsetsLeft, final int visualInsetsRight) { if (outputText == null && altCode == CODE_UNSPECIFIED - && disabledIconId == ICON_UNDEFINED && previewIconId == ICON_UNDEFINED - && visualInsetsLeft == 0 && visualInsetsRight == 0) { + && disabledIconId == ICON_UNDEFINED && visualInsetsLeft == 0 + && visualInsetsRight == 0) { return null; } - return new OptionalAttributes(outputText, altCode, disabledIconId, previewIconId, - visualInsetsLeft, visualInsetsRight); + return new OptionalAttributes(outputText, altCode, disabledIconId, visualInsetsLeft, + visualInsetsRight); } } @@ -204,8 +199,7 @@ public class Key implements Comparable<Key> { mMoreKeysColumnAndFlags = 0; mLabel = label; mOptionalAttributes = OptionalAttributes.newInstance(outputText, CODE_UNSPECIFIED, - ICON_UNDEFINED, ICON_UNDEFINED, - 0 /* visualInsetsLeft */, 0 /* visualInsetsRight */); + ICON_UNDEFINED, 0 /* visualInsetsLeft */, 0 /* visualInsetsRight */); mCode = code; mEnabled = (code != CODE_UNSPECIFIED); mIconId = iconId; @@ -306,8 +300,6 @@ public class Key implements Comparable<Key> { mIconId = KeySpecParser.getIconId(keySpec); final int disabledIconId = KeySpecParser.getIconId(style.getString(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled)); - final int previewIconId = KeySpecParser.getIconId(style.getString(keyAttr, - R.styleable.Keyboard_Key_keyIconPreview)); final int code = KeySpecParser.getCode(keySpec); if ((mLabelFlags & LABEL_FLAGS_FROM_CUSTOM_ACTION_LABEL) != 0) { @@ -361,7 +353,7 @@ public class Key implements Comparable<Key> { final int altCode = StringUtils.toUpperCaseOfCodeForLocale( altCodeInAttr, needsToUpperCase, locale); mOptionalAttributes = OptionalAttributes.newInstance(outputText, altCode, - disabledIconId, previewIconId, visualInsetsLeft, visualInsetsRight); + disabledIconId, visualInsetsLeft, visualInsetsRight); mKeyVisualAttributes = KeyVisualAttributes.newInstance(keyAttr); mHashCode = computeHashCode(this); } @@ -756,10 +748,7 @@ public class Key implements Comparable<Key> { } public Drawable getPreviewIcon(final KeyboardIconsSet iconSet) { - final OptionalAttributes attrs = mOptionalAttributes; - final int previewIconId = (attrs != null) ? attrs.mPreviewIconId : ICON_UNDEFINED; - return previewIconId != ICON_UNDEFINED - ? iconSet.getIconDrawable(previewIconId) : iconSet.getIconDrawable(getIconId()); + return iconSet.getIconDrawable(getIconId()); } public int getWidth() { diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java index 7b41dfef6..4c2e0dd1d 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java @@ -34,7 +34,8 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { public static final int THEME_ID_ICS = 0; public static final int THEME_ID_KLP = 2; - public static final int THEME_ID_LXX_DARK = 3; + public static final int THEME_ID_LXX_LIGHT = 3; + public static final int THEME_ID_LXX_DARK = 4; public static final int DEFAULT_THEME_ID = THEME_ID_KLP; private static final KeyboardTheme[] KEYBOARD_THEMES = { @@ -44,10 +45,12 @@ public final class KeyboardTheme implements Comparable<KeyboardTheme> { new KeyboardTheme(THEME_ID_KLP, R.style.KeyboardTheme_KLP, // Default theme for ICS, JB, and KLP. VERSION_CODES.ICE_CREAM_SANDWICH), - new KeyboardTheme(THEME_ID_LXX_DARK, R.style.KeyboardTheme_LXX_Dark, + new KeyboardTheme(THEME_ID_LXX_LIGHT, R.style.KeyboardTheme_LXX_Light, // Default theme for LXX. // TODO: Update this constant once the *next* version becomes available. VERSION_CODES.CUR_DEVELOPMENT), + new KeyboardTheme(THEME_ID_LXX_DARK, R.style.KeyboardTheme_LXX_Dark, + VERSION_CODES.BASE), }; static { diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java index 0b0e761d2..5cbb34119 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java @@ -141,7 +141,6 @@ public final class KeyStylesSet { readStringArray(keyAttr, R.styleable.Keyboard_Key_additionalMoreKeys); readFlags(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags); readString(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled); - readString(keyAttr, R.styleable.Keyboard_Key_keyIconPreview); readInt(keyAttr, R.styleable.Keyboard_Key_maxMoreKeysColumn); readInt(keyAttr, R.styleable.Keyboard_Key_backgroundType); readFlags(keyAttr, R.styleable.Keyboard_Key_keyActionFlags); diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java index 7146deb4b..09550c4cb 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java @@ -48,7 +48,6 @@ public final class KeyboardIconsSet { public static final String NAME_DONE_KEY = "done_key"; public static final String NAME_PREVIOUS_KEY = "previous_key"; public static final String NAME_TAB_KEY = "tab_key"; - public static final String NANE_TAB_KEY_PREVIEW = "tab_key_preview"; public static final String NAME_SHORTCUT_KEY = "shortcut_key"; public static final String NAME_SHORTCUT_KEY_DISABLED = "shortcut_key_disabled"; public static final String NAME_LANGUAGE_SWITCH_KEY = "language_switch_key"; @@ -79,7 +78,6 @@ public final class KeyboardIconsSet { NAME_SPACE_KEY_FOR_NUMBER_LAYOUT, R.styleable.Keyboard_iconSpaceKeyForNumberLayout, NAME_SHIFT_KEY_SHIFTED, R.styleable.Keyboard_iconShiftKeyShifted, NAME_SHORTCUT_KEY_DISABLED, R.styleable.Keyboard_iconShortcutKeyDisabled, - NANE_TAB_KEY_PREVIEW, R.styleable.Keyboard_iconTabKeyPreview, NAME_LANGUAGE_SWITCH_KEY, R.styleable.Keyboard_iconLanguageSwitchKey, NAME_ZWNJ_KEY, R.styleable.Keyboard_iconZwnjKey, NAME_ZWJ_KEY, R.styleable.Keyboard_iconZwjKey, diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java index 6edc56c55..f18ebd1fe 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java @@ -88,16 +88,16 @@ public final class KeyboardTextsTable { /* 2:30 */ "morekeys_u", /* 3:29 */ "morekeys_e", /* 4:28 */ "morekeys_i", - /* 5:24 */ "keylabel_to_alpha", + /* 5:28 */ "keylabel_to_alpha", /* 6:23 */ "morekeys_c", /* 7:23 */ "double_quotes", /* 8:22 */ "morekeys_n", /* 9:22 */ "single_quotes", /* 10:20 */ "morekeys_s", - /* 11:14 */ "morekeys_y", - /* 12:13 */ "morekeys_d", - /* 13:12 */ "morekeys_z", - /* 14:11 */ "keyspec_currency", + /* 11:15 */ "keyspec_currency", + /* 12:14 */ "morekeys_y", + /* 13:13 */ "morekeys_d", + /* 14:12 */ "morekeys_z", /* 15:10 */ "morekeys_t", /* 16:10 */ "morekeys_l", /* 17: 9 */ "morekeys_g", @@ -266,12 +266,10 @@ public final class KeyboardTextsTable { /* double_quotes */ "!text/double_lqm_rqm", /* morekeys_n */ EMPTY, /* single_quotes */ "!text/single_lqm_rqm", - /* morekeys_s ~ */ - EMPTY, EMPTY, EMPTY, EMPTY, - /* ~ morekeys_z */ + /* morekeys_s */ EMPTY, /* keyspec_currency */ "$", - /* morekeys_t ~ */ - EMPTY, EMPTY, EMPTY, + /* morekeys_y ~ */ + EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, /* ~ morekeys_g */ /* single_angle_quotes */ "!text/single_laqm_raqm", /* double_angle_quotes */ "!text/double_laqm_raqm", @@ -516,8 +514,9 @@ public final class KeyboardTextsTable { // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE /* morekeys_n */ "\u00F1,\u0144", - /* single_quotes */ null, - /* morekeys_s */ null, + /* single_quotes ~ */ + null, null, null, + /* ~ keyspec_currency */ // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+0133: "ij" LATIN SMALL LIGATURE IJ /* morekeys_y */ "\u00FD,\u0133", @@ -697,7 +696,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+0161: "š" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161", - /* morekeys_y ~ */ + /* keyspec_currency ~ */ null, null, null, null, null, null, /* ~ morekeys_l */ // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE @@ -753,8 +752,8 @@ public final class KeyboardTextsTable { /* double_quotes */ "!text/double_9qm_lqm", }; - /* Locale bn: Bengali */ - private static final String[] TEXTS_bn = { + /* Locale bn_IN: Bengali (India) */ + private static final String[] TEXTS_bn_IN = { /* morekeys_a ~ */ null, null, null, null, null, /* ~ morekeys_i */ @@ -764,8 +763,8 @@ public final class KeyboardTextsTable { // U+0997: "ग" BENGALI LETTER GA /* keylabel_to_alpha */ "\u0995\u0996\u0997", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+09F3: "৳" BENGALI RUPEE SIGN /* keyspec_currency */ "\u09F3", }; @@ -904,6 +903,7 @@ public final class KeyboardTextsTable { // U+00DF: "ß" LATIN SMALL LETTER SHARP S // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE /* morekeys_s */ "\u0161,\u00DF,\u015B", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", @@ -913,7 +913,6 @@ public final class KeyboardTextsTable { // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE /* morekeys_z */ "\u017E,\u017A,\u017C", - /* keyspec_currency */ null, // U+0165: "ť" LATIN SMALL LETTER T WITH CARON /* morekeys_t */ "\u0165", /* morekeys_l */ null, @@ -963,14 +962,14 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+0161: "š" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u00DF,\u015B,\u0161", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", // U+00F0: "ð" LATIN SMALL LETTER ETH /* morekeys_d */ "\u00F0", - /* morekeys_z ~ */ - null, null, null, - /* ~ morekeys_t */ + /* morekeys_z */ null, + /* morekeys_t */ null, // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE /* morekeys_l */ "\u0142", /* morekeys_g */ null, @@ -1039,7 +1038,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+0161: "š" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u00DF,\u015B,\u0161", - /* morekeys_y ~ */ + /* keyspec_currency ~ */ null, null, null, null, null, null, null, /* ~ morekeys_g */ /* single_angle_quotes */ "!text/single_raqm_laqm", @@ -1200,6 +1199,7 @@ public final class KeyboardTextsTable { // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA /* morekeys_s */ "\u00DF,\u0161,\u015B,\u0219,\u015F", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS @@ -1213,7 +1213,6 @@ public final class KeyboardTextsTable { // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON /* morekeys_z */ "\u017A,\u017C,\u017E", - /* keyspec_currency */ null, // U+0165: "ť" LATIN SMALL LETTER T WITH CARON // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA @@ -1398,6 +1397,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", @@ -1407,7 +1407,6 @@ public final class KeyboardTextsTable { // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE /* morekeys_z */ "\u017E,\u017C,\u017A", - /* keyspec_currency */ null, // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA // U+0165: "ť" LATIN SMALL LETTER T WITH CARON /* morekeys_t */ "\u0163,\u0165", @@ -1505,13 +1504,13 @@ public final class KeyboardTextsTable { // U+067E: "پ" ARABIC LETTER PEH /* keylabel_to_alpha */ "\u0627\u200C\u0628\u200C\u067E", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+FDFC: "﷼" RIAL SIGN /* keyspec_currency */ "\uFDFC", - /* morekeys_t ~ */ + /* morekeys_y ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, + null, null, null, null, null, /* ~ morekeys_cyrillic_soft_sign */ // U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE /* keyspec_symbols_1 */ "\u06F1", @@ -1663,14 +1662,15 @@ public final class KeyboardTextsTable { // U+00DF: "ß" LATIN SMALL LETTER SHARP S // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE /* morekeys_s */ "\u0161,\u00DF,\u015B", - /* morekeys_y */ null, - /* morekeys_d */ null, + /* keyspec_currency ~ */ + null, null, null, + /* ~ morekeys_d */ // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE /* morekeys_z */ "\u017E,\u017A,\u017C", - /* keyspec_currency ~ */ - null, null, null, null, null, null, null, null, null, + /* morekeys_t ~ */ + null, null, null, null, null, null, null, null, /* ~ morekeys_cyrillic_ie */ // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE /* keyspec_nordic_row1_11 */ "\u00E5", @@ -1737,14 +1737,14 @@ public final class KeyboardTextsTable { // U+010D: "č" LATIN SMALL LETTER C WITH CARON /* morekeys_c */ "\u00E7,%,\u0107,\u010D", /* double_quotes ~ */ - null, null, null, null, - /* ~ morekeys_s */ + null, null, null, null, null, + /* ~ keyspec_currency */ // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "%,\u00FF", /* morekeys_d ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, /* ~ keyspec_tablet_comma */ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE /* keyspec_swiss_row1_11 */ "\u00E8", @@ -1826,13 +1826,13 @@ public final class KeyboardTextsTable { // U+0917: "ग" DEVANAGARI LETTER GA /* keylabel_to_alpha */ "\u0915\u0916\u0917", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20B9: "₹" INDIAN RUPEE SIGN /* keyspec_currency */ "\u20B9", - /* morekeys_t ~ */ + /* morekeys_y ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, + null, null, null, null, null, /* ~ morekeys_cyrillic_soft_sign */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", @@ -1886,6 +1886,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+00DF: "ß" LATIN SMALL LETTER SHARP S /* morekeys_s */ "\u0161,\u015B,\u00DF", + /* keyspec_currency */ null, /* morekeys_y */ null, // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE /* morekeys_d */ "\u0111", @@ -1893,8 +1894,8 @@ public final class KeyboardTextsTable { // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE /* morekeys_z */ "\u017E,\u017A,\u017C", - /* keyspec_currency ~ */ - null, null, null, null, + /* morekeys_t ~ */ + null, null, null, /* ~ morekeys_g */ /* single_angle_quotes */ "!text/single_raqm_laqm", /* double_angle_quotes */ "!text/double_raqm_laqm", @@ -2063,13 +2064,13 @@ public final class KeyboardTextsTable { /* morekeys_n */ null, /* single_quotes */ "!text/single_9qm_lqm", /* morekeys_s */ null, + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", // U+00F0: "ð" LATIN SMALL LETTER ETH /* morekeys_d */ "\u00F0", /* morekeys_z */ null, - /* keyspec_currency */ null, // U+00FE: "þ" LATIN SMALL LETTER THORN /* morekeys_t */ "\u00FE", }; @@ -2151,16 +2152,14 @@ public final class KeyboardTextsTable { /* double_quotes */ "!text/double_rqm_9qm", /* morekeys_n */ null, /* single_quotes */ "!text/single_rqm_9qm", - /* morekeys_s ~ */ - null, null, null, null, - /* ~ morekeys_z */ + /* morekeys_s */ null, // U+20AA: "₪" NEW SHEQEL SIGN /* keyspec_currency */ "\u20AA", - /* morekeys_t ~ */ + /* morekeys_y ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, + null, null, null, null, null, /* ~ morekeys_swiss_row2_11 */ // U+2605: "★" BLACK STAR /* morekeys_star */ "\u2605", @@ -2294,6 +2293,23 @@ public final class KeyboardTextsTable { /* morekeys_currency_dollar */ "\u17DB,\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", }; + /* Locale kn_IN: Kannada (India) */ + private static final String[] TEXTS_kn_IN = { + /* morekeys_a ~ */ + null, null, null, null, null, + /* ~ morekeys_i */ + // Label for "switch to alphabetic" key. + // U+0C85: "ಅ" KANNADA LETTER A + // U+0C86: "ಆ" KANNADA LETTER AA + // U+0C87: "ಇ" KANNADA LETTER I + /* keylabel_to_alpha */ "\u0C85\u0C86\u0C87", + /* morekeys_c ~ */ + null, null, null, null, null, + /* ~ morekeys_s */ + // U+20B9: "₹" INDIAN RUPEE SIGN + /* keyspec_currency */ "\u20B9", + }; + /* Locale ky: Kirghiz */ private static final String[] TEXTS_ky = { /* morekeys_a ~ */ @@ -2349,8 +2365,8 @@ public final class KeyboardTextsTable { // U+0E84: "ຄ" LAO LETTER KHO TAM /* keylabel_to_alpha */ "\u0E81\u0E82\u0E84", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20AD: "₭" KIP SIGN /* keyspec_currency */ "\u20AD", }; @@ -2419,6 +2435,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", @@ -2428,7 +2445,6 @@ public final class KeyboardTextsTable { // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE /* morekeys_z */ "\u017E,\u017C,\u017A", - /* keyspec_currency */ null, // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA // U+0165: "ť" LATIN SMALL LETTER T WITH CARON /* morekeys_t */ "\u0163,\u0165", @@ -2513,6 +2529,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", @@ -2522,7 +2539,6 @@ public final class KeyboardTextsTable { // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE /* morekeys_z */ "\u017E,\u017C,\u017A", - /* keyspec_currency */ null, // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA // U+0165: "ť" LATIN SMALL LETTER T WITH CARON /* morekeys_t */ "\u0163,\u0165", @@ -2582,6 +2598,21 @@ public final class KeyboardTextsTable { /* keyspec_south_slavic_row3_8 */ "\u0453", }; + /* Locale ml_IN: Malayalam (India) */ + private static final String[] TEXTS_ml_IN = { + /* morekeys_a ~ */ + null, null, null, null, null, + /* ~ morekeys_i */ + // Label for "switch to alphabetic" key. + // U+0D05: "അ" MALAYALAM LETTER A + /* keylabel_to_alpha */ "\u0D05", + /* morekeys_c ~ */ + null, null, null, null, null, + /* ~ morekeys_s */ + // U+20B9: "₹" INDIAN RUPEE SIGN + /* keyspec_currency */ "\u20B9", + }; + /* Locale mn_MN: Mongolian (Mongolia) */ private static final String[] TEXTS_mn_MN = { /* morekeys_a ~ */ @@ -2593,8 +2624,8 @@ public final class KeyboardTextsTable { // U+0412: "В" CYRILLIC CAPITAL LETTER VE /* keylabel_to_alpha */ "\u0410\u0411\u0412", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20AE: "₮" TUGRIK SIGN /* keyspec_currency */ "\u20AE", }; @@ -2610,13 +2641,13 @@ public final class KeyboardTextsTable { // U+0917: "ग" DEVANAGARI LETTER GA /* keylabel_to_alpha */ "\u0915\u0916\u0917", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+20B9: "₹" INDIAN RUPEE SIGN /* keyspec_currency */ "\u20B9", - /* morekeys_t ~ */ + /* morekeys_y ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, + null, null, null, null, null, /* ~ morekeys_cyrillic_soft_sign */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", @@ -2757,13 +2788,13 @@ public final class KeyboardTextsTable { // U+0917: "ग" DEVANAGARI LETTER GA /* keylabel_to_alpha */ "\u0915\u0916\u0917", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN /* keyspec_currency */ "\u0930\u0941.", - /* morekeys_t ~ */ + /* morekeys_y ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, + null, null, null, null, null, /* ~ morekeys_cyrillic_soft_sign */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", @@ -2849,6 +2880,7 @@ public final class KeyboardTextsTable { /* morekeys_n */ "\u00F1,\u0144", /* single_quotes */ "!text/single_9qm_rqm", /* morekeys_s */ null, + /* keyspec_currency */ null, // U+0133: "ij" LATIN SMALL LIGATURE IJ /* morekeys_y */ "\u0133", }; @@ -2898,13 +2930,13 @@ public final class KeyboardTextsTable { // U+00DF: "ß" LATIN SMALL LETTER SHARP S // U+0161: "š" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u015B,\u00DF,\u0161", - /* morekeys_y */ null, - /* morekeys_d */ null, + /* keyspec_currency ~ */ + null, null, null, + /* ~ morekeys_d */ // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON /* morekeys_z */ "\u017C,\u017A,\u017E", - /* keyspec_currency */ null, /* morekeys_t */ null, // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE /* morekeys_l */ "\u0142", @@ -3004,9 +3036,9 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+0161: "š" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u0219,\u00DF,\u015B,\u0161", - /* morekeys_y ~ */ + /* keyspec_currency ~ */ null, null, null, null, - /* ~ keyspec_currency */ + /* ~ morekeys_z */ // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW /* morekeys_t */ "\u021B", }; @@ -3120,6 +3152,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", @@ -3129,7 +3162,6 @@ public final class KeyboardTextsTable { // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE /* morekeys_z */ "\u017E,\u017C,\u017A", - /* keyspec_currency */ null, // U+0165: "ť" LATIN SMALL LETTER T WITH CARON // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA /* morekeys_t */ "\u0165,\u0163", @@ -3164,13 +3196,14 @@ public final class KeyboardTextsTable { /* single_quotes */ "!text/single_9qm_lqm", // U+0161: "š" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u0161", + /* keyspec_currency */ null, /* morekeys_y */ null, // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE /* morekeys_d */ "\u0111", // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON /* morekeys_z */ "\u017E", - /* keyspec_currency ~ */ - null, null, null, null, + /* morekeys_t ~ */ + null, null, null, /* ~ morekeys_g */ /* single_angle_quotes */ "!text/single_raqm_laqm", /* double_angle_quotes */ "!text/double_raqm_laqm", @@ -3284,6 +3317,7 @@ public final class KeyboardTextsTable { // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA // U+00DF: "ß" LATIN SMALL LETTER SHARP S /* morekeys_s */ "\u015B,\u0161,\u015F,\u00DF", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS /* morekeys_y */ "\u00FD,\u00FF", @@ -3294,7 +3328,6 @@ public final class KeyboardTextsTable { // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE /* morekeys_z */ "\u017A,\u017E,\u017C", - /* keyspec_currency */ null, // U+0165: "ť" LATIN SMALL LETTER T WITH CARON // U+00FE: "þ" LATIN SMALL LETTER THORN /* morekeys_t */ "\u0165,\u00FE", @@ -3372,12 +3405,46 @@ public final class KeyboardTextsTable { /* single_quotes */ null, // U+00DF: "ß" LATIN SMALL LETTER SHARP S /* morekeys_s */ "\u00DF", - /* morekeys_y ~ */ + /* keyspec_currency ~ */ null, null, null, null, null, null, /* ~ morekeys_l */ /* morekeys_g */ "g\'", }; + /* Locale ta_IN: Tamil (India) */ + private static final String[] TEXTS_ta_IN = { + /* morekeys_a ~ */ + null, null, null, null, null, + /* ~ morekeys_i */ + // Label for "switch to alphabetic" key. + // U+0BA4: "த" TAMIL LETTER TA + // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I + // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA + /* keylabel_to_alpha */ "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD", + /* morekeys_c ~ */ + null, null, null, null, null, + /* ~ morekeys_s */ + // U+0BF9: "௹" TAMIL RUPEE SIGN + /* keyspec_currency */ "\u0BF9", + }; + + /* Locale te_IN: Telugu (India) */ + private static final String[] TEXTS_te_IN = { + /* morekeys_a ~ */ + null, null, null, null, null, + /* ~ morekeys_i */ + // Label for "switch to alphabetic" key. + // U+0C05: "అ" TELUGU LETTER A + // U+0C06: "ఆ" TELUGU LETTER AA + // U+0C07: "ఇ" TELUGU LETTER I + /* keylabel_to_alpha */ "\u0C05\u0C06\u0C07", + /* morekeys_c ~ */ + null, null, null, null, null, + /* ~ morekeys_s */ + // U+20B9: "₹" INDIAN RUPEE SIGN + /* keyspec_currency */ "\u20B9", + }; + /* Locale th: Thai */ private static final String[] TEXTS_th = { /* morekeys_a ~ */ @@ -3389,8 +3456,8 @@ public final class KeyboardTextsTable { // U+0E04: "ค" THAI CHARACTER KHO KHWAI /* keylabel_to_alpha */ "\u0E01\u0E02\u0E04", /* morekeys_c ~ */ - null, null, null, null, null, null, null, null, - /* ~ morekeys_z */ + null, null, null, null, null, + /* ~ morekeys_s */ // U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT /* keyspec_currency */ "\u0E3F", }; @@ -3491,7 +3558,7 @@ public final class KeyboardTextsTable { // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE // U+0161: "š" LATIN SMALL LETTER S WITH CARON /* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161", - /* morekeys_y ~ */ + /* keyspec_currency ~ */ null, null, null, null, null, null, /* ~ morekeys_l */ // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE @@ -3512,13 +3579,11 @@ public final class KeyboardTextsTable { /* double_quotes */ "!text/double_9qm_lqm", /* morekeys_n */ null, /* single_quotes */ "!text/single_9qm_lqm", - /* morekeys_s ~ */ - null, null, null, null, - /* ~ morekeys_z */ + /* morekeys_s */ null, // U+20B4: "₴" HRYVNIA SIGN /* keyspec_currency */ "\u20B4", - /* morekeys_t ~ */ - null, null, null, null, null, null, null, null, null, null, null, null, + /* morekeys_y ~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, /* ~ morekeys_nordic_row2_10 */ // U+0449: "щ" CYRILLIC SMALL LETTER SHCHA /* keyspec_east_slavic_row1_9 */ "\u0449", @@ -3615,6 +3680,8 @@ public final class KeyboardTextsTable { /* keylabel_to_alpha ~ */ null, null, null, null, null, null, /* ~ morekeys_s */ + // U+20AB: "₫" DONG SIGN + /* keyspec_currency */ "\u20AB", // U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+1EF7: "ỷ" LATIN SMALL LETTER Y WITH HOOK ABOVE @@ -3623,9 +3690,6 @@ public final class KeyboardTextsTable { /* morekeys_y */ "\u1EF3,\u00FD,\u1EF7,\u1EF9,\u1EF5", // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE /* morekeys_d */ "\u0111", - /* morekeys_z */ null, - // U+20AB: "₫" DONG SIGN - /* keyspec_currency */ "\u20AB", }; /* Locale zu: Zulu */ @@ -3759,6 +3823,7 @@ public final class KeyboardTextsTable { // U+0161: "š" LATIN SMALL LETTER S WITH CARON // U+017F: "ſ" LATIN SMALL LETTER LONG S /* morekeys_s */ "\u00DF,\u015B,\u015D,\u015F,\u0161,\u017F", + /* keyspec_currency */ null, // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS @@ -3772,7 +3837,6 @@ public final class KeyboardTextsTable { // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON /* morekeys_z */ "\u017A,\u017C,\u017E", - /* keyspec_currency */ null, // U+00FE: "þ" LATIN SMALL LETTER THORN // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA // U+0165: "ť" LATIN SMALL LETTER T WITH CARON @@ -3819,12 +3883,12 @@ public final class KeyboardTextsTable { private static final Object[] LOCALES_AND_TEXTS = { // "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */ "DEFAULT", TEXTS_DEFAULT, /* 168/168 DEFAULT */ - "af" , TEXTS_af, /* 7/ 12 Afrikaans */ + "af" , TEXTS_af, /* 7/ 13 Afrikaans */ "ar" , TEXTS_ar, /* 55/110 Arabic */ "az_AZ" , TEXTS_az_AZ, /* 8/ 18 Azerbaijani (Azerbaijan) */ "be_BY" , TEXTS_be_BY, /* 9/ 32 Belarusian (Belarus) */ "bg" , TEXTS_bg, /* 2/ 8 Bulgarian */ - "bn" , TEXTS_bn, /* 2/ 15 Bengali */ + "bn_IN" , TEXTS_bn_IN, /* 2/ 12 Bengali (India) */ "ca" , TEXTS_ca, /* 11/ 96 Catalan */ "cs" , TEXTS_cs, /* 17/ 21 Czech */ "da" , TEXTS_da, /* 19/ 54 Danish */ @@ -3849,17 +3913,19 @@ public final class KeyboardTextsTable { "ka_GE" , TEXTS_ka_GE, /* 3/ 10 Georgian (Georgia) */ "kk" , TEXTS_kk, /* 15/121 Kazakh */ "km_KH" , TEXTS_km_KH, /* 2/122 Khmer (Cambodia) */ + "kn_IN" , TEXTS_kn_IN, /* 2/ 12 Kannada (India) */ "ky" , TEXTS_ky, /* 10/ 89 Kirghiz */ - "lo_LA" , TEXTS_lo_LA, /* 2/ 15 Lao (Laos) */ + "lo_LA" , TEXTS_lo_LA, /* 2/ 12 Lao (Laos) */ "lt" , TEXTS_lt, /* 18/ 22 Lithuanian */ "lv" , TEXTS_lv, /* 18/ 22 Latvian */ "mk" , TEXTS_mk, /* 9/ 94 Macedonian */ - "mn_MN" , TEXTS_mn_MN, /* 2/ 15 Mongolian (Mongolia) */ + "ml_IN" , TEXTS_ml_IN, /* 2/ 12 Malayalam (India) */ + "mn_MN" , TEXTS_mn_MN, /* 2/ 12 Mongolian (Mongolia) */ "mr_IN" , TEXTS_mr_IN, /* 23/ 53 Marathi (India) */ "my_MM" , TEXTS_my_MM, /* 8/104 Burmese (Myanmar) */ "nb" , TEXTS_nb, /* 11/ 54 Norwegian Bokmål */ "ne_NP" , TEXTS_ne_NP, /* 23/ 53 Nepali (Nepal) */ - "nl" , TEXTS_nl, /* 9/ 12 Dutch */ + "nl" , TEXTS_nl, /* 9/ 13 Dutch */ "pl" , TEXTS_pl, /* 10/ 17 Polish */ "pt" , TEXTS_pt, /* 6/ 7 Portuguese */ "rm" , TEXTS_rm, /* 1/ 2 Raeto-Romance */ @@ -3871,11 +3937,13 @@ public final class KeyboardTextsTable { "sr" , TEXTS_sr, /* 11/ 94 Serbian */ "sv" , TEXTS_sv, /* 21/ 54 Swedish */ "sw" , TEXTS_sw, /* 9/ 18 Swahili */ - "th" , TEXTS_th, /* 2/ 15 Thai */ + "ta_IN" , TEXTS_ta_IN, /* 2/ 12 Tamil (India) */ + "te_IN" , TEXTS_te_IN, /* 2/ 12 Telugu (India) */ + "th" , TEXTS_th, /* 2/ 12 Thai */ "tl" , TEXTS_tl, /* 7/ 9 Tagalog */ "tr" , TEXTS_tr, /* 7/ 18 Turkish */ "uk" , TEXTS_uk, /* 11/ 88 Ukrainian */ - "vi" , TEXTS_vi, /* 8/ 15 Vietnamese */ + "vi" , TEXTS_vi, /* 8/ 14 Vietnamese */ "zu" , TEXTS_zu, /* 8/ 11 Zulu */ "zz" , TEXTS_zz, /* 19/112 Alphabet */ }; |