am 6b38a5fd: Adaptive keyboard width/position parser (DO NOT MERGE)

* commit '6b38a5fd4c7697c962bff9f3964f20e00c470b1b':
  Adaptive keyboard width/position parser (DO NOT MERGE)
main
Tadashi G. Takaoka 2011-05-27 18:43:28 -07:00 committed by Android Git Automerger
commit 6ca8675ab4
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. --> <!-- Default width of a key, in pixels or percentage of display width. -->
<attr name="keyWidth" format="dimension|fraction" /> <attr name="keyWidth" format="dimension|fraction" />
<!-- Default height of a row (key height + vertical gap), in pixels or percentage of <!-- 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" /> <attr name="rowHeight" format="dimension|fraction" />
<!-- Default horizontal gap between keys. --> <!-- Default horizontal gap between keys. -->
<attr name="horizontalGap" format="dimension|fraction" /> <attr name="horizontalGap" format="dimension|fraction" />
@ -142,6 +147,9 @@
<attr name="shiftedIcon" format="reference" /> <attr name="shiftedIcon" format="reference" />
<!-- The key is enabled and responds on press. --> <!-- The key is enabled and responds on press. -->
<attr name="enabled" format="boolean" /> <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>
<declare-styleable name="Keyboard_Row"> <declare-styleable name="Keyboard_Row">

View File

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

View File

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

View File

