Merge "Rename PopupCharactersParser to MoreKeySpecParser"
commit
dcb1c7b802
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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. -->
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
latin:keyLabel="/"
|
||||
latin:keyLabelOption="hasUppercaseLetter"
|
||||
latin:keyHintLabel="\@"
|
||||
latin:popupCharacters="\@" />
|
||||
latin:moreKeys="\@" />
|
||||
</default>
|
||||
</switch>
|
||||
<Key
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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="&" />
|
||||
<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="[,{,<" />
|
||||
latin:moreKeys="[,{,<" />
|
||||
<Key
|
||||
latin:keyLabel=")"
|
||||
latin:popupCharacters="],},>" />
|
||||
latin:moreKeys="],},>" />
|
||||
<Key
|
||||
latin:keyStyle="returnKeyStyle"
|
||||
latin:keyXPos="-14.6%p"
|
||||
|
@ -104,20 +104,20 @@
|
|||
latin:keyWidth="10.0%p" />
|
||||
<Key
|
||||
latin:keyLabel="<"
|
||||
latin:popupCharacters="≤,«,‹" />
|
||||
latin:moreKeys="≤,«,‹" />
|
||||
<Key
|
||||
latin:keyLabel=">"
|
||||
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="""
|
||||
latin:popupCharacters="“,”,«,»,‘,’,‚,‛" />
|
||||
latin:moreKeys="“,”,«,»,‘,’,‚,‛" />
|
||||
<Key
|
||||
latin:keyLabel="_" />
|
||||
<Spacer
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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="&" />
|
||||
<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="[,{,<" />
|
||||
latin:moreKeys="[,{,<" />
|
||||
<Key
|
||||
latin:keyLabel=")"
|
||||
latin:popupCharacters="],},>" />
|
||||
latin:moreKeys="],},>" />
|
||||
<Key
|
||||
latin:keyStyle="returnKeyStyle"
|
||||
latin:keyXPos="-15.704%p"
|
||||
|
@ -111,20 +111,20 @@
|
|||
latin:keyWidth="13.829%p" />
|
||||
<Key
|
||||
latin:keyLabel="<"
|
||||
latin:popupCharacters="≤,«,‹" />
|
||||
latin:moreKeys="≤,«,‹" />
|
||||
<Key
|
||||
latin:keyLabel=">"
|
||||
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="""
|
||||
latin:popupCharacters="“,”,«,»,‘,’,‚,‛" />
|
||||
latin:moreKeys="“,”,«,»,‘,’,‚,‛" />
|
||||
<Key
|
||||
latin:keyLabel="_" />
|
||||
<switch>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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="&" />
|
||||
<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="[,{,<" />
|
||||
latin:moreKeys="[,{,<" />
|
||||
<Key
|
||||
latin:keyLabel=")"
|
||||
latin:popupCharacters="],},>"
|
||||
latin:moreKeys="],},>"
|
||||
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="""
|
||||
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"
|
||||
|
|
|
@ -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="<"
|
||||
latin:popupCharacters="≤,«,‹" />
|
||||
latin:moreKeys="≤,«,‹" />
|
||||
<Key
|
||||
latin:keyLabel=">"
|
||||
latin:popupCharacters="≥,»,›" />
|
||||
latin:moreKeys="≥,»,›" />
|
||||
<Key
|
||||
latin:keyStyle="deleteKeyStyle"
|
||||
latin:keyWidth="fillRight"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
|
@ -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.
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue