Adaptive keyboard width/position parser (DO NOT MERGE)

This change introduces the following features to Keyboard XML format.

 * "keyXPos" can specify the key X coordinate directly.
 * "keyXPos" can be negative. The X coordinate will be calcluated from
    the right edge of the keyboard toward left.
 * "keyWidth" can be zero to be filled up to the right side.
 * "keyWidth can be negative. The key will be filled up to both sides.
 * Spacer's horizontalGap is renamed as keyWidth, and can be inherited
   from key-style.
 * Spacer can have keyXPos attribute.

Using these syntax, all keyboard layouts have been re-written.

Bug: 4442045
Change-Id: I314b2e8ca2aa145ff9506cbf927140a15685af42
This commit is contained in:
Tadashi G. Takaoka 2011-05-27 02:38:11 +09:00
parent ec8cb2eb53
commit 6b38a5fd4c
52 changed files with 837 additions and 827 deletions

View file

@ -83,7 +83,12 @@
<!-- Default width of a key, in pixels or percentage of display width. -->
<attr name="keyWidth" format="dimension|fraction" />
<!-- Default height of a row (key height + vertical gap), in pixels or percentage of
keyboard height. -->
keyboard height.
If the value is zero, the actual key width will be determined to fill out the area up
to the right edge of the keyboard.
If the value is negative, the actual key width will be determined to fill out the
area between the nearest key on the left hand side and the right edge of the keyboard.
-->
<attr name="rowHeight" format="dimension|fraction" />
<!-- Default horizontal gap between keys. -->
<attr name="horizontalGap" format="dimension|fraction" />
@ -142,6 +147,9 @@
<attr name="shiftedIcon" format="reference" />
<!-- The key is enabled and responds on press. -->
<attr name="enabled" format="boolean" />
<!-- The X-coordinate of upper right corner of this key including horizontal gap.
If the value is negative, the origin is the right edge of the keyboard. -->
<attr name="keyXPos" format="dimension|fraction" />
</declare-styleable>
<declare-styleable name="Keyboard_Row">

View file

@ -35,7 +35,7 @@
latin:rowEdgeFlags="top"
>
<Spacer
latin:horizontalGap="5%p" />
latin:keyWidth="5%p" />
<Key
latin:keyLabel="ק"
latin:keyEdgeFlags="left" />
@ -54,7 +54,7 @@
<Key
latin:keyLabel="פ" />
<Spacer
latin:horizontalGap="1.25%p" />
latin:keyWidth="1.25%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="13.75%p"
@ -86,7 +86,7 @@
</Row>
<Row>
<Spacer
latin:horizontalGap="5%p" />
latin:keyWidth="5%p" />
<Key
latin:keyLabel="ז"
latin:keyEdgeFlags="left" />

View file

@ -24,7 +24,7 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="10%p"
latin:keyWidth="9.0%p"
latin:rowEdgeFlags="top"
>
<Key
@ -67,11 +67,15 @@
<Key
latin:keyLabel="p"
latin:keyHintIcon="@drawable/key_hint_num0_holo"
latin:popupCharacters="@string/alternates_for_p"
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="10%p"
latin:keyWidth="9.0%p"
>
<Key
latin:keyLabel="q"
@ -99,15 +103,19 @@
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l" />
<Key
latin:keyLabel="m"
latin:keyLabel="m" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="10%p"
latin:keyWidth="8.9%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
@ -116,7 +124,6 @@
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
latin:popupCharacters="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
@ -128,11 +135,33 @@
latin:popupCharacters="@string/alternates_for_n" />
<Key
latin:keyLabel="\'" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p"
latin:keyEdgeFlags="right" />
</Row>
<switch>
<case
latin:mode="email"
>
<Key
latin:keyLabel="," />
<Key
latin:keyLabel="." />
</case>
<default>
<Key
latin:keyLabel=","
latin:manualTemporaryUpperCaseCode="33"
latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:manualTemporaryUpperCaseCode="63"
latin:keyHintIcon="@drawable/key_hint_question_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
latin:popupCharacters="\?" />
</default>
</switch>
<include
latin:keyboardLayout="@xml/kbd_row3_right" />
</Row>
<include
latin:keyboardLayout="@xml/kbd_qwerty_row4" />
</merge>

View file

@ -23,7 +23,7 @@
>
<!-- Base key style for the functional key -->
<switch>
<case
<case
latin:colorScheme="white"
>
<key-style
@ -37,38 +37,6 @@
latin:styleName="functionalKeyStyle" />
</case>
</switch>
<!-- Base key style for the key which may have settings key as popup key -->
<switch>
<case
latin:hasSettingsKey="true"
>
<key-style
latin:styleName="settingsPopupStyle"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="webTabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="@drawable/sym_keyboard_tab_holo"
latin:iconPreview="@drawable/sym_keyboard_tab_holo"
latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
<!-- latin:hasSettingsKey="false" -->
<default>
<key-style
latin:styleName="settingsPopupStyle"
latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="webTabKeyStyle"
latin:code="@integer/key_tab"
latin:keyIcon="@drawable/sym_keyboard_tab_holo"
latin:iconPreview="@drawable/sym_keyboard_tab_holo"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
<!-- Functional key styles -->
<switch>
<case
@ -110,18 +78,28 @@
latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_keyboard_settings_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="micKeyStyle"
latin:code="@integer/key_voice"
latin:keyIcon="@drawable/sym_keyboard_voice_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:parentStyle="settingsPopupStyle" />
<switch>
<case
latin:voiceKeyEnabled="true"
>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_voice"
latin:keyIcon="@drawable/sym_keyboard_voice_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
<default>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_keyboard_settings_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
</case>
<case
latin:colorScheme="black"
@ -162,20 +140,36 @@
latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_bkeyboard_settings"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="micKeyStyle"
latin:code="@integer/key_voice"
latin:keyIcon="@drawable/sym_bkeyboard_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:parentStyle="settingsPopupStyle" />
<switch>
<case
latin:voiceKeyEnabled="true"
>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_voice"
latin:keyIcon="@drawable/sym_bkeyboard_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
<default>
<key-style
latin:styleName="micOrSettingsKeyStyle"
latin:code="@integer/key_settings"
latin:keyIcon="@drawable/sym_bkeyboard_settings"
latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
</case>
</switch>
<key-style
latin:styleName="tabKeyStyle"
latin:code="@integer/key_tab"
latin:keyLabel="@string/label_tab_key"
latin:keyLabelOption="fontNormal"
latin:parentStyle="functionalKeyStyle" />
<key-style
latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"

View file