@ -23,7 +23,7 @@
> >
<!-- Base key style for the functional key --> <!-- Base key style for the functional key -->
<switch> <switch>
<case <case
latin:colorScheme="white" latin:colorScheme="white"
> >
<key-style <key-style
@ -37,38 +37,6 @@
latin:styleName="functionalKeyStyle" /> latin:styleName="functionalKeyStyle" />
</case> </case>
</switch> </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 --> <!-- Functional key styles -->
<switch> <switch>
<case <case
@ -110,18 +78,28 @@
latin:keyHintIcon="@drawable/hint_popup_holo" latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="@string/alternates_for_smiley" latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" /> latin:maxPopupKeyboardColumn="5" />
<key-style <switch>
latin:styleName="settingsKeyStyle" <case
latin:code="@integer/key_settings" latin:voiceKeyEnabled="true"
latin:keyIcon="@drawable/sym_keyboard_settings_holo" >
latin:iconPreview="@drawable/sym_keyboard_feedback_settings" <key-style
latin:parentStyle="functionalKeyStyle" /> latin:styleName="micOrSettingsKeyStyle"
<key-style latin:code="@integer/key_voice"
latin:styleName="micKeyStyle" latin:keyIcon="@drawable/sym_keyboard_voice_holo"
latin:code="@integer/key_voice" latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:keyIcon="@drawable/sym_keyboard_voice_holo" latin:keyHintIcon="@drawable/hint_popup_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic" latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="settingsPopupStyle" /> 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>
<case <case
latin:colorScheme="black" latin:colorScheme="black"
@ -162,20 +140,36 @@
latin:keyHintIcon="@drawable/hint_popup_holo" latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="@string/alternates_for_smiley" latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" /> latin:maxPopupKeyboardColumn="5" />
<key-style <switch>
latin:styleName="settingsKeyStyle" <case
latin:code="@integer/key_settings" latin:voiceKeyEnabled="true"
latin:keyIcon="@drawable/sym_bkeyboard_settings" >
latin:iconPreview="@drawable/sym_keyboard_feedback_settings" <key-style
latin:parentStyle="functionalKeyStyle" /> latin:styleName="micOrSettingsKeyStyle"
<key-style latin:code="@integer/key_voice"
latin:styleName="micKeyStyle" latin:keyIcon="@drawable/sym_bkeyboard_mic"
latin:code="@integer/key_voice" latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
latin:keyIcon="@drawable/sym_bkeyboard_mic" latin:keyHintIcon="@drawable/hint_popup_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic" latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="settingsPopupStyle" /> 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> </case>
</switch> </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 <key-style
latin:styleName="toSymbolKeyStyle" latin:styleName="toSymbolKeyStyle"
latin:code="@integer/key_switch_alpha_symbol" latin:code="@integer/key_switch_alpha_symbol"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -24,7 +24,7 @@
<include <include
latin:keyboardLayout="@xml/kbd_key_styles" /> latin:keyboardLayout="@xml/kbd_key_styles" />
<Row <Row
latin:keyWidth="10%p" latin:keyWidth="9.0%p"
latin:rowEdgeFlags="top" latin:rowEdgeFlags="top"
> >
<Key <Key
@ -67,17 +67,21 @@
<Key <Key
latin:keyLabel="p" latin:keyLabel="p"
latin:keyHintIcon="@drawable/key_hint_num0_holo" 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" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<include <include
latin:keyboardLayout="@xml/kbd_qwerty_row2" /> latin:keyboardLayout="@xml/kbd_qwerty_row2" />
<Row <Row
latin:keyWidth="10%p" latin:keyWidth="8.9%p"
> >
<Key <Key
latin:keyStyle="shiftKeyStyle" latin:keyStyle="shiftKeyStyle"
latin:keyWidth="15%p" latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" /> latin:keyEdgeFlags="left" />
<Key <Key
latin:keyLabel="y" latin:keyLabel="y"
@ -97,11 +101,33 @@
latin:popupCharacters="@string/alternates_for_n" /> latin:popupCharacters="@string/alternates_for_n" />
<Key <Key
latin:keyLabel="m" /> latin:keyLabel="m" />
<Key <switch>
latin:keyStyle="deleteKeyStyle" <case
latin:keyWidth="15%p" latin:mode="email"
latin:keyEdgeFlags="right" /> >
<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> </Row>
<include <include
latin:keyboardLayout="@xml/kbd_qwerty_row4" /> latin:keyboardLayout="@xml/kbd_qwerty_row4" />
</merge> </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 <include
latin:keyboardLayout="@xml/kbd_key_styles" /> latin:keyboardLayout="@xml/kbd_key_styles" />
<Row <Row
latin:keyWidth="9.091%p" latin:keyWidth="8.0%p"
latin:rowEdgeFlags="top" latin:rowEdgeFlags="top"
> >
<Key <Key
latin:keyLabel="й" latin:keyLabel="й"
latin:keyHintIcon="@drawable/key_hint_num1_holo" latin:keyHintIcon="@drawable/key_hint_num1_holo"
latin:popupCharacters="1" latin:popupCharacters="1"
latin:keyWidth="8.75%p" latin:keyXPos="2.15%p"
latin:keyEdgeFlags="left" /> latin:keyEdgeFlags="left" />
<Key <Key
latin:keyLabel="ц" latin:keyLabel="ц"
@ -70,16 +70,18 @@
latin:keyHintIcon="@drawable/key_hint_num0_holo" latin:keyHintIcon="@drawable/key_hint_num0_holo"
latin:popupCharacters="0" /> latin:popupCharacters="0" />
<Key <Key
latin:keyLabel="х" latin:keyLabel="х" />
latin:keyWidth="8.75%p" <Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row <Row
latin:keyWidth="9.091%p" latin:keyWidth="8.0%p"
> >
<Key <Key
latin:keyLabel="ф" latin:keyLabel="ф"
latin:keyWidth="8.75%p"
latin:keyEdgeFlags="left" /> latin:keyEdgeFlags="left" />
<Key <Key
latin:keyLabel="ы" /> latin:keyLabel="ы" />
@ -100,16 +102,19 @@
<Key <Key
latin:keyLabel="ж" /> latin:keyLabel="ж" />
<Key <Key
latin:keyLabel="э" latin:keyLabel="э" />
latin:keyWidth="8.75%p" <Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row <Row
latin:keyWidth="8.5%p" latin:keyWidth="8.0%p"
> >
<Key <Key
latin:keyStyle="shiftKeyStyle" latin:keyStyle="shiftKeyStyle"
latin:keyWidth="11.75%p" latin:keyWidth="11.1%p"
latin:keyEdgeFlags="left" /> latin:keyEdgeFlags="left" />
<Key <Key
latin:keyLabel="я" /> latin:keyLabel="я" />
@ -131,9 +136,13 @@
<Key <Key
latin:keyLabel="ю" /> latin:keyLabel="ю" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyLabel="."
latin:keyWidth="11.75%p" latin:manualTemporaryUpperCaseCode="44"
latin:keyEdgeFlags="right" /> 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> </Row>
<include <include
latin:keyboardLayout="@xml/kbd_qwerty_row4" /> 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 <include
latin:keyboardLayout="@xml/kbd_key_styles" /> latin:keyboardLayout="@xml/kbd_key_styles" />
<Row <Row
latin:keyWidth="9.09%p" latin:keyWidth="8.0%p"
latin:rowEdgeFlags="top" latin:rowEdgeFlags="top"
> >
<Key <Key
latin:keyLabel="љ" latin:keyLabel="љ"
latin:keyHintIcon="@drawable/key_hint_num1_holo" latin:keyHintIcon="@drawable/key_hint_num1_holo"
latin:popupCharacters="1" latin:popupCharacters="1"
latin:keyXPos="2.15%p"
latin:keyEdgeFlags="left" /> latin:keyEdgeFlags="left" />
<Key <Key
latin:keyLabel="њ" latin:keyLabel="њ"
@ -69,11 +70,15 @@
latin:keyHintIcon="@drawable/key_hint_num0_holo" latin:keyHintIcon="@drawable/key_hint_num0_holo"
latin:popupCharacters="0" /> latin:popupCharacters="0" />
<Key <Key
latin:keyLabel="ш" latin:keyLabel="ш" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
latin:keyWidth="-10.0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row <Row
latin:keyWidth="9.09%p" latin:keyWidth="7.9%p"
> >
<Key <Key
latin:keyLabel="а" latin:keyLabel="а"
@ -97,14 +102,19 @@
<Key <Key
latin:keyLabel="ч" /> latin:keyLabel="ч" />
<Key <Key
latin:keyLabel="ћ" latin:keyLabel="ћ" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
latin:keyWidth="-14.6%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row <Row
latin:keyWidth="8.90%p" latin:keyWidth="7.5%p"
> >
<Key <Key
latin:keyStyle="shiftKeyStyle" latin:keyStyle="shiftKeyStyle"
latin:keyWidth="8.8%p"
latin:keyEdgeFlags="left" /> latin:keyEdgeFlags="left" />
<Key <Key
latin:keyLabel="ѕ" /> latin:keyLabel="ѕ" />
@ -124,10 +134,32 @@
latin:keyLabel="ђ" /> latin:keyLabel="ђ" />
<Key <Key
latin:keyLabel="ж" /> latin:keyLabel="ж" />
<Key <switch>
latin:keyStyle="deleteKeyStyle" <case
latin:keyWidth="11.00%p" latin:mode="email"
latin:keyEdgeFlags="right" /> >
<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> </Row>
<include <include
latin:keyboardLayout="@xml/kbd_qwerty_row4" /> latin:keyboardLayout="@xml/kbd_qwerty_row4" />

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -64,6 +64,7 @@
<Key <Key
latin:keyLabel="0" latin:keyLabel="0"
latin:popupCharacters="ⁿ,∅" latin:popupCharacters="ⁿ,∅"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row> <Row>
@ -94,6 +95,7 @@
<Key <Key
latin:keyLabel=")" latin:keyLabel=")"
latin:popupCharacters="],},&gt;" latin:popupCharacters="],},&gt;"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row> <Row>
@ -124,7 +126,7 @@
latin:popupCharacters="¿" /> latin:popupCharacters="¿" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<include latin:keyboardLayout="@xml/kbd_symbols_row4" /> <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" xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
> >
<Row <Row
latin:keyWidth="10%p"
latin:rowEdgeFlags="bottom" latin:rowEdgeFlags="bottom"
> >
<switch> <switch>
@ -49,13 +50,13 @@
> >
<Key <Key
latin:keyStyle="smileyKeyStyle" latin:keyStyle="smileyKeyStyle"
latin:keyWidth="20%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</case> </case>
<default> <default>
<Key <Key
latin:keyStyle="returnKeyStyle" latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</default> </default>
</switch> </switch>
@ -86,13 +87,13 @@
> >
<Key <Key
latin:keyStyle="smileyKeyStyle" latin:keyStyle="smileyKeyStyle"
latin:keyWidth="25%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</case> </case>
<default> <default>
<Key <Key
latin:keyStyle="returnKeyStyle" latin:keyStyle="returnKeyStyle"
latin:keyWidth="25%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</default> </default>
</switch> </switch>

