Merge "Rename PopupCharactersParser to MoreKeySpecParser"

This commit is contained in:
Tadashi G. Takaoka 2011-08-31 02:39:03 -07:00 committed by Android (Google) Code Review
commit dcb1c7b802
93 changed files with 697 additions and 690 deletions

View file

@ -25,7 +25,7 @@
<bool name="config_enable_show_popup_on_keypress_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool>
<bool name="config_sliding_key_input_enabled">false</bool>
<bool name="config_digit_popup_characters_enabled">false</bool>
<bool name="config_digit_more_keys_enabled">false</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">false</bool>
<bool name="config_default_sound_enabled">true</bool>
@ -39,5 +39,5 @@
<!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
<string name="config_default_keyboard_theme_id" translatable="false">5</string>
<string name="config_text_size_of_language_on_spacebar" translatable="false">medium</string>
<integer name="config_max_mini_keyboard_column">5</integer>
<integer name="config_max_more_keys_column">5</integer>
</resources>

View file

@ -25,7 +25,7 @@
<bool name="config_enable_show_popup_on_keypress_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool>
<bool name="config_sliding_key_input_enabled">false</bool>
<bool name="config_digit_popup_characters_enabled">false</bool>
<bool name="config_digit_more_keys_enabled">false</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">false</bool>
<bool name="config_default_sound_enabled">true</bool>
@ -37,7 +37,7 @@
<!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
<string name="config_default_keyboard_theme_id" translatable="false">5</string>
<string name="config_text_size_of_language_on_spacebar" translatable="false">medium</string>
<integer name="config_max_mini_keyboard_column">5</integer>
<integer name="config_max_more_keys_column">5</integer>
<!-- Screen metrics for logging. 0 = "mdpi", 1 = "hdpi", 2 = "xlarge" -->
<integer name="log_screen_metrics">2</integer>
</resources>

View file

@ -95,8 +95,8 @@
<!-- Amount to offset the touch Y coordinate by, for bias correction. -->
<attr name="verticalCorrection" format="dimension" />
<!-- Layout resource for popup panel -->
<attr name="popupLayout" format="reference" />
<!-- Layout resource for more keys panel -->
<attr name="moreKeysLayout" format="reference" />
<attr name="shadowColor" format="color" />
<attr name="shadowRadius" format="float" />
@ -153,8 +153,8 @@
<attr name="horizontalGap" format="dimension|fraction" />
<!-- Default vertical gap between rows of keys. -->
<attr name="verticalGap" format="dimension|fraction" />
<!-- Popup panel layout template -->
<attr name="popupTemplate" format="reference" />
<!-- More keys keyboard layout template -->
<attr name="moreKeysTemplate" format="reference" />
<!-- Locale of the keyboard layout -->
<attr name="keyboardLocale" format="string" />
<!-- True if the keyboard is Right-To-Left -->
@ -178,10 +178,10 @@
<declare-styleable name="Keyboard_Key">
<!-- The unicode value that this key outputs. -->
<attr name="code" format="integer" />
<!-- The characters to display in the popup keyboard. -->
<attr name="popupCharacters" format="string" />
<!-- Maximum column of mini keyboard -->
<attr name="maxMiniKeyboardColumn" format="integer" />
<!-- The keys to display in the more keys keyboard. -->
<attr name="moreKeys" format="string" />
<!-- Maximum column of more keys keyboard -->
<attr name="maxMoreKeysColumn" format="integer" />
<!-- Whether this is a functional key which has different key top than normal key. -->
<attr name="isFunctional" format="boolean" />
<!-- Whether this is a toggle key. -->

View file

@ -27,7 +27,7 @@
<bool name="config_enable_bigram_suggestions_option">true</bool>
<bool name="config_enable_usability_study_mode_option">false</bool>
<bool name="config_sliding_key_input_enabled">true</bool>
<bool name="config_digit_popup_characters_enabled">true</bool>
<bool name="config_digit_more_keys_enabled">true</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">true</bool>
<!-- Default value for bigram suggestion: while showing candidates for a word should we weigh
@ -67,7 +67,7 @@
<!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
<string name="config_default_keyboard_theme_id" translatable="false">5</string>
<string name="config_text_size_of_language_on_spacebar" translatable="false">small</string>
<integer name="config_max_mini_keyboard_column">5</integer>
<integer name="config_max_more_keys_column">5</integer>
<string-array name="auto_correction_threshold_values" translatable="false">
<!-- Off, When auto correction setting is Off, this value is not used. -->
<item></item>

View file

@ -21,12 +21,12 @@
<item name="keyboardHeight">@dimen/keyboardHeight</item>
<item name="maxKeyboardHeight">@fraction/maxKeyboardHeight</item>
<item name="minKeyboardHeight">@fraction/minKeyboardHeight</item>
<item name="popupTemplate">@xml/kbd_mini_keyboard_template</item>
<item name="moreKeysTemplate">@xml/kbd_mini_keyboard_template</item>
<item name="keyboardTopPadding">@fraction/keyboard_top_padding</item>
<item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding</item>
<item name="horizontalGap">@fraction/key_horizontal_gap</item>
<item name="verticalGap">@fraction/key_bottom_gap</item>
<item name="maxMiniKeyboardColumn">@integer/config_max_mini_keyboard_column</item>
<item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
</style>
<style name="LatinKeyboard">
<item name="autoCorrectionSpacebarLedEnabled">@bool/config_auto_correction_spacebar_led_enabled
@ -61,7 +61,7 @@
<item name="keyPreviewOffset">@dimen/key_preview_offset</item>
<item name="keyPreviewHeight">@dimen/key_preview_height</item>
<item name="keyPreviewTextRatio">@fraction/key_preview_text_ratio</item>
<item name="popupLayout">@layout/mini_keyboard</item>
<item name="moreKeysLayout">@layout/mini_keyboard</item>
<item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>
<item name="shadowColor">#BB000000</item>
<item name="shadowRadius">2.75</item>

View file

@ -38,7 +38,7 @@
<key-style
latin:styleName="f2PopupStyle"
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="\@icon/3|\@integer/key_settings"
latin:moreKeys="\@icon/3|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
@ -72,8 +72,8 @@
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxMiniKeyboardColumn="5" />
latin:moreKeys="@string/alternates_for_smiley"
latin:maxMoreKeysColumn="5" />
<key-style
latin:styleName="shortcutKeyStyle"
latin:code="@integer/key_shortcut"
@ -117,5 +117,5 @@
latin:keyLabel="@string/keylabel_for_popular_domain"
latin:keyLabelOption="fontNormal|hasPopupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
latin:popupCharacters="@string/alternates_for_popular_domain" />
latin:moreKeys="@string/alternates_for_popular_domain" />
</merge>

View file

@ -26,34 +26,34 @@
>
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"

View file

@ -26,29 +26,29 @@
>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a"
latin:moreKeys="@string/alternates_for_a"
latin:keyXPos="4.5%p" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"

View file

@ -29,20 +29,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include

View file

@ -47,7 +47,7 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\@"
latin:popupCharacters="\@" />
latin:moreKeys="\@" />
</default>
</switch>
<Key

View file

@ -35,12 +35,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
latin:popupCharacters="!" />
latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
latin:moreKeys="\?" />
</default>
</switch>
</merge>

View file

@ -37,7 +37,7 @@
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="_"
latin:popupCharacters="_"
latin:moreKeys="_"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth" />
</case>
@ -48,7 +48,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
latin:popupCharacters="+"
latin:moreKeys="+"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth" />
</case>

View file

@ -35,14 +35,14 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel=":"
latin:popupCharacters=":" />
latin:moreKeys=":" />
</case>
<default>
<Key
latin:keyLabel="@string/keylabel_for_apostrophe"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_apostrophe"
latin:popupCharacters="@string/alternates_for_apostrophe" />
latin:moreKeys="@string/alternates_for_apostrophe" />
</default>
</switch>
<switch>
@ -57,7 +57,7 @@
latin:keyLabel="@string/keylabel_for_dash"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_dash"
latin:popupCharacters="@string/alternates_for_dash" />
latin:moreKeys="@string/alternates_for_dash" />
</default>
</switch>
</merge>

View file

@ -36,7 +36,7 @@
latin:keyLabel="ق" />
<Key
latin:keyLabel="ف"
latin:popupCharacters="ڤ" />
latin:moreKeys="ڤ" />
<Key
latin:keyLabel="غ" />
<Key
@ -45,14 +45,14 @@
\u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
<Key
latin:keyLabel="ه"
latin:popupCharacters="\ufeeb|\u0647\u0640" />
latin:moreKeys="\ufeeb|\u0647\u0640" />
<Key
latin:keyLabel="خ" />
<Key
latin:keyLabel="ح" />
<Key
latin:keyLabel="ج"
latin:popupCharacters="چ" />
latin:moreKeys="چ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@ -70,7 +70,7 @@
latin:keyLabel="ي" />
<Key
latin:keyLabel="ب"
latin:popupCharacters="پ" />
latin:moreKeys="پ" />
<!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
\u0644: ARABIC LETTER LAM
\u0627: ARABIC LETTER ALEF
@ -82,13 +82,13 @@
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ل"
latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
<!-- \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
\u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ا"
latin:popupCharacters="\u0623,\u0625,\u0622" />
latin:moreKeys="\u0623,\u0625,\u0622" />
<Key
latin:keyLabel="ت" />
<Key
@ -97,7 +97,7 @@
latin:keyLabel="م" />
<Key
latin:keyLabel="ك"
latin:popupCharacters="گ" />
latin:moreKeys="گ" />
<Key
latin:keyLabel="ط" />
<Key
@ -123,7 +123,7 @@
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="_"
latin:popupCharacters="_" />
latin:moreKeys="_" />
</case>
<case
latin:imeAction="actionSearch"
@ -132,7 +132,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
latin:popupCharacters="+" />
latin:moreKeys="+" />
</case>
<default>
<Key
@ -157,7 +157,7 @@
latin:keyLabel="و" />
<Key
latin:keyLabel="ز"
latin:popupCharacters="ژ" />
latin:moreKeys="ژ" />
<Key
latin:keyLabel="ظ" />
<Key

View file

@ -28,34 +28,34 @@
>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@ -66,29 +66,29 @@
>
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q"
latin:moreKeys="@string/alternates_for_q"
latin:keyXPos="5.0%p" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="m" />
<Key
@ -104,20 +104,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="\'" />
<switch>
@ -134,12 +134,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
latin:popupCharacters="!" />
latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
latin:moreKeys="\?" />
</default>
</switch>
<include

View file