@ -23,7 +23,7 @@
latin:keyboardHeight="@dimen/keyboardHeight"
latin:maxKeyboardHeight="50%p"
latin:rowHeight="25%p"
latin:keyWidth="13.7%p"
latin:keyWidth="12.7%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@ -39,71 +39,68 @@
>
<!-- This row is intentionally not marked as a top row -->
<Row>
<Spacer
latin:horizontalGap="29.5%p" />
<Key
latin:keyStyle="num1KeyStyle" />
latin:keyStyle="num1KeyStyle"
latin:keyXPos="29.5%p" />
<Key
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
<Spacer
latin:horizontalGap="20.3%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.2%p"
latin:keyXPos="-10.0%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="29.5%p" />
<Key
latin:keyStyle="num4KeyStyle" />
latin:keyStyle="num4KeyStyle"
latin:keyXPos="29.5%p" />
<Key
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
<Spacer
latin:horizontalGap="14.8%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.6%p"
latin:keyXPos="-14.6%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="29.5%p" />
<Key
latin:keyStyle="num7KeyStyle" />
latin:keyStyle="num7KeyStyle"
latin:keyXPos="29.5%p" />
<Key
latin:keyStyle="num8KeyStyle" />
<Key
latin:keyStyle="num9KeyStyle" />
<!-- There is an empty area below the "Enter" key and right of the "9" key. To
ignore the touch event on the area, "9" is intentionally not marked as a right
edge key. -->
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyWidth="10.0%p"
latin:keyEdgeFlags="left" />
<Spacer
latin:horizontalGap="43.2%p" />
latin:keyXPos="29.5%p" />
<Key
latin:keyStyle="num0KeyStyle" />
<Spacer
latin:horizontalGap="30.2%p" />
<include
latin:keyboardLayout="@xml/kbd_settings" />
<Spacer />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="0.0%p"
latin:keyEdgeFlags="right" />
</Row>
</case>
<!-- latin:passwordInput="false" -->
<default>
<!-- This row is intentionally not marked as a top row -->
<Row>
<Spacer
latin:horizontalGap="10.0%p" />
<Key
latin:code="45"
latin:keyLabel="-"
latin:keyXPos="14.5%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="43"
@ -113,27 +110,24 @@
latin:code="44"
latin:keyLabel="."
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyLabel="1" />
latin:keyLabel="1"
latin:keyXPos="43.3%p" />
<Key
latin:keyLabel="2" />
<Key
latin:keyLabel="3" />
<Spacer
latin:horizontalGap="8.1%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.2%p"
latin:keyXPos="-10.0%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="10.0%p" />
<Key
latin:code="44"
latin:keyLabel="*"
latin:keyXPos="14.5%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="46"
@ -143,33 +137,27 @@
latin:code="59"
latin:keyLabel=","
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyLabel="4"
latin:keyWidth="13.7%p" />
latin:keyXPos="43.3%p" />
<Key
latin:keyLabel="5" />
<Key
latin:keyLabel="6" />
<Spacer
latin:horizontalGap="2.6%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.6%p"
latin:keyXPos="-14.6%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="10.0%p"
latin:keyEdgeFlags="left" />
<!-- There is an empty area below the "More" key and left of the "(" key. To
ignore the touch event on the area, "(" is intentionally not marked as a left
edge key. -->
<Key
latin:code="40"
latin:keyLabel="("
latin:keyXPos="14.5%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="41"
@ -179,40 +167,36 @@
latin:code="78"
latin:keyLabel="="
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyLabel="7" />
latin:keyLabel="7"
latin:keyXPos="43.3%p" />
<Key
latin:keyLabel="8" />
<Key
latin:keyLabel="9" />
<!-- There is an empty area below the "Enter" key and right of the "9" key. To
ignore the touch event on the area, "9" is intentionally not marked as a right
edge key. -->
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<Spacer
latin:horizontalGap="10.0%p" />
<!-- There is an empty area below the "More" key and left of the "space" key. To
ignore the touch event on the area, "space" is intentionally not marked as a
left edge key. -->
<Key
latin:keyStyle="tabKeyStyle"
latin:keyWidth="10.0%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
latin:keyXPos="14.5%p"
latin:keyWidth="27.2%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyLabel="*" />
latin:keyLabel="*"
latin:keyXPos="43.3%p" />
<Key
latin:keyLabel="0" />
<Key
latin:keyLabel="#" />
<Spacer
latin:horizontalGap="4.3%p" />
<include
latin:keyboardLayout="@xml/kbd_settings" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="0.0%p"
latin:keyEdgeFlags="right" />
</Row>
</default>
</switch>

View file

@ -23,7 +23,7 @@
latin:keyboardHeight="@dimen/keyboardHeight"
latin:maxKeyboardHeight="50%p"
latin:rowHeight="25%p"
latin:keyWidth="13.7%p"
latin:keyWidth="12.7%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@ -35,55 +35,49 @@
latin:keyboardLayout="@xml/kbd_numkey_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row>
<Spacer
latin:horizontalGap="14.5%p" />
<Key
latin:code="45"
latin:keyLabel=" - "
latin:keyXPos="19.0%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="43"
latin:keyLabel=" + "
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="9.1%p" />
<Key
latin:keyStyle="num1KeyStyle" />
latin:keyStyle="num1KeyStyle"
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
<Spacer
latin:horizontalGap="8.1%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.2%p"
latin:keyXPos="-10.0%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="14.5%p" />
<Key
latin:code="44"
latin:keyLabel=" , "
latin:keyXPos="19.0%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="46"
latin:keyLabel=" . "
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="9.1%p" />
<Key
latin:keyStyle="num4KeyStyle" />
latin:keyStyle="num4KeyStyle"
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
<Spacer
latin:horizontalGap="2.6%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.6%p"
latin:keyXPos="-14.6%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -91,52 +85,46 @@
latin:keyStyle="moreKeyStyle"
latin:keyWidth="10.0%p"
latin:keyEdgeFlags="left" />
<Spacer
latin:horizontalGap="4.5%p" />
<!-- There is an empty area below the "More" key and left of the "(" key. To ignore
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
latin:code="40"
latin:keyLabel=" ( "
latin:keyXPos="19.0%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="41"
latin:keyLabel=" ) "
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="9.1%p" />
<Key
latin:keyStyle="num7KeyStyle" />
latin:keyStyle="num7KeyStyle"
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num8KeyStyle" />
<Key
latin:keyStyle="num9KeyStyle" />
<!-- There is an empty area below the "Enter" key and right of the "9" key. To ignore
the touch event on the area, "9" is intentionally not marked as a right edge key. -->
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<Spacer
latin:horizontalGap="14.5%p" />
<!-- There is an empty area below the "More" key and left of the "space" key. To ignore
the touch event on the area, "space" is intentionally not marked as a left edge key. -->
<Key
latin:keyStyle="tabKeyStyle"
latin:keyWidth="10.0%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
latin:keyXPos="19.0%p"
latin:keyWidth="18.2%p" />
<Spacer
latin:horizontalGap="9.1%p" />
<Key
latin:keyStyle="numStarKeyStyle"
latin:keyWidth="13.7%p" />
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num0KeyStyle"
latin:keyWidth="13.7%p" />>
latin:keyStyle="num0KeyStyle" />
<Key
latin:keyStyle="numPoundKeyStyle"
latin:keyWidth="13.7%p" />
<Spacer
latin:horizontalGap="4.3%p" />
<include
latin:keyboardLayout="@xml/kbd_settings" />
latin:keyStyle="numPoundKeyStyle" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="0.0%p"
latin:keyEdgeFlags="right" />
</Row>
</Keyboard>

View file

@ -23,7 +23,7 @@
latin:keyboardHeight="@dimen/keyboardHeight"
latin:maxKeyboardHeight="50%p"
latin:rowHeight="25%p"
latin:keyWidth="13.7%p"
latin:keyWidth="12.7%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@ -35,11 +35,10 @@
latin:keyboardLayout="@xml/kbd_numkey_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row>
<Spacer
latin:horizontalGap="10.0%p" />
<Key
latin:code="45"
latin:keyLabel=" - "
latin:keyXPos="14.5%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="43"
@ -49,27 +48,24 @@
latin:code="44"
latin:keyLabel="@string/label_pause_key"
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyStyle="num1KeyStyle" />
latin:keyStyle="num1KeyStyle"
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
<Spacer
latin:horizontalGap="8.1%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.2%p"
latin:keyXPos="-10.0%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="10.0%p" />
<Key
latin:code="44"
latin:keyLabel=" , "
latin:keyXPos="14.5%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="46"
@ -79,19 +75,17 @@
latin:code="59"
latin:keyLabel="@string/label_wait_key"
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyStyle="num4KeyStyle" />
latin:keyStyle="num4KeyStyle"
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
<Spacer
latin:horizontalGap="2.6%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.6%p"
latin:keyXPos="-14.6%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -104,6 +98,7 @@
<Key
latin:code="40"
latin:keyLabel=" ( "
latin:keyXPos="14.5%p"
latin:keyWidth="9.1%p" />
<Key
latin:code="41"
@ -113,37 +108,35 @@
latin:code="78"
latin:keyLabel=" N "
latin:keyWidth="9.1%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyStyle="num7KeyStyle" />
latin:keyStyle="num7KeyStyle"
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num8KeyStyle" />
<Key
latin:keyStyle="num9KeyStyle" />
<!-- There is an empty area below the "Enter" key and right of the "9" key. To ignore
the touch event on the area, "9" is intentionally not marked as a right edge key. -->
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<Spacer
latin:horizontalGap="10.0%p" />
<!-- There is an empty area below the "More" key and left of the "space" key. To ignore
the touch event on the area, "space" is intentionally not marked as a left edge key. -->
<Key
latin:keyStyle="tabKeyStyle"
latin:keyWidth="10.0%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
latin:keyXPos="14.5%p"
latin:keyWidth="27.2%p" />
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyStyle="numStarKeyStyle" />
latin:keyStyle="numStarKeyStyle"
latin:keyXPos="43.3%p" />
<Key
latin:keyStyle="num0KeyStyle" />
<Key
latin:keyStyle="numPoundKeyStyle" />
<Spacer
latin:horizontalGap="4.3%p" />
<include
latin:keyboardLayout="@xml/kbd_settings" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="0.0%p"
latin:keyEdgeFlags="right" />
</Row>
</Keyboard>

View file