View File

@ -62,6 +62,7 @@
latin:keyLabel="{" /> latin:keyLabel="{" />
<Key <Key
latin:keyLabel="}" latin:keyLabel="}"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row> <Row>
@ -93,6 +94,7 @@
latin:keyLabel="[" /> latin:keyLabel="[" />
<Key <Key
latin:keyLabel="]" latin:keyLabel="]"
latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<Row> <Row>
@ -123,7 +125,7 @@
latin:popupCharacters="≥,»," /> latin:popupCharacters="≥,»," />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyWidth="15%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</Row> </Row>
<include latin:keyboardLayout="@xml/kbd_symbols_shift_row4" /> <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" xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
> >
<Row <Row
latin:keyWidth="10%p"
latin:rowEdgeFlags="bottom" latin:rowEdgeFlags="bottom"
> >
<switch> <switch>
@ -47,13 +48,13 @@
> >
<Key <Key
latin:keyStyle="smileyKeyStyle" latin:keyStyle="smileyKeyStyle"
latin:keyWidth="20%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</case> </case>
<default> <default>
<Key <Key
latin:keyStyle="returnKeyStyle" latin:keyStyle="returnKeyStyle"
latin:keyWidth="20%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</default> </default>
</switch> </switch>
@ -82,13 +83,13 @@
> >
<Key <Key
latin:keyStyle="smileyKeyStyle" latin:keyStyle="smileyKeyStyle"
latin:keyWidth="25%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</case> </case>
<default> <default>
<Key <Key
latin:keyStyle="returnKeyStyle" latin:keyStyle="returnKeyStyle"
latin:keyWidth="25%p" latin:keyWidth="0%p"
latin:keyEdgeFlags="right" /> latin:keyEdgeFlags="right" />
</default> </default>
</switch> </switch>