@ -59,17 +59,17 @@
latin:keyLabel="ד" />
<Key
latin:keyLabel="ג"
latin:popupCharacters="ג׳" />
latin:moreKeys="ג׳" />
<Key
latin:keyLabel="כ" />
<Key
latin:keyLabel="ע" />
<Key
latin:keyLabel="י"
latin:popupCharacters="ײַ" />
latin:moreKeys="ײַ" />
<Key
latin:keyLabel="ח"
latin:popupCharacters="ח׳" />
latin:moreKeys="ח׳" />
<Key
latin:keyLabel="ל" />
<Key
@ -96,7 +96,7 @@
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="_"
latin:popupCharacters="_"
latin:moreKeys="_"
latin:keyWidth="10.0%p" />
</case>
<case
@ -106,7 +106,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
latin:popupCharacters="+"
latin:moreKeys="+"
latin:keyWidth="10.0%p" />
</case>
<default>
@ -117,7 +117,7 @@
</switch>
<Key
latin:keyLabel="ז"
latin:popupCharacters="ז׳" />
latin:moreKeys="ז׳" />
<Key
latin:keyLabel="ס" />
<Key
@ -130,13 +130,13 @@
latin:keyLabel="מ" />
<Key
latin:keyLabel="צ"
latin:popupCharacters="צ׳" />
latin:moreKeys="צ׳" />
<Key
latin:keyLabel="ת"
latin:popupCharacters="ת׳" />
latin:moreKeys="ת׳" />
<Key
latin:keyLabel="ץ"
latin:popupCharacters="ץ׳" />
latin:moreKeys="ץ׳" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-10.400%p"

View file

@ -28,34 +28,34 @@
>
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@ -71,20 +71,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<switch>
@ -101,12 +101,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
latin:popupCharacters="!" />
latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
latin:moreKeys="\?" />
</default>
</switch>
<include

View file

@ -36,7 +36,7 @@
latin:keyLabel="к" />
<Key
latin:keyLabel="е"
latin:popupCharacters="@string/alternates_for_cyrillic_e" />
latin:moreKeys="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н" />
<Key
@ -124,12 +124,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
latin:popupCharacters="!" />
latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
latin:moreKeys="\?" />
</default>
</switch>
<include

View file

@ -28,34 +28,34 @@
>
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyLabel="å" />
<Key
@ -69,34 +69,34 @@
<Key
latin:keyLabel="a"
latin:keyXPos="3.5%p"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
latin:moreKeys="@string/alternates_for_scandinavia_row2_11" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
@ -112,20 +112,20 @@
latin:keyWidth="4.35%p" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include

View file

@ -30,29 +30,29 @@
>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a"
latin:moreKeys="@string/alternates_for_a"
latin:keyXPos="5.0%p" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="ñ" />
<Key

View file

@ -30,34 +30,34 @@
>
<Key
latin:keyLabel="@string/keylabel_for_symbols_1"
latin:popupCharacters="@string/alternates_for_symbols_1" />
latin:moreKeys="@string/alternates_for_symbols_1" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_2"
latin:popupCharacters="@string/alternates_for_symbols_2" />
latin:moreKeys="@string/alternates_for_symbols_2" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_3"
latin:popupCharacters="@string/alternates_for_symbols_3" />
latin:moreKeys="@string/alternates_for_symbols_3" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_4"
latin:popupCharacters="@string/alternates_for_symbols_4" />
latin:moreKeys="@string/alternates_for_symbols_4" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_5"
latin:popupCharacters="@string/alternates_for_symbols_5" />
latin:moreKeys="@string/alternates_for_symbols_5" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_6"
latin:popupCharacters="@string/alternates_for_symbols_6" />
latin:moreKeys="@string/alternates_for_symbols_6" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_7"
latin:popupCharacters="@string/alternates_for_symbols_7" />
latin:moreKeys="@string/alternates_for_symbols_7" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_8"
latin:popupCharacters="@string/alternates_for_symbols_8" />
latin:moreKeys="@string/alternates_for_symbols_8" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_9"
latin:popupCharacters="@string/alternates_for_symbols_9" />
latin:moreKeys="@string/alternates_for_symbols_9" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_0"
latin:popupCharacters="@string/alternates_for_symbols_0" />
latin:moreKeys="@string/alternates_for_symbols_0" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@ -73,24 +73,24 @@
latin:keyStyle="currencyKeyStyle" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_percent"
latin:popupCharacters="@string/alternates_for_symbols_percent" />
latin:moreKeys="@string/alternates_for_symbols_percent" />
<Key
latin:keyLabel="&amp;" />
<Key
latin:keyLabel="*"
latin:popupCharacters="†,‡,★" />
latin:moreKeys="†,‡,★" />
<Key
latin:keyLabel="-"
latin:popupCharacters="_,,—" />
latin:moreKeys="_,,—" />
<Key
latin:keyLabel="+"
latin:popupCharacters="±" />
latin:moreKeys="±" />
<Key
latin:keyLabel="("
latin:popupCharacters="[,{,&lt;" />
latin:moreKeys="[,{,&lt;" />
<Key
latin:keyLabel=")"
latin:popupCharacters="],},&gt;" />
latin:moreKeys="],},&gt;" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
@ -104,20 +104,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="&lt;"
latin:popupCharacters="≤,«," />
latin:moreKeys="≤,«," />
<Key
latin:keyLabel="&gt;"
latin:popupCharacters="≥,»," />
latin:moreKeys="≥,»," />
<Key
latin:keyLabel="="
latin:popupCharacters="≠,≈" />
latin:moreKeys="≠,≈" />
<switch>
<case
latin:mode="url"
>
<Key
latin:keyLabel="\'"
latin:popupCharacters=",,," />
latin:moreKeys=",,," />
</case>
<default>
<Key
@ -126,18 +126,18 @@
</switch>
<Key
latin:keyLabel="@string/keylabel_for_symbols_semicolon"
latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
latin:moreKeys="@string/alternates_for_symbols_semicolon" />
<Key
latin:keyLabel="@string/keylabel_for_comma"
latin:popupCharacters="@string/alternates_for_comma" />
latin:moreKeys="@string/alternates_for_comma" />
<Key
latin:keyLabel="." />
<Key
latin:keyLabel="!"
latin:popupCharacters="¡" />
latin:moreKeys="¡" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_question"
latin:popupCharacters="@string/alternates_for_symbols_question" />
latin:moreKeys="@string/alternates_for_symbols_question" />
<Key
latin:keyLabel="/"
latin:keyWidth="fillRight" />
@ -157,10 +157,10 @@
latin:keyXPos="30.750%p"
latin:keyWidth="39.750%p" />
<!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
<!-- latin:popupCharacters="“,”,„,‟,«,»,,,," -->
<!-- latin:moreKeys="“,”,„,‟,«,»,,,," -->
<Key
latin:keyLabel="&quot;"
latin:popupCharacters="“,”,«,»,,,," />
latin:moreKeys="“,”,«,»,,,," />
<Key
latin:keyLabel="_" />
<Spacer

View file

@ -34,19 +34,19 @@
latin:keyLabel="|" />
<Key
latin:keyLabel="•"
latin:popupCharacters="♪,♥,♠,♦,♣" />
latin:moreKeys="♪,♥,♠,♦,♣" />
<Key
latin:keyLabel="√" />
<Key
latin:keyLabel="π"
latin:popupCharacters="Π" />
latin:moreKeys="Π" />
<Key
latin:keyLabel="÷" />
<Key
latin:keyLabel="×" />
<Key
latin:keyLabel="§"
latin:popupCharacters="¶" />
latin:moreKeys="¶" />
<Key
latin:keyLabel="Δ" />
<Key
@ -68,13 +68,13 @@
latin:keyLabel="¥" />
<Key
latin:keyLabel="^"
latin:popupCharacters="↑,↓,←,→" />
latin:moreKeys="↑,↓,←,→" />
<Key
latin:keyLabel="°"
latin:popupCharacters=",″" />
latin:moreKeys=",″" />
<Key
latin:keyLabel="±"
latin:popupCharacters="∞" />
latin:moreKeys="∞" />
<Key
latin:keyLabel="{" />
<Key

View file

@ -54,8 +54,8 @@
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxMiniKeyboardColumn="5" />
latin:moreKeys="@string/alternates_for_smiley"
latin:maxMoreKeysColumn="5" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
@ -103,5 +103,5 @@
latin:keyLabel="@string/keylabel_for_popular_domain"
latin:keyLabelOption="fontNormal|hasPopupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
latin:popupCharacters="@string/alternates_for_popular_domain" />
latin:moreKeys="@string/alternates_for_popular_domain" />
</merge>

View file

@ -30,34 +30,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"

View file

@ -30,28 +30,28 @@
latin:keyWidth="11.172%p"/>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-15.704%p"

View file

@ -29,20 +29,20 @@
latin:keyWidth="13.829%p"/>
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include

View file

@ -59,7 +59,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
latin:popupCharacters="+" />
latin:moreKeys="+" />
</case>
<default>
<Key
@ -78,7 +78,7 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\@"
latin:popupCharacters="\@" />
latin:moreKeys="\@" />
</default>
</switch>
</default>

View file

@ -35,12 +35,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
latin:popupCharacters="!" />
latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
latin:moreKeys="\?" />
</default>
</switch>
</merge>

View file

@ -35,14 +35,14 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel=":"
latin:popupCharacters=":" />
latin:moreKeys=":" />
</case>
<default>
<Key
latin:keyLabel="@string/keylabel_for_apostrophe"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_apostrophe"
latin:popupCharacters="@string/alternates_for_apostrophe" />
latin:moreKeys="@string/alternates_for_apostrophe" />
</default>
</switch>
<switch>
@ -57,7 +57,7 @@
latin:keyLabel="@string/keylabel_for_dash"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_dash"
latin:popupCharacters="@string/alternates_for_dash" />
latin:moreKeys="@string/alternates_for_dash" />
</default>
</switch>
</merge>

View file

@ -40,7 +40,7 @@
latin:keyLabel="ق" />
<Key
latin:keyLabel="ف"
latin:popupCharacters="ڤ" />
latin:moreKeys="ڤ" />
<Key
latin:keyLabel="غ" />
<Key
@ -49,14 +49,14 @@
\u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
<Key
latin:keyLabel="ه"
latin:popupCharacters="\ufeeb|\u0647\u0640" />
latin:moreKeys="\ufeeb|\u0647\u0640" />
<Key
latin:keyLabel="خ" />
<Key
latin:keyLabel="ح" />
<Key
latin:keyLabel="ج"
latin:popupCharacters="چ" />
latin:moreKeys="چ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-11.500%p"
@ -77,7 +77,7 @@
latin:keyLabel="ي" />
<Key
latin:keyLabel="ب"
latin:popupCharacters="پ" />
latin:moreKeys="پ" />
<!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
\u0644: ARABIC LETTER LAM
\u0627: ARABIC LETTER ALEF
@ -89,13 +89,13 @@
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ل"
latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
<!-- \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
\u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ا"
latin:popupCharacters="\u0623,\u0625,\u0622" />
latin:moreKeys="\u0623,\u0625,\u0622" />
<Key
latin:keyLabel="ت" />
<Key
@ -104,7 +104,7 @@
latin:keyLabel="م" />
<Key
latin:keyLabel="ك"
latin:popupCharacters="گ" />
latin:moreKeys="گ" />
<Key
latin:keyLabel="ط" />
<Key
@ -134,7 +134,7 @@
latin:keyLabel="و" />
<Key
latin:keyLabel="ز"
latin:popupCharacters="ژ" />
latin:moreKeys="ژ" />
<Key
latin:keyLabel="ظ" />
<Key