@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Row
latin:keyWidth="9.1%p"
latin:keyWidth="9.0%p"
latin:rowEdgeFlags="top"
>
<Key
@ -68,7 +68,8 @@
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.2%p"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -24,11 +24,10 @@
<Row
latin:keyWidth="9.0%p"
>
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a"
latin:keyXPos="4.5%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="s"
@ -53,7 +52,8 @@
latin:popupCharacters="@string/alternates_for_l" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.6%p"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -26,7 +26,7 @@
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="10.0%p"
latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="z"
@ -70,9 +70,7 @@
latin:popupCharacters="\?" />
</default>
</switch>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="10.1%p"
latin:keyEdgeFlags="right" />
<include
latin:keyboardLayout="@xml/kbd_row3_right" />
</Row>
</merge>

View file

@ -23,129 +23,45 @@
>
<!-- This row is intentionally not marked as a bottom row -->
<Row
latin:keyWidth="8.9%p"
latin:keyWidth="9.1%p"
>
<Key
latin:keyStyle="toSymbolKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="13.0%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyStyle="tabKeyStyle"
latin:keyWidth="8.9%p" />
<switch>
<case
latin:languageCode="ru"
latin:mode="email"
>
<switch>
<!-- TODO: implement logical OR for <case> attribute -->
<case
latin:mode="email"
>
<Key
latin:keyStyle="comKeyStyle" />
</case>
<case
latin:mode="url"
>
<Key
latin:keyStyle="comKeyStyle" />
</case>
<case
latin:imeAction="actionSearch"
>
<Key
latin:keyLabel=":"
latin:manualTemporaryUpperCaseCode="43"
latin:keyHintIcon="@drawable/key_hint_plus_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
latin:popupCharacters="+" />
</case>
<default>
<Key
latin:keyStyle="smileyKeyStyle" />
</default>
</switch>
<switch>
<case
latin:mode="email"
>
<Key
latin:keyLabel="\@" />
</case>
<case
latin:mode="url"
>
<Key
latin:keyLabel="-"
latin:manualTemporaryUpperCaseCode="95"
latin:keyHintIcon="@drawable/key_hint_underline_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
latin:popupCharacters="_" />
</case>
<default>
<Key
latin:keyLabel="/"
latin:manualTemporaryUpperCaseCode="64"
latin:keyHintIcon="@drawable/key_hint_at_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
latin:popupCharacters="\@" />
</default>
</switch>
<Key
latin:keyStyle="comKeyStyle"
latin:keyWidth="8.9%p" />
</case>
<case
latin:mode="url"
>
<Key
latin:keyStyle="comKeyStyle"
latin:keyWidth="8.9%p" />
</case>
<!-- not languageCode="ru" -->
<default>
<switch>
<case
latin:mode="url"
>
<Key
latin:keyStyle="comKeyStyle"
latin:keyWidth="17.8%p" />
</case>
<default>
<switch>
<case
latin:mode="email"
>
<Key
latin:keyStyle="comKeyStyle" />
</case>
<case
latin:imeAction="actionSearch"
>
<Key
latin:keyLabel=":"
latin:manualTemporaryUpperCaseCode="43"
latin:keyHintIcon="@drawable/key_hint_plus_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
latin:popupCharacters="+" />
</case>
<default>
<Key
latin:keyStyle="smileyKeyStyle" />
</default>
</switch>
<switch>
<case
latin:mode="email"
>
<Key
latin:keyLabel="\@" />
</case>
<default>
<Key
latin:keyLabel="/"
latin:manualTemporaryUpperCaseCode="64"
latin:keyHintIcon="@drawable/key_hint_at_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
latin:popupCharacters="\@" />
</default>
</switch>
</default>
</switch>
<Key
latin:keyLabel="/"
latin:manualTemporaryUpperCaseCode="64"
latin:keyHintIcon="@drawable/key_hint_at_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
latin:popupCharacters="\@"
latin:keyWidth="8.9%p" />
</default>
</switch>
<Key
latin:keyStyle="spaceKeyStyle"
latin:keyWidth="38.5%p" />
latin:keyXPos="30.8%p"
latin:keyWidth="41.0%p" />
<switch>
<case
latin:languageCode="ru"
@ -239,7 +155,10 @@
</switch>
</default>
</switch>
<include
latin:keyboardLayout="@xml/kbd_settings" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -24,14 +24,14 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="9.09%p"
latin:keyWidth="8.0%p"
latin:rowEdgeFlags="top"
>
<Key
latin:keyLabel="q"
latin:keyHintIcon="@drawable/key_hint_num1_holo"
latin:popupCharacters="@string/alternates_for_q"
latin:keyWidth="8.75%p"
latin:keyXPos="2.15%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
@ -70,17 +70,19 @@
latin:keyHintIcon="@drawable/key_hint_num0_holo"
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyLabel="å"
latin:keyWidth="8.75%p"
latin:keyLabel="å" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="9.09%p"
latin:keyWidth="8.0%p"
>
<Key
latin:keyLabel="a"
latin:popupCharacters="@string/alternates_for_a"
latin:keyWidth="8.75%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="s"
@ -108,8 +110,11 @@
latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_11"
latin:keyWidth="8.75%p"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -24,7 +24,7 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="10%p"
latin:keyWidth="9.0%p"
latin:rowEdgeFlags="top"
>
<Key
@ -67,17 +67,21 @@
<Key
latin:keyLabel="p"
latin:keyHintIcon="@drawable/key_hint_num0_holo"
latin:popupCharacters="@string/alternates_for_p"
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
<include
latin:keyboardLayout="@xml/kbd_qwerty_row2" />
<Row
latin:keyWidth="10%p"
latin:keyWidth="8.9%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="y"
@ -97,11 +101,33 @@
latin:popupCharacters="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p"
latin:keyEdgeFlags="right" />
<switch>
<case
latin:mode="email"
>
<Key
latin:keyLabel="," />
<Key
latin:keyLabel="." />
</case>
<default>
<Key
latin:keyLabel=","
latin:manualTemporaryUpperCaseCode="33"
latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:manualTemporaryUpperCaseCode="63"
latin:keyHintIcon="@drawable/key_hint_question_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
latin:popupCharacters="\?" />
</default>
</switch>
<include
latin:keyboardLayout="@xml/kbd_row3_right" />
</Row>
<include
<include
latin:keyboardLayout="@xml/kbd_qwerty_row4" />
</merge>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2011, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<switch>
<case
latin:mode="email"
>
<Key
latin:keyLabel="\@"
latin:keyXPos="-8.9%p"
latin:keyWidth="-8.9%p"
latin:keyEdgeFlags="right" />
</case>
<case
latin:mode="url"
>
<Key
latin:keyLabel="-"
latin:manualTemporaryUpperCaseCode="95"
latin:keyHintIcon="@drawable/key_hint_underline_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
latin:popupCharacters="_"
latin:keyXPos="-8.9%p"
latin:keyWidth="-8.9%p"
latin:keyEdgeFlags="right" />
</case>
<case
latin:imeAction="actionSearch"
>
<Key
latin:keyLabel=":"
latin:manualTemporaryUpperCaseCode="43"
latin:keyHintIcon="@drawable/key_hint_plus_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
latin:popupCharacters="+"
latin:keyXPos="-8.9%p"
latin:keyWidth="-8.9%p"
latin:keyEdgeFlags="right" />
</case>
<default>
<Key
latin:keyStyle="smileyKeyStyle"
latin:keyXPos="-8.9%p"
latin:keyWidth="-8.9%p"
latin:keyEdgeFlags="right" />
</default>
</switch>
</merge>

View file

@ -24,14 +24,14 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="9.091%p"
latin:keyWidth="8.0%p"
latin:rowEdgeFlags="top"
>
<Key
latin:keyLabel="й"
latin:keyHintIcon="@drawable/key_hint_num1_holo"
latin:popupCharacters="1"
latin:keyWidth="8.75%p"
latin:keyXPos="2.15%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="ц"
@ -70,16 +70,18 @@
latin:keyHintIcon="@drawable/key_hint_num0_holo"
latin:popupCharacters="0" />
<Key
latin:keyLabel="х"
latin:keyWidth="8.75%p"
latin:keyLabel="х" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="9.091%p"
latin:keyWidth="8.0%p"
>
<Key
latin:keyLabel="ф"
latin:keyWidth="8.75%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="ы" />
@ -100,16 +102,19 @@
<Key
latin:keyLabel="ж" />
<Key
latin:keyLabel="э"
latin:keyWidth="8.75%p"
latin:keyLabel="э" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.5%p"
latin:keyWidth="8.0%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="11.75%p"
latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="я" />
@ -131,9 +136,13 @@
<Key
latin:keyLabel="ю" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="11.75%p"
latin:keyEdgeFlags="right" />
latin:keyLabel="."
latin:manualTemporaryUpperCaseCode="44"
latin:keyHintIcon="@drawable/key_hint_comma_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_comma_large_holo"
latin:popupCharacters="," />
<include
latin:keyboardLayout="@xml/kbd_row3_right" />
</Row>
<include
latin:keyboardLayout="@xml/kbd_qwerty_row4" />