View File

@ -16,10 +16,6 @@
package com.android.inputmethod.keyboard; 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.Resources;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.content.res.XmlResourceParser; import android.content.res.XmlResourceParser;
@ -27,6 +23,10 @@ import android.graphics.drawable.Drawable;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Xml; 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; 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, public Key(Resources res, Keyboard keyboard, CharSequence popupCharacter, int x, int y,
int width, int height, int edgeFlags) { int width, int height, int edgeFlags) {
@ -174,6 +174,7 @@ public class Key {
* @param x the x coordinate of the top-left * @param x the x coordinate of the top-left
* @param y the y 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 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, public Key(Resources res, Row row, int x, int y, XmlResourceParser parser,
KeyStyles keyStyles) { KeyStyles keyStyles) {
@ -181,6 +182,7 @@ public class Key {
final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser), final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard); R.styleable.Keyboard);
int keyWidth;
try { try {
mHeight = KeyboardParser.getDimensionOrFraction(keyboardAttr, mHeight = KeyboardParser.getDimensionOrFraction(keyboardAttr,
R.styleable.Keyboard_rowHeight, R.styleable.Keyboard_rowHeight,
@ -188,17 +190,13 @@ public class Key {
mGap = KeyboardParser.getDimensionOrFraction(keyboardAttr, mGap = KeyboardParser.getDimensionOrFraction(keyboardAttr,
R.styleable.Keyboard_horizontalGap, R.styleable.Keyboard_horizontalGap,
mKeyboard.getDisplayWidth(), row.mDefaultHorizontalGap); mKeyboard.getDisplayWidth(), row.mDefaultHorizontalGap);
mWidth = KeyboardParser.getDimensionOrFraction(keyboardAttr, keyWidth = KeyboardParser.getDimensionOrFraction(keyboardAttr,
R.styleable.Keyboard_keyWidth, R.styleable.Keyboard_keyWidth,
mKeyboard.getDisplayWidth(), row.mDefaultWidth) - mGap; mKeyboard.getDisplayWidth(), row.mDefaultWidth);
} finally { } finally {
keyboardAttr.recycle(); 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), final TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard_Key); R.styleable.Keyboard_Key);
try { try {
@ -212,6 +210,35 @@ public class Key {
style = keyStyles.getEmptyKeyStyle(); 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, final CharSequence[] popupCharacters = style.getTextArray(keyAttr,
R.styleable.Keyboard_Key_popupCharacters); R.styleable.Keyboard_Key_popupCharacters);
if (res.getBoolean(R.bool.config_digit_popup_characters_enabled)) { if (res.getBoolean(R.bool.config_digit_popup_characters_enabled)) {

View File

@ -138,19 +138,19 @@ public class KeyboardId {
@Override @Override
public String toString() { 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, mXmlName,
mLocale, mLocale,
(mOrientation == 1 ? "port" : "land"), (mOrientation == 1 ? "port" : "land"),
modeName(mMode), modeName(mMode),
imeOptionsName(mImeAction), imeOptionsName(mImeAction),
colorSchemeName(mColorScheme),
(mWebInput ? " webInput" : ""), (mWebInput ? " webInput" : ""),
(mPasswordInput ? " passwordInput" : ""), (mPasswordInput ? " passwordInput" : ""),
(mHasSettingsKey ? " hasSettingsKey" : ""), (mHasSettingsKey ? " hasSettingsKey" : ""),
(mVoiceKeyEnabled ? " voiceKeyEnabled" : ""), (mVoiceKeyEnabled ? " voiceKeyEnabled" : ""),
(mHasVoiceKey ? " hasVoiceKey" : ""), (mHasVoiceKey ? " hasVoiceKey" : ""),
(mEnableShiftLock ? " enableShiftLock" : ""), (mEnableShiftLock ? " enableShiftLock" : "")
colorSchemeName(mColorScheme)
); );
} }

View File

@ -243,7 +243,7 @@ public class KeyboardParser {
if (TAG_KEY.equals(tag)) { if (TAG_KEY.equals(tag)) {
parseKey(parser, row, keys); parseKey(parser, row, keys);
} else if (TAG_SPACER.equals(tag)) { } else if (TAG_SPACER.equals(tag)) {
parseSpacer(parser, keys); parseSpacer(parser, row, keys);
} else if (TAG_INCLUDE.equals(tag)) { } else if (TAG_INCLUDE.equals(tag)) {
parseIncludeRowContent(parser, row, keys); parseIncludeRowContent(parser, row, keys);
} else if (TAG_SWITCH.equals(tag)) { } 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 { throws XmlPullParserException, IOException {
if (keys == null) { if (keys == null) {
checkEndTag(TAG_SPACER, parser); checkEndTag(TAG_SPACER, parser);
} else { } else {
if (DEBUG) Log.d(TAG, String.format("<%s />", TAG_SPACER)); 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); R.styleable.Keyboard);
final int gap = getDimensionOrFraction(a, R.styleable.Keyboard_horizontalGap, if (keyboardAttr.hasValue(R.styleable.Keyboard_horizontalGap))
mKeyboard.getDisplayWidth(), 0); throw new IllegalAttribute(parser, "horizontalGap");
a.recycle(); 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); checkEndTag(TAG_SPACER, parser);
setSpacer(gap); setSpacer(keyXPos, keyWidth);
} }
} }
@ -536,7 +549,7 @@ public class KeyboardParser {
} }
private void endKey(Key key) { private void endKey(Key key) {
mCurrentX += key.mGap + key.mWidth; mCurrentX = key.mX + key.mGap + key.mWidth;
if (mCurrentX > mMaxRowWidth) if (mCurrentX > mMaxRowWidth)
mMaxRowWidth = mCurrentX; mMaxRowWidth = mCurrentX;
} }
@ -545,8 +558,8 @@ public class KeyboardParser {
mTotalHeight = mCurrentY - defaultVerticalGap; mTotalHeight = mCurrentY - defaultVerticalGap;
} }
private void setSpacer(int gap) { private void setSpacer(int keyXPos, int width) {
mCurrentX += gap; mCurrentX = keyXPos + width;
} }
public static int getDimensionOrFraction(TypedArray a, int index, int base, int defValue) { 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") @SuppressWarnings("serial")
private static class NonEmptyTag extends ParseException { private static class NonEmptyTag extends ParseException {
public NonEmptyTag(String tag, XmlResourceParser parser) { public NonEmptyTag(String tag, XmlResourceParser parser) {