View file

@ -32,34 +32,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"
@ -74,28 +74,28 @@
latin:keyWidth="10.167%p" />
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="m" />
<Key
@ -111,25 +111,25 @@
latin:keyWidth="13.829%p" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="\'"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel=":"
latin:popupCharacters=":" />
latin:moreKeys=":" />
<switch>
<case
latin:mode="email"
@ -144,12 +144,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
latin:popupCharacters="!" />
latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
latin:moreKeys="\?" />
</default>
</switch>
<Key

View file

@ -66,17 +66,17 @@
latin:keyLabel="ד" />
<Key
latin:keyLabel="ג"
latin:popupCharacters="ג׳" />
latin:moreKeys="ג׳" />
<Key
latin:keyLabel="כ" />
<Key
latin:keyLabel="ע" />
<Key
latin:keyLabel="י"
latin:popupCharacters="ײַ" />
latin:moreKeys="ײַ" />
<Key
latin:keyLabel="ח"
latin:popupCharacters="ח׳" />
latin:moreKeys="ח׳" />
<Key
latin:keyLabel="ל" />
<Key
@ -89,7 +89,7 @@
>
<Key
latin:keyLabel="ז"
latin:popupCharacters="ז׳"
latin:moreKeys="ז׳"
latin:keyXPos="13.829%p" />
<Key
latin:keyLabel="ס" />
@ -103,13 +103,13 @@
latin:keyLabel="מ" />
<Key
latin:keyLabel="צ"
latin:popupCharacters="צ׳" />
latin:moreKeys="צ׳" />
<Key
latin:keyLabel="ת"
latin:popupCharacters="ת׳" />
latin:moreKeys="ת׳" />
<Key
latin:keyLabel="ץ"
latin:popupCharacters="ץ׳" />
latin:moreKeys="ץ׳" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-10.400%p"

View file

@ -32,34 +32,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"
@ -75,20 +75,20 @@
latin:keyWidth="13.829%p" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<switch>
@ -105,12 +105,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
latin:popupCharacters="!" />
latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
latin:moreKeys="\?" />
</default>
</switch>
<Key

View file

@ -39,7 +39,7 @@
latin:keyLabel="к" />
<Key
latin:keyLabel="е"
latin:popupCharacters="@string/alternates_for_cyrillic_e" />
latin:moreKeys="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н" />
<Key

View file

@ -32,34 +32,34 @@
latin:keyWidth="7.500%p" />
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyLabel="å" />
<Key
@ -76,34 +76,34 @@
latin:keyWidth="9.375%p" />
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
latin:moreKeys="@string/alternates_for_scandinavia_row2_11" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-9.375%p"
@ -117,20 +117,20 @@
latin:keyWidth="12.750%p" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include

View file

@ -34,28 +34,28 @@
latin:keyWidth="10.167%p" />
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="ñ" />
<Key

View file

@ -34,34 +34,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_1"
latin:popupCharacters="@string/alternates_for_symbols_1" />
latin:moreKeys="@string/alternates_for_symbols_1" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_2"
latin:popupCharacters="@string/alternates_for_symbols_2" />
latin:moreKeys="@string/alternates_for_symbols_2" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_3"
latin:popupCharacters="@string/alternates_for_symbols_3" />
latin:moreKeys="@string/alternates_for_symbols_3" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_4"
latin:popupCharacters="@string/alternates_for_symbols_4" />
latin:moreKeys="@string/alternates_for_symbols_4" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_5"
latin:popupCharacters="@string/alternates_for_symbols_5" />
latin:moreKeys="@string/alternates_for_symbols_5" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_6"
latin:popupCharacters="@string/alternates_for_symbols_6" />
latin:moreKeys="@string/alternates_for_symbols_6" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_7"
latin:popupCharacters="@string/alternates_for_symbols_7" />
latin:moreKeys="@string/alternates_for_symbols_7" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_8"
latin:popupCharacters="@string/alternates_for_symbols_8" />
latin:moreKeys="@string/alternates_for_symbols_8" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_9"
latin:popupCharacters="@string/alternates_for_symbols_9" />
latin:moreKeys="@string/alternates_for_symbols_9" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_0"
latin:popupCharacters="@string/alternates_for_symbols_0" />
latin:moreKeys="@string/alternates_for_symbols_0" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"
@ -80,24 +80,24 @@
latin:keyStyle="currencyKeyStyle" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_percent"
latin:popupCharacters="@string/alternates_for_symbols_percent" />
latin:moreKeys="@string/alternates_for_symbols_percent" />
<Key
latin:keyLabel="&amp;" />
<Key
latin:keyLabel="*"
latin:popupCharacters="†,‡,★" />
latin:moreKeys="†,‡,★" />
<Key
latin:keyLabel="-"
latin:popupCharacters="_,,—" />
latin:moreKeys="_,,—" />
<Key
latin:keyLabel="+"
latin:popupCharacters="±" />
latin:moreKeys="±" />
<Key
latin:keyLabel="("
latin:popupCharacters="[,{,&lt;" />
latin:moreKeys="[,{,&lt;" />
<Key
latin:keyLabel=")"
latin:popupCharacters="],},&gt;" />
latin:moreKeys="],},&gt;" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-15.704%p"
@ -111,20 +111,20 @@
latin:keyWidth="13.829%p" />
<Key
latin:keyLabel="&lt;"
latin:popupCharacters="≤,«," />
latin:moreKeys="≤,«," />
<Key
latin:keyLabel="&gt;"
latin:popupCharacters="≥,»," />
latin:moreKeys="≥,»," />
<Key
latin:keyLabel="="
latin:popupCharacters="≠,≈" />
latin:moreKeys="≠,≈" />
<switch>
<case
latin:mode="url"
>
<Key
latin:keyLabel="\'"
latin:popupCharacters=",,," />
latin:moreKeys=",,," />
</case>
<default>
<Key
@ -133,18 +133,18 @@
</switch>
<Key
latin:keyLabel="@string/keylabel_for_symbols_semicolon"
latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
latin:moreKeys="@string/alternates_for_symbols_semicolon" />
<Key
latin:keyLabel="@string/keylabel_for_comma"
latin:popupCharacters="@string/alternates_for_comma" />
latin:moreKeys="@string/alternates_for_comma" />
<Key
latin:keyLabel="." />
<Key
latin:keyLabel="!"
latin:popupCharacters="¡" />
latin:moreKeys="¡" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_question"
latin:popupCharacters="@string/alternates_for_symbols_question" />
latin:moreKeys="@string/alternates_for_symbols_question" />
<Key
latin:keyStyle="toMoreSymbolKeyStyle"
latin:keyXPos="-13.750%p"
@ -172,10 +172,10 @@
latin:keyXPos="31.250%p"
latin:keyWidth="37.500%p" />
<!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
<!-- latin:popupCharacters="“,”,„,‟,«,»,,,," -->
<!-- latin:moreKeys="“,”,„,‟,«,»,,,," -->
<Key
latin:keyLabel="&quot;"
latin:popupCharacters="“,”,«,»,,,," />
latin:moreKeys="“,”,«,»,,,," />
<Key
latin:keyLabel="_" />
<switch>

View file

@ -38,19 +38,19 @@
latin:keyLabel="|" />
<Key
latin:keyLabel="•"
latin:popupCharacters="♪,♥,♠,♦,♣" />
latin:moreKeys="♪,♥,♠,♦,♣" />
<Key
latin:keyLabel="√" />
<Key
latin:keyLabel="π"
latin:popupCharacters="Π" />
latin:moreKeys="Π" />
<Key
latin:keyLabel="÷" />
<Key
latin:keyLabel="×" />
<Key
latin:keyLabel="§"
latin:popupCharacters="¶" />
latin:moreKeys="¶" />
<Key
latin:keyLabel="Δ" />
<Key
@ -75,13 +75,13 @@
latin:keyLabel="¥" />
<Key
latin:keyLabel="^"
latin:popupCharacters="↑,↓,←,→" />
latin:moreKeys="↑,↓,←,→" />
<Key
latin:keyLabel="°"
latin:popupCharacters=",″" />
latin:moreKeys=",″" />
<Key
latin:keyLabel="±"
latin:popupCharacters="∞" />
latin:moreKeys="∞" />
<Key
latin:keyLabel="{" />
<Key

View file

@ -62,7 +62,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="€"
latin:popupCharacters="@string/alternates_for_currency_euro" />
latin:moreKeys="@string/alternates_for_currency_euro" />
</case>
<case
latin:languageCode="ca|et|lb|mt|sla"
@ -70,7 +70,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="€"
latin:popupCharacters="@string/alternates_for_currency_euro" />
latin:moreKeys="@string/alternates_for_currency_euro" />
</case>
<case
latin:countryCode="AD|AT|BE|CY|EE|FI|FR|DE|GR|IE|IT|XK|LU|MT|MO|ME|NL|PT|SM|SK|SI|ES|VA"
@ -78,7 +78,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="€"
latin:popupCharacters="@string/alternates_for_currency_euro" />
latin:moreKeys="@string/alternates_for_currency_euro" />
</case>
<case
latin:languageCode="iw"
@ -86,7 +86,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="₪"
latin:popupCharacters="@string/alternates_for_currency_general" />
latin:moreKeys="@string/alternates_for_currency_general" />
</case>
<!-- United Kingdom -->
<case
@ -95,13 +95,13 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="£"
latin:popupCharacters="@string/alternates_for_currency_pound" />
latin:moreKeys="@string/alternates_for_currency_pound" />
</case>
<default>
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="$"
latin:popupCharacters="@string/alternates_for_currency_dollar" />
latin:moreKeys="@string/alternates_for_currency_dollar" />
</default>
</switch>
</merge>

View file

@ -33,7 +33,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_f1"
latin:moreKeys="@string/alternates_for_f1"
latin:parentStyle="functionalKeyStyle" />
</case>
<!-- clobberSettingsKey="false -->
@ -43,7 +43,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_f1_settings"
latin:moreKeys="@string/alternates_for_f1_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
<!-- clobberSettingsKey="false" hasSettingsKey="true" -->
@ -53,7 +53,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_f1_navigate"
latin:moreKeys="@string/alternates_for_f1_navigate"
latin:parentStyle="functionalKeyStyle" />
</case>
<!-- clobberSettingsKey="false" and hasSettingsKey="true" navigateAction="false" -->
@ -61,7 +61,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_f1"
latin:moreKeys="@string/alternates_for_f1"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
@ -90,8 +90,8 @@
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxMiniKeyboardColumn="5"
latin:moreKeys="@string/alternates_for_smiley"
latin:maxMoreKeysColumn="5"
latin:parentStyle="functionalKeyStyle" />
</case>
<case
@ -220,7 +220,7 @@
latin:keyLabel="."
latin:keyHintLabel="@string/keyhintlabel_for_punctuation"
latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_punctuation"
latin:maxMiniKeyboardColumn="@integer/mini_keyboard_column_for_punctuation"
latin:moreKeys="@string/alternates_for_punctuation"
latin:maxMoreKeysColumn="@integer/mini_keyboard_column_for_punctuation"
latin:parentStyle="functionalKeyStyle" />
</merge>