View file

@ -1,89 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2011, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<switch>
<case
latin:webInput="true"
>
<switch>
<case
latin:voiceKeyEnabled="true"
latin:passwordInput="false"
>
<Key
latin:keyStyle="webTabKeyStyle"
latin:keyWidth="6.4%p" />
<Key
latin:keyStyle="micKeyStyle"
latin:keyWidth="6.5%p" />
</case>
<default>
<Spacer
latin:horizontalGap="4.15%p" />
<Key
latin:keyStyle="webTabKeyStyle"
latin:keyWidth="8.9%p" />
</default>
</switch>
</case>
<default>
<switch>
<case
latin:hasSettingsKey="true"
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="6.4%p" />
<Key
latin:keyStyle="micKeyStyle"
latin:keyWidth="6.5%p" />
</case>
<case
latin:hasSettingsKey="true"
latin:voiceKeyEnabled="false"
>
<Spacer
latin:horizontalGap="4.15%p" />
<Key
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="8.9%p" />
</case>
<case
latin:hasSettingsKey="false"
latin:voiceKeyEnabled="true"
>
<Spacer
latin:horizontalGap="4.15%p" />
<Key
latin:keyStyle="micKeyStyle"
latin:keyWidth="8.9%p" />
</case>
<default>
<Spacer
latin:horizontalGap="13.0%p" />
</default>
</switch>
</default>
</switch>
</merge>

View file

@ -24,13 +24,14 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="9.09%p"
latin:keyWidth="8.0%p"
latin:rowEdgeFlags="top"
>
<Key
latin:keyLabel="љ"
latin:keyHintIcon="@drawable/key_hint_num1_holo"
latin:popupCharacters="1"
latin:keyXPos="2.15%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="њ"
@ -69,11 +70,15 @@
latin:keyHintIcon="@drawable/key_hint_num0_holo"
latin:popupCharacters="0" />
<Key
latin:keyLabel="ш"
latin:keyLabel="ш" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="9.09%p"
latin:keyWidth="7.9%p"
>
<Key
latin:keyLabel="а"
@ -97,14 +102,19 @@
<Key
latin:keyLabel="ч" />
<Key
latin:keyLabel="ћ"
latin:keyLabel="ћ" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.90%p"
latin:keyWidth="7.5%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="8.8%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="ѕ" />
@ -124,10 +134,32 @@
latin:keyLabel="ђ" />
<Key
latin:keyLabel="ж" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="11.00%p"
latin:keyEdgeFlags="right" />
<switch>
<case
latin:mode="email"
>
<Key
latin:keyLabel="," />
<Key
latin:keyLabel="." />
</case>
<default>
<Key
latin:keyLabel=","
latin:manualTemporaryUpperCaseCode="33"
latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:manualTemporaryUpperCaseCode="63"
latin:keyHintIcon="@drawable/key_hint_question_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
latin:popupCharacters="\?" />
</default>
</switch>
<include
latin:keyboardLayout="@xml/kbd_row3_right" />
</Row>
<include
latin:keyboardLayout="@xml/kbd_qwerty_row4" />

View file

@ -34,7 +34,7 @@
latin:keyboardLayout="@xml/kbd_currency_key_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row
latin:keyWidth="9.1%p"
latin:keyWidth="9.0%p"
>
<Key
latin:keyLabel="1"
@ -65,16 +65,16 @@
latin:popupCharacters="ⁿ,∅" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.2%p"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="9.0%p"
>
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyLabel="#" />
latin:keyLabel="#"
latin:keyXPos="4.5%p" />
<Key
latin:keyStyle="currencyKeyStyle" />
<Key
@ -99,7 +99,8 @@
latin:popupCharacters="],},&gt;" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.6%p"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -107,7 +108,7 @@
>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="10.0%p"
latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="&lt;"
@ -171,9 +172,8 @@
</default>
</switch>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="10.1%p"
latin:keyEdgeFlags="right" />
latin:keyLabel="/"
latin:keyWidth="0%p" />
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row
@ -185,20 +185,23 @@
latin:keyWidth="13.0%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="/" />
latin:keyStyle="tabKeyStyle" />
<Key
latin:keyLabel="\@" />
<Key
latin:keyStyle="spaceKeyStyle"
latin:keyWidth="38.5%p" />
latin:keyXPos="30.8%p"
latin:keyWidth="41.0%p" />
<switch>
<case
latin:languageCode="ru"
>
<Key
latin:keyLabel="_" />
latin:keyLabel="_"
latin:keyWidth="9.1%p" />
<Key
latin:keyLabel="-" />
latin:keyLabel="-"
latin:keyWidth="9.1%p" />
</case>
<default>
<!-- Note: DroidSans doesn't have double-high-reversed-quotation
@ -206,12 +209,17 @@
<!-- latin:popupCharacters="“,”,„,‟,«,»,,,," -->
<Key
latin:keyLabel="&quot;"
latin:popupCharacters="“,”,«,»,,,," />
latin:popupCharacters="“,”,«,»,,,,"
latin:keyWidth="9.1%p" />
<Key
latin:keyLabel="_" />
latin:keyLabel="_"
latin:keyWidth="9.1%p" />
</default>
</switch>
<include
latin:keyboardLayout="@xml/kbd_settings" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
</Keyboard>

View file

@ -32,7 +32,7 @@
latin:keyboardLayout="@xml/kbd_key_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row
latin:keyWidth="9.1%p"
latin:keyWidth="9.0%p"
>
<Key
latin:keyLabel="~" />
@ -66,17 +66,17 @@
latin:keyLabel="Δ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.2%p"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="9.0%p"
>
<Spacer
latin:horizontalGap="4.5%p" />
<Key
latin:keyStyle="nonPasswordSymbolKeyStyle"
latin:keyLabel="£" />
latin:keyLabel="£"
latin:keyXPos="4.5%p" />
<Key
latin:keyStyle="nonPasswordSymbolKeyStyle"
latin:keyLabel="¢" />
@ -103,7 +103,8 @@
latin:keyLabel="}" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.6%p"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -111,7 +112,7 @@
>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="10.0%p"
latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="\\" />
@ -137,10 +138,6 @@
<Key
latin:keyStyle="nonPasswordSymbolKeyStyle"
latin:keyLabel="¿" />
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="10.1%p"
latin:keyEdgeFlags="right" />
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row
@ -151,14 +148,16 @@
latin:keyLabelOption="alignLeft"
latin:keyWidth="13.0%p"
latin:keyEdgeFlags="left" />
<Spacer
latin:horizontalGap="17.8%p" />
<Key
latin:keyStyle="tabKeyStyle" />
<Key
latin:keyStyle="spaceKeyStyle"
latin:keyWidth="38.5%p" />
<Spacer
latin:horizontalGap="17.8%p" />
<include
latin:keyboardLayout="@xml/kbd_settings" />
latin:keyXPos="30.8%p"
latin:keyWidth="41.0%p" />
<Key
latin:keyStyle="micOrSettingsKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="0.0%p"
latin:keyEdgeFlags="right" />
</Row>
</Keyboard>

View file

