Add text variation keyboard layout
Change-Id: I4c6df8197b734feb998da78478a4d9a41f6d92b2
diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml
index 984d61f..740e7f5 100644
--- a/java/res/xml-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-xlarge/kbd_qwerty.xml
@@ -97,7 +97,10 @@
latin:isRepeatable="true"
latin:keyEdgeFlags="right" />
</Row>
- <Row>
+ <!-- TODO: We should have new attributes for <Key> to eliminate these excess duplications -->
+ <Row
+ latin:keyboardMode="@+id/mode_normal"
+ >
<Key
latin:codes="@integer/key_symbol"
latin:keyLabel="@string/label_symbol_key"
@@ -152,7 +155,461 @@
latin:isModifier="true"
latin:keyEdgeFlags="right" />
</Row>
- <Row>
+ <Row
+ latin:keyboardMode="@+id/mode_url"
+ >
+ <Key
+ latin:codes="@integer/key_symbol"
+ latin:keyLabel="@string/label_symbol_key"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="a"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_a" />
+ <Key
+ latin:keyLabel="s"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_s" />
+ <Key
+ latin:keyLabel="d"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_d" />
+ <Key
+ latin:keyLabel="f" />
+ <Key
+ latin:keyLabel="g"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_g" />
+ <Key
+ latin:keyLabel="h" />
+ <Key
+ latin:keyLabel="j" />
+ <Key
+ latin:keyLabel="k" />
+ <Key
+ latin:keyLabel="l"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_l" />
+ <Key
+ latin:keyLabel=";"
+ latin:temporaryShiftKeyLabel=":"
+ latin:keyHintIcon="@drawable/keyboard_hint_colon"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=":" />
+ <Key
+ latin:keyLabel="\'"
+ latin:temporaryShiftKeyLabel="""
+ latin:keyHintIcon="@drawable/keyboard_hint_quote"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=""" />
+ <Key
+ latin:codes="@integer/key_return"
+ latin:keyIcon="@drawable/sym_keyboard_return"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_email"
+ >
+ <Key
+ latin:codes="@integer/key_symbol"
+ latin:keyLabel="@string/label_symbol_key"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="a"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_a" />
+ <Key
+ latin:keyLabel="s"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_s" />
+ <Key
+ latin:keyLabel="d"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_d" />
+ <Key
+ latin:keyLabel="f" />
+ <Key
+ latin:keyLabel="g"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_g" />
+ <Key
+ latin:keyLabel="h" />
+ <Key
+ latin:keyLabel="j" />
+ <Key
+ latin:keyLabel="k" />
+ <Key
+ latin:keyLabel="l"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_l" />
+ <Key
+ latin:keyLabel=";" />
+ <Key
+ latin:keyLabel="\'"
+ latin:temporaryShiftKeyLabel="""
+ latin:keyHintIcon="@drawable/keyboard_hint_quote"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=""" />
+ <Key
+ latin:codes="@integer/key_return"
+ latin:keyIcon="@drawable/sym_keyboard_return"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_im"
+ >
+ <Key
+ latin:codes="@integer/key_symbol"
+ latin:keyLabel="@string/label_symbol_key"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="a"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_a" />
+ <Key
+ latin:keyLabel="s"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_s" />
+ <Key
+ latin:keyLabel="d"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_d" />
+ <Key
+ latin:keyLabel="f" />
+ <Key
+ latin:keyLabel="g"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_g" />
+ <Key
+ latin:keyLabel="h" />
+ <Key
+ latin:keyLabel="j" />
+ <Key
+ latin:keyLabel="k" />
+ <Key
+ latin:keyLabel="l"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_l" />
+ <Key
+ latin:keyLabel=";"
+ latin:temporaryShiftKeyLabel=":"
+ latin:keyHintIcon="@drawable/keyboard_hint_colon"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=":" />
+ <Key
+ latin:keyLabel="\'"
+ latin:temporaryShiftKeyLabel="""
+ latin:keyHintIcon="@drawable/keyboard_hint_quote"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=""" />
+ <Key
+ latin:codes="@integer/key_return"
+ latin:keyIcon="@drawable/sym_keyboard_return"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_webentry"
+ >
+ <Key
+ latin:codes="@integer/key_symbol"
+ latin:keyLabel="@string/label_symbol_key"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="a"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_a" />
+ <Key
+ latin:keyLabel="s"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_s" />
+ <Key
+ latin:keyLabel="d"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_d" />
+ <Key
+ latin:keyLabel="f" />
+ <Key
+ latin:keyLabel="g"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_g" />
+ <Key
+ latin:keyLabel="h" />
+ <Key
+ latin:keyLabel="j" />
+ <Key
+ latin:keyLabel="k" />
+ <Key
+ latin:keyLabel="l"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_l" />
+ <Key
+ latin:keyLabel=";"
+ latin:temporaryShiftKeyLabel=":"
+ latin:keyHintIcon="@drawable/keyboard_hint_colon"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=":" />
+ <Key
+ latin:keyLabel="\'"
+ latin:temporaryShiftKeyLabel="""
+ latin:keyHintIcon="@drawable/keyboard_hint_quote"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=""" />
+ <Key
+ latin:codes="@integer/key_return"
+ latin:keyIcon="@drawable/sym_keyboard_return"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+ latin:keyWidth="8.75%p"
+ latin:isModifier="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_normal"
+ >
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="z"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_z" />
+ <Key
+ latin:keyLabel="x" />
+ <Key
+ latin:keyLabel="c"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_c" />
+ <Key
+ latin:keyLabel="v"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_v" />
+ <Key
+ latin:keyLabel="b" />
+ <Key
+ latin:keyLabel="n"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_n" />
+ <Key
+ latin:keyLabel="m" />
+ <Key
+ latin:keyLabel=","
+ latin:temporaryShiftKeyLabel="*"
+ latin:keyHintIcon="@drawable/keyboard_hint_star"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="*" />
+ <Key
+ latin:keyLabel="."
+ latin:temporaryShiftKeyLabel="!"
+ latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="!" />
+ <Key
+ latin:keyLabel="/"
+ latin:temporaryShiftKeyLabel="\?"
+ latin:keyHintIcon="@drawable/keyboard_hint_question"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="\?" />
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_url"
+ >
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="z"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_z" />
+ <Key
+ latin:keyLabel="x" />
+ <Key
+ latin:keyLabel="c"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_c" />
+ <Key
+ latin:keyLabel="v"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_v" />
+ <Key
+ latin:keyLabel="b" />
+ <Key
+ latin:keyLabel="n"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_n" />
+ <Key
+ latin:keyLabel="m" />
+ <Key
+ latin:keyLabel=","
+ latin:temporaryShiftKeyLabel="*"
+ latin:keyHintIcon="@drawable/keyboard_hint_star"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="*" />
+ <Key
+ latin:keyLabel="."
+ latin:temporaryShiftKeyLabel="!"
+ latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="!" />
+ <Key
+ latin:keyLabel="/"
+ latin:temporaryShiftKeyLabel="\?"
+ latin:keyHintIcon="@drawable/keyboard_hint_question"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="\?" />
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_email"
+ >
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="z"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_z" />
+ <Key
+ latin:keyLabel="x" />
+ <Key
+ latin:keyLabel="c"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_c" />
+ <Key
+ latin:keyLabel="v"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_v" />
+ <Key
+ latin:keyLabel="b" />
+ <Key
+ latin:keyLabel="n"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_n" />
+ <Key
+ latin:keyLabel="m" />
+ <Key
+ latin:keyLabel="," />
+ <Key
+ latin:keyLabel="." />
+ <Key
+ latin:keyLabel="\@" />
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_im"
+ >
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="z"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_z" />
+ <Key
+ latin:keyLabel="x" />
+ <Key
+ latin:keyLabel="c"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_c" />
+ <Key
+ latin:keyLabel="v"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_v" />
+ <Key
+ latin:keyLabel="b" />
+ <Key
+ latin:keyLabel="n"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_n" />
+ <Key
+ latin:keyLabel="m" />
+ <Key
+ latin:keyLabel=","
+ latin:temporaryShiftKeyLabel="*"
+ latin:keyHintIcon="@drawable/keyboard_hint_star"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="*" />
+ <Key
+ latin:keyLabel="."
+ latin:temporaryShiftKeyLabel="!"
+ latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="!" />
+ <Key
+ latin:keyLabel="/"
+ latin:temporaryShiftKeyLabel="\?"
+ latin:keyHintIcon="@drawable/keyboard_hint_question"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="\?" />
+ <Key
+ latin:codes="@integer/key_shift"
+ latin:keyIcon="@drawable/sym_keyboard_shift"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ latin:keyWidth="12.5%p"
+ latin:isModifier="true"
+ latin:isSticky="true"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_webentry"
+ >
<Key
latin:codes="@integer/key_shift"
latin:keyIcon="@drawable/sym_keyboard_shift"
@@ -211,7 +668,118 @@
latin:keyEdgeFlags="right" />
</Row>
<!-- This row is intentionally not marked as a bottom row -->
- <Row>
+ <Row
+ latin:keyboardMode="@+id/mode_normal"
+ >
+ <Key
+ latin:keyLabel="("
+ latin:temporaryShiftKeyLabel="<"
+ latin:keyHintIcon="@drawable/keyboard_hint_smaller"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="<"
+ latin:horizontalGap="16.25%p" />
+ <Key
+ latin:keyLabel=")"
+ latin:temporaryShiftKeyLabel=">"
+ latin:keyHintIcon="@drawable/keyboard_hint_greater"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters=">" />
+ <Key
+ latin:codes="@integer/key_space"
+ latin:keyIcon="@drawable/sym_keyboard_space"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_space"
+ latin:keyWidth="37.5%p"
+ latin:isModifier="true" />
+ <Key
+ latin:keyLabel="_"
+ latin:temporaryShiftKeyLabel="\@"
+ latin:keyHintIcon="@drawable/keyboard_hint_at"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="\@" />
+ <Key
+ latin:keyLabel="-"
+ latin:temporaryShiftKeyLabel="#"
+ latin:keyHintIcon="@drawable/keyboard_hint_doublecross"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="#" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_url"
+ >
+ <Key
+ latin:keyLabel=".com"
+ latin:keyOutputText=".com"
+ latin:keyWidth="15.0%p"
+ latin:horizontalGap="16.25%p" />
+ <Key
+ latin:codes="@integer/key_space"
+ latin:keyIcon="@drawable/sym_keyboard_space"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_space"
+ latin:keyWidth="37.5%p"
+ latin:isModifier="true" />
+ <Key
+ latin:keyLabel="_"
+ latin:temporaryShiftKeyLabel="\@"
+ latin:keyHintIcon="@drawable/keyboard_hint_at"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="\@" />
+ <Key
+ latin:keyLabel="-"
+ latin:temporaryShiftKeyLabel="#"
+ latin:keyHintIcon="@drawable/keyboard_hint_doublecross"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="#" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_email"
+ >
+ <Key
+ latin:keyLabel=".com"
+ latin:keyOutputText=".com"
+ latin:keyWidth="15.0%p"
+ latin:horizontalGap="16.25%p" />
+ <Key
+ latin:codes="@integer/key_space"
+ latin:keyIcon="@drawable/sym_keyboard_space"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_space"
+ latin:keyWidth="37.5%p"
+ latin:isModifier="true" />
+ <Key
+ latin:keyLabel="_" />
+ <Key
+ latin:keyLabel="-" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_im"
+ >
+ <Key
+ latin:keyLabel=":-)"
+ latin:keyOutputText=":-)"
+ latin:popupKeyboard="@xml/popup_smileys"
+ latin:keyWidth="15.0%p"
+ latin:horizontalGap="16.25%p" />
+ <Key
+ latin:codes="@integer/key_space"
+ latin:keyIcon="@drawable/sym_keyboard_space"
+ latin:iconPreview="@drawable/sym_keyboard_feedback_space"
+ latin:keyWidth="37.5%p"
+ latin:isModifier="true" />
+ <Key
+ latin:keyLabel="_"
+ latin:temporaryShiftKeyLabel="\@"
+ latin:keyHintIcon="@drawable/keyboard_hint_at"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="\@" />
+ <Key
+ latin:keyLabel="-"
+ latin:temporaryShiftKeyLabel="#"
+ latin:keyHintIcon="@drawable/keyboard_hint_doublecross"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="#" />
+ </Row>
+ <Row
+ latin:keyboardMode="@+id/mode_webentry"
+ >
<Key
latin:keyLabel="("
latin:temporaryShiftKeyLabel="<"