View file

@ -27,43 +27,43 @@
<Key
latin:keyLabel="q"
latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p"
latin:moreKeys="@string/alternates_for_p"
latin:keyWidth="fillRight" />
</Row>
</merge>

View file

@ -26,29 +26,29 @@
>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a"
latin:moreKeys="@string/alternates_for_a"
latin:keyXPos="5%p" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<!-- Here is 5%p space -->
</Row>
</merge>

View file

@ -30,20 +30,20 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="z"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<Key

View file

@ -29,47 +29,47 @@
<Key
latin:keyLabel="ض"
latin:keyHintLabel="1"
latin:popupCharacters="1,١" />
latin:moreKeys="1,١" />
<Key
latin:keyLabel="ص"
latin:keyHintLabel="2"
latin:popupCharacters="2,٢" />
latin:moreKeys="2,٢" />
<Key
latin:keyLabel="ق"
latin:keyHintLabel="3"
latin:popupCharacters="3,٣" />
latin:moreKeys="3,٣" />
<!-- \u06a4: ARABIC LETTER VEH -->
<Key
latin:keyLabel="ف"
latin:keyHintLabel="4"
latin:popupCharacters="4,٤,\u06a4" />
latin:moreKeys="4,٤,\u06a4" />
<Key
latin:keyLabel="غ"
latin:keyHintLabel="5"
latin:popupCharacters="5,٥" />
latin:moreKeys="5,٥" />
<Key
latin:keyLabel="ع"
latin:keyHintLabel="6"
latin:popupCharacters="6,٦" />
latin:moreKeys="6,٦" />
<!-- \ufeeb: ARABIC LETTER HEH INITIAL FORM
\u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
<Key
latin:keyLabel="ه"
latin:keyHintLabel="7"
latin:popupCharacters="7,٧,\ufeeb|\u0647\u0640" />
latin:moreKeys="7,٧,\ufeeb|\u0647\u0640" />
<Key
latin:keyLabel="خ"
latin:keyHintLabel="8"
latin:popupCharacters="8,٨" />
latin:moreKeys="8,٨" />
<Key
latin:keyLabel="ح"
latin:keyHintLabel="9"
latin:popupCharacters="9,٩" />
latin:moreKeys="9,٩" />
<!-- \u0686: ARABIC LETTER TCHEH -->
<Key
latin:keyLabel="ج"
latin:keyHintLabel="0"
latin:popupCharacters="0,٠,\u0686"
latin:moreKeys="0,٠,\u0686"
latin:keyWidth="fillRight" />
</Row>
<Row
@ -83,10 +83,10 @@
\u0649: ARABIC LETTER ALEF MAKSURA -->
<Key
latin:keyLabel="ي"
latin:popupCharacters="\u0626,\u0649" />
latin:moreKeys="\u0626,\u0649" />
<Key
latin:keyLabel="ب"
latin:popupCharacters="پ" />
latin:moreKeys="پ" />
<!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
\u0644: ARABIC LETTER LAM
\u0627: ARABIC LETTER ALEF
@ -98,24 +98,24 @@
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ل"
latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
<!-- \u0621: ARABIC LETTER HAMZA
\u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
\u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ا"
latin:popupCharacters="\u0621,\u0623,\u0625,\u0622" />
latin:moreKeys="\u0621,\u0623,\u0625,\u0622" />
<Key
latin:keyLabel="ت"
latin:popupCharacters="ث" />
latin:moreKeys="ث" />
<Key
latin:keyLabel="ن" />
<Key
latin:keyLabel="م" />
<Key
latin:keyLabel="ك"
latin:popupCharacters="گ"
latin:moreKeys="گ"
latin:keyWidth="fillRight" />
</Row>
<Row
@ -132,14 +132,14 @@
latin:keyLabel="د" />
<Key
latin:keyLabel="ز"
latin:popupCharacters="ژ" />
latin:moreKeys="ژ" />
<Key
latin:keyLabel="ر" />
<Key
latin:keyLabel="ة" />
<Key
latin:keyLabel="و"
latin:popupCharacters="ؤ" />
latin:moreKeys="ؤ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"

View file

@ -29,43 +29,43 @@
<Key
latin:keyLabel="a"
latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="z"
latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p"
latin:moreKeys="@string/alternates_for_p"
latin:keyWidth="fillRight" />
</Row>
<Row
@ -73,28 +73,28 @@
>
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="m"
latin:keyWidth="fillRight" />
@ -108,24 +108,24 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="w"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="\'"
latin:popupCharacters=",,," />
latin:moreKeys=",,," />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"

View file

@ -57,17 +57,17 @@
latin:keyLabel="ד" />
<Key
latin:keyLabel="ג"
latin:popupCharacters="ג׳" />
latin:moreKeys="ג׳" />
<Key
latin:keyLabel="כ" />
<Key
latin:keyLabel="ע" />
<Key
latin:keyLabel="י"
latin:popupCharacters="ײַ" />
latin:moreKeys="ײַ" />
<Key
latin:keyLabel="ח"
latin:popupCharacters="ח׳" />
latin:moreKeys="ח׳" />
<Key
latin:keyLabel="ל" />
<Key
@ -81,7 +81,7 @@
>
<Key
latin:keyLabel="ז"
latin:popupCharacters="ז׳"
latin:moreKeys="ז׳"
latin:keyXPos="5%p" />
<Key
latin:keyLabel="ס" />
@ -95,13 +95,13 @@
latin:keyLabel="מ" />
<Key
latin:keyLabel="צ"
latin:popupCharacters="צ׳" />
latin:moreKeys="צ׳" />
<Key
latin:keyLabel="ת"
latin:popupCharacters="ת׳" />
latin:moreKeys="ת׳" />
<Key
latin:keyLabel="ץ"
latin:popupCharacters="ץ׳" />
latin:moreKeys="ץ׳" />
<!-- Here is 5%p space -->
</Row>
<include

View file

@ -29,43 +29,43 @@
<Key
latin:keyLabel="q"
latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_q" />
latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_z" />
latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p"
latin:moreKeys="@string/alternates_for_p"
latin:keyWidth="fillRight" />
</Row>
<include
@ -79,20 +79,20 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="y"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
latin:popupCharacters="@string/alternates_for_v" />
latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
latin:popupCharacters="@string/alternates_for_n" />
latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<Key

View file

@ -29,47 +29,47 @@
<Key
latin:keyLabel="й"
latin:keyHintLabel="1"
latin:popupCharacters="1"
latin:moreKeys="1"
latin:keyWidth="8.75%p" />
<Key
latin:keyLabel="ц"
latin:keyHintLabel="2"
latin:popupCharacters="2" />
latin:moreKeys="2" />
<Key
latin:keyLabel="у"
latin:keyHintLabel="3"
latin:popupCharacters="3" />
latin:moreKeys="3" />
<Key
latin:keyLabel="к"
latin:keyHintLabel="4"
latin:popupCharacters="4" />
latin:moreKeys="4" />
<Key
latin:keyLabel="е"
latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_cyrillic_e" />
latin:moreKeys="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н"
latin:keyHintLabel="6"
latin:popupCharacters="6" />
latin:moreKeys="6" />
<Key
latin:keyLabel="г"
latin:keyHintLabel="7"
latin:popupCharacters="7" />
latin:moreKeys="7" />
<Key
latin:keyLabel="ш"
latin:keyHintLabel="8"
latin:popupCharacters="8" />
latin:moreKeys="8" />
<Key
latin:keyLabel="щ"
latin:keyHintLabel="9"
latin:popupCharacters="9" />
latin:moreKeys="9" />
<Key
latin:keyLabel="з"
latin:keyHintLabel="0"
latin:popupCharacters="0" />
latin:moreKeys="0" />
<Key
latin:keyLabel="х"
latin:popupCharacters="@string/alternates_for_cyrillic_ha"
latin:moreKeys="@string/alternates_for_cyrillic_ha"
latin:keyWidth="fillRight" />
</Row>
<Row
@ -120,7 +120,7 @@
latin:keyLabel="т" />
<Key
latin:keyLabel="ь"
latin:popupCharacters="@string/alternates_for_cyrillic_soft_sign" />
latin:moreKeys="@string/alternates_for_cyrillic_soft_sign" />
<Key
latin:keyLabel="б" />
<Key

View file

@ -29,44 +29,44 @@
<Key
latin:keyLabel="q"
latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_q"
latin:moreKeys="@string/alternates_for_q"
latin:keyWidth="8.75%p" />
<Key
latin:keyLabel="w"
latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_w" />
latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_y" />
latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p" />
latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyLabel="å"
latin:keyWidth="fillRight" />
@ -76,35 +76,35 @@
>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a"
latin:moreKeys="@string/alternates_for_a"
latin:keyWidth="8.75%p" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_11"
latin:moreKeys="@string/alternates_for_scandinavia_row2_11"
latin:keyWidth="fillRight" />
</Row>
<include

View file

@ -29,43 +29,43 @@
<Key
latin:keyLabel="љ"
latin:keyHintLabel="1"
latin:popupCharacters="1" />
latin:moreKeys="1" />
<Key
latin:keyLabel="њ"
latin:keyHintLabel="2"
latin:popupCharacters="2" />
latin:moreKeys="2" />
<Key
latin:keyLabel="е"
latin:keyHintLabel="3"
latin:popupCharacters="3" />
latin:moreKeys="3" />
<Key
latin:keyLabel="р"
latin:keyHintLabel="4"
latin:popupCharacters="4" />
latin:moreKeys="4" />
<Key
latin:keyLabel="т"
latin:keyHintLabel="5"
latin:popupCharacters="5" />
latin:moreKeys="5" />
<Key
latin:keyLabel="з"
latin:keyHintLabel="6"
latin:popupCharacters="6" />
latin:moreKeys="6" />
<Key
latin:keyLabel="у"
latin:keyHintLabel="7"
latin:popupCharacters="7" />
latin:moreKeys="7" />
<Key
latin:keyLabel="и"
latin:keyHintLabel="8"
latin:popupCharacters="8" />
latin:moreKeys="8" />
<Key
latin:keyLabel="о"
latin:keyHintLabel="9"
latin:popupCharacters="9" />
latin:moreKeys="9" />
<Key
latin:keyLabel="п"
latin:keyHintLabel="0"
latin:popupCharacters="0" />
latin:moreKeys="0" />
<Key
latin:keyLabel="ш"
latin:keyWidth="fillRight" />

View file

@ -30,28 +30,28 @@
>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a" />
latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
latin:popupCharacters="@string/alternates_for_s" />
latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
latin:popupCharacters="@string/alternates_for_d" />
latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
latin:popupCharacters="@string/alternates_for_g" />
latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
latin:popupCharacters="@string/alternates_for_k" />
latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="ñ" />
</Row>

View file

@ -30,34 +30,34 @@
>
<Key
latin:keyLabel="@string/keylabel_for_symbols_1"
latin:popupCharacters="@string/alternates_for_symbols_1" />
latin:moreKeys="@string/alternates_for_symbols_1" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_2"
latin:popupCharacters="@string/alternates_for_symbols_2" />
latin:moreKeys="@string/alternates_for_symbols_2" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_3"
latin:popupCharacters="@string/alternates_for_symbols_3" />
latin:moreKeys="@string/alternates_for_symbols_3" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_4"
latin:popupCharacters="@string/alternates_for_symbols_4" />
latin:moreKeys="@string/alternates_for_symbols_4" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_5"
latin:popupCharacters="@string/alternates_for_symbols_5" />
latin:moreKeys="@string/alternates_for_symbols_5" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_6"
latin:popupCharacters="@string/alternates_for_symbols_6" />
latin:moreKeys="@string/alternates_for_symbols_6" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_7"
latin:popupCharacters="@string/alternates_for_symbols_7" />
latin:moreKeys="@string/alternates_for_symbols_7" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_8"
latin:popupCharacters="@string/alternates_for_symbols_8" />
latin:moreKeys="@string/alternates_for_symbols_8" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_9"
latin:popupCharacters="@string/alternates_for_symbols_9" />
latin:moreKeys="@string/alternates_for_symbols_9" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_0"
latin:popupCharacters="@string/alternates_for_symbols_0"
latin:moreKeys="@string/alternates_for_symbols_0"
latin:keyWidth="fillRight" />
</Row>
<Row
@ -71,24 +71,24 @@
latin:keyStyle="currencyKeyStyle" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_percent"
latin:popupCharacters="@string/alternates_for_symbols_percent" />
latin:moreKeys="@string/alternates_for_symbols_percent" />
<Key
latin:keyLabel="&amp;" />
<Key
latin:keyLabel="*"
latin:popupCharacters="†,‡,★" />
latin:moreKeys="†,‡,★" />
<Key
latin:keyLabel="-"
latin:popupCharacters="_,,—" />
latin:moreKeys="_,,—" />
<Key
latin:keyLabel="+"
latin:popupCharacters="±" />
latin:moreKeys="±" />
<Key
latin:keyLabel="("
latin:popupCharacters="[,{,&lt;" />
latin:moreKeys="[,{,&lt;" />
<Key
latin:keyLabel=")"
latin:popupCharacters="],},&gt;"
latin:moreKeys="],},&gt;"
latin:keyWidth="fillRight" />
</Row>
<Row
@ -100,26 +100,26 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="!"
latin:popupCharacters="¡" />
latin:moreKeys="¡" />
<!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
<!-- latin:popupCharacters="“,”,„,‟,«,»" -->
<!-- latin:moreKeys="“,”,„,‟,«,»" -->
<Key
latin:keyLabel="&quot;"
latin:popupCharacters="“,”,«,»"
latin:maxMiniKeyboardColumn="6" />
latin:moreKeys="“,”,«,»"
latin:maxMoreKeysColumn="6" />
<Key
latin:keyLabel="\'"
latin:popupCharacters=",,," />
latin:moreKeys=",,," />
<Key
latin:keyLabel=":" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_semicolon"
latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
latin:moreKeys="@string/alternates_for_symbols_semicolon" />
<Key
latin:keyLabel="/" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_question"
latin:popupCharacters="@string/alternates_for_symbols_question" />
latin:moreKeys="@string/alternates_for_symbols_question" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"

View file

@ -34,12 +34,12 @@
latin:keyLabel="|" />
<Key
latin:keyLabel="•"
latin:popupCharacters="♪,♥,♠,♦,♣" />
latin:moreKeys="♪,♥,♠,♦,♣" />
<Key
latin:keyLabel="√" />
<Key
latin:keyLabel="π"
latin:popupCharacters="Π" />
latin:moreKeys="Π" />
<Key
latin:keyLabel="÷" />
<Key
@ -63,15 +63,15 @@
latin:keyLabel="€" />
<Key
latin:keyLabel="°"
latin:popupCharacters=",″" />
latin:moreKeys=",″" />
<Key
latin:keyLabel="^"
latin:popupCharacters="↑,↓,←,→" />
latin:moreKeys="↑,↓,←,→" />
<Key
latin:keyLabel="_" />
<Key
latin:keyLabel="="
latin:popupCharacters="≠,≈,∞" />
latin:moreKeys="≠,≈,∞" />
<Key
latin:keyLabel="[" />
<Key
@ -93,15 +93,15 @@
latin:keyLabel="©" />
<Key
latin:keyLabel="¶"
latin:popupCharacters="§" />
latin:moreKeys="§" />
<Key
latin:keyLabel="\\" />
<Key
latin:keyLabel="&lt;"
latin:popupCharacters="≤,«," />
latin:moreKeys="≤,«," />
<Key
latin:keyLabel="&gt;"
latin:popupCharacters="≥,»," />
latin:moreKeys="≥,»," />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"

View file

@ -34,7 +34,7 @@
latin:keyWidth="15%p" />
<Key
latin:keyLabel="„"
latin:popupCharacters="“,”,„,‟,«,»,,,,"
latin:moreKeys="“,”,„,‟,«,»,,,,"
latin:keyStyle="functionalKeyStyle" />
<Key
latin:keyStyle="spaceKeyStyle"
@ -55,7 +55,7 @@
latin:keyboardLayout="@xml/kbd_settings_or_tab" />
<Key
latin:keyLabel="„"
latin:popupCharacters="“,”,„,‟,«,»,,,,"
latin:moreKeys="“,”,„,‟,«,»,,,,"
latin:keyWidth="9.2%p"
latin:keyStyle="functionalKeyStyle" />
<Key

View file