@ -24,12 +24,12 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="8.272%p"
latin:keyWidth="8.282%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="a"
@ -63,11 +63,12 @@
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.157%p"
latin:keyWidth="8.125%p"
>
<Key
latin:keyStyle="toSymbolKeyStyle"
@ -103,15 +104,16 @@
latin:keyEdgeFlags="right" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="8.593%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="-15.704%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="15.192%p"
latin:keyWidth="13.829%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
@ -161,7 +163,8 @@
</switch>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="12.530%p"
latin:keyXPos="-13.750%p"
latin:keyWidth="-13.750%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -23,7 +23,7 @@
latin:keyboardHeight="@dimen/keyboardHeight"
latin:maxKeyboardHeight="50%p"
latin:rowHeight="25%p"
latin:keyWidth="11.949%p"
latin:keyWidth="11.954%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@ -39,42 +39,42 @@
>
<!-- This row is intentionally not marked as a top row -->
<Row>
<Spacer
latin:horizontalGap="32.076%p" />
<Key
latin:keyStyle="num1KeyStyle" />
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyStyle="num1KeyStyle"
latin:keyXPos="32.076%p" />
<Key
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
<Spacer
latin:horizontalGap="22.272%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.804%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="32.076%p" />
<Key
latin:keyStyle="num4KeyStyle" />
latin:keyStyle="num4KeyStyle"
latin:keyXPos="32.076%p" />
<Key
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
<Spacer
latin:horizontalGap="17.371%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.706%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="32.076%p" />
<Key
latin:keyStyle="num7KeyStyle" />
latin:keyStyle="num7KeyStyle"
latin:keyXPos="32.076%p" />
<Key
latin:keyStyle="num8KeyStyle" />
<Key
@ -86,7 +86,7 @@
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<Spacer
latin:horizontalGap="44.026%p" />
latin:keyXPos="32.076%p" />
<Key
latin:keyStyle="num0KeyStyle" />
<!-- There is an empty area below the "Enter" key and right of the "#" key. To
@ -101,79 +101,72 @@
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:keyLabel="-"
latin:keyWidth="8.042%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="+"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="."
latin:keyWidth="8.042%p" />
<Spacer
latin:horizontalGap="4.458%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="1" />
latin:keyLabel="1"
latin:keyXPos="45.0%p" />
<Key
latin:keyLabel="2" />
<Key
latin:keyLabel="3" />
<Spacer
latin:horizontalGap="9.360%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.804%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Spacer
latin:horizontalGap="16.406%p" />
<Key
latin:keyLabel="*"
latin:keyWidth="8.042%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="/"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel=","
latin:keyWidth="8.042%p" />
<Spacer
latin:horizontalGap="4.458%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="4" />
latin:keyLabel="4"
latin:keyXPos="45.0%p" />
<Key
latin:keyLabel="5" />
<Key
latin:keyLabel="6" />
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.706%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<!-- There is an empty area below the "More" key and left of the "(" key. To
ignore the touch event on the area, "(" is intentionally not marked as a left
edge key. -->
<Spacer
latin:horizontalGap="16.406%p" />
<Key
latin:keyLabel="("
latin:keyWidth="8.042%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel=")"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="="
latin:keyWidth="8.042%p" />
<Spacer
latin:horizontalGap="4.458%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="7" />
latin:keyLabel="7"
latin:keyXPos="45.0%p" />
<Key
latin:keyLabel="8" />
<Key
@ -184,29 +177,24 @@
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<!-- There is an empty area below the "More" key and left of the "space" key. To
ignore the touch event on the area, "space" is intentionally not marked as a
left edge key. -->
<Spacer
latin:horizontalGap="8.362%p" />
<switch>
<case latin:hasSettingsKey="true">
<Key
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
</case>
<default>
<Spacer
latin:horizontalGap="8.042%p" />
latin:keyWidth="8.047%p" />
</default>
</switch>
<Key
latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
latin:keyWidth="24.127%p" />
<Spacer
latin:horizontalGap="4.458%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="24.14%p" />
<Key
latin:keyLabel="*" />
latin:keyLabel="*"
latin:keyXPos="45.0%p" />
<Key
latin:keyLabel="0" />
<Key
@ -217,12 +205,10 @@
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyWidth="8.042%p" />
latin:keyXPos="-8.047%p"
latin:keyWidth="0%p" />
</case>
</switch>
<!-- There is an empty area below the "Enter" key and right of the "#" key. To
ignore the touch event on the area, "#" is intentionally not marked as a right
edge key. -->
</Row>
</default>
</switch>

View file

@ -23,7 +23,7 @@
latin:keyboardHeight="@dimen/keyboardHeight"
latin:maxKeyboardHeight="50%p"
latin:rowHeight="25%p"
latin:keyWidth="11.949%p"
latin:keyWidth="11.954%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@ -38,63 +38,59 @@
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<!-- To match one character label size with "Tab", I placed spaces around the char '-'
and '+'. -->
<Spacer
latin:horizontalGap="8.470%p" />
<Key
latin:code="45"
latin:keyLabel=" - "
latin:keyWidth="8.042%p" />
latin:keyXPos="20.4%p"
latin:keyWidth="8.047%p" />
<Key
latin:code="43"
latin:keyLabel=" + "
latin:keyWidth="8.042%p" />
<Spacer
latin:horizontalGap="8.479%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num1KeyStyle" />
latin:keyStyle="num1KeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
<Spacer
latin:horizontalGap="9.360%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.804%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
<!-- To match one character label size with "More", I placed spaces around the char ','
and '.'. -->
<Spacer
latin:horizontalGap="8.470%p" />
<Key
latin:code="44"
latin:keyLabel=" , "
latin:keyWidth="8.042%p" />
latin:keyXPos="20.4%p"
latin:keyWidth="8.047%p" />
<Key
latin:code="46"
latin:keyLabel=" . "
latin:keyWidth="8.042%p" />
<Spacer
latin:horizontalGap="8.479%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num4KeyStyle" />
latin:keyStyle="num4KeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.706%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -102,20 +98,18 @@
and ')'. -->
<!-- There is an empty area below the "More" key and left of the "(" key. To ignore
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Spacer
latin:horizontalGap="20.427%p" />
<Key
latin:code="40"
latin:keyLabel=" ( "
latin:keyWidth="8.042%p" />
latin:keyXPos="20.4%p"
latin:keyWidth="8.047%p" />
<Key
latin:code="41"
latin:keyLabel=" ) "
latin:keyWidth="8.042%p" />
<Spacer
latin:horizontalGap="8.479%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num7KeyStyle" />
latin:keyStyle="num7KeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num8KeyStyle" />
<Key
@ -125,28 +119,24 @@
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<!-- There is an empty area below the "More" key and left of the "space" key. To ignore
the touch event on the area, "space" is intentionally not marked as a left edge key. -->
<Spacer
latin:horizontalGap="12.340%p" />
<switch>
<case latin:hasSettingsKey="true">
<Key
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
</case>
<default>
<Spacer
latin:horizontalGap="8.042%p" />
latin:keyWidth="8.047%p" />
</default>
</switch>
<Key
latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
latin:keyXPos="20.4%p"
latin:keyWidth="16.084%p" />
<Spacer
latin:horizontalGap="8.479%p" />
<Key
latin:keyStyle="numStarKeyStyle" />
latin:keyStyle="numStarKeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num0KeyStyle" />
<Key
@ -157,10 +147,9 @@
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyWidth="8.042%p" />
latin:keyXPos="-8.047%p"
latin:keyWidth="0%p" />
</case>
</switch>
<!-- There is an empty area below the "Enter" key and right of the "#" key. To ignore
the touch event on the area, "#" is intentionally not marked as a right edge key. -->
</Row>
</Keyboard>

View file

@ -23,7 +23,7 @@
latin:keyboardHeight="@dimen/keyboardHeight"
latin:maxKeyboardHeight="50%p"
latin:rowHeight="25%p"
latin:keyWidth="11.949%p"
latin:keyWidth="11.954%p"
latin:horizontalGap="@dimen/key_horizontal_gap"
latin:verticalGap="@dimen/key_bottom_gap"
latin:popupKeyboardTemplate="@xml/kbd_popup_template"
@ -38,71 +38,67 @@
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:code="45"
latin:keyLabel=" - "
latin:keyWidth="8.042%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:code="43"
latin:keyLabel=" + "
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<Key
latin:code="44"
latin:keyLabel="@string/label_pause_key"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<!-- To match one character label size with "Tab" and "Pause, I placed spaces around the
char '-' and '+'. -->
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:keyStyle="num1KeyStyle" />
latin:keyStyle="num1KeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
<Spacer
latin:horizontalGap="9.360%p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.804%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:code="44"
latin:keyLabel=" , "
latin:keyWidth="8.042%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:code="46"
latin:keyLabel=" . "
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<Key
latin:code="59"
latin:keyLabel="@string/label_wait_key"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<!-- To match one character label size with "More" and "Wait", I placed spaces around the
char ',' and '.'. -->
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:keyStyle="num4KeyStyle" />
latin:keyStyle="num4KeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
<Spacer
latin:horizontalGap="4.458%p" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="14.706%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -110,24 +106,22 @@
char 'N', '(' and ')'. -->
<!-- There is an empty area below the "More" key and left of the "(" key. To ignore
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Spacer
latin:horizontalGap="16.406%p" />
<Key
latin:code="40"
latin:keyLabel=" ( "
latin:keyWidth="8.042%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:code="41"
latin:keyLabel=" ) "
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
<Key
latin:code="78"
latin:keyLabel=" N "
latin:keyWidth="8.042%p" />
<Spacer
latin:horizontalGap="4.458%p" />
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num7KeyStyle" />
latin:keyStyle="num7KeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num8KeyStyle" />
<Key
@ -137,28 +131,24 @@
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
<!-- There is an empty area below the "More" key and left of the "space" key. To ignore
the touch event on the area, "space" is intentionally not marked as a left edge key. -->
<Spacer
latin:horizontalGap="8.362%p" />
<switch>
<case latin:hasSettingsKey="true">
<Key
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="8.042%p" />
latin:keyWidth="8.047%p" />
</case>
<default>
<Spacer
latin:horizontalGap="8.042%p" />
latin:keyWidth="8.047%p" />
</default>
</switch>
<Key
latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
latin:keyWidth="24.127%p" />
<Spacer
latin:horizontalGap="4.458%p" />
latin:keyXPos="13.829%p"
latin:keyWidth="24.14%p" />
<Key
latin:keyStyle="numStarKeyStyle" />
latin:keyStyle="numStarKeyStyle"
latin:keyXPos="45.0%p" />
<Key
latin:keyStyle="num0KeyStyle" />
<Key
@ -169,10 +159,9 @@
>
<Key
latin:keyStyle="micKeyStyle"
latin:keyWidth="8.042%p" />
latin:keyXPos="-8.047%p"
latin:keyWidth="0%p" />
</case>
</switch>
<!-- There is an empty area below the "Enter" key and right of the "#" key. To ignore
the touch event on the area, "#" is intentionally not marked as a right edge key. -->
</Row>
</Keyboard>

View file

@ -23,12 +23,12 @@
>
<!-- This row is intentionally not marked as a top row -->
<Row
latin:keyWidth="8.272%p"
latin:keyWidth="8.282%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="q"
@ -62,7 +62,8 @@
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -22,12 +22,12 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Row
latin:keyWidth="8.157%p"
latin:keyWidth="8.125%p"
>
<Key
latin:keyStyle="toSymbolKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="11.167%p"
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="a"
@ -55,7 +55,8 @@
latin:popupCharacters="@string/alternates_for_l" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="15.750%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="-15.704%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -22,11 +22,11 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="15.192%p"
latin:keyWidth="13.829%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="z"
@ -72,7 +72,8 @@
</switch>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="12.530%p"
latin:keyXPos="-13.750%p"
latin:keyWidth="-13.750%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -23,18 +23,17 @@
>
<!-- This row is intentionally not marked as a bottom row -->
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Spacer
latin:horizontalGap="8.362%p" />
<switch>
<case latin:hasSettingsKey="true">
<Key
latin:keyStyle="settingsKeyStyle" />
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="8.047%p" />
</case>
<default>
<Spacer
latin:horizontalGap="8.042%p" />
latin:keyWidth="8.047%p" />
</default>
</switch>
<switch>
@ -47,13 +46,15 @@
latin:mode="email"
>
<Key
latin:keyStyle="comKeyStyle" />
latin:keyStyle="comKeyStyle"
latin:keyXPos="15.157%p" />
</case>
<case
latin:mode="url"
>
<Key
latin:keyStyle="comKeyStyle" />
latin:keyStyle="comKeyStyle"
latin:keyXPos="15.157%p" />
</case>
<case
latin:imeAction="actionSearch"
@ -63,11 +64,13 @@
latin:manualTemporaryUpperCaseCode="43"
latin:keyHintIcon="@drawable/key_hint_plus_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
latin:popupCharacters="+" />
latin:popupCharacters="+"
latin:keyXPos="15.157%p" />
</case>
<default>
<Key
latin:keyStyle="smileyKeyStyle" />
latin:keyStyle="smileyKeyStyle"
latin:keyXPos="15.157%p" />
</default>
</switch>
<switch>
@ -105,6 +108,7 @@
>
<Key
latin:keyStyle="comKeyStyle"
latin:keyXPos="15.157%p"
latin:keyWidth="16.084%p" />
</case>
<default>
@ -113,7 +117,8 @@
latin:mode="email"
>
<Key
latin:keyStyle="comKeyStyle" />
latin:keyStyle="comKeyStyle"
latin:keyXPos="15.157%p" />
</case>
<case
latin:imeAction="actionSearch"
@ -123,11 +128,13 @@
latin:manualTemporaryUpperCaseCode="43"
latin:keyHintIcon="@drawable/key_hint_plus_holo"
latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
latin:popupCharacters="+" />
latin:popupCharacters="+"
latin:keyXPos="15.157%p" />
</case>
<default>
<Key
latin:keyStyle="smileyKeyStyle" />
latin:keyStyle="smileyKeyStyle"
latin:keyXPos="15.157%p" />
</default>
</switch>
<switch>
@ -152,7 +159,8 @@
</switch>
<Key
latin:keyStyle="spaceKeyStyle"
latin:keyWidth="37.454%p" />
latin:keyXPos="31.250%p"
latin:keyWidth="37.500%p" />
<switch>
<case
latin:languageCode="ru"
@ -251,7 +259,9 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle" />
latin:keyStyle="micKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="0%p" />
</case>
</switch>
</Row>

View file

@ -24,12 +24,12 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.579%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="q"
@ -65,16 +65,17 @@
latin:keyLabel="å" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.500%p"
>
<Key
latin:keyStyle="toSymbolKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="a"
@ -108,8 +109,10 @@
latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="-15.704%p"
latin:keyEdgeFlags="right" />
</Row>
<include
latin:keyboardLayout="@xml/kbd_qwerty_row3" />

View file

@ -24,12 +24,12 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
latin:keyWidth="8.272%p"
latin:keyWidth="8.282%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="q"
@ -63,17 +63,18 @@
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
<include
latin:keyboardLayout="@xml/kbd_qwerty_row2" />
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="15.192%p"
latin:keyWidth="13.829%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="y"
@ -119,7 +120,8 @@
</switch>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="12.530%p"
latin:keyXPos="-13.750%p"
latin:keyWidth="-13.750%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -25,57 +25,49 @@
latin:keyboardLayout="@xml/kbd_key_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.579%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="й"
latin:popupCharacters="1" />
latin:keyLabel="й" />
<Key
latin:keyLabel="ц"
latin:popupCharacters="2" />
latin:keyLabel="ц" />
<Key
latin:keyLabel="у"
latin:popupCharacters="3" />
latin:keyLabel="у" />
<Key
latin:keyLabel="к"
latin:popupCharacters="4" />
latin:keyLabel="к" />
<Key
latin:keyLabel="е"
latin:popupCharacters="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н"
latin:popupCharacters="6" />
latin:keyLabel="н" />
<Key
latin:keyLabel="г"
latin:popupCharacters="7" />
latin:keyLabel="г" />
<Key
latin:keyLabel="ш"
latin:popupCharacters="8" />
latin:keyLabel="ш" />
<Key
latin:keyLabel="щ"
latin:popupCharacters="9" />
latin:keyLabel="щ" />
<Key
latin:keyLabel="з"
latin:popupCharacters="0" />
latin:keyLabel="з" />
<Key
latin:keyLabel="х" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.500%p"
>
<Key
latin:keyStyle="toSymbolKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="9.219%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="ф" />
@ -101,11 +93,12 @@
latin:keyLabel="э" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="-15.704%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.500%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
@ -138,7 +131,8 @@
latin:popupCharacters="," />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="12.400%p"
latin:keyXPos="-13.750%p"
latin:keyWidth="-13.750%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -25,12 +25,12 @@
latin:keyboardLayout="@xml/kbd_key_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.579%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="8.640%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="љ"
@ -66,16 +66,17 @@
latin:keyLabel="ш" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="8.640%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.500%p"
>
<Key
latin:keyStyle="toSymbolKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="8.640%p"
latin:keyWidth="9.219%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="а" />
@ -101,15 +102,16 @@
latin:keyLabel="ћ" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="8.640%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="-15.704%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="7.520%p"
latin:keyWidth="7.500%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="8.640%p"
latin:keyWidth="9.219%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="ѕ" />
@ -143,7 +145,8 @@
latin:popupCharacters="\?" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="8.640%p"
latin:keyXPos="-13.750%p"
latin:keyWidth="-13.750%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -34,12 +34,12 @@
latin:keyboardLayout="@xml/kbd_currency_key_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row
latin:keyWidth="8.272%p"
latin:keyWidth="8.282%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="1"
@ -70,16 +70,17 @@
latin:popupCharacters="ⁿ,∅" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.157%p"
latin:keyWidth="8.125%p"
>
<Key
latin:keyStyle="toAlphaKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="11.167%p"
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="#" />
@ -107,15 +108,16 @@
latin:popupCharacters="],},&gt;" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="15.750%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="-15.704%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="15.192%p"
latin:keyWidth="13.829%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="&lt;"
@ -179,32 +181,34 @@
</switch>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="12.530%p"
latin:keyXPos="-13.750%p"
latin:keyWidth="-13.750%p"
latin:keyEdgeFlags="right" />
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Spacer
latin:horizontalGap="8.362%p" />
<switch>
<case latin:hasSettingsKey="true">
<Key
latin:keyStyle="settingsKeyStyle" />
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="8.047%p" />
</case>
<default>
<Spacer
latin:horizontalGap="8.042%p" />
latin:keyWidth="8.047%p" />
</default>
</switch>
<Key
latin:keyLabel="/" />
latin:keyLabel="/"
latin:keyXPos="15.157%p" />
<Key
latin:keyLabel="\@" />
<Key
latin:keyStyle="spaceKeyStyle"
latin:keyWidth="37.454%p" />
latin:keyXPos="31.250%p"
latin:keyWidth="37.500%p" />
<switch>
<case
latin:languageCode="ru"
@ -229,7 +233,9 @@
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle" />
latin:keyStyle="micKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="0%p" />
</case>
</switch>
</Row>