@ -30,7 +30,7 @@ import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
import com.android.inputmethod.keyboard.internal.KeyboardBuilder.ParseException;
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
import com.android.inputmethod.keyboard.internal.KeyboardParams;
import com.android.inputmethod.keyboard.internal.PopupCharactersParser;
import com.android.inputmethod.keyboard.internal.MoreKeySpecParser;
import com.android.inputmethod.keyboard.internal.Row;
import com.android.inputmethod.latin.R;
@ -90,10 +90,10 @@ public class Key {
public final int mY;
/** Text to output when pressed. This can be multiple characters, like ".com" */
public final CharSequence mOutputText;
/** Popup characters */
public final CharSequence[] mPopupCharacters;
/** Popup keyboard maximum column number */
public final int mMaxMiniKeyboardColumn;
/** More keys */
public final CharSequence[] mMoreKeys;
/** More keys maximum column number */
public final int mMaxMoreKeysColumn;
/**
* Flags that specify the anchoring to edges of the keyboard for detecting touch events
@ -192,22 +192,22 @@ public class Key {
}
}
private static int getCode(Resources res, KeyboardParams params, String popupSpec) {
private static int getCode(Resources res, KeyboardParams params, String moreKeySpec) {
return getRtlParenthesisCode(
PopupCharactersParser.getCode(res, popupSpec), params.mIsRtlKeyboard);
MoreKeySpecParser.getCode(res, moreKeySpec), params.mIsRtlKeyboard);
}
private static Drawable getIcon(KeyboardParams params, String popupSpec) {
return params.mIconsSet.getIcon(PopupCharactersParser.getIconId(popupSpec));
private static Drawable getIcon(KeyboardParams params, String moreKeySpec) {
return params.mIconsSet.getIcon(MoreKeySpecParser.getIconId(moreKeySpec));
}
/**
* This constructor is being used only for key in popup mini keyboard.
* This constructor is being used only for key in more keys keyboard.
*/
public Key(Resources res, KeyboardParams params, String popupSpec,
public Key(Resources res, KeyboardParams params, String moreKeySpec,
int x, int y, int width, int height, int edgeFlags) {
this(params, PopupCharactersParser.getLabel(popupSpec), null, getIcon(params, popupSpec),
getCode(res, params, popupSpec), PopupCharactersParser.getOutputText(popupSpec),
this(params, MoreKeySpecParser.getLabel(moreKeySpec), null, getIcon(params, moreKeySpec),
getCode(res, params, moreKeySpec), MoreKeySpecParser.getOutputText(moreKeySpec),
x, y, width, height, edgeFlags);
}
@ -227,8 +227,8 @@ public class Key {
mFunctional = false;
mSticky = false;
mRepeatable = false;
mPopupCharacters = null;
mMaxMiniKeyboardColumn = 0;
mMoreKeys = null;
mMaxMoreKeysColumn = 0;
mLabel = label;
mOutputText = outputText;
mCode = code;
@ -312,19 +312,19 @@ public class Key {
mY = y;
mWidth = keyWidth - mHorizontalGap;
final CharSequence[] popupCharacters = style.getTextArray(
keyAttr, R.styleable.Keyboard_Key_popupCharacters);
// In Arabic symbol layouts, we'd like to keep digits in popup characters regardless of
// config_digit_popup_characters_enabled.
final CharSequence[] moreKeys = style.getTextArray(
keyAttr, R.styleable.Keyboard_Key_moreKeys);
// In Arabic symbol layouts, we'd like to keep digits in more keys regardless of
// config_digit_more_keys_enabled.
if (params.mId.isAlphabetKeyboard() && !res.getBoolean(
R.bool.config_digit_popup_characters_enabled)) {
mPopupCharacters = PopupCharactersParser.filterOut(
res, popupCharacters, PopupCharactersParser.DIGIT_FILTER);
R.bool.config_digit_more_keys_enabled)) {
mMoreKeys = MoreKeySpecParser.filterOut(
res, moreKeys, MoreKeySpecParser.DIGIT_FILTER);
} else {
mPopupCharacters = popupCharacters;
mMoreKeys = moreKeys;
}
mMaxMiniKeyboardColumn = style.getInt(keyboardAttr,
R.styleable.Keyboard_Key_maxMiniKeyboardColumn,
mMaxMoreKeysColumn = style.getInt(keyboardAttr,
R.styleable.Keyboard_Key_maxMoreKeysColumn,
params.mMaxMiniKeyboardColumn);
mRepeatable = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable, false);

View file

@ -101,8 +101,8 @@ public class Keyboard {
public final int mMostCommonKeyWidth;
/** Popup keyboard template */
public final int mPopupTemplateId;
/** More keys keyboard template */
public final int mMoreKeysTemplate;
/** Maximum column for mini keyboard */
public final int mMaxMiniKeyboardColumn;
@ -130,7 +130,7 @@ public class Keyboard {
mWidth = params.mWidth;
mMostCommonKeyWidth = params.mMostCommonKeyWidth;
mIsRtlKeyboard = params.mIsRtlKeyboard;
mPopupTemplateId = params.mPopupTemplateId;
mMoreKeysTemplate = params.mMoreKeysTemplate;
mMaxMiniKeyboardColumn = params.mMaxMiniKeyboardColumn;
mDefaultRowHeight = params.mDefaultRowHeight;

View file

@ -79,7 +79,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// XML attributes
protected final float mVerticalCorrection;
protected final int mPopupLayout;
protected final int mMoreKeysLayout;
private final float mBackgroundDimAmount;
// HORIZONTAL ELLIPSIS "...", character for popup hint.
@ -343,7 +343,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
mVerticalCorrection = a.getDimensionPixelOffset(
R.styleable.KeyboardView_verticalCorrection, 0);
mPopupLayout = a.getResourceId(R.styleable.KeyboardView_popupLayout, 0);
mMoreKeysLayout = a.getResourceId(R.styleable.KeyboardView_moreKeysLayout, 0);
mBackgroundDimAmount = a.getFloat(R.styleable.KeyboardView_backgroundDimAmount, 0.5f);
a.recycle();
@ -679,7 +679,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
// Draw popup hint "..." at the bottom right corner of the key.
if ((key.hasPopupHint() && key.mPopupCharacters != null && key.mPopupCharacters.length > 0)
if ((key.hasPopupHint() && key.mMoreKeys != null && key.mMoreKeys.length > 0)
|| key.needsSpecialPopupHint()) {
paint.setTextSize(params.mKeyHintLetterSize);
paint.setColor(params.mKeyHintLabelColor);
@ -880,7 +880,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// Set the preview background state
previewText.getBackground().setState(
key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
key.mMoreKeys != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
previewText.setTextColor(params.mPreviewTextColor);
FrameLayoutCompatUtils.placeViewAt(
previewText, previewX, previewY, previewWidth, previewHeight);
@ -928,7 +928,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
@Override
public boolean dismissPopupPanel() {
public boolean dismissMoreKeysPanel() {
return false;
}

View file

@ -64,11 +64,11 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
private final int mKeyRepeatInterval;
// Mini keyboard
private PopupWindow mPopupWindow;
private PopupPanel mPopupPanel;
private int mPopupPanelPointerTrackerId;
private final WeakHashMap<Key, PopupPanel> mPopupPanelCache =
new WeakHashMap<Key, PopupPanel>();
private PopupWindow mMoreKeysWindow;
private MoreKeysPanel mMoreKeysPanel;
private int mMoreKeysPanelPointerTrackerId;
private final WeakHashMap<Key, MoreKeysPanel> mMoreKeysPanelCache =
new WeakHashMap<Key, MoreKeysPanel>();
/** Listener for {@link KeyboardActionListener}. */
private KeyboardActionListener mKeyboardActionListener;
@ -297,7 +297,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
mKeyDetector.setProximityThreshold(keyboard.mMostCommonKeyWidth);
PointerTracker.setKeyDetector(mKeyDetector);
mTouchScreenRegulator.setKeyboard(keyboard);
mPopupPanelCache.clear();
mMoreKeysPanelCache.clear();
}
/**
@ -333,12 +333,12 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
private boolean openMiniKeyboardIfRequired(int keyIndex, PointerTracker tracker) {
// Check if we have a popup layout specified first.
if (mPopupLayout == 0) {
if (mMoreKeysLayout == 0) {
return false;
}
// Check if we are already displaying popup panel.
if (mPopupPanel != null)
if (mMoreKeysPanel != null)
return false;
final Key parentKey = tracker.getKey(keyIndex);
if (parentKey == null)
@ -353,12 +353,12 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
mKeyboardActionListener.onCodeInput(Keyboard.CODE_CAPSLOCK, null, 0, 0);
}
// This default implementation returns a popup mini keyboard panel.
protected PopupPanel onCreatePopupPanel(Key parentKey) {
if (parentKey.mPopupCharacters == null)
// This default implementation returns a more keys panel.
protected MoreKeysPanel onCreateMoreKeysPanel(Key parentKey) {
if (parentKey.mMoreKeys == null)
return null;
final View container = LayoutInflater.from(getContext()).inflate(mPopupLayout, null);
final View container = LayoutInflater.from(getContext()).inflate(mMoreKeysLayout, null);
if (container == null)
throw new NullPointerException();
@ -366,7 +366,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
(MiniKeyboardView)container.findViewById(R.id.mini_keyboard_view);
final Keyboard parentKeyboard = getKeyboard();
final Keyboard miniKeyboard = new MiniKeyboard.Builder(
this, parentKeyboard.mPopupTemplateId, parentKey, parentKeyboard).build();
this, parentKeyboard.mMoreKeysTemplate, parentKey, parentKeyboard).build();
miniKeyboardView.setKeyboard(miniKeyboard);
container.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
@ -375,7 +375,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
@Override
protected boolean needsToDimKeyboard() {
return mPopupPanel != null;
return mMoreKeysPanel != null;
}
public void setSpacebarTextFadeFactor(float fadeFactor, LatinKeyboard oldKeyboard) {
@ -417,10 +417,10 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
tracker.onLongPressed();
return true;
} else {
return openPopupPanel(parentKey, tracker);
return openMoreKeysPanel(parentKey, tracker);
}
} else {
return openPopupPanel(parentKey, tracker);
return openMoreKeysPanel(parentKey, tracker);
}
}
@ -431,34 +431,35 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
return true;
}
private boolean openPopupPanel(Key parentKey, PointerTracker tracker) {
PopupPanel popupPanel = mPopupPanelCache.get(parentKey);
if (popupPanel == null) {
popupPanel = onCreatePopupPanel(parentKey);
if (popupPanel == null)
private boolean openMoreKeysPanel(Key parentKey, PointerTracker tracker) {
MoreKeysPanel moreKeysPanel = mMoreKeysPanelCache.get(parentKey);
if (moreKeysPanel == null) {
moreKeysPanel = onCreateMoreKeysPanel(parentKey);
if (moreKeysPanel == null)
return false;
mPopupPanelCache.put(parentKey, popupPanel);
mMoreKeysPanelCache.put(parentKey, moreKeysPanel);
}
if (mPopupWindow == null) {
mPopupWindow = new PopupWindow(getContext());
mPopupWindow.setBackgroundDrawable(null);
mPopupWindow.setAnimationStyle(R.style.MiniKeyboardAnimation);
if (mMoreKeysWindow == null) {
mMoreKeysWindow = new PopupWindow(getContext());
mMoreKeysWindow.setBackgroundDrawable(null);
mMoreKeysWindow.setAnimationStyle(R.style.MiniKeyboardAnimation);
// Allow popup window to be drawn off the screen.
mPopupWindow.setClippingEnabled(false);
mMoreKeysWindow.setClippingEnabled(false);
}
mPopupPanel = popupPanel;
mPopupPanelPointerTrackerId = tracker.mPointerId;
mMoreKeysPanel = moreKeysPanel;
mMoreKeysPanelPointerTrackerId = tracker.mPointerId;
final Keyboard keyboard = getKeyboard();
popupPanel.setShifted(keyboard.isShiftedOrShiftLocked());
moreKeysPanel.setShifted(keyboard.isShiftedOrShiftLocked());
final int pointX = (mConfigShowMiniKeyboardAtTouchedPoint) ? tracker.getLastX()
: parentKey.mX + parentKey.mWidth / 2;
final int pointY = parentKey.mY - keyboard.mVerticalGap;
popupPanel.showPopupPanel(
this, this, pointX, pointY, mPopupWindow, getKeyboardActionListener());
final int translatedX = popupPanel.translateX(tracker.getLastX());
final int translatedY = popupPanel.translateY(tracker.getLastY());
tracker.onShowPopupPanel(translatedX, translatedY, SystemClock.uptimeMillis(), popupPanel);
moreKeysPanel.showMoreKeysPanel(
this, this, pointX, pointY, mMoreKeysWindow, getKeyboardActionListener());
final int translatedX = moreKeysPanel.translateX(tracker.getLastX());
final int translatedY = moreKeysPanel.translateY(tracker.getLastY());
tracker.onShowMoreKeysPanel(
translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel);
invalidateAllKeys();
return true;
@ -469,7 +470,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
}
public boolean isInSlidingKeyInput() {
if (mPopupPanel != null) {
if (mMoreKeysPanel != null) {
return true;
} else {
return PointerTracker.isAnyInSlidingKeyInput();
@ -504,7 +505,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
}
// Gesture detector must be enabled only when mini-keyboard is not on the screen.
if (mPopupPanel == null && mGestureDetector != null
if (mMoreKeysPanel == null && mGestureDetector != null
&& mGestureDetector.onTouchEvent(me)) {
PointerTracker.dismissAllKeyPreviews();
mKeyTimerHandler.cancelKeyTimers();
@ -515,9 +516,9 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
final int index = me.getActionIndex();
final int id = me.getPointerId(index);
final int x, y;
if (mPopupPanel != null && id == mPopupPanelPointerTrackerId) {
x = mPopupPanel.translateX((int)me.getX(index));
y = mPopupPanel.translateY((int)me.getY(index));
if (mMoreKeysPanel != null && id == mMoreKeysPanelPointerTrackerId) {
x = mMoreKeysPanel.translateX((int)me.getX(index));
y = mMoreKeysPanel.translateY((int)me.getY(index));
} else {
x = (int)me.getX(index);
y = (int)me.getY(index);
@ -569,9 +570,10 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
for (int i = 0; i < pointerCount; i++) {
final PointerTracker tracker = getPointerTracker(me.getPointerId(i));
final int px, py;
if (mPopupPanel != null && tracker.mPointerId == mPopupPanelPointerTrackerId) {
px = mPopupPanel.translateX((int)me.getX(i));
py = mPopupPanel.translateY((int)me.getY(i));
if (mMoreKeysPanel != null
&& tracker.mPointerId == mMoreKeysPanelPointerTrackerId) {
px = mMoreKeysPanel.translateX((int)me.getX(i));
py = mMoreKeysPanel.translateY((int)me.getY(i));
} else {
px = (int)me.getX(i);
py = (int)me.getY(i);
@ -608,16 +610,16 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
@Override
public void closing() {
super.closing();
dismissPopupPanel();
mPopupPanelCache.clear();
dismissMoreKeysPanel();
mMoreKeysPanelCache.clear();
}
@Override
public boolean dismissPopupPanel() {
if (mPopupWindow != null && mPopupWindow.isShowing()) {
mPopupWindow.dismiss();
mPopupPanel = null;
mPopupPanelPointerTrackerId = -1;
public boolean dismissMoreKeysPanel() {
if (mMoreKeysWindow != null && mMoreKeysWindow.isShowing()) {
mMoreKeysWindow.dismiss();
mMoreKeysPanel = null;
mMoreKeysPanelPointerTrackerId = -1;
invalidateAllKeys();
return true;
}
@ -625,7 +627,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
}
public boolean handleBack() {
return dismissPopupPanel();
return dismissMoreKeysPanel();
}
@Override

View file

@ -20,7 +20,7 @@ import android.graphics.Paint;
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
import com.android.inputmethod.keyboard.internal.KeyboardParams;
import com.android.inputmethod.keyboard.internal.PopupCharactersParser;
import com.android.inputmethod.keyboard.internal.MoreKeySpecParser;
import com.android.inputmethod.latin.R;
public class MiniKeyboard extends Keyboard {
@ -36,7 +36,7 @@ public class MiniKeyboard extends Keyboard {
}
public static class Builder extends KeyboardBuilder<Builder.MiniKeyboardParams> {
private final CharSequence[] mPopupCharacters;
private final CharSequence[] mMoreKeys;
public static class MiniKeyboardParams extends KeyboardParams {
/* package */int mTopRowAdjustment;
@ -224,22 +224,22 @@ public class MiniKeyboard extends Keyboard {
// mParams.mVerticalGap = parentKeyboard.mVerticalGap;
mParams.mIsRtlKeyboard = parentKeyboard.mIsRtlKeyboard;
mPopupCharacters = parentKey.mPopupCharacters;
mMoreKeys = parentKey.mMoreKeys;
final int keyWidth = getMaxKeyWidth(view, mPopupCharacters, mParams.mDefaultKeyWidth);
mParams.setParameters(mPopupCharacters.length, parentKey.mMaxMiniKeyboardColumn,
final int keyWidth = getMaxKeyWidth(view, mMoreKeys, mParams.mDefaultKeyWidth);
mParams.setParameters(mMoreKeys.length, parentKey.mMaxMoreKeysColumn,
keyWidth, parentKeyboard.mDefaultRowHeight, parentKey.mX
+ (mParams.mDefaultKeyWidth - keyWidth) / 2, view.getMeasuredWidth());
}
private static int getMaxKeyWidth(KeyboardView view, CharSequence[] popupCharacters,
private static int getMaxKeyWidth(KeyboardView view, CharSequence[] moreKeys,
int minKeyWidth) {
final int padding = (int) view.getContext().getResources()
.getDimension(R.dimen.mini_keyboard_key_horizontal_padding);
Paint paint = null;
int maxWidth = minKeyWidth;
for (CharSequence popupSpec : popupCharacters) {
final CharSequence label = PopupCharactersParser.getLabel(popupSpec.toString());
for (CharSequence moreKeySpec : moreKeys) {
final CharSequence label = MoreKeySpecParser.getLabel(moreKeySpec.toString());
// If the label is single letter, minKeyWidth is enough to hold
// the label.
if (label != null && label.length() > 1) {
@ -259,10 +259,10 @@ public class MiniKeyboard extends Keyboard {
@Override
public MiniKeyboard build() {
final MiniKeyboardParams params = mParams;
for (int n = 0; n < mPopupCharacters.length; n++) {
final String popupSpec = mPopupCharacters[n].toString();
for (int n = 0; n < mMoreKeys.length; n++) {
final String moreKeySpec = mMoreKeys[n].toString();
final int row = n / params.mNumColumns;
final Key key = new Key(mResources, params, popupSpec, params.getX(n, row),
final Key key = new Key(mResources, params, moreKeySpec, params.getX(n, row),
params.getY(row), params.mDefaultKeyWidth, params.mDefaultRowHeight,
params.getRowFlags(row));
params.onAddKey(key);

View file

@ -33,7 +33,7 @@ import java.util.List;
* A view that renders a virtual {@link MiniKeyboard}. It handles rendering of keys and detecting
* key presses and touch movements.
*/
public class MiniKeyboardView extends KeyboardView implements PopupPanel {
public class MiniKeyboardView extends KeyboardView implements MoreKeysPanel {
private final int[] mCoordinates = new int[2];
private final KeyDetector mKeyDetector;
@ -196,7 +196,7 @@ public class MiniKeyboardView extends KeyboardView implements PopupPanel {
}
@Override
public void showPopupPanel(View parentView, Controller controller, int pointX, int pointY,
public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
PopupWindow window, KeyboardActionListener listener) {
mController = controller;
mListener = listener;
@ -232,8 +232,8 @@ public class MiniKeyboardView extends KeyboardView implements PopupPanel {
}
@Override
public boolean dismissPopupPanel() {
return mController.dismissPopupPanel();
public boolean dismissMoreKeysPanel() {
return mController.dismissMoreKeysPanel();
}
@Override

View file

@ -19,36 +19,41 @@ package com.android.inputmethod.keyboard;
import android.view.View;
import android.widget.PopupWindow;
public interface PopupPanel extends PointerTracker.KeyEventHandler {
public interface MoreKeysPanel extends PointerTracker.KeyEventHandler {
public interface Controller {
public boolean dismissPopupPanel();
public boolean dismissMoreKeysPanel();
}
public void setShifted(boolean shifted);
/**
* Show popup panel.
* @param parentView the parent view of this popup panel
* @param controller the controller that can dismiss this popup panel
* @param pointX x coordinate of this popup panel
* @param pointY y coordinate of this popup panel
* @param window PopupWindow to be used to show this popup panel
* @param listener the listener that will receive keyboard action from this popup panel.
* Show more keys panel.
*
* @param parentView the parent view of this more keys panel
* @param controller the controller that can dismiss this more keys panel
* @param pointX x coordinate of this more keys panel
* @param pointY y coordinate of this more keys panel
* @param window PopupWindow to be used to show this more keys panel
* @param listener the listener that will receive keyboard action from this more keys panel.
*/
public void showPopupPanel(View parentView, Controller controller, int pointX, int pointY,
public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
PopupWindow window, KeyboardActionListener listener);
/**
* Translate X-coordinate of touch event to the local X-coordinate of this PopupPanel.
* Translate X-coordinate of touch event to the local X-coordinate of this
* {@link MoreKeysPanel}.
*
* @param x the global X-coordinate
* @return the local X-coordinate to this PopupPanel
* @return the local X-coordinate to this {@link MoreKeysPanel}
*/
public int translateX(int x);
/**
* Translate Y-coordinate of touch event to the local Y-coordinate of this PopupPanel.
* Translate Y-coordinate of touch event to the local Y-coordinate of this
* {@link MoreKeysPanel}.
*
* @param y the global Y-coordinate
* @return the local Y-coordinate to this PopupPanel
* @return the local Y-coordinate to this {@link MoreKeysPanel}
*/
public int translateY(int y);
}

View file

@ -63,7 +63,7 @@ public class PointerTracker {
public TimerProxy getTimerProxy();
}
public interface DrawingProxy extends PopupPanel.Controller {
public interface DrawingProxy extends MoreKeysPanel.Controller {
public void invalidateKey(Key key);
public TextView inflateKeyPreviewText();
public void showKeyPreview(int keyIndex, PointerTracker tracker);
@ -123,8 +123,8 @@ public class PointerTracker {
// true if event is already translated to a key action.
private boolean mKeyAlreadyProcessed;
// true if this pointer has been long-pressed and is showing a popup panel.
private boolean mIsShowingPopupPanel;
// true if this pointer has been long-pressed and is showing a more keys panel.
private boolean mIsShowingMoreKeysPanel;
// true if this pointer is repeatable key
private boolean mIsRepeatableKey;
@ -572,9 +572,9 @@ public class PointerTracker {
}
final int keyIndex = onUpKey(keyX, keyY, eventTime);
setReleasedKeyGraphics(keyIndex);
if (mIsShowingPopupPanel) {
mDrawingProxy.dismissPopupPanel();
mIsShowingPopupPanel = false;
if (mIsShowingMoreKeysPanel) {
mDrawingProxy.dismissMoreKeysPanel();
mIsShowingMoreKeysPanel = false;
}
if (mKeyAlreadyProcessed)
return;
@ -583,10 +583,10 @@ public class PointerTracker {
}
}
public void onShowPopupPanel(int x, int y, long eventTime, KeyEventHandler handler) {
public void onShowMoreKeysPanel(int x, int y, long eventTime, KeyEventHandler handler) {
onLongPressed();
onDownEvent(x, y, eventTime, handler);
mIsShowingPopupPanel = true;
mIsShowingMoreKeysPanel = true;
}
public void onLongPressed() {
@ -615,9 +615,9 @@ public class PointerTracker {
mDrawingProxy.cancelShowKeyPreview(this);
setReleasedKeyGraphics(mKeyIndex);
mIsInSlidingKeyInput = false;
if (mIsShowingPopupPanel) {
mDrawingProxy.dismissPopupPanel();
mIsShowingPopupPanel = false;
if (mIsShowingMoreKeysPanel) {
mDrawingProxy.dismissMoreKeysPanel();
mIsShowingMoreKeysPanel = false;
}
}

View file

@ -166,12 +166,12 @@ public class KeyStyles {
readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
readText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters);
readTextArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIconPreview);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIconShifted);
readInt(keyAttr, R.styleable.Keyboard_Key_maxMiniKeyboardColumn);
readInt(keyAttr, R.styleable.Keyboard_Key_maxMoreKeysColumn);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isFunctional);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable);

View file

@ -255,10 +255,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
mParams.mIsRtlKeyboard = keyboardAttr.getBoolean(
R.styleable.Keyboard_isRtlKeyboard, false);
mParams.mPopupTemplateId = keyboardAttr.getResourceId(
R.styleable.Keyboard_popupTemplate, 0);
mParams.mMoreKeysTemplate = keyboardAttr.getResourceId(
R.styleable.Keyboard_moreKeysTemplate, 0);
mParams.mMaxMiniKeyboardColumn = keyAttr.getInt(
R.styleable.Keyboard_Key_maxMiniKeyboardColumn, 5);
R.styleable.Keyboard_Key_maxMoreKeysColumn, 5);
mParams.mIconsSet.loadIcons(keyboardAttr);
} finally {
@ -365,9 +365,9 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
checkEndTag(TAG_KEY, parser);
} else {
Key key = new Key(mResources, mParams, row, mCurrentX, mCurrentY, parser, mKeyStyles);
if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d popupCharacters=%s />",
if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d moreKeys=%s />",
TAG_KEY, (key.isEnabled() ? "" : " disabled"), key.mLabel, key.mCode,
Arrays.toString(key.mPopupCharacters)));
Arrays.toString(key.mMoreKeys)));
checkEndTag(TAG_KEY, parser);
mParams.onAddKey(key);
endKey(key);

View file

@ -49,7 +49,7 @@ public class KeyboardParams {
public int mVerticalGap;
public boolean mIsRtlKeyboard;
public int mPopupTemplateId;
public int mMoreKeysTemplate;
public int mMaxMiniKeyboardColumn;
public int GRID_WIDTH;

View file

@ -26,9 +26,9 @@ import com.android.inputmethod.latin.R;
import java.util.ArrayList;
/**
* String parser of popupCharacters attribute of Key.
* The string is comma separated texts each of which represents one popup key.
* Each popup key text is one of the following:
* String parser of moreKeys attribute of Key.
* The string is comma separated texts each of which represents one "more key".
* Each "more key" specification is one of the following:
* - A single letter (Letter)
* - Label optionally followed by keyOutputText or code (keyLabel|keyOutputText).
* - Icon followed by keyOutputText or code (@icon/icon_number|@integer/key_code)
@ -37,8 +37,8 @@ import java.util.ArrayList;
* Note that the character '@' and '\' are also parsed by XML parser and CSV parser as well.
* See {@link KeyboardIconsSet} about icon_number.
*/
public class PopupCharactersParser {
private static final String TAG = PopupCharactersParser.class.getSimpleName();
public class MoreKeySpecParser {
private static final String TAG = MoreKeySpecParser.class.getSimpleName();
private static final char ESCAPE = '\\';
private static final String LABEL_END = "|";
@ -46,24 +46,24 @@ public class PopupCharactersParser {
private static final String PREFIX_ICON = PREFIX_AT + "icon/";
private static final String PREFIX_CODE = PREFIX_AT + "integer/";
private PopupCharactersParser() {
private MoreKeySpecParser() {
// Intentional empty constructor for utility class.
}
private static boolean hasIcon(String popupSpec) {
if (popupSpec.startsWith(PREFIX_ICON)) {
final int end = indexOfLabelEnd(popupSpec, 0);
private static boolean hasIcon(String moreKeySpec) {
if (moreKeySpec.startsWith(PREFIX_ICON)) {
final int end = indexOfLabelEnd(moreKeySpec, 0);
if (end > 0)
return true;
throw new PopupCharactersParserError("outputText or code not specified: " + popupSpec);
throw new MoreKeySpecParserError("outputText or code not specified: " + moreKeySpec);
}
return false;
}
private static boolean hasCode(String popupSpec) {
final int end = indexOfLabelEnd(popupSpec, 0);
if (end > 0 && end + 1 < popupSpec.length()
&& popupSpec.substring(end + 1).startsWith(PREFIX_CODE)) {
private static boolean hasCode(String moreKeySpec) {
final int end = indexOfLabelEnd(moreKeySpec, 0);
if (end > 0 && end + 1 < moreKeySpec.length()
&& moreKeySpec.substring(end + 1).startsWith(PREFIX_CODE)) {
return true;
}
return false;
@ -85,81 +85,81 @@ public class PopupCharactersParser {
return sb.toString();
}
private static int indexOfLabelEnd(String popupSpec, int start) {
if (popupSpec.indexOf(ESCAPE, start) < 0) {
final int end = popupSpec.indexOf(LABEL_END, start);
private static int indexOfLabelEnd(String moreKeySpec, int start) {
if (moreKeySpec.indexOf(ESCAPE, start) < 0) {
final int end = moreKeySpec.indexOf(LABEL_END, start);
if (end == 0)
throw new PopupCharactersParserError(LABEL_END + " at " + start + ": " + popupSpec);
throw new MoreKeySpecParserError(LABEL_END + " at " + start + ": " + moreKeySpec);
return end;
}
final int length = popupSpec.length();
final int length = moreKeySpec.length();
for (int pos = start; pos < length; pos++) {
final char c = popupSpec.charAt(pos);
final char c = moreKeySpec.charAt(pos);
if (c == ESCAPE && pos + 1 < length) {
pos++;
} else if (popupSpec.startsWith(LABEL_END, pos)) {
} else if (moreKeySpec.startsWith(LABEL_END, pos)) {
return pos;
}
}
return -1;
}
public static String getLabel(String popupSpec) {
if (hasIcon(popupSpec))
public static String getLabel(String moreKeySpec) {
if (hasIcon(moreKeySpec))
return null;
final int end = indexOfLabelEnd(popupSpec, 0);
final String label = (end > 0) ? parseEscape(popupSpec.substring(0, end))
: parseEscape(popupSpec);
final int end = indexOfLabelEnd(moreKeySpec, 0);
final String label = (end > 0) ? parseEscape(moreKeySpec.substring(0, end))
: parseEscape(moreKeySpec);
if (TextUtils.isEmpty(label))
throw new PopupCharactersParserError("Empty label: " + popupSpec);
throw new MoreKeySpecParserError("Empty label: " + moreKeySpec);
return label;
}
public static String getOutputText(String popupSpec) {
if (hasCode(popupSpec))
public static String getOutputText(String moreKeySpec) {
if (hasCode(moreKeySpec))
return null;
final int end = indexOfLabelEnd(popupSpec, 0);
final int end = indexOfLabelEnd(moreKeySpec, 0);
if (end > 0) {
if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
throw new PopupCharactersParserError("Multiple " + LABEL_END + ": "
+ popupSpec);
final String outputText = parseEscape(popupSpec.substring(end + LABEL_END.length()));
if (indexOfLabelEnd(moreKeySpec, end + 1) >= 0)
throw new MoreKeySpecParserError("Multiple " + LABEL_END + ": "
+ moreKeySpec);
final String outputText = parseEscape(moreKeySpec.substring(end + LABEL_END.length()));
if (!TextUtils.isEmpty(outputText))
return outputText;
throw new PopupCharactersParserError("Empty outputText: " + popupSpec);
throw new MoreKeySpecParserError("Empty outputText: " + moreKeySpec);
}
final String label = getLabel(popupSpec);
final String label = getLabel(moreKeySpec);
if (label == null)
throw new PopupCharactersParserError("Empty label: " + popupSpec);
throw new MoreKeySpecParserError("Empty label: " + moreKeySpec);
// Code is automatically generated for one letter label. See {@link getCode()}.
if (label.length() == 1)
return null;
return label;
}
public static int getCode(Resources res, String popupSpec) {
if (hasCode(popupSpec)) {
final int end = indexOfLabelEnd(popupSpec, 0);
if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
throw new PopupCharactersParserError("Multiple " + LABEL_END + ": " + popupSpec);
public static int getCode(Resources res, String moreKeySpec) {
if (hasCode(moreKeySpec)) {
final int end = indexOfLabelEnd(moreKeySpec, 0);
if (indexOfLabelEnd(moreKeySpec, end + 1) >= 0)
throw new MoreKeySpecParserError("Multiple " + LABEL_END + ": " + moreKeySpec);
final int resId = getResourceId(res,
popupSpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
moreKeySpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
final int code = res.getInteger(resId);
return code;
}
if (indexOfLabelEnd(popupSpec, 0) > 0)
if (indexOfLabelEnd(moreKeySpec, 0) > 0)
return Keyboard.CODE_DUMMY;
final String label = getLabel(popupSpec);
final String label = getLabel(moreKeySpec);
// Code is automatically generated for one letter label.
if (label != null && label.length() == 1)
return label.charAt(0);
return Keyboard.CODE_DUMMY;
}
public static int getIconId(String popupSpec) {
if (hasIcon(popupSpec)) {
int end = popupSpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
final String iconId = popupSpec.substring(PREFIX_ICON.length(), end);
public static int getIconId(String moreKeySpec) {
if (hasIcon(moreKeySpec)) {
int end = moreKeySpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
final String iconId = moreKeySpec.substring(PREFIX_ICON.length(), end);
try {
return Integer.valueOf(iconId);
} catch (NumberFormatException e) {
@ -174,13 +174,13 @@ public class PopupCharactersParser {
String packageName = res.getResourcePackageName(R.string.english_ime_name);
int resId = res.getIdentifier(name, null, packageName);
if (resId == 0)
throw new PopupCharactersParserError("Unknown resource: " + name);
throw new MoreKeySpecParserError("Unknown resource: " + name);
return resId;
}
@SuppressWarnings("serial")
public static class PopupCharactersParserError extends RuntimeException {
public PopupCharactersParserError(String message) {
public static class MoreKeySpecParserError extends RuntimeException {
public MoreKeySpecParserError(String message) {
super(message);
}
}
@ -196,31 +196,31 @@ public class PopupCharactersParser {
}
};
public static CharSequence[] filterOut(Resources res, CharSequence[] popupCharacters,
public static CharSequence[] filterOut(Resources res, CharSequence[] moreKeys,
CodeFilter filter) {
if (popupCharacters == null || popupCharacters.length < 1) {
if (moreKeys == null || moreKeys.length < 1) {
return null;
}
if (popupCharacters.length == 1
&& filter.shouldFilterOut(getCode(res, popupCharacters[0].toString()))) {
if (moreKeys.length == 1
&& filter.shouldFilterOut(getCode(res, moreKeys[0].toString()))) {
return null;
}
ArrayList<CharSequence> filtered = null;
for (int i = 0; i < popupCharacters.length; i++) {
final CharSequence popupSpec = popupCharacters[i];
if (filter.shouldFilterOut(getCode(res, popupSpec.toString()))) {
for (int i = 0; i < moreKeys.length; i++) {
final CharSequence moreKeySpec = moreKeys[i];
if (filter.shouldFilterOut(getCode(res, moreKeySpec.toString()))) {
if (filtered == null) {
filtered = new ArrayList<CharSequence>();
for (int j = 0; j < i; j++) {
filtered.add(popupCharacters[j]);
filtered.add(moreKeys[j]);
}
}
} else if (filtered != null) {
filtered.add(popupSpec);
filtered.add(moreKeySpec);
}
}
if (filtered == null) {
return popupCharacters;
return moreKeys;
}
if (filtered.size() == 0) {
return null;

View file

@ -22,7 +22,7 @@ import android.test.AndroidTestCase;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.R;
public class PopupCharactersParserTests extends AndroidTestCase {
public class MoreKeySpecParserTests extends AndroidTestCase {
private Resources mRes;
private static final int ICON_SETTINGS_KEY = 5;
@ -45,28 +45,28 @@ public class PopupCharactersParserTests extends AndroidTestCase {
mCodeSettings = res.getInteger(codeId);
}
private void assertParser(String message, String popupSpec, String expectedLabel,
private void assertParser(String message, String moreKeySpec, String expectedLabel,
String expectedOutputText, int expectedIcon, int expectedCode) {
String actualLabel = PopupCharactersParser.getLabel(popupSpec);
String actualLabel = MoreKeySpecParser.getLabel(moreKeySpec);
assertEquals(message + ": label:", expectedLabel, actualLabel);
String actualOutputText = PopupCharactersParser.getOutputText(popupSpec);
String actualOutputText = MoreKeySpecParser.getOutputText(moreKeySpec);
assertEquals(message + ": ouptputText:", expectedOutputText, actualOutputText);
int actualIcon = PopupCharactersParser.getIconId(popupSpec);
int actualIcon = MoreKeySpecParser.getIconId(moreKeySpec);
assertEquals(message + ": icon:", expectedIcon, actualIcon);
int actualCode = PopupCharactersParser.getCode(mRes, popupSpec);
int actualCode = MoreKeySpecParser.getCode(mRes, moreKeySpec);
assertEquals(message + ": codes value:", expectedCode, actualCode);
}
private void assertParserError(String message, String popupSpec, String expectedLabel,
private void assertParserError(String message, String moreKeySpec, String expectedLabel,
String expectedOutputText, int expectedIcon, int expectedCode) {
try {
assertParser(message, popupSpec, expectedLabel, expectedOutputText, expectedIcon,
assertParser(message, moreKeySpec, expectedLabel, expectedOutputText, expectedIcon,
expectedCode);
fail(message);
} catch (PopupCharactersParser.PopupCharactersParserError pcpe) {
} catch (MoreKeySpecParser.MoreKeySpecParserError pcpe) {
// success.
}
}