View file

@ -32,12 +32,12 @@
latin:keyboardLayout="@xml/kbd_key_styles" />
<!-- This row is intentionally not marked as a top row -->
<Row
latin:keyWidth="8.272%p"
latin:keyWidth="8.282%p"
>
<Key
latin:keyStyle="tabKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="7.949%p"
latin:keyWidth="7.969%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="~" />
@ -71,16 +71,17 @@
latin:keyLabel="Δ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="9.331%p"
latin:keyXPos="-9.219%p"
latin:keyWidth="-9.219%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.157%p"
latin:keyWidth="8.125%p"
>
<Key
latin:keyStyle="toAlphaKeyStyle"
latin:keyLabelOption="alignLeft"
latin:keyWidth="11.167%p"
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyStyle="nonPasswordSymbolKeyStyle"
@ -111,15 +112,16 @@
latin:keyLabel="}" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="15.750%p"
latin:keyXPos="-15.704%p"
latin:keyWidth="-15.704%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="15.192%p"
latin:keyWidth="13.829%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="\\" />
@ -147,34 +149,37 @@
latin:keyLabel="¿" />
<Key
latin:keyStyle="moreKeyStyle"
latin:keyWidth="12.530%p"
latin:keyXPos="-13.750%p"
latin:keyWidth="-13.750%p"
latin:keyEdgeFlags="right" />
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row
latin:keyWidth="8.042%p"
latin:keyWidth="8.047%p"
>
<Spacer
latin:horizontalGap="24.446%p" />
<switch>
<case latin:hasSettingsKey="true">
<Key
latin:keyStyle="settingsKeyStyle" />
latin:keyStyle="settingsKeyStyle"
latin:keyWidth="8.047%p" />
</case>
<default>
<Spacer
latin:horizontalGap="8.042%p" />
latin:keyWidth="8.047%p" />
</default>
</switch>
<Key
latin:keyStyle="spaceKeyStyle"
latin:keyWidth="37.454%p" />
latin:keyXPos="31.250%p"
latin:keyWidth="37.500%p" />
<switch>
<case
latin:voiceKeyEnabled="true"
>
<Key
latin:keyStyle="micKeyStyle" />
latin:keyStyle="micKeyStyle"
latin:keyXPos="-8.047%p"
latin:keyWidth="0%p" />
</case>
</switch>
</Row>

View file

@ -68,6 +68,7 @@
latin:keyLabel="p"
latin:keyHintIcon="@drawable/key_hint_num0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -100,6 +101,7 @@
latin:popupCharacters="@string/alternates_for_l" />
<Key
latin:keyLabel="m"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -130,7 +132,7 @@
latin:keyLabel="\'" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -47,8 +47,6 @@
latin:keyStyle="num2KeyStyle" />
<Key
latin:keyStyle="num3KeyStyle" />
<Spacer
latin:horizontalGap="20%p" />
</Row>
<Row>
<Key
@ -58,8 +56,6 @@
latin:keyStyle="num5KeyStyle" />
<Key
latin:keyStyle="num6KeyStyle" />
<Spacer
latin:horizontalGap="20%p" />
</Row>
<Row>
<Key
@ -71,21 +67,19 @@
latin:keyStyle="num9KeyStyle" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
latin:rowEdgeFlags="bottom"
>
<Spacer
latin:horizontalGap="26.67%p" />
<Spacer />
<Key
latin:keyStyle="num0KeyStyle" />
<Spacer
latin:horizontalGap="26.67%p" />
<Spacer />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
</case>
@ -103,7 +97,7 @@
<Key
latin:keyLabel="-"
latin:keyStyle="functionalKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -117,7 +111,7 @@
<Key
latin:keyLabel=","
latin:keyStyle="functionalKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -130,7 +124,7 @@
latin:keyLabel="9" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -145,7 +139,7 @@
latin:keyLabel="." />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
</default>

View file

@ -46,7 +46,7 @@
<Key
latin:keyLabel="-"
latin:keyStyle="functionalKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -60,7 +60,7 @@
<Key
latin:keyLabel="."
latin:keyStyle="functionalKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -73,7 +73,7 @@
latin:keyStyle="num9KeyStyle" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -88,7 +88,7 @@
latin:keyStyle="numSpaceKeyStyle" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
</Keyboard>

View file

@ -46,7 +46,7 @@
<Key
latin:keyLabel="-"
latin:keyStyle="functionalKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -63,7 +63,7 @@
<Key
latin:keyLabel="."
latin:keyStyle="functionalKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -78,7 +78,7 @@
latin:keyStyle="numPoundKeyStyle" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -94,7 +94,7 @@
latin:keyStyle="numSpaceKeyStyle" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
</Keyboard>

View file

@ -66,6 +66,7 @@
latin:keyLabel="p"
latin:keyHintIcon="@drawable/key_hint_num0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -24,10 +24,9 @@
<Row
latin:keyWidth="10%p"
>
<Spacer
latin:horizontalGap="5%p" />
<Key
latin:keyLabel="a"
latin:keyXPos="5%p"
latin:popupCharacters="@string/alternates_for_a"
latin:keyEdgeFlags="left" />
<Key
@ -51,6 +50,7 @@
<Key
latin:keyLabel="l"
latin:popupCharacters="@string/alternates_for_l"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -48,7 +48,7 @@
latin:keyLabel="m" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
</merge>

View file

@ -64,13 +64,13 @@
>
<Key
latin:keyStyle="smileyKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</case>
<default>
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</default>
</switch>
@ -114,21 +114,13 @@
>
<Key
latin:keyStyle="smileyKeyStyle"
latin:keyWidth="25%p"
latin:keyEdgeFlags="right" />
</case>
<case
latin:webInput="true"
>
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</case>
<default>
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="25%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</default>
</switch>

View file

@ -71,7 +71,7 @@
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyLabel="å"
latin:keyWidth="8.75%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -109,7 +109,7 @@
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
latin:popupCharacters="@string/alternates_for_scandinavia_row2_11"
latin:keyWidth="8.75%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -68,6 +68,7 @@
latin:keyLabel="p"
latin:keyHintIcon="@drawable/key_hint_num0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include
@ -99,7 +100,7 @@
latin:keyLabel="m" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -71,7 +71,7 @@
latin:popupCharacters="0" />
<Key
latin:keyLabel="х"
latin:keyWidth="8.75%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -101,7 +101,7 @@
latin:keyLabel="ж" />
<Key
latin:keyLabel="э"
latin:keyWidth="8.75%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -132,7 +132,7 @@
latin:keyLabel="ю" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="11.75%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -70,6 +70,7 @@
latin:popupCharacters="0" />
<Key
latin:keyLabel="ш"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -98,6 +99,7 @@
latin:keyLabel="ч" />
<Key
latin:keyLabel="ћ"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row
@ -126,7 +128,7 @@
latin:keyLabel="ж" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="11.00%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include

View file

@ -64,6 +64,7 @@
<Key
latin:keyLabel="0"
latin:popupCharacters="ⁿ,∅"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -94,6 +95,7 @@
<Key
latin:keyLabel=")"
latin:popupCharacters="],},&gt;"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -124,7 +126,7 @@
latin:popupCharacters="¿" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include latin:keyboardLayout="@xml/kbd_symbols_row4" />

View file

@ -22,6 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Row
latin:keyWidth="10%p"
latin:rowEdgeFlags="bottom"
>
<switch>
@ -49,13 +50,13 @@
>
<Key
latin:keyStyle="smileyKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</case>
<default>
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</default>
</switch>
@ -86,13 +87,13 @@
>
<Key
latin:keyStyle="smileyKeyStyle"
latin:keyWidth="25%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</case>
<default>
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="25%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</default>
</switch>

View file

@ -62,6 +62,7 @@
latin:keyLabel="{" />
<Key
latin:keyLabel="}"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -93,6 +94,7 @@
latin:keyLabel="[" />
<Key
latin:keyLabel="]"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<Row>
@ -123,7 +125,7 @@
latin:popupCharacters="≥,»," />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</Row>
<include latin:keyboardLayout="@xml/kbd_symbols_shift_row4" />

View file

@ -22,6 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<Row
latin:keyWidth="10%p"
latin:rowEdgeFlags="bottom"
>
<switch>
@ -47,13 +48,13 @@
>
<Key
latin:keyStyle="smileyKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</case>
<default>
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</default>
</switch>
@ -82,13 +83,13 @@
>
<Key
latin:keyStyle="smileyKeyStyle"
latin:keyWidth="25%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</case>
<default>
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="25%p"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" />
</default>
</switch>

View file

@ -16,10 +16,6 @@
package com.android.inputmethod.keyboard;
import com.android.inputmethod.keyboard.KeyStyles.KeyStyle;
import com.android.inputmethod.keyboard.KeyboardParser.ParseException;
import com.android.inputmethod.latin.R;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
@ -27,6 +23,10 @@ import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.Xml;
import com.android.inputmethod.keyboard.KeyStyles.KeyStyle;
import com.android.inputmethod.keyboard.KeyboardParser.ParseException;
import com.android.inputmethod.latin.R;
import java.util.ArrayList;
/**
@ -137,7 +137,7 @@ public class Key {
};
/**
* This constructor is being used only for key in mini popup keyboard.
* This constructor is being used only for key in popup mini keyboard.
*/
public Key(Resources res, Keyboard keyboard, CharSequence popupCharacter, int x, int y,
int width, int height, int edgeFlags) {
@ -174,6 +174,7 @@ public class Key {
* @param x the x coordinate of the top-left
* @param y the y coordinate of the top-left
* @param parser the XML parser containing the attributes for this key
* @param keyStyles active key styles set
*/
public Key(Resources res, Row row, int x, int y, XmlResourceParser parser,
KeyStyles keyStyles) {
@ -181,6 +182,7 @@ public class Key {
final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard);
int keyWidth;
try {
mHeight = KeyboardParser.getDimensionOrFraction(keyboardAttr,
R.styleable.Keyboard_rowHeight,
@ -188,17 +190,13 @@ public class Key {
mGap = KeyboardParser.getDimensionOrFraction(keyboardAttr,
R.styleable.Keyboard_horizontalGap,
mKeyboard.getDisplayWidth(), row.mDefaultHorizontalGap);
mWidth = KeyboardParser.getDimensionOrFraction(keyboardAttr,
keyWidth = KeyboardParser.getDimensionOrFraction(keyboardAttr,
R.styleable.Keyboard_keyWidth,
mKeyboard.getDisplayWidth(), row.mDefaultWidth) - mGap;
mKeyboard.getDisplayWidth(), row.mDefaultWidth);
} finally {
keyboardAttr.recycle();
}
// Horizontal gap is divided equally to both sides of the key.
mX = x + mGap / 2;
mY = y;
final TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard_Key);
try {
@ -212,6 +210,35 @@ public class Key {
style = keyStyles.getEmptyKeyStyle();
}
final int keyboardWidth = mKeyboard.getDisplayWidth();
int keyXPos = KeyboardParser.getDimensionOrFraction(keyAttr,
R.styleable.Keyboard_Key_keyXPos, keyboardWidth, x);
if (keyXPos < 0) {
// If keyXPos is negative, the actual x-coordinate will be k + keyXPos.
keyXPos += keyboardWidth;
if (keyXPos < x) {
// keyXPos shouldn't be less than x because drawable area for this key starts
// at x. Or, this key will overlaps the adjacent key on its left hand side.
keyXPos = x;
}
}
if (keyWidth == 0) {
// If keyWidth is zero, the actual key width will be determined to fill out the
// area up to the right edge of the keyboard.
keyWidth = keyboardWidth - keyXPos;
} else if (keyWidth < 0) {
// If keyWidth is negative, the actual key width will be determined to fill out the
// area between the nearest key on the left hand side and the right edge of the
// keyboard.
keyXPos = x;
keyWidth = keyboardWidth - keyXPos;
}
// Horizontal gap is divided equally to both sides of the key.
mX = keyXPos + mGap / 2;
mY = y;
mWidth = keyWidth - mGap;
final CharSequence[] popupCharacters = style.getTextArray(keyAttr,
R.styleable.Keyboard_Key_popupCharacters);
if (res.getBoolean(R.bool.config_digit_popup_characters_enabled)) {

View file

@ -138,19 +138,19 @@ public class KeyboardId {
@Override
public String toString() {
return String.format("[%s.xml %s %s %s imeAction=%s %s%s%s%s%s%s%s]",
return String.format("[%s.xml %s %s %s %s %s%s%s%s%s%s%s]",
mXmlName,
mLocale,
(mOrientation == 1 ? "port" : "land"),
modeName(mMode),
imeOptionsName(mImeAction),
colorSchemeName(mColorScheme),
(mWebInput ? " webInput" : ""),
(mPasswordInput ? " passwordInput" : ""),
(mHasSettingsKey ? " hasSettingsKey" : ""),
(mVoiceKeyEnabled ? " voiceKeyEnabled" : ""),
(mHasVoiceKey ? " hasVoiceKey" : ""),
(mEnableShiftLock ? " enableShiftLock" : ""),
colorSchemeName(mColorScheme)
(mEnableShiftLock ? " enableShiftLock" : "")
);
}

View file

@ -243,7 +243,7 @@ public class KeyboardParser {
if (TAG_KEY.equals(tag)) {
parseKey(parser, row, keys);
} else if (TAG_SPACER.equals(tag)) {
parseSpacer(parser, keys);
parseSpacer(parser, row, keys);
} else if (TAG_INCLUDE.equals(tag)) {
parseIncludeRowContent(parser, row, keys);
} else if (TAG_SWITCH.equals(tag)) {
@ -290,19 +290,32 @@ public class KeyboardParser {
}
}
private void parseSpacer(XmlResourceParser parser, List<Key> keys)
private void parseSpacer(XmlResourceParser parser, Row row, List<Key> keys)
throws XmlPullParserException, IOException {
if (keys == null) {
checkEndTag(TAG_SPACER, parser);
} else {
if (DEBUG) Log.d(TAG, String.format("<%s />", TAG_SPACER));
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
final TypedArray keyboardAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard);
final int gap = getDimensionOrFraction(a, R.styleable.Keyboard_horizontalGap,
mKeyboard.getDisplayWidth(), 0);
a.recycle();
if (keyboardAttr.hasValue(R.styleable.Keyboard_horizontalGap))
throw new IllegalAttribute(parser, "horizontalGap");
final int defaultWidth = (row != null) ? row.mDefaultWidth : 0;
final int keyWidth = getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_keyWidth,
mKeyboard.getDisplayWidth(), defaultWidth);
keyboardAttr.recycle();
final TypedArray keyAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard_Key);
int keyXPos = KeyboardParser.getDimensionOrFraction(keyAttr,
R.styleable.Keyboard_Key_keyXPos, mKeyboard.getDisplayWidth(), mCurrentX);
if (keyXPos < 0) {
// If keyXPos is negative, the actual x-coordinate will be display_width + keyXPos.
keyXPos += mKeyboard.getDisplayWidth();
}
checkEndTag(TAG_SPACER, parser);
setSpacer(gap);
setSpacer(keyXPos, keyWidth);
}
}
@ -536,7 +549,7 @@ public class KeyboardParser {
}
private void endKey(Key key) {
mCurrentX += key.mGap + key.mWidth;
mCurrentX = key.mX + key.mGap + key.mWidth;
if (mCurrentX > mMaxRowWidth)
mMaxRowWidth = mCurrentX;
}
@ -545,8 +558,8 @@ public class KeyboardParser {
mTotalHeight = mCurrentY - defaultVerticalGap;
}
private void setSpacer(int gap) {
mCurrentX += gap;
private void setSpacer(int keyXPos, int width) {
mCurrentX = keyXPos + width;
}
public static int getDimensionOrFraction(TypedArray a, int index, int base, int defValue) {
@ -583,6 +596,13 @@ public class KeyboardParser {
}
}
@SuppressWarnings("serial")
private static class IllegalAttribute extends ParseException {
public IllegalAttribute(XmlResourceParser parser, String attribute) {
super("Tag " + parser.getName() + " has illegal attribute " + attribute, parser);
}
}
@SuppressWarnings("serial")
private static class NonEmptyTag extends ParseException {
public NonEmptyTag(String tag, XmlResourceParser parser) {