diff --git a/java/res/layout-large/candidate.xml b/java/res/layout-large/candidate.xml index 74532a1e2012f23dbc90ffcee09b04a0d9e73829..e672707a1fe2a66bc77fcdb23a04e3045c58eff2 100644 --- a/java/res/layout-large/candidate.xml +++ b/java/res/layout-large/candidate.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. diff --git a/java/res/layout-large/candidate_preview.xml b/java/res/layout-large/candidate_preview.xml index 61d5f8e7b7ba46d49bbfc29a7a0fcbc749b675da..3ef2e6ed4a1596a87cc0b844cd3af4168bc721bc 100644 --- a/java/res/layout-large/candidate_preview.xml +++ b/java/res/layout-large/candidate_preview.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. diff --git a/java/res/layout-large/candidates.xml b/java/res/layout-large/candidates.xml index e2ddb84b1c3f92e135ebce2d0904efa63027bb10..26d6822e9cacd024d9b13ddb9226ec43536b310f 100644 --- a/java/res/layout-large/candidates.xml +++ b/java/res/layout-large/candidates.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. diff --git a/java/res/layout-large/keyboard_popup_honeycomb.xml b/java/res/layout-large/keyboard_popup_honeycomb.xml index 0b8229ca5f79fa6142641d4e61e8477eb49b3bdd..49eb936d6b188d84688f7f7eb1a7057a959a79bf 100644 --- a/java/res/layout-large/keyboard_popup_honeycomb.xml +++ b/java/res/layout-large/keyboard_popup_honeycomb.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. diff --git a/java/res/values-large-land/dimens.xml b/java/res/values-large-land/dimens.xml index 625dd263c6988cfd8be528380b19ec264d79c9be..19b78d3b07141904720bd38d6847b41e354e1a30 100644 --- a/java/res/values-large-land/dimens.xml +++ b/java/res/values-large-land/dimens.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. diff --git a/java/res/values-large/config.xml b/java/res/values-large/config.xml index f075b1b50841e95375d4789c8377ad0bb05cd78c..fe5aee3cf5dc270825657575ce3c9f6855c54d86 100644 --- a/java/res/values-large/config.xml +++ b/java/res/values-large/config.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -19,9 +19,9 @@ --> <resources> - <bool name="config_enable_show_settings_key_option">false</bool> + <bool name="config_enable_show_settings_key_option">true</bool> <bool name="config_enable_show_subtype_settings">false</bool> - <bool name="config_enable_show_voice_key_option">false</bool> + <bool name="config_enable_show_voice_key_option">true</bool> <bool name="config_enable_show_popup_on_keypress_option">false</bool> <bool name="config_enable_show_recorrection_option">false</bool> <bool name="config_enable_quick_fixes_option">false</bool> @@ -29,7 +29,7 @@ <bool name="config_candidate_highlight_font_color_enabled">false</bool> <bool name="config_swipe_down_dismiss_keyboard_enabled">false</bool> <bool name="config_sliding_key_input_enabled">false</bool> - <bool name="config_digit_popup_characters_enabled">false</bool> + <bool name="config_digit_popup_characters_enabled">true</bool> <!-- Whether or not Popup on key press is enabled by default --> <bool name="config_default_popup_preview">false</bool> <bool name="config_default_sound_enabled">true</bool> diff --git a/java/res/values-large/dimens.xml b/java/res/values-large/dimens.xml index 69283202e6891602d8ab1c2cc0c16c51ac4b29ca..47d5e0f36475be72faba82e465a30d84d7f07c9a 100644 --- a/java/res/values-large/dimens.xml +++ b/java/res/values-large/dimens.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. diff --git a/java/res/values-large/donottranslate.xml b/java/res/values-large/donottranslate.xml index 672dea589c8389a68d4db860639492d73e1f86e7..6d94c2811aeb97c71605d144377ab88327ede92c 100644 --- a/java/res/values-large/donottranslate.xml +++ b/java/res/values-large/donottranslate.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -19,5 +19,5 @@ --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Default value of the visibility of the suggestion strip --> - <string name="prefs_suggestion_visibility_default_value" translatable="false">2</string> + <string name="prefs_suggestion_visibility_default_value" translatable="false">1</string> </resources> diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-altchars.xml index 518e74af1302990ae9373b35556eccecc04e2219..e77957578742dcbb221062545833f5e26278f21b 100644 --- a/java/res/values/donottranslate-altchars.xml +++ b/java/res/values/donottranslate-altchars.xml @@ -47,12 +47,9 @@ <string name="alternates_for_currency_dollar">¢,£,€,Â¥,₱</string> <string name="alternates_for_currency_euro">¢,£,$,Â¥,₱</string> <string name="alternates_for_currency_pound">¢,$,€,Â¥,₱</string> - <string name="alternates_for_mic">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\@drawable/sym_keyboard_mic|\@integer/key_voice"</string> <string name="alternates_for_smiley">":-)|:-) ,:-(|:-( ,;-)|;-) ,:-P|:-P ,=-O|=-O ,:-*|:-* ,:O|:O ,B-)|B-) ,:-$|:-$ ,:-!|:-! ,:-[|:-[ ,O:-)|O:-) ,:-\\\\\\\\|:-\\\\\\\\ ,:\'(|:\'( ,:-D|:-D "</string> - <string name="alternates_for_settings_slash">"\@drawable/sym_keyboard_settings|\@integer/key_settings,/"</string> - <string name="alternates_for_settings_at">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\@"</string> - <string name="alternates_for_settings_comma">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\\,"</string> - <string name="alternates_for_punctuation">":,/,&,(,),-,+,;,\@,\',\",\?,!,\\,"</string> + <string name="alternates_for_punctuation">"\\,,\?,!,:,-,\',\",(,),/,;,+,&,\@"</string> + <string name="alternates_for_web_tab_punctuation">".,\\,,\?,!,:,-,\',\",(,),/,;,+,&,\@"</string> <string name="keylabel_for_popular_domain">".com"</string> <!-- popular web domains for the locale - most popular, displayed on the keyboard --> <string name="alternates_for_popular_domain">".net,.org,.gov,.edu"</string> diff --git a/java/res/xml-large-land/kbd_popup_template.xml b/java/res/xml-large-land/kbd_popup_template.xml index 3caae1a60497d66217ec743940de66fabf20f079..2c1d1902e5e34248758865b14d105674f8d9a4f1 100644 --- a/java/res/xml-large-land/kbd_popup_template.xml +++ b/java/res/xml-large-land/kbd_popup_template.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -19,7 +19,7 @@ --> <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="3.5%p" + latin:keyWidth="5%p" latin:horizontalGap="0px" latin:verticalGap="0px" latin:rowHeight="@dimen/popup_key_height" diff --git a/java/res/xml-large/kbd_azerty_rows.xml b/java/res/xml-large/kbd_azerty_rows.xml index 564f7762901d9b002d2fab71408783534e16c2b0..d0100e0171f052688c080b31764502b07bf3bda6 100644 --- a/java/res/xml-large/kbd_azerty_rows.xml +++ b/java/res/xml-large/kbd_azerty_rows.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -24,59 +24,59 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="10%p" + latin:rowEdgeFlags="top" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="a" - latin:popupCharacters="@string/alternates_for_a" /> + latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:popupCharacters="@string/alternates_for_a" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="z" + latin:keyHintIcon="@drawable/keyboard_hint_2" latin:popupCharacters="@string/alternates_for_z" /> <Key latin:keyLabel="e" + latin:keyHintIcon="@drawable/keyboard_hint_3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" + latin:keyHintIcon="@drawable/keyboard_hint_4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" + latin:keyHintIcon="@drawable/keyboard_hint_5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" + latin:keyHintIcon="@drawable/keyboard_hint_6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" + latin:keyHintIcon="@drawable/keyboard_hint_7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" + latin:keyHintIcon="@drawable/keyboard_hint_8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" + latin:keyHintIcon="@drawable/keyboard_hint_9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:popupCharacters="@string/alternates_for_p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:popupCharacters="@string/alternates_for_p" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.157%p" + latin:keyWidth="10%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="10.167%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" - latin:popupCharacters="@string/alternates_for_q" /> + latin:popupCharacters="@string/alternates_for_q" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="s" latin:popupCharacters="@string/alternates_for_s" /> @@ -101,17 +101,13 @@ <Key latin:keyLabel="m" latin:keyEdgeFlags="right" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="8.593%p" - latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="10%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" @@ -120,6 +116,7 @@ latin:keyLabel="x" /> <Key latin:keyLabel="c" + latin:popupCharacters="@string/alternates_for_c" /> <Key latin:keyLabel="v" @@ -130,38 +127,10 @@ latin:keyLabel="n" latin:popupCharacters="@string/alternates_for_n" /> <Key - latin:keyLabel="\'" - latin:manualTemporaryUpperCaseCode="58" - latin:keyHintIcon="@drawable/key_hint_colon_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo" - latin:popupCharacters=":" /> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="," /> - <Key - latin:keyLabel="." /> - </case> - <default> - <Key - latin:keyLabel="," - latin:manualTemporaryUpperCaseCode="33" - latin:keyHintIcon="@drawable/key_hint_exclamation_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo" - latin:popupCharacters="!" /> - <Key - latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="63" - latin:keyHintIcon="@drawable/key_hint_question_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo" - latin:popupCharacters="\?" /> - </default> - </switch> + latin:keyLabel="\'" /> <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.530%p" + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="15%p" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-large/kbd_key_styles.xml b/java/res/xml-large/kbd_key_styles.xml index fc06d00fcab7f5e838fec95ee8665adaa73b7f18..c2ca3e13a09c61c87d0e0ed23045381200cc2c56 100644 --- a/java/res/xml-large/kbd_key_styles.xml +++ b/java/res/xml-large/kbd_key_styles.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -21,14 +21,45 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- Functional key styles --> + <!-- Base key style for the functional key --> <switch> - <case + <case latin:colorScheme="white" > <key-style latin:styleName="functionalKeyStyle" latin:isModifier="true" /> + </case> + <case + latin:colorScheme="black" + > + <key-style + latin:styleName="functionalKeyStyle" /> + </case> + </switch> + <!-- Base key style for the key which may have settings key as popup key --> + <switch> + <case + latin:hasSettingsKey="true" + > + <key-style + latin:styleName="settingsPopupStyle" + latin:parentStyle="functionalKeyStyle" /> + </case> + <!-- latin:hasSettingsKey="false" --> + <default> + <key-style + latin:styleName="settingsPopupStyle" + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings" + latin:parentStyle="functionalKeyStyle" /> + </default> + </switch> + <!-- Functional key styles --> + <switch> + <case + latin:colorScheme="white" + > <key-style latin:styleName="shiftKeyStyle" latin:code="@integer/key_shift" @@ -44,45 +75,64 @@ latin:iconPreview="@drawable/sym_keyboard_feedback_delete" latin:parentStyle="functionalKeyStyle" latin:isRepeatable="true" /> + <switch> + <!-- When this qwerty keyboard has no voice key but voice key is enabled, then + symbol keyboard will have mic key. That means we should use "?123mic" key + here. --> + <case + latin:voiceKeyEnabled="true" + latin:hasVoiceKey="false" + > + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyIcon="@drawable/sym_keyboard_123_mic" + latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic" + latin:parentStyle="functionalKeyStyle" /> + </case> + <default> + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_symbol_key" + latin:parentStyle="functionalKeyStyle" /> + </default> + </switch> <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_keyboard_return_holo" - latin:iconPreview="@drawable/sym_keyboard_feedback_return" + latin:styleName="settingsKeyStyle" + latin:code="@integer/key_settings" + latin:keyIcon="@drawable/sym_keyboard_settings_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_settings" latin:parentStyle="functionalKeyStyle" /> <key-style latin:styleName="spaceKeyStyle" latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="nonSpecialBackgroundSpaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="smileyKeyStyle" - latin:keyLabel=":-)" - latin:keyOutputText=":-) " - latin:keyHintIcon="@drawable/hint_popup_holo" - latin:popupCharacters="@string/alternates_for_smiley" - latin:maxPopupKeyboardColumn="5" /> + latin:keyIcon="@drawable/sym_keyboard_space_holo" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:parentStyle="functionalKeyStyle" /> <key-style - latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" - latin:keyIcon="@drawable/sym_keyboard_settings_holo" - latin:iconPreview="@drawable/sym_keyboard_feedback_settings" + latin:styleName="tabKeyStyle" + latin:code="@integer/key_tab" + latin:keyIcon="@drawable/sym_keyboard_tab" + latin:iconPreview="@drawable/sym_keyboard_feedback_tab" latin:parentStyle="functionalKeyStyle" /> <key-style latin:styleName="micKeyStyle" latin:code="@integer/key_voice" - latin:keyIcon="@drawable/sym_keyboard_voice_holo" + latin:keyIcon="@drawable/sym_keyboard_mic" latin:iconPreview="@drawable/sym_keyboard_feedback_mic" - latin:parentStyle="functionalKeyStyle" /> + latin:parentStyle="settingsPopupStyle" /> + <!-- Note: This key style is not for functional tab key. This is used for the tab key + which is laid out as normal letter key. --> + <key-style + latin:styleName="nonSpecialBackgroundTabKeyStyle" + latin:code="@integer/key_tab" + latin:keyIcon="@drawable/sym_keyboard_tab" + latin:iconPreview="@drawable/sym_keyboard_feedback_tab" /> </case> <case latin:colorScheme="black" > - <key-style - latin:styleName="functionalKeyStyle" /> <key-style latin:styleName="shiftKeyStyle" latin:code="@integer/key_shift" @@ -98,73 +148,170 @@ latin:iconPreview="@drawable/sym_keyboard_feedback_delete" latin:parentStyle="functionalKeyStyle" latin:isRepeatable="true" /> + <switch> + <!-- When this qwerty keyboard has no voice key but voice key is enabled, then + symbol keyboard will have mic key. That means we should use "?123mic" key + here. --> + <case + latin:voiceKeyEnabled="true" + latin:hasVoiceKey="false" + > + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyIcon="@drawable/sym_bkeyboard_123_mic" + latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic" + latin:parentStyle="functionalKeyStyle" /> + </case> + <default> + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_symbol_key" + latin:parentStyle="functionalKeyStyle" /> + </default> + </switch> <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_bkeyboard_return" - latin:iconPreview="@drawable/sym_keyboard_feedback_return" + latin:styleName="settingsKeyStyle" + latin:code="@integer/key_settings" + latin:keyIcon="@drawable/sym_bkeyboard_settings" + latin:iconPreview="@drawable/sym_keyboard_feedback_settings" latin:parentStyle="functionalKeyStyle" /> <key-style latin:styleName="spaceKeyStyle" latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="nonSpecialBackgroundSpaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="smileyKeyStyle" - latin:keyLabel=":-)" - latin:keyOutputText=":-) " - latin:keyHintIcon="@drawable/hint_popup_holo" - latin:popupCharacters="@string/alternates_for_smiley" - latin:maxPopupKeyboardColumn="5" /> + latin:keyIcon="@drawable/sym_bkeyboard_space" + latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:parentStyle="functionalKeyStyle" /> <key-style - latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" - latin:keyIcon="@drawable/sym_bkeyboard_settings" - latin:iconPreview="@drawable/sym_keyboard_feedback_settings" + latin:styleName="tabKeyStyle" + latin:code="@integer/key_tab" + latin:keyIcon="@drawable/sym_bkeyboard_tab" + latin:iconPreview="@drawable/sym_keyboard_feedback_tab" latin:parentStyle="functionalKeyStyle" /> <key-style latin:styleName="micKeyStyle" latin:code="@integer/key_voice" latin:keyIcon="@drawable/sym_bkeyboard_mic" latin:iconPreview="@drawable/sym_keyboard_feedback_mic" + latin:parentStyle="settingsPopupStyle" /> + <!-- Note: This key style is not for functional tab key. This is used for the tab key + which is laid out as normal letter key. --> + <key-style + latin:styleName="nonSpecialBackgroundTabKeyStyle" + latin:code="@integer/key_tab" + latin:keyIcon="@drawable/sym_bkeyboard_tab" + latin:iconPreview="@drawable/sym_keyboard_feedback_tab" /> + </case> + </switch> + <!-- Return key style --> + <switch> + <case + latin:imeAction="actionGo" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyLabel="@string/label_go_key" latin:parentStyle="functionalKeyStyle" /> </case> + <case + latin:imeAction="actionNext" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyLabel="@string/label_next_key" + latin:parentStyle="functionalKeyStyle" /> + </case> + <case + latin:imeAction="actionDone" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyLabel="@string/label_done_key" + latin:parentStyle="functionalKeyStyle" /> + </case> + <case + latin:imeAction="actionSend" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyLabel="@string/label_send_key" + latin:parentStyle="functionalKeyStyle" /> + </case> + <case + latin:imeAction="actionSearch" + > + <switch> + <case + latin:colorScheme="white" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="@drawable/sym_keyboard_search" + latin:iconPreview="@drawable/sym_keyboard_feedback_search" + latin:parentStyle="functionalKeyStyle" /> + </case> + <case + latin:colorScheme="black" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="@drawable/sym_bkeyboard_search" + latin:iconPreview="@drawable/sym_keyboard_feedback_search" + latin:parentStyle="functionalKeyStyle" /> + </case> + </switch> + </case> + <default> + <switch> + <case + latin:colorScheme="white" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="@drawable/sym_keyboard_return" + latin:iconPreview="@drawable/sym_keyboard_feedback_return" + latin:parentStyle="functionalKeyStyle" /> + </case> + <case + latin:colorScheme="black" + > + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="@drawable/sym_bkeyboard_return" + latin:iconPreview="@drawable/sym_keyboard_feedback_return" + latin:parentStyle="functionalKeyStyle" /> + </case> + </switch> + </default> </switch> - <key-style - latin:styleName="tabKeyStyle" - latin:code="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" - latin:keyLabelOption="fontNormal" - latin:parentStyle="functionalKeyStyle" /> <key-style latin:styleName="toAlphaKeyStyle" latin:code="@integer/key_switch_alpha_symbol" latin:keyLabel="@string/label_to_alpha_key" - latin:keyLabelOption="fontNormal" latin:parentStyle="functionalKeyStyle" /> <key-style - latin:styleName="moreKeyStyle" + latin:styleName="altKeyStyle" latin:code="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal" + latin:keyLabel="@string/label_alt_key" latin:parentStyle="functionalKeyStyle" latin:isSticky="true" /> <key-style - latin:styleName="comKeyStyle" - latin:keyLabel="@string/keylabel_for_popular_domain" - latin:keyLabelOption="fontNormal" - latin:keyOutputText="@string/keylabel_for_popular_domain" + latin:styleName="smileyKeyStyle" + latin:keyLabel=":-)" + latin:keyOutputText=":-) " latin:keyHintIcon="@drawable/hint_popup_holo" - latin:popupCharacters="@string/alternates_for_popular_domain" /> + latin:popupCharacters="@string/alternates_for_smiley" + latin:maxPopupKeyboardColumn="5" + latin:parentStyle="functionalKeyStyle" /> <switch> <case latin:passwordInput="true" @@ -172,12 +319,20 @@ <key-style latin:styleName="nonPasswordSymbolKeyStyle" latin:enabled="false" /> + <key-style + latin:styleName="nonPasswordFunctionalKeyStyle" + latin:enabled="false" + latin:parentStyle="functionalKeyStyle" /> </case> <!-- latin:passwordInput="false" --> <default> <key-style latin:styleName="nonPasswordSymbolKeyStyle" latin:enabled="true" /> + <key-style + latin:styleName="nonPasswordFunctionalKeyStyle" + latin:enabled="true" + latin:parentStyle="functionalKeyStyle" /> </default> </switch> </merge> diff --git a/java/res/xml-large/kbd_number.xml b/java/res/xml-large/kbd_number.xml index 012b751159d09542677bcf6c120b81dd3d844263..9b8d4b31df0ea74a6fdf0e1a13b69d73a5f0a899 100644 --- a/java/res/xml-large/kbd_number.xml +++ b/java/res/xml-large/kbd_number.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -23,7 +23,7 @@ latin:keyboardHeight="@dimen/keyboardHeight" latin:maxKeyboardHeight="50%p" latin:rowHeight="25%p" - latin:keyWidth="11.949%p" + latin:keyWidth="26.67%p" latin:horizontalGap="@dimen/key_horizontal_gap" latin:verticalGap="@dimen/key_bottom_gap" latin:popupKeyboardTemplate="@xml/kbd_popup_template" @@ -33,197 +33,62 @@ latin:keyboardLayout="@xml/kbd_key_styles" /> <include latin:keyboardLayout="@xml/kbd_numkey_styles" /> - <switch> - <case - latin:passwordInput="true" - > - <!-- This row is intentionally not marked as a top row --> - <Row> - <Spacer - latin:horizontalGap="32.076%p" /> - <Key - latin:keyStyle="num1KeyStyle" /> - <Key - latin:keyStyle="num2KeyStyle" /> - <Key - latin:keyStyle="num3KeyStyle" /> - <Spacer - latin:horizontalGap="22.272%p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <Spacer - latin:horizontalGap="32.076%p" /> - <Key - latin:keyStyle="num4KeyStyle" /> - <Key - latin:keyStyle="num5KeyStyle" /> - <Key - latin:keyStyle="num6KeyStyle" /> - <Spacer - latin:horizontalGap="17.371%p" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <Spacer - latin:horizontalGap="32.076%p" /> - <Key - latin:keyStyle="num7KeyStyle" /> - <Key - latin:keyStyle="num8KeyStyle" /> - <Key - latin:keyStyle="num9KeyStyle" /> - <!-- There is an empty area below the "Enter" key and right of the "9" key. To - ignore the touch event on the area, "9" is intentionally not marked as a right - edge key. --> - </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row> - <Spacer - latin:horizontalGap="44.026%p" /> - <Key - latin:keyStyle="num0KeyStyle" /> - <!-- 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> - </case> - <!-- latin:passwordInput="false" --> - <default> - <!-- This row is intentionally not marked as a top row --> - <Row> - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyEdgeFlags="left" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyLabel="-" - latin:keyWidth="8.042%p" /> - <Key - latin:keyLabel="+" - latin:keyWidth="8.042%p" /> - <Key - latin:keyLabel="." - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyLabel="1" /> - <Key - latin:keyLabel="2" /> - <Key - latin:keyLabel="3" /> - <Spacer - latin:horizontalGap="9.360%p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <Spacer - latin:horizontalGap="16.406%p" /> - <Key - latin:keyLabel="*" - latin:keyWidth="8.042%p" /> - <Key - latin:keyLabel="/" - latin:keyWidth="8.042%p" /> - <Key - latin:keyLabel="," - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyLabel="4" /> - <Key - latin:keyLabel="5" /> - <Key - latin:keyLabel="6" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <!-- There is an empty area below the "More" key and left of the "(" key. To - ignore the touch event on the area, "(" is intentionally not marked as a left - edge key. --> - <Spacer - latin:horizontalGap="16.406%p" /> - <Key - latin:keyLabel="(" - latin:keyWidth="8.042%p" /> - <Key - latin:keyLabel=")" - latin:keyWidth="8.042%p" /> - <Key - latin:keyLabel="=" - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyLabel="7" /> - <Key - latin:keyLabel="8" /> - <Key - latin:keyLabel="9" /> - <!-- There is an empty area below the "Enter" key and right of the "9" key. To - ignore the touch event on the area, "9" is intentionally not marked as a right - edge key. --> - </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row> - <!-- There is an empty area below the "More" key and left of the "space" key. To - ignore the touch event on the area, "space" is intentionally not marked as a - left edge key. --> - <Spacer - latin:horizontalGap="8.362%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> - <Key - latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" - latin:keyWidth="24.127%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyLabel="*" /> - <Key - latin:keyLabel="0" /> - <Key - latin:keyLabel="#" /> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - </switch> - <!-- There is an empty area below the "Enter" key and right of the "#" key. To - ignore the touch event on the area, "#" is intentionally not marked as a right - edge key. --> - </Row> - </default> - </switch> + <Row + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="1" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="2" /> + <Key + latin:keyLabel="3" /> + <Key + latin:keyLabel="-" + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyLabel="4" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="5" /> + <Key + latin:keyLabel="6" /> + <Key + latin:keyLabel="," + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyLabel="7" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="8" /> + <Key + latin:keyLabel="9" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:rowEdgeFlags="bottom" + > + <Key + latin:keyStyle="numSpaceKeyStyle" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="0" /> + <Key + latin:keyLabel="." /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> + </Row> </Keyboard> diff --git a/java/res/xml-large/kbd_numkey_styles.xml b/java/res/xml-large/kbd_numkey_styles.xml index e27db94c798698b3c029c2e44b1c3778ac27ee0c..72efbbcba05ef8ae2d6a7caf14414d05caeed729 100644 --- a/java/res/xml-large/kbd_numkey_styles.xml +++ b/java/res/xml-large/kbd_numkey_styles.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -81,7 +81,8 @@ <key-style latin:styleName="numSpaceKeyStyle" latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:keyIcon="@drawable/sym_keyboard_space" /> </case> <case latin:colorScheme="black" @@ -142,7 +143,8 @@ <key-style latin:styleName="numSpaceKeyStyle" latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + latin:iconPreview="@drawable/sym_keyboard_feedback_space" + latin:keyIcon="@drawable/sym_keyboard_space" /> </case> </switch> </merge> diff --git a/java/res/xml-large/kbd_phone.xml b/java/res/xml-large/kbd_phone.xml index 9122176a96343a0bae8cc263aa6fee9de6ef9e96..8dd1ab76094be2e12072c2bf0436582d3fe07b0a 100644 --- a/java/res/xml-large/kbd_phone.xml +++ b/java/res/xml-large/kbd_phone.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -23,7 +23,7 @@ latin:keyboardHeight="@dimen/keyboardHeight" latin:maxKeyboardHeight="50%p" latin:rowHeight="25%p" - latin:keyWidth="11.949%p" + latin:keyWidth="26.67%p" latin:horizontalGap="@dimen/key_horizontal_gap" latin:verticalGap="@dimen/key_bottom_gap" latin:popupKeyboardTemplate="@xml/kbd_popup_template" @@ -33,134 +33,62 @@ latin:keyboardLayout="@xml/kbd_key_styles" /> <include latin:keyboardLayout="@xml/kbd_numkey_styles" /> - <!-- This row is intentionally not marked as a top row --> - <Row> + <Row + latin:rowEdgeFlags="top" + > <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" + latin:keyStyle="num1KeyStyle" latin:keyEdgeFlags="left" /> - <!-- To match one character label size with "Tab", I placed spaces around the char '-' - and '+'. --> - <Spacer - latin:horizontalGap="8.470%p" /> - <Key - latin:code="45" - latin:keyLabel=" - " - latin:keyWidth="8.042%p" /> - <Key - latin:code="43" - latin:keyLabel=" + " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> - <Key - latin:keyStyle="num1KeyStyle" /> <Key latin:keyStyle="num2KeyStyle" /> <Key latin:keyStyle="num3KeyStyle" /> - <Spacer - latin:horizontalGap="9.360%p" /> <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" + latin:keyLabel="-" + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="20%p" latin:keyEdgeFlags="right" /> </Row> <Row> <Key - latin:keyStyle="moreKeyStyle" + latin:keyStyle="num4KeyStyle" latin:keyEdgeFlags="left" /> - <!-- To match one character label size with "More", I placed spaces around the char ',' - and '.'. --> - <Spacer - latin:horizontalGap="8.470%p" /> - <Key - latin:code="44" - latin:keyLabel=" , " - latin:keyWidth="8.042%p" /> - <Key - latin:code="46" - latin:keyLabel=" . " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> - <Key - latin:keyStyle="num4KeyStyle" /> <Key latin:keyStyle="num5KeyStyle" /> <Key latin:keyStyle="num6KeyStyle" /> - <Spacer - latin:horizontalGap="4.458%p" /> <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" + latin:keyLabel="." + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="20%p" latin:keyEdgeFlags="right" /> </Row> <Row> - <!-- To match one character label size with "More", I placed spaces around the char '(' - and ')'. --> - <!-- There is an empty area bellow the "More" key and left of the "(" key. To ignore - the touch event on the area, "(" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="20.427%p" /> - <Key - latin:code="40" - latin:keyLabel=" ( " - latin:keyWidth="8.042%p" /> - <Key - latin:code="41" - latin:keyLabel=" ) " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> <Key - latin:keyStyle="num7KeyStyle" /> + latin:keyStyle="num7KeyStyle" + latin:keyEdgeFlags="left" /> <Key latin:keyStyle="num8KeyStyle" /> <Key latin:keyStyle="num9KeyStyle" /> - <!-- There is an empty area bellow the "Enter" key and right of the "9" key. To ignore - the touch event on the area, "9" is intentionally not marked as a right edge key. --> - </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row> - <!-- There is an empty area bellow the "More" key and left of the "space" key. To ignore - the touch event on the area, "space" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="12.340%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> - <Key - latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" - latin:keyWidth="16.084%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> - <Key - latin:keyStyle="numStarKeyStyle" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:rowEdgeFlags="bottom" + > + <Key + latin:keyStyle="numAltKeyStyle" + latin:keyEdgeFlags="left" /> <Key latin:keyStyle="num0KeyStyle" /> <Key - latin:keyStyle="numPoundKeyStyle" /> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - </switch> - <!-- There is an empty area bellow 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. --> + latin:keyStyle="numSpaceKeyStyle" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> </Row> </Keyboard> diff --git a/java/res/xml-large/kbd_phone_symbols.xml b/java/res/xml-large/kbd_phone_symbols.xml index 055c148674631a239d94f34e734213fcd7e3b2bd..d355c8eac99c56d1d391bea30c8c237877591657 100644 --- a/java/res/xml-large/kbd_phone_symbols.xml +++ b/java/res/xml-large/kbd_phone_symbols.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -23,7 +23,7 @@ latin:keyboardHeight="@dimen/keyboardHeight" latin:maxKeyboardHeight="50%p" latin:rowHeight="25%p" - latin:keyWidth="11.949%p" + latin:keyWidth="26.67%p" latin:horizontalGap="@dimen/key_horizontal_gap" latin:verticalGap="@dimen/key_bottom_gap" latin:popupKeyboardTemplate="@xml/kbd_popup_template" @@ -33,146 +33,68 @@ latin:keyboardLayout="@xml/kbd_key_styles" /> <include latin:keyboardLayout="@xml/kbd_numkey_styles" /> - <!-- This row is intentionally not marked as a top row --> - <Row> + <Row + latin:rowEdgeFlags="top" + > <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" + latin:keyLabel="(" latin:keyEdgeFlags="left" /> - <Spacer - latin:horizontalGap="4.458%p" /> <Key - latin:code="45" - latin:keyLabel=" - " - latin:keyWidth="8.042%p" /> + latin:keyLabel="/" /> <Key - latin:code="43" - latin:keyLabel=" + " - latin:keyWidth="8.042%p" /> + latin:keyLabel=")" /> <Key - latin:code="44" - latin:keyLabel="@string/label_pause_key" - latin:keyWidth="8.042%p" /> - <!-- To match one character label size with "Tab" and "Pause, I placed spaces around the - char '-' and '+'. --> - <Spacer - latin:horizontalGap="4.458%p" /> + latin:keyLabel="-" + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> + </Row> + <Row> <Key - latin:keyStyle="num1KeyStyle" /> + latin:keyLabel="N" + latin:keyEdgeFlags="left" /> + <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this + has changed. --> <Key - latin:keyStyle="num2KeyStyle" /> + latin:code="44" + latin:keyLabel="Pause" /> <Key - latin:keyStyle="num3KeyStyle" /> - <Spacer - latin:horizontalGap="9.360%p" /> + latin:keyLabel="," /> <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" + latin:keyLabel="." + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="20%p" latin:keyEdgeFlags="right" /> </Row> <Row> <Key - latin:keyStyle="moreKeyStyle" + latin:keyStyle="numStarKeyStyle" latin:keyEdgeFlags="left" /> - <Spacer - latin:horizontalGap="4.458%p" /> + <!-- Wait is a semicolon. --> <Key - latin:code="44" - latin:keyLabel=" , " - latin:keyWidth="8.042%p" /> + latin:code="59" + latin:keyLabel="Wait" /> <Key - latin:code="46" - latin:keyLabel=" . " - latin:keyWidth="8.042%p" /> + latin:keyStyle="numPoundKeyStyle" /> <Key - latin:code="59" - latin:keyLabel="@string/label_wait_key" - latin:keyWidth="8.042%p" /> - <!-- To match one character label size with "More" and "Wait", I placed spaces around the - char ',' and '.'. --> - <Spacer - latin:horizontalGap="4.458%p" /> + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:rowEdgeFlags="bottom" + > <Key - latin:keyStyle="num4KeyStyle" /> + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_numeric_key" + latin:keyEdgeFlags="left" /> <Key - latin:keyStyle="num5KeyStyle" /> + latin:keyLabel="+" /> <Key - latin:keyStyle="num6KeyStyle" /> - <Spacer - latin:horizontalGap="4.458%p" /> + latin:keyStyle="numSpaceKeyStyle" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" + latin:keyWidth="20%p" latin:keyEdgeFlags="right" /> </Row> - <Row> - <!-- To match one character label size with "More" and etc., I placed spaces around the - char 'N', '(' and ')'. --> - <!-- There is an empty area bellow the "More" key and left of the "(" key. To ignore - the touch event on the area, "(" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="16.406%p" /> - <Key - latin:code="40" - latin:keyLabel=" ( " - latin:keyWidth="8.042%p" /> - <Key - latin:code="41" - latin:keyLabel=" ) " - latin:keyWidth="8.042%p" /> - <Key - latin:code="78" - latin:keyLabel=" N " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="num7KeyStyle" /> - <Key - latin:keyStyle="num8KeyStyle" /> - <Key - latin:keyStyle="num9KeyStyle" /> - <!-- There is an empty area bellow the "Enter" key and right of the "9" key. To ignore - the touch event on the area, "9" is intentionally not marked as a right edge key. --> - </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row> - <!-- There is an empty area bellow the "More" key and left of the "space" key. To ignore - the touch event on the area, "space" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="8.362%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> - <Key - latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" - latin:keyWidth="24.127%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="numStarKeyStyle" /> - <Key - latin:keyStyle="num0KeyStyle" /> - <Key - latin:keyStyle="numPoundKeyStyle" /> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - </switch> - <!-- There is an empty area bellow the "Enter" key and right of the "#" key. To ignore - the touch event on the area, "#" is intentionally not marked as a right edge key. --> - </Row> </Keyboard> diff --git a/java/res/xml-large/kbd_popup_template.xml b/java/res/xml-large/kbd_popup_template.xml index 7d39d1a3a40cc8b5f83965eca31859a2056abcf1..fff2659be8eea9a57fabe2115f410b91420b4a82 100644 --- a/java/res/xml-large/kbd_popup_template.xml +++ b/java/res/xml-large/kbd_popup_template.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2008, The Android Open Source Project +** 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. @@ -19,8 +19,8 @@ --> <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="5.0%p" - latin:horizontalGap="0px" + latin:keyWidth="8%p" + latin:horizontalGap="@dimen/key_horizontal_gap" latin:verticalGap="0px" latin:rowHeight="@dimen/popup_key_height" > diff --git a/java/res/xml-large/kbd_qwerty.xml b/java/res/xml-large/kbd_qwerty.xml index 1c8d51ffe5e14bd66f243ea91fcd6b9b1c50d46e..9541e13fd1cec2e03e4e567aa0c036991a6d747b 100644 --- a/java/res/xml-large/kbd_qwerty.xml +++ b/java/res/xml-large/kbd_qwerty.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -23,6 +23,7 @@ latin:keyboardHeight="@dimen/keyboardHeight" latin:maxKeyboardHeight="50%p" latin:rowHeight="25%p" + latin:keyWidth="10%p" latin:horizontalGap="@dimen/key_horizontal_gap" latin:verticalGap="@dimen/key_bottom_gap" latin:popupKeyboardTemplate="@xml/kbd_popup_template" diff --git a/java/res/xml-large/kbd_qwerty_row1.xml b/java/res/xml-large/kbd_qwerty_row1.xml index f5135591c3deb53b627f47243619b29ea309a8d6..df97125351bf73b00287d2255dc63f16f188fe89 100644 --- a/java/res/xml-large/kbd_qwerty_row1.xml +++ b/java/res/xml-large/kbd_qwerty_row1.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -21,48 +21,51 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="10%p" + latin:rowEdgeFlags="top" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" - latin:popupCharacters="@string/alternates_for_q" /> + latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:popupCharacters="@string/alternates_for_q" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" + latin:keyHintIcon="@drawable/keyboard_hint_2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" + latin:keyHintIcon="@drawable/keyboard_hint_3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" + latin:keyHintIcon="@drawable/keyboard_hint_4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" + latin:keyHintIcon="@drawable/keyboard_hint_5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" + latin:keyHintIcon="@drawable/keyboard_hint_6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" + latin:keyHintIcon="@drawable/keyboard_hint_7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" + latin:keyHintIcon="@drawable/keyboard_hint_8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" + latin:keyHintIcon="@drawable/keyboard_hint_9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:popupCharacters="@string/alternates_for_p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:popupCharacters="@string/alternates_for_p" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-large/kbd_qwerty_row2.xml b/java/res/xml-large/kbd_qwerty_row2.xml index 02bd0a6c99289cd7c6e419691d94b4b62f6f7114..07dd66f6bfb93ef3de8a3f2e7257242631981449 100644 --- a/java/res/xml-large/kbd_qwerty_row2.xml +++ b/java/res/xml-large/kbd_qwerty_row2.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -22,16 +22,14 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Row - latin:keyWidth="8.157%p" + latin:keyWidth="10%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="11.167%p" - latin:keyEdgeFlags="left" /> + <Spacer + latin:horizontalGap="5%p" /> <Key latin:keyLabel="a" - latin:popupCharacters="@string/alternates_for_a" /> + latin:popupCharacters="@string/alternates_for_a" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="s" latin:popupCharacters="@string/alternates_for_s" /> @@ -52,10 +50,7 @@ latin:popupCharacters="@string/alternates_for_k" /> <Key latin:keyLabel="l" - latin:popupCharacters="@string/alternates_for_l" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="15.750%p" + latin:popupCharacters="@string/alternates_for_l" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-large/kbd_qwerty_row3.xml b/java/res/xml-large/kbd_qwerty_row3.xml index b7e9bcff9a41a820126d1b2597db2c80722a77ef..c8e78d440d7e660376380e8dd8802eca8a7e500d 100644 --- a/java/res/xml-large/kbd_qwerty_row3.xml +++ b/java/res/xml-large/kbd_qwerty_row3.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -22,11 +22,11 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Row - latin:keyWidth="8.042%p" + latin:keyWidth="10%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="z" @@ -46,33 +46,9 @@ latin:popupCharacters="@string/alternates_for_n" /> <Key latin:keyLabel="m" /> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="," /> - <Key - latin:keyLabel="." /> - </case> - <default> - <Key - latin:keyLabel="," - latin:manualTemporaryUpperCaseCode="33" - latin:keyHintIcon="@drawable/key_hint_exclamation_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo" - latin:popupCharacters="!" /> - <Key - latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="63" - latin:keyHintIcon="@drawable/key_hint_question_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo" - latin:popupCharacters="\?" /> - </default> - </switch> <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.530%p" + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="15%p" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-large/kbd_qwerty_row4.xml b/java/res/xml-large/kbd_qwerty_row4.xml index f36b61fc744e85e81d973cf8b606e60b63fd67bb..afe12e89bf9eb25aac45dd6e9fe22966878f2dc0 100644 --- a/java/res/xml-large/kbd_qwerty_row4.xml +++ b/java/res/xml-large/kbd_qwerty_row4.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -21,237 +21,116 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- This row is intentionally not marked as a bottom row --> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="10%p" + latin:rowEdgeFlags="bottom" > - <Spacer - latin:horizontalGap="8.362%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> <switch> <case - latin:languageCode="ru" + latin:hasSettingsKey="false" > + <Key + latin:keyStyle="toSymbolKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="left" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f1" /> + <Key + latin:keyStyle="spaceKeyStyle" + latin:keyWidth="40%p" /> <switch> - <!-- TODO: implement logical OR for <case> attribute --> - <case - latin:mode="email" - > - <Key - latin:keyStyle="comKeyStyle" /> - </case> - <case - latin:mode="url" - > - <Key - latin:keyStyle="comKeyStyle" /> - </case> <case - latin:imeAction="actionSearch" + latin:mode="web" > - <Key - latin:keyLabel=":" - latin:manualTemporaryUpperCaseCode="43" - latin:keyHintIcon="@drawable/key_hint_plus_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo" - latin:popupCharacters="+" /> + <Key + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="@string/alternates_for_web_tab_punctuation" + latin:maxPopupKeyboardColumn="8" + latin:keyStyle="tabKeyStyle" /> </case> <default> <Key - latin:keyStyle="smileyKeyStyle" /> + latin:keyLabel="." + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="@string/alternates_for_punctuation" + latin:maxPopupKeyboardColumn="7" + latin:keyStyle="functionalKeyStyle" /> </default> </switch> <switch> <case - latin:mode="email" + latin:mode="im" > <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="_" /> + latin:keyStyle="smileyKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> </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="\@" /> + latin:keyStyle="returnKeyStyle" + latin:keyWidth="20%p" + latin:keyEdgeFlags="right" /> </default> </switch> </case> - <!-- not languageCode="ru" --> - <default> - <switch> - <case - latin:mode="url" - > - <Key - latin:keyStyle="comKeyStyle" - latin:keyWidth="16.084%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> - </switch> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="37.454%p" /> - <switch> <case - latin:languageCode="ru" + latin:hasSettingsKey="true" > + <Key + latin:keyStyle="toSymbolKeyStyle" + latin:keyWidth="15%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="settingsKeyStyle" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f1" /> <switch> <case - latin:mode="email" + latin:mode="web" > <Key - latin:keyLabel="-" /> - </case> - <case - latin:mode="url" - > + latin:keyStyle="spaceKeyStyle" + latin:keyWidth="30%p" /> <Key - latin:keyLabel="/" - latin:manualTemporaryUpperCaseCode="58" - latin:keyHintIcon="@drawable/key_hint_colon_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo" - latin:popupCharacters=":" /> + latin:keyStyle="tabKeyStyle" /> </case> <default> <Key - latin:keyLabel="\?" - latin:manualTemporaryUpperCaseCode="95" - latin:keyHintIcon="@drawable/key_hint_underline_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo" - latin:popupCharacters="_" /> + latin:keyStyle="spaceKeyStyle" + latin:keyWidth="30%p" /> </default> </switch> + <Key + latin:keyLabel="." + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="@string/alternates_for_punctuation" + latin:maxPopupKeyboardColumn="7" + latin:keyStyle="functionalKeyStyle" /> <switch> <case - latin:mode="email" - > - <Key - latin:keyLabel="_" /> - </case> - <default> - <Key - latin:keyLabel="!" - latin:manualTemporaryUpperCaseCode="39" - latin:keyHintIcon="@drawable/key_hint_quote_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo" - latin:popupCharacters="\'" /> - </default> - </switch> - </case> - <!-- not languageCode="ru" --> - <default> - <switch> - <case - latin:mode="email" + latin:mode="im" > <Key - latin:keyLabel="-" /> + latin:keyStyle="smileyKeyStyle" + latin:keyWidth="25%p" + latin:keyEdgeFlags="right" /> </case> <case - latin:mode="url" + latin:mode="web" > <Key - latin:keyLabel="/" - latin:manualTemporaryUpperCaseCode="58" - latin:keyHintIcon="@drawable/key_hint_colon_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo" - latin:popupCharacters=":" /> + latin:keyStyle="returnKeyStyle" + latin:keyWidth="15%p" + latin:keyEdgeFlags="right" /> </case> <default> <Key - latin:keyLabel="\'" - latin:manualTemporaryUpperCaseCode="34" - latin:keyHintIcon="@drawable/key_hint_quote_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo" - latin:popupCharacters=""" /> + latin:keyStyle="returnKeyStyle" + latin:keyWidth="25%p" + latin:keyEdgeFlags="right" /> </default> </switch> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="_" /> - </case> - <default> - <Key - latin:keyLabel="-" - latin:manualTemporaryUpperCaseCode="95" - latin:keyHintIcon="@drawable/key_hint_underline_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo" - latin:popupCharacters="_" /> - </default> - </switch> - </default> - </switch> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" /> </case> </switch> </Row> diff --git a/java/res/xml-large/kbd_qwerty_rows.xml b/java/res/xml-large/kbd_qwerty_rows.xml index 6237712f6473f95965417ee9bb0cb6c14bbbe99c..a2d26b3de6416a5ada10ddea348ea8d382202994 100644 --- a/java/res/xml-large/kbd_qwerty_rows.xml +++ b/java/res/xml-large/kbd_qwerty_rows.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. diff --git a/java/res/xml-large/kbd_qwerty_rows_scandinavia.xml b/java/res/xml-large/kbd_qwerty_rows_scandinavia.xml index fb2034fb75735743d98ee7e2297106ec8c1e772e..9521c0b3752db2e87da733187232c71082179d1c 100644 --- a/java/res/xml-large/kbd_qwerty_rows_scandinavia.xml +++ b/java/res/xml-large/kbd_qwerty_rows_scandinavia.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -24,61 +24,64 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="9.09%p" + latin:rowEdgeFlags="top" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" - latin:popupCharacters="@string/alternates_for_q" /> + latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:popupCharacters="@string/alternates_for_q" + latin:keyWidth="8.75%p" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" + latin:keyHintIcon="@drawable/keyboard_hint_2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" + latin:keyHintIcon="@drawable/keyboard_hint_3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" + latin:keyHintIcon="@drawable/keyboard_hint_4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" + latin:keyHintIcon="@drawable/keyboard_hint_5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" + latin:keyHintIcon="@drawable/keyboard_hint_6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" + latin:keyHintIcon="@drawable/keyboard_hint_7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" + latin:keyHintIcon="@drawable/keyboard_hint_8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" + latin:keyHintIcon="@drawable/keyboard_hint_9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" + latin:keyHintIcon="@drawable/keyboard_hint_0" latin:popupCharacters="@string/alternates_for_p" /> <Key - latin:keyLabel="Ã¥" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyLabel="Ã¥" + latin:keyWidth="8.75%p" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="9.09%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="a" - latin:popupCharacters="@string/alternates_for_a" /> + latin:popupCharacters="@string/alternates_for_a" + latin:keyWidth="8.75%p" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="s" latin:popupCharacters="@string/alternates_for_s" /> @@ -105,10 +108,8 @@ latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" /> <Key latin:keyLabel="@string/keylabel_for_scandinavia_row2_11" - latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="9.331%p" + latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" + latin:keyWidth="8.75%p" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-large/kbd_qwertz_rows.xml b/java/res/xml-large/kbd_qwertz_rows.xml index 3e99f05113f92e9233daf7cc70f51360fa53ac70..239563dca828b18da919c06bfaf2aa54384f3991 100644 --- a/java/res/xml-large/kbd_qwertz_rows.xml +++ b/java/res/xml-large/kbd_qwertz_rows.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -24,56 +24,60 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="10%p" + latin:rowEdgeFlags="top" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" - latin:popupCharacters="@string/alternates_for_q" /> + latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:popupCharacters="@string/alternates_for_q" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" + latin:keyHintIcon="@drawable/keyboard_hint_2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" + latin:keyHintIcon="@drawable/keyboard_hint_3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" + latin:keyHintIcon="@drawable/keyboard_hint_4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" + latin:keyHintIcon="@drawable/keyboard_hint_5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="z" + latin:keyHintIcon="@drawable/keyboard_hint_6" latin:popupCharacters="@string/alternates_for_z" /> <Key latin:keyLabel="u" + latin:keyHintIcon="@drawable/keyboard_hint_7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" + latin:keyHintIcon="@drawable/keyboard_hint_8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" + latin:keyHintIcon="@drawable/keyboard_hint_9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:popupCharacters="@string/alternates_for_p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:popupCharacters="@string/alternates_for_p" latin:keyEdgeFlags="right" /> </Row> <include latin:keyboardLayout="@xml/kbd_qwerty_row2" /> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="10%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="y" @@ -93,33 +97,9 @@ latin:popupCharacters="@string/alternates_for_n" /> <Key latin:keyLabel="m" /> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="," /> - <Key - latin:keyLabel="." /> - </case> - <default> - <Key - latin:keyLabel="," - latin:manualTemporaryUpperCaseCode="33" - latin:keyHintIcon="@drawable/key_hint_exclamation_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo" - latin:popupCharacters="!" /> - <Key - latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="63" - latin:keyHintIcon="@drawable/key_hint_question_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo" - latin:popupCharacters="\?" /> - </default> - </switch> <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.530%p" + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="15%p" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-large/kbd_ru_rows.xml b/java/res/xml-large/kbd_ru_rows.xml index c5cd043712e0763b12997c44ced00cfb587ef683..fa2af3be0ee19ec10354c3bf61685df101c5a0af 100644 --- a/java/res/xml-large/kbd_ru_rows.xml +++ b/java/res/xml-large/kbd_ru_rows.xml @@ -23,62 +23,64 @@ > <include latin:keyboardLayout="@xml/kbd_key_styles" /> - <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="9.091%p" + latin:rowEdgeFlags="top" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="й" - latin:popupCharacters="1" /> + latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:popupCharacters="1" + latin:keyWidth="8.75%p" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ц" + latin:keyHintIcon="@drawable/keyboard_hint_2" latin:popupCharacters="2" /> <Key latin:keyLabel="у" + latin:keyHintIcon="@drawable/keyboard_hint_3" latin:popupCharacters="3" /> <Key latin:keyLabel="к" + latin:keyHintIcon="@drawable/keyboard_hint_4" latin:popupCharacters="4" /> <Key latin:keyLabel="е" + latin:keyHintIcon="@drawable/keyboard_hint_5" latin:popupCharacters="@string/alternates_for_cyrillic_e" /> <Key latin:keyLabel="н" + latin:keyHintIcon="@drawable/keyboard_hint_6" latin:popupCharacters="6" /> <Key latin:keyLabel="г" + latin:keyHintIcon="@drawable/keyboard_hint_7" latin:popupCharacters="7" /> <Key latin:keyLabel="ш" + latin:keyHintIcon="@drawable/keyboard_hint_8" latin:popupCharacters="8" /> <Key latin:keyLabel="щ" + latin:keyHintIcon="@drawable/keyboard_hint_9" latin:popupCharacters="9" /> <Key latin:keyLabel="з" + latin:keyHintIcon="@drawable/keyboard_hint_0" latin:popupCharacters="0" /> <Key - latin:keyLabel="Ñ…" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyLabel="Ñ…" + latin:keyWidth="8.75%p" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="9.091%p" > <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyLabel="Ñ„" + latin:keyWidth="8.75%p" latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="Ñ„" /> <Key latin:keyLabel="Ñ‹" /> <Key @@ -98,18 +100,16 @@ <Key latin:keyLabel="ж" /> <Key - latin:keyLabel="Ñ" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="9.331%p" + latin:keyLabel="Ñ" + latin:keyWidth="8.75%p" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="8.5%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.400%p" + latin:keyWidth="11.75%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="Ñ" /> @@ -131,14 +131,8 @@ <Key latin:keyLabel="ÑŽ" /> <Key - latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="44" - latin:keyHintIcon="@drawable/key_hint_comma_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_comma_large_holo" - latin:popupCharacters="," /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.400%p" + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="11.75%p" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-large/kbd_symbols.xml b/java/res/xml-large/kbd_symbols.xml index 1061178e092d61b2e7583a4ad51b0b890b308e2f..3f79ae178c8e3440bf76abb10940e343da14ebdc 100644 --- a/java/res/xml-large/kbd_symbols.xml +++ b/java/res/xml-large/kbd_symbols.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -23,6 +23,7 @@ latin:keyboardHeight="@dimen/keyboardHeight" latin:maxKeyboardHeight="50%p" latin:rowHeight="25%p" + latin:keyWidth="10%p" latin:horizontalGap="@dimen/key_horizontal_gap" latin:verticalGap="@dimen/key_bottom_gap" latin:popupKeyboardTemplate="@xml/kbd_popup_template" @@ -32,18 +33,13 @@ latin:keyboardLayout="@xml/kbd_key_styles" /> <include latin:keyboardLayout="@xml/kbd_currency_key_styles" /> - <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="8.272%p" + latin:rowEdgeFlags="top" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> <Key latin:keyLabel="1" - latin:popupCharacters="¹,½,â…“,¼,â…›" /> + latin:popupCharacters="¹,½,â…“,¼,â…›" + latin:keyEdgeFlags="left" /> <Key latin:keyLabel="2" latin:popupCharacters="²,â…”" /> @@ -67,22 +63,15 @@ latin:keyLabel="9" /> <Key latin:keyLabel="0" - latin:popupCharacters="â¿,∅" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:popupCharacters="â¿,∅" latin:keyEdgeFlags="right" /> </Row> - <Row - latin:keyWidth="8.157%p" - > + <Row> <Key - latin:keyStyle="toAlphaKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="11.167%p" + latin:keyLabel="\@" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="#" /> + latin:keyLabel="\#" /> <Key latin:keyStyle="currencyKeyStyle" /> <Key @@ -104,127 +93,39 @@ latin:popupCharacters="[,{,<" /> <Key latin:keyLabel=")" - latin:popupCharacters="],},>" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="15.750%p" + latin:popupCharacters="],},>" latin:keyEdgeFlags="right" /> </Row> - <Row - latin:keyWidth="8.042%p" - > + <Row> <Key - latin:keyStyle="moreKeyStyle" - latin:keyWidth="15.192%p" + latin:keyStyle="altKeyStyle" + latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="<" - latin:popupCharacters="≤,«,‹" /> - <Key - latin:keyLabel=">" - latin:popupCharacters="≥,»,›" /> - <Key - latin:keyLabel="=" - latin:popupCharacters="≠,≈" /> - <switch> - <case - latin:languageCode="ru" - > - <Key - latin:keyLabel=":" /> - </case> - <case - latin:mode="url" - > - <Key - latin:keyLabel="\'" /> - </case> - <default> - <Key - latin:keyLabel=":" /> - </default> - </switch> + latin:keyLabel="!" + latin:popupCharacters="¡" /> + <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> + <!-- latin:popupCharacters="“,â€,„,‟,«,»" --> + <Key + latin:keyLabel=""" + latin:popupCharacters="“,â€,«,»" + latin:maxPopupKeyboardColumn="6" /> + <Key + latin:keyLabel="\'" + latin:popupCharacters="‘,’,‚,‛" /> + <Key + latin:keyLabel=":" /> <Key latin:keyLabel=";" /> - <switch> - <case - latin:languageCode="ru" - > - <Key - latin:keyLabel="\'" /> - <Key - latin:keyLabel=""" - latin:popupCharacters="“,â€,«,»,Ë" /> - <Key - latin:keyLabel="." /> - <Key - latin:keyLabel="," /> - </case> - <default> - <Key - latin:keyLabel="," /> - <Key - latin:keyLabel="." /> - <Key - latin:keyLabel="!" - latin:popupCharacters="¡" /> - <Key - latin:keyLabel="\?" - latin:popupCharacters="¿" /> - </default> - </switch> - <Key - latin:keyStyle="moreKeyStyle" - latin:keyWidth="12.530%p" - latin:keyEdgeFlags="right" /> - </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row - latin:keyWidth="8.042%p" - > - <Spacer - latin:horizontalGap="8.362%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> <Key latin:keyLabel="/" /> <Key - latin:keyLabel="\@" /> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="37.454%p" /> - <switch> - <case - latin:languageCode="ru" - > - <Key - latin:keyLabel="_" /> - <Key - latin:keyLabel="-" /> - </case> - <default> - <Key - latin:keyLabel=""" - latin:popupCharacters="“,â€,«,»,Ë" /> - <Key - latin:keyLabel="_" /> - </default> - </switch> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" /> - </case> - </switch> + latin:keyLabel="\?" + latin:popupCharacters="¿" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="15%p" + latin:keyEdgeFlags="right" /> </Row> + <include latin:keyboardLayout="@xml/kbd_symbols_row4" /> </Keyboard> diff --git a/java/res/xml-large/kbd_symbols_shift.xml b/java/res/xml-large/kbd_symbols_shift.xml index 8359b757144112ad915e35be4b9b258f5c37a3f7..97fbc1ec7f2196e0b79b8269bf8aea8d11c89435 100644 --- a/java/res/xml-large/kbd_symbols_shift.xml +++ b/java/res/xml-large/kbd_symbols_shift.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** 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. @@ -23,6 +23,7 @@ latin:keyboardHeight="@dimen/keyboardHeight" latin:maxKeyboardHeight="50%p" latin:rowHeight="25%p" + latin:keyWidth="10%p" latin:horizontalGap="@dimen/key_horizontal_gap" latin:verticalGap="@dimen/key_bottom_gap" latin:popupKeyboardTemplate="@xml/kbd_popup_template" @@ -30,17 +31,12 @@ > <include latin:keyboardLayout="@xml/kbd_key_styles" /> - <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="8.272%p" + latin:rowEdgeFlags="top" > <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyLabel="~" latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="~" /> <Key latin:keyLabel="`" /> <Key @@ -63,24 +59,14 @@ latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="×" /> <Key - latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="§" - latin:popupCharacters="¶" /> - <Key - latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="Δ" /> + latin:keyLabel="{" /> <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyLabel="}" latin:keyEdgeFlags="right" /> </Row> - <Row - latin:keyWidth="8.157%p" - > + <Row> <Key - latin:keyStyle="toAlphaKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="11.167%p" + latin:keyStyle="nonSpecialBackgroundTabKeyStyle" latin:keyEdgeFlags="left" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" @@ -93,88 +79,52 @@ latin:keyLabel="€" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="Â¥" /> + latin:keyLabel="°" + latin:popupCharacters="′,″" /> <Key latin:keyLabel="^" latin:popupCharacters="↑,↓,â†,→" /> <Key - latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="°" /> - <Key - latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="±" - latin:popupCharacters="∞" /> + latin:keyLabel="_" /> <Key - latin:keyLabel="{" /> + latin:keyLabel="=" + latin:popupCharacters="≠,≈,∞" /> <Key - latin:keyLabel="}" /> + latin:keyLabel="[" /> <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="15.750%p" + latin:keyLabel="]" latin:keyEdgeFlags="right" /> </Row> - <Row - latin:keyWidth="8.042%p" - > + <Row> <Key - latin:keyStyle="moreKeyStyle" - latin:keyWidth="15.192%p" + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="\\" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="©" /> + latin:keyLabel="â„¢" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="®" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="â„¢" /> + latin:keyLabel="©" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="â„…" /> - <Key - latin:keyLabel="[" /> + latin:keyLabel="¶" + latin:popupCharacters="§" /> <Key - latin:keyLabel="]" /> + latin:keyLabel="\\" /> <Key - latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="¡" /> + latin:keyLabel="<" + latin:popupCharacters="≤,«,‹" /> <Key - latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="¿" /> + latin:keyLabel=">" + latin:popupCharacters="≥,»,›" /> <Key - latin:keyStyle="moreKeyStyle" - latin:keyWidth="12.530%p" + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="15%p" latin:keyEdgeFlags="right" /> </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row - latin:keyWidth="8.042%p" - > - <Spacer - latin:horizontalGap="24.446%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="37.454%p" /> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" /> - </case> - </switch> - </Row> + <include latin:keyboardLayout="@xml/kbd_symbols_shift_row4" /> </Keyboard> diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml index 1061178e092d61b2e7583a4ad51b0b890b308e2f..16722a04bc680fcf5830c16e3caf7621c04851a8 100644 --- a/java/res/xml-xlarge/kbd_symbols.xml +++ b/java/res/xml-xlarge/kbd_symbols.xml @@ -137,7 +137,8 @@ latin:mode="url" > <Key - latin:keyLabel="\'" /> + latin:keyLabel="\'" + latin:popupCharacters="‘,’,‚,‛" /> </case> <default> <Key @@ -151,10 +152,13 @@ latin:languageCode="ru" > <Key - latin:keyLabel="\'" /> + latin:keyLabel="\'" + latin:popupCharacters="‘,’,‚,‛" /> + <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> + <!-- latin:popupCharacters="“,â€,„,‟,«,»" --> <Key latin:keyLabel=""" - latin:popupCharacters="“,â€,«,»,Ë" /> + latin:popupCharacters="“,â€,«,»" /> <Key latin:keyLabel="." /> <Key @@ -210,10 +214,12 @@ <Key latin:keyLabel="-" /> </case> - <default> + <default> + <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> + <!-- latin:popupCharacters="“,â€,„,‟,«,»,‘,’,‚,‛" --> <Key latin:keyLabel=""" - latin:popupCharacters="“,â€,«,»,Ë" /> + latin:popupCharacters="“,â€,«,»,‘,’,‚,‛" /> <Key latin:keyLabel="_" /> </default> diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml index 8359b757144112ad915e35be4b9b258f5c37a3f7..cc23358a52b670bf15587d2997e9cac92ab7d62b 100644 --- a/java/res/xml-xlarge/kbd_symbols_shift.xml +++ b/java/res/xml-xlarge/kbd_symbols_shift.xml @@ -99,7 +99,8 @@ latin:popupCharacters="↑,↓,â†,→" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" - latin:keyLabel="°" /> + latin:keyLabel="°" + latin:popupCharacters="′,″" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="±" diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml index 473510ec4be8e7819ea70383d1e0cf2036bb39fc..54522369b58e0e6d376b3b047b5323586424e9ac 100644 --- a/java/res/xml/kbd_key_styles.xml +++ b/java/res/xml/kbd_key_styles.xml @@ -21,14 +21,45 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- Functional key styles --> + <!-- Base key style for the functional key --> <switch> - <case + <case latin:colorScheme="white" > <key-style latin:styleName="functionalKeyStyle" latin:isModifier="true" /> + </case> + <case + latin:colorScheme="black" + > + <key-style + latin:styleName="functionalKeyStyle" /> + </case> + </switch> + <!-- Base key style for the key which may have settings key as popup key --> + <switch> + <case + latin:hasSettingsKey="true" + > + <key-style + latin:styleName="settingsPopupStyle" + latin:parentStyle="functionalKeyStyle" /> + </case> + <!-- latin:hasSettingsKey="false" --> + <default> + <key-style + latin:styleName="settingsPopupStyle" + latin:keyHintIcon="@drawable/hint_popup" + latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings" + latin:parentStyle="functionalKeyStyle" /> + </default> + </switch> + <!-- Functional key styles --> + <switch> + <case + latin:colorScheme="white" + > <key-style latin:styleName="shiftKeyStyle" latin:code="@integer/key_shift" @@ -90,9 +121,7 @@ latin:code="@integer/key_voice" latin:keyIcon="@drawable/sym_keyboard_mic" latin:iconPreview="@drawable/sym_keyboard_feedback_mic" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_mic" - latin:parentStyle="functionalKeyStyle" /> + latin:parentStyle="settingsPopupStyle" /> <!-- Note: This key style is not for functional tab key. This is used for the tab key which is laid out as normal letter key. --> <key-style @@ -104,8 +133,6 @@ <case latin:colorScheme="black" > - <key-style - latin:styleName="functionalKeyStyle" /> <key-style latin:styleName="shiftKeyStyle" latin:code="@integer/key_shift" @@ -167,9 +194,7 @@ latin:code="@integer/key_voice" latin:keyIcon="@drawable/sym_bkeyboard_mic" latin:iconPreview="@drawable/sym_keyboard_feedback_mic" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_mic" - latin:parentStyle="functionalKeyStyle" /> + latin:parentStyle="settingsPopupStyle" /> <!-- Note: This key style is not for functional tab key. This is used for the tab key which is laid out as normal letter key. --> <key-style @@ -287,4 +312,27 @@ latin:popupCharacters="@string/alternates_for_smiley" latin:maxPopupKeyboardColumn="5" latin:parentStyle="functionalKeyStyle" /> -</merge> \ No newline at end of file + <switch> + <case + latin:passwordInput="true" + > + <key-style + latin:styleName="nonPasswordSymbolKeyStyle" + latin:enabled="false" /> + <key-style + latin:styleName="nonPasswordFunctionalKeyStyle" + latin:enabled="false" + latin:parentStyle="functionalKeyStyle" /> + </case> + <!-- latin:passwordInput="false" --> + <default> + <key-style + latin:styleName="nonPasswordSymbolKeyStyle" + latin:enabled="true" /> + <key-style + latin:styleName="nonPasswordFunctionalKeyStyle" + latin:enabled="true" + latin:parentStyle="functionalKeyStyle" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/kbd_popup_narrow_template.xml b/java/res/xml/kbd_popup_narrow_template.xml deleted file mode 100644 index 36caf1c1590036909e16e671eb16b4f611c3f958..0000000000000000000000000000000000000000 --- a/java/res/xml/kbd_popup_narrow_template.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, 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. -*/ ---> - -<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="9.45%p" - latin:horizontalGap="0px" - latin:verticalGap="0px" - latin:rowHeight="@dimen/popup_key_height" - > -</Keyboard> diff --git a/java/res/xml/kbd_qwerty_black_symbol.xml b/java/res/xml/kbd_qwerty_black_symbol.xml deleted file mode 100644 index 6e45c12bfb51dc3d1c20cad977d4cd0c38bef868..0000000000000000000000000000000000000000 --- a/java/res/xml/kbd_qwerty_black_symbol.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, 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:hasSettingsKey="false" - > - <switch> - <!-- When this qwerty keyboard has no voice key but voice key is enabled, then - symbol keyboard will have mic key. That means we should use "?123mic" key here. - --> - <case - latin:voiceKeyEnabled="true" - latin:hasVoiceKey="false" - > - <Key - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_bkeyboard_123_mic" - latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic" - latin:keyWidth="20%p" - latin:isModifier="true" - latin:keyEdgeFlags="left" /> - </case> - <default> - <Key - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" - latin:keyWidth="20%p" - latin:isModifier="true" - latin:keyEdgeFlags="left" /> - </default> - </switch> - </case> - <case - latin:hasSettingsKey="true" - > - <switch> - <!-- When this qwerty keyboard has no voice key but voice key is enabled, then - symbol keyboard will have mic key. That means we should use "?123mic" key here. - --> - <case - latin:voiceKeyEnabled="true" - latin:hasVoiceKey="false" - > - <Key - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_bkeyboard_123_mic" - latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic" - latin:keyWidth="15%p" - latin:isModifier="true" - latin:keyEdgeFlags="left" /> - </case> - <default> - <Key - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" - latin:keyWidth="15%p" - latin:isModifier="true" - latin:keyEdgeFlags="left" /> - </default> - </switch> - </case> - </switch> -</merge> diff --git a/java/res/xml/kbd_qwerty_f1.xml b/java/res/xml/kbd_qwerty_f1.xml index cbdb8c09a75d4e55c1cb1b46c156f34a5ed17e28..d0e2884e168aa5ba92c33c3e61f98e7c812a8953 100644 --- a/java/res/xml/kbd_qwerty_f1.xml +++ b/java/res/xml/kbd_qwerty_f1.xml @@ -27,18 +27,14 @@ > <Key latin:keyLabel="/" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_settings_slash" - latin:isModifier="true" /> + latin:keyStyle="settingsPopupStyle" /> </case> <case latin:mode="email" > <Key latin:keyLabel="\@" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_settings_at" - latin:isModifier="true" /> + latin:keyStyle="settingsPopupStyle" /> </case> <default> <switch> @@ -48,15 +44,19 @@ <Key latin:keyStyle="micKeyStyle" /> </case> + <!-- latin:hasVoiceKey="false" --> <case - latin:hasVoiceKey="false" + latin:mode="web" > <Key - latin:keyLabel="," - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_settings_comma" - latin:isModifier="true" /> + latin:keyLabel="." + latin:keyStyle="settingsPopupStyle" /> </case> + <default> + <Key + latin:keyLabel="," + latin:keyStyle="settingsPopupStyle" /> + </default> </switch> </default> </switch> diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml index b3b3f4ebd714d1dceeafdc757db92d46ad26ae28..bd3917bb2ceee86292bc23eea84e52a08ccec4be 100644 --- a/java/res/xml/kbd_symbols.xml +++ b/java/res/xml/kbd_symbols.xml @@ -104,12 +104,15 @@ <Key latin:keyLabel="!" latin:popupCharacters="¡" /> + <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> + <!-- latin:popupCharacters="“,â€,„,‟,«,»" --> <Key latin:keyLabel=""" - latin:popupCharacters="“,â€,«,»,Ë" /> + latin:popupCharacters="“,â€,«,»" + latin:maxPopupKeyboardColumn="6" /> <Key latin:keyLabel="\'" - latin:popupCharacters="‘,’" /> + latin:popupCharacters="‘,’,‚,‛" /> <Key latin:keyLabel=":" /> <Key diff --git a/java/res/xml/kbd_symbols_f1.xml b/java/res/xml/kbd_symbols_f1.xml index 8487b61585200f198054952ec2801fb826e93223..0fb7136b9702b65c7ef785c8ee49f857e1308413 100644 --- a/java/res/xml/kbd_symbols_f1.xml +++ b/java/res/xml/kbd_symbols_f1.xml @@ -28,14 +28,11 @@ <Key latin:keyStyle="micKeyStyle" /> </case> - <case - latin:hasVoiceKey="false" - > + <!-- latin:hasVoiceKey="false" --> + <default> <Key latin:keyLabel="," - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_settings_comma" - latin:keyStyle="functionalKeyStyle" /> - </case> + latin:keyStyle="settingsPopupStyle" /> + </default> </switch> </merge> diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml index 368ee805b1c9a7bf14406974313e2bd6e4bd76cf..b99d9708425fb444b7e3a4b6c7a9f9d46587ca6c 100644 --- a/java/res/xml/kbd_symbols_shift.xml +++ b/java/res/xml/kbd_symbols_shift.xml @@ -42,16 +42,21 @@ <Key latin:keyLabel="|" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="•" latin:popupCharacters="♪,♥,â™ ,♦,♣" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="√" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="Ï€" latin:popupCharacters="Î " /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="÷" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="×" /> <Key latin:keyLabel="{" /> @@ -64,13 +69,18 @@ latin:keyStyle="nonSpecialBackgroundTabKeyStyle" latin:keyEdgeFlags="left" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="£" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="¢" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="€" /> <Key - latin:keyLabel="°" /> + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="°" + latin:popupCharacters="′,″" /> <Key latin:keyLabel="^" latin:popupCharacters="↑,↓,â†,→" /> @@ -91,12 +101,16 @@ latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="â„¢" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="®" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="©" /> <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" latin:keyLabel="¶" latin:popupCharacters="§" /> <Key diff --git a/java/res/xml/kbd_symbols_shift_row4.xml b/java/res/xml/kbd_symbols_shift_row4.xml index 9159bab24d3686ddf279b983ea86550c80130494..e4b5403b5de84af05703c814c89db076e33b8683 100644 --- a/java/res/xml/kbd_symbols_shift_row4.xml +++ b/java/res/xml/kbd_symbols_shift_row4.xml @@ -34,13 +34,13 @@ latin:keyEdgeFlags="left" /> <Key latin:keyLabel="„" - latin:keyStyle="functionalKeyStyle" /> + latin:keyStyle="nonPasswordFunctionalKeyStyle" /> <Key latin:keyStyle="spaceKeyStyle" latin:keyWidth="40%p" /> <Key latin:keyLabel="…" - latin:keyStyle="functionalKeyStyle" /> + latin:keyStyle="nonPasswordFunctionalKeyStyle" /> <switch> <case latin:mode="im" @@ -69,13 +69,13 @@ latin:keyStyle="settingsKeyStyle" /> <Key latin:keyLabel="„" - latin:keyStyle="functionalKeyStyle" /> + latin:keyStyle="nonPasswordFunctionalKeyStyle" /> <Key latin:keyStyle="spaceKeyStyle" latin:keyWidth="30%p" /> <Key latin:keyLabel="…" - latin:keyStyle="functionalKeyStyle" /> + latin:keyStyle="nonPasswordFunctionalKeyStyle" /> <switch> <case latin:mode="im" diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 15259a2895b16fe23fd90f0b8502995f2a46a07e..8eadf4ba431316e69768ca88f6a5e757d578935f 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 @@ -140,9 +140,9 @@ public class Key { * This constructor is being used only for key in mini popup keyboard. */ public Key(Resources res, Keyboard keyboard, CharSequence popupCharacter, int x, int y, - int width, int edgeFlags) { + int width, int height, int edgeFlags) { mKeyboard = keyboard; - mHeight = keyboard.getRowHeight() - keyboard.getVerticalGap(); + mHeight = height - keyboard.getVerticalGap(); mGap = keyboard.getHorizontalGap(); mWidth = width - mGap; mEdgeFlags = edgeFlags; diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java index a7ede5f26ed8bfb88ff0ec86df0e25278846f470..a8346c581c903dd1bf6ee4a7ae44f111acddac3f 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java +++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/KeyStyles.java index 169f2e6c3e4db5dadd15b07c1873758fc19a1096..8d9b1b41ee85c510885a5dfee9b1720dc8b72405 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyStyles.java +++ b/java/src/com/android/inputmethod/keyboard/KeyStyles.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index 06d44680d62b4f9a009328341e84e94ccee164cb..0b545d9c2ee16211b514bc07ea474f0971e3f43d 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java index 098af214eb7ad03d524be964719321c687ba6357..7e67d6f6b1eb8656f491f234598687377dfd589e 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java index d09f6786e09471620359c26450bd7e6cd0d1e007..97ef687bd9e3d0c7f372f4d5d8a1a68a4de45d6c 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java index feb56ab3ad4a9e57f5956209f9e9d8ecc408b4ed..6af0d537cb0460f8b1d0ddc87557ffce7098b184 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardShiftState.java b/java/src/com/android/inputmethod/keyboard/KeyboardShiftState.java index d5412791d155344bf612129dfa4520d88deb6036..e015b515884a794acce08cca4cd7e895c09532a5 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardShiftState.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardShiftState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 61af15b1d91aad9df1a996d346598f693ecca2be..e33e76251e61209284517f90c2165861e453b355 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -37,7 +37,6 @@ import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Message; import android.os.SystemClock; -import android.provider.Settings; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; @@ -1108,7 +1107,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { miniKeyboardView.mGestureDetector = null; final Keyboard keyboard = new MiniKeyboardBuilder(this, mKeyboard.getPopupKeyboardResId(), - popupKey).build(); + popupKey, mKeyboard).build(); miniKeyboardView.setKeyboard(keyboard); miniKeyboardView.mMiniKeyboardParent = this; diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java index 3b1408ccf16e2ebfc3572514aab80c54e252794b..a45aaa4c62109faae8a52e73c894a3581e72208d 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. + * Copyright (C) 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 diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboardBuilder.java index 53dab944081181702064d0e8a213af9619675572..765750fbe5d374e69bed7280c9f26f1d7f330052 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboardBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 @@ -34,7 +34,7 @@ public class MiniKeyboardBuilder { /* package */ static class MiniKeyboardLayoutParams { public final int mKeyWidth; public final int mRowHeight; - /* package */ final boolean mTopRowNeedsCentering; + /* package */ final int mTopRowAdjustment; public final int mNumRows; public final int mNumColumns; public final int mLeftKeys; @@ -55,29 +55,52 @@ public class MiniKeyboardBuilder { if (parentKeyboardWidth / keyWidth < maxColumns) throw new IllegalArgumentException("Keyboard is too small to hold mini keyboard: " + parentKeyboardWidth + " " + keyWidth + " " + maxColumns); - final int numRows = (numKeys + maxColumns - 1) / maxColumns; mKeyWidth = keyWidth; mRowHeight = rowHeight; - mNumRows = numRows; - final int numColumns = Math.min(numKeys, maxColumns); - final int topRowKeys = numKeys % numColumns; + final int numRows = (numKeys + maxColumns - 1) / maxColumns; + mNumRows = numRows; + final int numColumns = getOptimizedColumns(numKeys, maxColumns); mNumColumns = numColumns; - mTopRowNeedsCentering = topRowKeys != 0 && (numColumns - topRowKeys) % 2 != 0; final int numLeftKeys = (numColumns - 1) / 2; final int numRightKeys = numColumns - numLeftKeys; // including default key. final int maxLeftKeys = coordXInParent / keyWidth; final int maxRightKeys = Math.max(1, (parentKeyboardWidth - coordXInParent) / keyWidth); + int leftKeys, rightKeys; if (numLeftKeys > maxLeftKeys) { - mLeftKeys = maxLeftKeys; - mRightKeys = numColumns - maxLeftKeys; + leftKeys = maxLeftKeys; + rightKeys = numColumns - maxLeftKeys; } else if (numRightKeys > maxRightKeys) { - mLeftKeys = numColumns - maxRightKeys; - mRightKeys = maxRightKeys; + leftKeys = numColumns - maxRightKeys; + rightKeys = maxRightKeys; } else { - mLeftKeys = numLeftKeys; - mRightKeys = numRightKeys; + leftKeys = numLeftKeys; + rightKeys = numRightKeys; + } + // Shift right if the left edge of mini keyboard is on the edge of parent keyboard + // unless the parent key is on the left edge. + if (leftKeys * keyWidth >= coordXInParent && leftKeys > 0) { + leftKeys--; + rightKeys++; + } + // Shift left if the right edge of mini keyboard is on the edge of parent keyboard + // unless the parent key is on the right edge. + if (rightKeys * keyWidth + coordXInParent >= parentKeyboardWidth && rightKeys > 1) { + leftKeys++; + rightKeys--; + } + mLeftKeys = leftKeys; + mRightKeys = rightKeys; + + // Centering of the top row. + final boolean onEdge = (leftKeys == 0 || rightKeys == 1); + if (numRows < 2 || onEdge || getTopRowEmptySlots(numKeys, numColumns) % 2 == 0) { + mTopRowAdjustment = 0; + } else if (mLeftKeys < mRightKeys - 1) { + mTopRowAdjustment = 1; + } else { + mTopRowAdjustment = -1; } } @@ -113,14 +136,32 @@ public class MiniKeyboardBuilder { return pos; } + private static int getTopRowEmptySlots(int numKeys, int numColumns) { + final int remainingKeys = numKeys % numColumns; + if (remainingKeys == 0) { + return 0; + } else { + return numColumns - remainingKeys; + } + } + + private int getOptimizedColumns(int numKeys, int maxColumns) { + int numColumns = Math.min(numKeys, maxColumns); + while (getTopRowEmptySlots(numKeys, numColumns) >= mNumRows) { + numColumns--; + } + return numColumns; + } + public int getDefaultKeyCoordX() { return mLeftKeys * mKeyWidth; } public int getX(int n, int row) { final int x = getColumnPos(n) * mKeyWidth + getDefaultKeyCoordX(); - if (isLastRow(row) && mTopRowNeedsCentering) - return x - mKeyWidth / 2; + if (isTopRow(row)) { + return x + mTopRowAdjustment * (mKeyWidth / 2); + } return x; } @@ -131,31 +172,33 @@ public class MiniKeyboardBuilder { public int getRowFlags(int row) { int rowFlags = 0; if (row == 0) rowFlags |= Keyboard.EDGE_TOP; - if (isLastRow(row)) rowFlags |= Keyboard.EDGE_BOTTOM; + if (isTopRow(row)) rowFlags |= Keyboard.EDGE_BOTTOM; return rowFlags; } - private boolean isLastRow(int rowCount) { + private boolean isTopRow(int rowCount) { return rowCount == mNumRows - 1; } } - public MiniKeyboardBuilder(KeyboardView view, int layoutTemplateResId, Key popupKey) { + public MiniKeyboardBuilder(KeyboardView view, int layoutTemplateResId, Key parentKey, + Keyboard parentKeyboard) { final Context context = view.getContext(); mRes = context.getResources(); final MiniKeyboard keyboard = new MiniKeyboard(context, layoutTemplateResId, null); mKeyboard = keyboard; - mPopupCharacters = popupKey.mPopupCharacters; + mPopupCharacters = parentKey.mPopupCharacters; final int keyWidth = getMaxKeyWidth(view, mPopupCharacters, keyboard.getKeyWidth()); final MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - mPopupCharacters.length, popupKey.mMaxPopupColumn, - keyWidth, keyboard.getRowHeight(), - popupKey.mX + (popupKey.mWidth + popupKey.mGap) / 2 - keyWidth / 2, + mPopupCharacters.length, parentKey.mMaxPopupColumn, + keyWidth, parentKeyboard.getRowHeight(), + parentKey.mX + (parentKey.mWidth + parentKey.mGap) / 2 - keyWidth / 2, view.getMeasuredWidth()); mParams = params; - keyboard.setHeight(params.mNumRows * params.mRowHeight - keyboard.getVerticalGap()); + keyboard.setRowHeight(params.mRowHeight); + keyboard.setHeight(params.mNumRows * params.mRowHeight); keyboard.setMinWidth(params.mNumColumns * params.mKeyWidth); keyboard.setDefaultCoordX(params.getDefaultKeyCoordX() + params.mKeyWidth / 2); } @@ -194,7 +237,7 @@ public class MiniKeyboardBuilder { final CharSequence label = mPopupCharacters[n]; final int row = n / params.mNumColumns; final Key key = new Key(mRes, keyboard, label, params.getX(n, row), params.getY(row), - params.mKeyWidth, params.getRowFlags(row)); + params.mKeyWidth, params.mRowHeight, params.getRowFlags(row)); keys.add(key); } return keyboard; diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java index a8750d3786e6aa3f79244c0f722e18e703f869d4..1243f6f37f545827bccd0094e9b78144d898c2d9 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/ModifierKeyState.java b/java/src/com/android/inputmethod/keyboard/ModifierKeyState.java index f215db87654230bf030baa9909a69320b14cb123..ebbc79a9e745e34bd9f589419a875af6fcbaa2a7 100644 --- a/java/src/com/android/inputmethod/keyboard/ModifierKeyState.java +++ b/java/src/com/android/inputmethod/keyboard/ModifierKeyState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index 7468578199cc040135dd918a22da284e6cd5738e..4b3fe8b8b5e1c987b09f87069754c1a0e0ce7481 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/PointerTrackerKeyState.java b/java/src/com/android/inputmethod/keyboard/PointerTrackerKeyState.java index a62ed96a3554f1c1996b9a4f35bb7f82dcc01c9f..64ba80a042315ad61cf5b75d884b838fd59fb478 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTrackerKeyState.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTrackerKeyState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/PointerTrackerQueue.java b/java/src/com/android/inputmethod/keyboard/PointerTrackerQueue.java index 928f3cdc147f5070d35507981dbcbffdcd8a7fa9..01d9b5d2c091db9debe41a4def54821372bc5f9f 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTrackerQueue.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTrackerQueue.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java b/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java index 32c25801d3d00927a7c7ff04b599de83da9df937..ff78ee5c91ad3b5f7a7c9f3995318fc7a59c6085 100644 --- a/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java +++ b/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java index 80d6de952da01df864285e37b4a0c18d02348615..33acc69075891830634bd502ad4baea7f1a461f4 100644 --- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java +++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. + * Copyright (C) 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 diff --git a/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java b/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java index 87f3e149760a9675d93021df810098989a217b1a..e2ff8c48e3cd75477093f87e2c0783e37ae9a583 100644 --- a/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java +++ b/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/Row.java b/java/src/com/android/inputmethod/keyboard/Row.java index 3618c04486c60acd0808f1d4e74ce2d6b11b0a24..40d7e14722b6986652d63e3ccaca3676439e9028 100644 --- a/java/src/com/android/inputmethod/keyboard/Row.java +++ b/java/src/com/android/inputmethod/keyboard/Row.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/ShiftKeyState.java b/java/src/com/android/inputmethod/keyboard/ShiftKeyState.java index 9229208a950f43c8b32d7cb4eb331d348dfcf7de..ba15624f06d7c12958bcf2ea8a64cb410e41a71b 100644 --- a/java/src/com/android/inputmethod/keyboard/ShiftKeyState.java +++ b/java/src/com/android/inputmethod/keyboard/ShiftKeyState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java b/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java index 41f8c2a7cdb7d417d69bdf49736d12c76c5ba97d..ad8b0d62376facb61c4be055f865326ba90a3dfb 100644 --- a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java +++ b/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/keyboard/SwipeTracker.java b/java/src/com/android/inputmethod/keyboard/SwipeTracker.java index 730cdc3902e1ff2beef39028cdda3dde7e55881d..975b13b508cd0175635d593815e1f1a882b1e1f8 100644 --- a/java/src/com/android/inputmethod/keyboard/SwipeTracker.java +++ b/java/src/com/android/inputmethod/keyboard/SwipeTracker.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/latin/AutoDictionary.java b/java/src/com/android/inputmethod/latin/AutoDictionary.java index a00b0915cfdc50375c73a1333abbdf47d5ea7d22..54c6f309c9a3e35453f8c3a6b1571b24c9369a73 100644 --- a/java/src/com/android/inputmethod/latin/AutoDictionary.java +++ b/java/src/com/android/inputmethod/latin/AutoDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/latin/EditingUtils.java b/java/src/com/android/inputmethod/latin/EditingUtils.java index 0ca06ddfc58ef231bf15e2bc65577c4e0852ea9b..90c250dcb5ac8f2c757c5c19a5fce42f086686ba 100644 --- a/java/src/com/android/inputmethod/latin/EditingUtils.java +++ b/java/src/com/android/inputmethod/latin/EditingUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 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 diff --git a/java/src/com/android/inputmethod/latin/InputLanguageSelection.java b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java index 5587c685fa61847f660fe0dabd2ec40905a0de36..b58a57e428b88bf4dc4ca1723497fdf18f90b080 100644 --- a/java/src/com/android/inputmethod/latin/InputLanguageSelection.java +++ b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008-2009 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 diff --git a/java/src/com/android/inputmethod/latin/LanguageSwitcher.java b/java/src/com/android/inputmethod/latin/LanguageSwitcher.java index 6faf7f95e32e62428a52fd12c4a3fe9bd007f2b4..2dd3038f9392a841d3eef76c841171fa49ed5181 100644 --- a/java/src/com/android/inputmethod/latin/LanguageSwitcher.java +++ b/java/src/com/android/inputmethod/latin/LanguageSwitcher.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/latin/UserBigramDictionary.java b/java/src/com/android/inputmethod/latin/UserBigramDictionary.java index 4750fb991034abfeabc265918430b2ac66f71f1a..656e6f8e09e13cbdc9a5960b0996349b709837e1 100644 --- a/java/src/com/android/inputmethod/latin/UserBigramDictionary.java +++ b/java/src/com/android/inputmethod/latin/UserBigramDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/voice/FieldContext.java b/java/src/com/android/inputmethod/voice/FieldContext.java index dfdfbaa9f7896ec8e2853b7fcd379085b24f229c..95c7f5be08f30669dba2fc9fe26b2189f99b1da5 100644 --- a/java/src/com/android/inputmethod/voice/FieldContext.java +++ b/java/src/com/android/inputmethod/voice/FieldContext.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 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 diff --git a/java/src/com/android/inputmethod/voice/Hints.java b/java/src/com/android/inputmethod/voice/Hints.java index d11d3b04268d1e8bb4a78789853a96d92ea979b4..f5689092fc934d2762f98397d155048eaf9c65cb 100644 --- a/java/src/com/android/inputmethod/voice/Hints.java +++ b/java/src/com/android/inputmethod/voice/Hints.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 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 diff --git a/java/src/com/android/inputmethod/voice/RecognitionView.java b/java/src/com/android/inputmethod/voice/RecognitionView.java index 95a79f463970de549ce262934667e5036ae65cc4..d26a877d5e8b0883f2e292fcbcdbb62d6dbd9c39 100644 --- a/java/src/com/android/inputmethod/voice/RecognitionView.java +++ b/java/src/com/android/inputmethod/voice/RecognitionView.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 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 diff --git a/java/src/com/android/inputmethod/voice/SettingsUtil.java b/java/src/com/android/inputmethod/voice/SettingsUtil.java index 4d746e120e551e225a23595f94e028a58cb15b13..372e8d6da2b18a55fee03fc464e9fcca9ccb5da8 100644 --- a/java/src/com/android/inputmethod/voice/SettingsUtil.java +++ b/java/src/com/android/inputmethod/voice/SettingsUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 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 diff --git a/java/src/com/android/inputmethod/voice/SoundIndicator.java b/java/src/com/android/inputmethod/voice/SoundIndicator.java index 543290b327c79c59e2453c068ed04bed8342f2f0..40b68996a12706c41294e466bb18742211afc3d8 100644 --- a/java/src/com/android/inputmethod/voice/SoundIndicator.java +++ b/java/src/com/android/inputmethod/voice/SoundIndicator.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. + * Copyright (C) 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 diff --git a/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java b/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java index 105656fe02a3be401935100399c23883778295de..a244c9e41fb79a157a0afbc7922f4c38c3740583 100644 --- a/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java +++ b/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 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 diff --git a/java/src/com/android/inputmethod/voice/VoiceInput.java b/java/src/com/android/inputmethod/voice/VoiceInput.java index 2df9e85883da9ef3f67db2767128f7dd5bdc6533..392eea364924da37170e128209dd06bb295689dd 100644 --- a/java/src/com/android/inputmethod/voice/VoiceInput.java +++ b/java/src/com/android/inputmethod/voice/VoiceInput.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 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 diff --git a/java/src/com/android/inputmethod/voice/VoiceInputLogger.java b/java/src/com/android/inputmethod/voice/VoiceInputLogger.java index 3e65434a23c82aaf4016ed51b317c85314635995..07f2bd1c54a87dca85e6acd48feb8e251d8bd315 100644 --- a/java/src/com/android/inputmethod/voice/VoiceInputLogger.java +++ b/java/src/com/android/inputmethod/voice/VoiceInputLogger.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 Google Inc. + * Copyright (C) 2008 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 diff --git a/java/src/com/android/inputmethod/voice/WaveformImage.java b/java/src/com/android/inputmethod/voice/WaveformImage.java index 8bac669fcd19492981ee95e877aa8410ee8691d1..b0ea99b795030434b819ea92b996ae33963a76da 100644 --- a/java/src/com/android/inputmethod/voice/WaveformImage.java +++ b/java/src/com/android/inputmethod/voice/WaveformImage.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008-2009 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 diff --git a/java/src/com/android/inputmethod/voice/Whitelist.java b/java/src/com/android/inputmethod/voice/Whitelist.java index f4c24de0c2f90747d6929ac18db0b9b46e9e989d..adbd59135c91d8c2316987b21b560931ec3cf586 100644 --- a/java/src/com/android/inputmethod/voice/Whitelist.java +++ b/java/src/com/android/inputmethod/voice/Whitelist.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 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 diff --git a/tests/src/com/android/inputmethod/keyboard/MiniKeyboardBuilderTests.java b/tests/src/com/android/inputmethod/keyboard/MiniKeyboardBuilderTests.java index 7e3106d7f20fe59559a919c1dc05b782a4618310..600342a7c2e695c75e0840394ddd2baa71f95ad8 100644 --- a/tests/src/com/android/inputmethod/keyboard/MiniKeyboardBuilderTests.java +++ b/tests/src/com/android/inputmethod/keyboard/MiniKeyboardBuilderTests.java @@ -25,6 +25,16 @@ public class MiniKeyboardBuilderTests extends AndroidTestCase { private static final int WIDTH = 10; private static final int HEIGHT = 10; + private static final int KEYBOARD_WIDTH = WIDTH * 10; + private static final int XPOS_L0 = WIDTH * 0; + private static final int XPOS_L1 = WIDTH * 1; + private static final int XPOS_L2 = WIDTH * 2; + private static final int XPOS_M0 = WIDTH * 5; + private static final int XPOS_R3 = WIDTH * 6; + private static final int XPOS_R2 = WIDTH * 7; + private static final int XPOS_R1 = WIDTH * 8; + private static final int XPOS_R0 = WIDTH * 9; + @Override protected void setUp() throws Exception { super.setUp(); @@ -33,9 +43,8 @@ public class MiniKeyboardBuilderTests extends AndroidTestCase { public void testLayoutError() { MiniKeyboardLayoutParams params = null; try { - params = new MiniKeyboardLayoutParams( - 10, MAX_COLUMNS + 1, WIDTH, HEIGHT, - WIDTH * 2, WIDTH * MAX_COLUMNS); + params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS + 1, WIDTH, HEIGHT, WIDTH * 2, + WIDTH * MAX_COLUMNS); fail("Should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Too small keyboard to hold mini keyboard. @@ -48,39 +57,198 @@ public class MiniKeyboardBuilderTests extends AndroidTestCase { // "[1]" is the default key. // [1] - public void testLayout1Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 1, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); - assertEquals("1 key columns", 1, params.mNumColumns); - assertEquals("1 key rows", 1, params.mNumRows); - assertEquals("1 key left", 0, params.mLeftKeys); - assertEquals("1 key right", 1, params.mRightKeys); - assertEquals("1 key [1]", 0, params.getColumnPos(0)); - assertEquals("1 key centering", false, params.mTopRowNeedsCentering); - assertEquals("1 key default", 0, params.getDefaultKeyCoordX()); + public void testLayout1KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(1, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("1 key M0 columns", 1, params.mNumColumns); + assertEquals("1 key M0 rows", 1, params.mNumRows); + assertEquals("1 key M0 left", 0, params.mLeftKeys); + assertEquals("1 key M0 right", 1, params.mRightKeys); + assertEquals("1 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("1 key M0 adjust", 0, params.mTopRowAdjustment); + assertEquals("1 key M0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |[1] + public void testLayout1KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(1, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("1 key L0 columns", 1, params.mNumColumns); + assertEquals("1 key L0 rows", 1, params.mNumRows); + assertEquals("1 key L0 left", 0, params.mLeftKeys); + assertEquals("1 key L0 right", 1, params.mRightKeys); + assertEquals("1 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("1 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("1 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [1] + public void testLayout1KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(1, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("1 key L1 columns", 1, params.mNumColumns); + assertEquals("1 key L1 rows", 1, params.mNumRows); + assertEquals("1 key L1 left", 0, params.mLeftKeys); + assertEquals("1 key L1 right", 1, params.mRightKeys); + assertEquals("1 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("1 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("1 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [1] + public void testLayout1KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(1, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("1 key L2 columns", 1, params.mNumColumns); + assertEquals("1 key L2 rows", 1, params.mNumRows); + assertEquals("1 key L2 left", 0, params.mLeftKeys); + assertEquals("1 key L2 right", 1, params.mRightKeys); + assertEquals("1 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("1 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("1 key L2 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // [1]| + public void testLayout1KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(1, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("1 key R0 columns", 1, params.mNumColumns); + assertEquals("1 key R0 rows", 1, params.mNumRows); + assertEquals("1 key R0 left", 0, params.mLeftKeys); + assertEquals("1 key R0 right", 1, params.mRightKeys); + assertEquals("1 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("1 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("1 key R0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // [1] ___| + public void testLayout1KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(1, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("1 key R1 columns", 1, params.mNumColumns); + assertEquals("1 key R1 rows", 1, params.mNumRows); + assertEquals("1 key R1 left", 0, params.mLeftKeys); + assertEquals("1 key R1 right", 1, params.mRightKeys); + assertEquals("1 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("1 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("1 key R1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // [1] ___ ___| + public void testLayout1KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(1, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("1 key R2 columns", 1, params.mNumColumns); + assertEquals("1 key R2 rows", 1, params.mNumRows); + assertEquals("1 key R2 left", 0, params.mLeftKeys); + assertEquals("1 key R2 right", 1, params.mRightKeys); + assertEquals("1 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("1 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("1 key R2 default", WIDTH * 0, params.getDefaultKeyCoordX()); } // [1] [2] - public void testLayout2Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 2, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); - assertEquals("2 key columns", 2, params.mNumColumns); - assertEquals("2 key rows", 1, params.mNumRows); - assertEquals("2 key left", 0, params.mLeftKeys); - assertEquals("2 key right", 2, params.mRightKeys); - assertEquals("2 key [1]", 0, params.getColumnPos(0)); - assertEquals("2 key [2]", 1, params.getColumnPos(1)); - assertEquals("2 key centering", false, params.mTopRowNeedsCentering); - assertEquals("2 key default", 0, params.getDefaultKeyCoordX()); + public void testLayout2KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(2, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("2 key M0 columns", 2, params.mNumColumns); + assertEquals("2 key M0 rows", 1, params.mNumRows); + assertEquals("2 key M0 left", 0, params.mLeftKeys); + assertEquals("2 key M0 right", 2, params.mRightKeys); + assertEquals("2 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("2 key M0 [2]", 1, params.getColumnPos(1)); + assertEquals("2 key M0 adjust", 0, params.mTopRowAdjustment); + assertEquals("2 key M0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |[1] [2] + public void testLayout2KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(2, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("2 key L0 columns", 2, params.mNumColumns); + assertEquals("2 key L0 rows", 1, params.mNumRows); + assertEquals("2 key L0 left", 0, params.mLeftKeys); + assertEquals("2 key L0 right", 2, params.mRightKeys); + assertEquals("2 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("2 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("2 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("2 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [1] [2] + public void testLayout2KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(2, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("2 key L1 columns", 2, params.mNumColumns); + assertEquals("2 key L1 rows", 1, params.mNumRows); + assertEquals("2 key L1 left", 0, params.mLeftKeys); + assertEquals("2 key L1 right", 2, params.mRightKeys); + assertEquals("2 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("2 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("2 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("2 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [1] [2] + public void testLayout2KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(2, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("2 key L2 columns", 2, params.mNumColumns); + assertEquals("2 key L2 rows", 1, params.mNumRows); + assertEquals("2 key L2 left", 0, params.mLeftKeys); + assertEquals("2 key L2 right", 2, params.mRightKeys); + assertEquals("2 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("2 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("2 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("2 key L2 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // [2] [1]| + public void testLayout2KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(2, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("2 key R0 columns", 2, params.mNumColumns); + assertEquals("2 key R0 rows", 1, params.mNumRows); + assertEquals("2 key R0 left", 1, params.mLeftKeys); + assertEquals("2 key R0 right", 1, params.mRightKeys); + assertEquals("2 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("2 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("2 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("2 key R0 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [2] [1] ___| + public void testLayout2KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(2, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("2 key R1 columns", 2, params.mNumColumns); + assertEquals("2 key R1 rows", 1, params.mNumRows); + assertEquals("2 key R1 left", 1, params.mLeftKeys); + assertEquals("2 key R1 right", 1, params.mRightKeys); + assertEquals("2 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("2 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("2 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("2 key R1 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [1] [2] ___ ___| + public void testLayout2KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(2, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("2 key R2 columns", 2, params.mNumColumns); + assertEquals("2 key R2 rows", 1, params.mNumRows); + assertEquals("2 key R2 left", 0, params.mLeftKeys); + assertEquals("2 key R2 right", 2, params.mRightKeys); + assertEquals("2 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("2 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("2 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("2 key R2 default", WIDTH * 0, params.getDefaultKeyCoordX()); } // [3] [1] [2] - public void testLayout3Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 3, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); + public void testLayout3KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(3, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); assertEquals("3 key columns", 3, params.mNumColumns); assertEquals("3 key rows", 1, params.mNumRows); assertEquals("3 key left", 1, params.mLeftKeys); @@ -88,15 +256,104 @@ public class MiniKeyboardBuilderTests extends AndroidTestCase { assertEquals("3 key [1]", 0, params.getColumnPos(0)); assertEquals("3 key [2]", 1, params.getColumnPos(1)); assertEquals("3 key [3]", -1, params.getColumnPos(2)); - assertEquals("3 key centering", false, params.mTopRowNeedsCentering); - assertEquals("3 key default", WIDTH, params.getDefaultKeyCoordX()); + assertEquals("3 key adjust", 0, params.mTopRowAdjustment); + assertEquals("3 key default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // |[1] [2] [3] + public void testLayout3KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(3, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("3 key L0 columns", 3, params.mNumColumns); + assertEquals("3 key L0 rows", 1, params.mNumRows); + assertEquals("3 key L0 left", 0, params.mLeftKeys); + assertEquals("3 key L0 right", 3, params.mRightKeys); + assertEquals("3 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("3 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("3 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("3 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("3 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [1] [2] [3] + public void testLayout3KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(3, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("3 key L1 columns", 3, params.mNumColumns); + assertEquals("3 key L1 rows", 1, params.mNumRows); + assertEquals("3 key L1 left", 0, params.mLeftKeys); + assertEquals("3 key L1 right", 3, params.mRightKeys); + assertEquals("3 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("3 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("3 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("3 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("3 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [3] [1] [2] + public void testLayout3KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(3, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("3 key L2 columns", 3, params.mNumColumns); + assertEquals("3 key L2 rows", 1, params.mNumRows); + assertEquals("3 key L2 left", 1, params.mLeftKeys); + assertEquals("3 key L2 right", 2, params.mRightKeys); + assertEquals("3 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("3 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("3 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("3 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("3 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [3] [2] [1]| + public void testLayout3KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(3, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("3 key R0 columns", 3, params.mNumColumns); + assertEquals("3 key R0 rows", 1, params.mNumRows); + assertEquals("3 key R0 left", 2, params.mLeftKeys); + assertEquals("3 key R0 right", 1, params.mRightKeys); + assertEquals("3 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("3 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("3 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("3 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("3 key R0 default", WIDTH * 2, params.getDefaultKeyCoordX()); + } + + // [3] [2] [1] ___| + public void testLayout3KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(3, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("3 key R1 columns", 3, params.mNumColumns); + assertEquals("3 key R1 rows", 1, params.mNumRows); + assertEquals("3 key R1 left", 2, params.mLeftKeys); + assertEquals("3 key R1 right", 1, params.mRightKeys); + assertEquals("3 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("3 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("3 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("3 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("3 key R1 default", WIDTH * 2, params.getDefaultKeyCoordX()); + } + + // [3] [1] [2] ___ ___| + public void testLayout3KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(3, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("3 key R2 columns", 3, params.mNumColumns); + assertEquals("3 key R2 rows", 1, params.mNumRows); + assertEquals("3 key R2 left", 1, params.mLeftKeys); + assertEquals("3 key R2 right", 2, params.mRightKeys); + assertEquals("3 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("3 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("3 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("3 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("3 key R2 default", WIDTH * 1, params.getDefaultKeyCoordX()); } // [3] [1] [2] [4] - public void testLayout4Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 4, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); + public void testLayout4KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(4, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); assertEquals("4 key columns", 4, params.mNumColumns); assertEquals("4 key rows", 1, params.mNumRows); assertEquals("4 key left", 1, params.mLeftKeys); @@ -105,15 +362,110 @@ public class MiniKeyboardBuilderTests extends AndroidTestCase { assertEquals("4 key [2]", 1, params.getColumnPos(1)); assertEquals("4 key [3]", -1, params.getColumnPos(2)); assertEquals("4 key [4]", 2, params.getColumnPos(3)); - assertEquals("4 key centering", false, params.mTopRowNeedsCentering); - assertEquals("4 key default", WIDTH, params.getDefaultKeyCoordX()); + assertEquals("4 key adjust", 0, params.mTopRowAdjustment); + assertEquals("4 key default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // |[1] [2] [3] [4] + public void testLayout4KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(4, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("4 key L0 columns", 4, params.mNumColumns); + assertEquals("4 key L0 rows", 1, params.mNumRows); + assertEquals("4 key L0 left", 0, params.mLeftKeys); + assertEquals("4 key L0 right", 4, params.mRightKeys); + assertEquals("4 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("4 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("4 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("4 key L0 [4]", 3, params.getColumnPos(3)); + assertEquals("4 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("4 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [1] [2] [3] [4] + public void testLayout4KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(4, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("4 key L1 columns", 4, params.mNumColumns); + assertEquals("4 key L1 rows", 1, params.mNumRows); + assertEquals("4 key L1 left", 0, params.mLeftKeys); + assertEquals("4 key L1 right", 4, params.mRightKeys); + assertEquals("4 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("4 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("4 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("4 key L1 [4]", 3, params.getColumnPos(3)); + assertEquals("4 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("4 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [3] [1] [2] [4] + public void testLayout4KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(4, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("4 key L2 columns", 4, params.mNumColumns); + assertEquals("4 key L2 rows", 1, params.mNumRows); + assertEquals("4 key L2 left", 1, params.mLeftKeys); + assertEquals("4 key L2 right", 3, params.mRightKeys); + assertEquals("4 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("4 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("4 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("4 key L2 [4]", 2, params.getColumnPos(3)); + assertEquals("4 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("4 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [4] [3] [2] [1]| + public void testLayout4KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(4, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("4 key R0 columns", 4, params.mNumColumns); + assertEquals("4 key R0 rows", 1, params.mNumRows); + assertEquals("4 key R0 left", 3, params.mLeftKeys); + assertEquals("4 key R0 right", 1, params.mRightKeys); + assertEquals("4 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("4 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("4 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("4 key R0 [4]", -3, params.getColumnPos(3)); + assertEquals("4 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("4 key R0 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [4] [3] [2] [1] ___| + public void testLayout4KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(4, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("4 key R1 columns", 4, params.mNumColumns); + assertEquals("4 key R1 rows", 1, params.mNumRows); + assertEquals("4 key R1 left", 3, params.mLeftKeys); + assertEquals("4 key R1 right", 1, params.mRightKeys); + assertEquals("4 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("4 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("4 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("4 key R1 [4]", -3, params.getColumnPos(3)); + assertEquals("4 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("4 key R1 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [4] [3] [1] [2] ___ ___| + public void testLayout4KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(4, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("4 key R2 columns", 4, params.mNumColumns); + assertEquals("4 key R2 rows", 1, params.mNumRows); + assertEquals("4 key R2 left", 2, params.mLeftKeys); + assertEquals("4 key R2 right", 2, params.mRightKeys); + assertEquals("4 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("4 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("4 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("4 key R2 [4]", -2, params.getColumnPos(3)); + assertEquals("4 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("4 key R2 default", WIDTH * 2, params.getDefaultKeyCoordX()); } // [5] [3] [1] [2] [4] - public void testLayout5Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 5, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); + public void testLayout5KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(5, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); assertEquals("5 key columns", 5, params.mNumColumns); assertEquals("5 key rows", 1, params.mNumRows); assertEquals("5 key left", 2, params.mLeftKeys); @@ -123,190 +475,942 @@ public class MiniKeyboardBuilderTests extends AndroidTestCase { assertEquals("5 key [3]", -1, params.getColumnPos(2)); assertEquals("5 key [4]", 2, params.getColumnPos(3)); assertEquals("5 key [5]", -2, params.getColumnPos(4)); - assertEquals("5 key centering", false, params.mTopRowNeedsCentering); + assertEquals("5 key adjust", 0, params.mTopRowAdjustment); assertEquals("5 key default", WIDTH * 2, params.getDefaultKeyCoordX()); } - // [6] - // [5] [3] [1] [2] [4] - public void testLayout6Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 6, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); - assertEquals("6 key columns", 5, params.mNumColumns); + // |[1] [2] [3] [4] [5] + public void testLayout5KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(5, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("5 key L0 columns", 5, params.mNumColumns); + assertEquals("5 key L0 rows", 1, params.mNumRows); + assertEquals("5 key L0 left", 0, params.mLeftKeys); + assertEquals("5 key L0 right", 5, params.mRightKeys); + assertEquals("5 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("5 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("5 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("5 key L0 [4]", 3, params.getColumnPos(3)); + assertEquals("5 key L0 [5]", 4, params.getColumnPos(4)); + assertEquals("5 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("5 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [1] [2] [3] [4] [5] + public void testLayout5KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(5, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("5 key L1 columns", 5, params.mNumColumns); + assertEquals("5 key L1 rows", 1, params.mNumRows); + assertEquals("5 key L1 left", 0, params.mLeftKeys); + assertEquals("5 key L1 right", 5, params.mRightKeys); + assertEquals("5 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("5 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("5 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("5 key L1 [4]", 3, params.getColumnPos(3)); + assertEquals("5 key L1 [5]", 4, params.getColumnPos(4)); + assertEquals("5 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("5 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [3] [1] [2] [4] [5] + public void testLayout5KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(5, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("5 key L2 columns", 5, params.mNumColumns); + assertEquals("5 key L2 rows", 1, params.mNumRows); + assertEquals("5 key L2 left", 1, params.mLeftKeys); + assertEquals("5 key L2 right", 4, params.mRightKeys); + assertEquals("5 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("5 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("5 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("5 key L2 [4]", 2, params.getColumnPos(3)); + assertEquals("5 key L2 [5]", 3, params.getColumnPos(4)); + assertEquals("5 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("5 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [5] [4] [3] [2] [1]| + public void testLayout5KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(5, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("5 key R0 columns", 5, params.mNumColumns); + assertEquals("5 key R0 rows", 1, params.mNumRows); + assertEquals("5 key R0 left", 4, params.mLeftKeys); + assertEquals("5 key R0 right", 1, params.mRightKeys); + assertEquals("5 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("5 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("5 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("5 key R0 [4]", -3, params.getColumnPos(3)); + assertEquals("5 key R0 [5]", -4, params.getColumnPos(4)); + assertEquals("5 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("5 key R0 default", WIDTH * 4, params.getDefaultKeyCoordX()); + } + + // [5] [4] [3] [2] [1] ___| + public void testLayout5KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(5, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("5 key R1 columns", 5, params.mNumColumns); + assertEquals("5 key R1 rows", 1, params.mNumRows); + assertEquals("5 key R1 left", 4, params.mLeftKeys); + assertEquals("5 key R1 right", 1, params.mRightKeys); + assertEquals("5 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("5 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("5 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("5 key R1 [4]", -3, params.getColumnPos(3)); + assertEquals("5 key R1 [5]", -4, params.getColumnPos(4)); + assertEquals("5 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("5 key R1 default", WIDTH * 4, params.getDefaultKeyCoordX()); + } + + // [5] [4] [3] [1] [2] ___ ___| + public void testLayout5KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(5, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("5 key R2 columns", 5, params.mNumColumns); + assertEquals("5 key R2 rows", 1, params.mNumRows); + assertEquals("5 key R2 left", 3, params.mLeftKeys); + assertEquals("5 key R2 right", 2, params.mRightKeys); + assertEquals("5 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("5 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("5 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("5 key R2 [4]", -2, params.getColumnPos(3)); + assertEquals("5 key R2 [5]", -3, params.getColumnPos(4)); + assertEquals("5 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("5 key R2 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [6] [4] [5] + // [3] [1] [2] + public void testLayout6KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(6, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("6 key columns", 3, params.mNumColumns); assertEquals("6 key rows", 2, params.mNumRows); - assertEquals("6 key left", 2, params.mLeftKeys); - assertEquals("6 key right", 3, params.mRightKeys); + assertEquals("6 key left", 1, params.mLeftKeys); + assertEquals("6 key right", 2, params.mRightKeys); assertEquals("6 key [1]", 0, params.getColumnPos(0)); assertEquals("6 key [2]", 1, params.getColumnPos(1)); assertEquals("6 key [3]", -1, params.getColumnPos(2)); - assertEquals("6 key [4]", 2, params.getColumnPos(3)); - assertEquals("6 key [5]", -2, params.getColumnPos(4)); - assertEquals("6 key [6]", 0, params.getColumnPos(5)); - assertEquals("6 key centering", false, params.mTopRowNeedsCentering); - assertEquals("6 key default", WIDTH * 2, params.getDefaultKeyCoordX()); + assertEquals("6 key [4]", 0, params.getColumnPos(3)); + assertEquals("6 key [5]", 1, params.getColumnPos(4)); + assertEquals("6 key [6]", -1, params.getColumnPos(5)); + assertEquals("6 key adjust", 0, params.mTopRowAdjustment); + assertEquals("6 key default", WIDTH * 1, params.getDefaultKeyCoordX()); } - // [6] [7] - // [5] [3] [1] [2] [4] - public void testLayout7Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 7, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); - assertEquals("7 key columns", 5, params.mNumColumns); + // |[4] [5] [6] + // |[1] [2] [3] + public void testLayout6KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(6, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("6 key L0 columns", 3, params.mNumColumns); + assertEquals("6 key L0 rows", 2, params.mNumRows); + assertEquals("6 key L0 left", 0, params.mLeftKeys); + assertEquals("6 key L0 right", 3, params.mRightKeys); + assertEquals("6 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("6 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("6 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("6 key L0 [4]", 0, params.getColumnPos(3)); + assertEquals("6 key L0 [5]", 1, params.getColumnPos(4)); + assertEquals("6 key L0 [6]", 2, params.getColumnPos(5)); + assertEquals("6 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("6 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [4] [5] [6] + // |___ [1] [2] [3] + public void testLayout6KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(6, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("6 key L1 columns", 3, params.mNumColumns); + assertEquals("6 key L1 rows", 2, params.mNumRows); + assertEquals("6 key L1 left", 0, params.mLeftKeys); + assertEquals("6 key L1 right", 3, params.mRightKeys); + assertEquals("6 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("6 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("6 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("6 key L1 [4]", 0, params.getColumnPos(3)); + assertEquals("6 key L1 [5]", 1, params.getColumnPos(4)); + assertEquals("6 key L1 [6]", 2, params.getColumnPos(5)); + assertEquals("6 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("6 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [6] [4] [5] + // |___ ___ [3] [1] [2] + public void testLayout6KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(6, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("6 key L2 columns", 3, params.mNumColumns); + assertEquals("6 key L2 rows", 2, params.mNumRows); + assertEquals("6 key L2 left", 1, params.mLeftKeys); + assertEquals("6 key L2 right", 2, params.mRightKeys); + assertEquals("6 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("6 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("6 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("6 key L2 [4]", 0, params.getColumnPos(3)); + assertEquals("6 key L2 [5]", 1, params.getColumnPos(4)); + assertEquals("6 key L2 [6]", -1, params.getColumnPos(5)); + assertEquals("6 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("6 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [6] [5] [4]| + // [3] [2] [1]| + public void testLayout6KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(6, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("6 key R0 columns", 3, params.mNumColumns); + assertEquals("6 key R0 rows", 2, params.mNumRows); + assertEquals("6 key R0 left", 2, params.mLeftKeys); + assertEquals("6 key R0 right", 1, params.mRightKeys); + assertEquals("6 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("6 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("6 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("6 key R0 [4]", 0, params.getColumnPos(3)); + assertEquals("6 key R0 [5]", -1, params.getColumnPos(4)); + assertEquals("6 key R0 [6]", -2, params.getColumnPos(5)); + assertEquals("6 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("6 key R0 default", WIDTH * 2, params.getDefaultKeyCoordX()); + } + + // [6] [5] [4] ___| + // [3] [2] [1] ___| + public void testLayout6KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(6, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("6 key R1 columns", 3, params.mNumColumns); + assertEquals("6 key R1 rows", 2, params.mNumRows); + assertEquals("6 key R1 left", 2, params.mLeftKeys); + assertEquals("6 key R1 right", 1, params.mRightKeys); + assertEquals("6 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("6 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("6 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("6 key R1 [4]", 0, params.getColumnPos(3)); + assertEquals("6 key R1 [5]", -1, params.getColumnPos(4)); + assertEquals("6 key R1 [6]", -2, params.getColumnPos(5)); + assertEquals("6 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("6 key R1 default", WIDTH * 2, params.getDefaultKeyCoordX()); + } + + // [6] [4] [5] ___ ___| + // [3] [1] [2] ___ ___| + public void testLayout6KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(6, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("6 key R2 columns", 3, params.mNumColumns); + assertEquals("6 key R2 rows", 2, params.mNumRows); + assertEquals("6 key R2 left", 1, params.mLeftKeys); + assertEquals("6 key R2 right", 2, params.mRightKeys); + assertEquals("6 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("6 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("6 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("6 key R2 [4]", 0, params.getColumnPos(3)); + assertEquals("6 key R2 [5]", 1, params.getColumnPos(4)); + assertEquals("6 key R2 [6]", -1, params.getColumnPos(5)); + assertEquals("6 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("6 key R2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [7] [5] [6] + // [3] [1] [2] [4] + public void testLayout7KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("7 key columns", 4, params.mNumColumns); assertEquals("7 key rows", 2, params.mNumRows); - assertEquals("7 key left", 2, params.mLeftKeys); + assertEquals("7 key left", 1, params.mLeftKeys); assertEquals("7 key right", 3, params.mRightKeys); assertEquals("7 key [1]", 0, params.getColumnPos(0)); assertEquals("7 key [2]", 1, params.getColumnPos(1)); assertEquals("7 key [3]", -1, params.getColumnPos(2)); assertEquals("7 key [4]", 2, params.getColumnPos(3)); - assertEquals("7 key [5]", -2, params.getColumnPos(4)); - assertEquals("7 key [6]", 0, params.getColumnPos(5)); - assertEquals("7 key [7]", 1, params.getColumnPos(6)); - assertEquals("7 key centering", true, params.mTopRowNeedsCentering); - assertEquals("7 key default", WIDTH * 2, params.getDefaultKeyCoordX()); + assertEquals("7 key [5]", 0, params.getColumnPos(4)); + assertEquals("7 key [6]", 1, params.getColumnPos(5)); + assertEquals("7 key [7]", -1, params.getColumnPos(6)); + assertEquals("7 key adjust", 1, params.mTopRowAdjustment); + assertEquals("7 key default", WIDTH * 1, params.getDefaultKeyCoordX()); } - // [8] [6] [7] - // [5] [3] [1] [2] [4] - public void testLayout8Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 8, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); - assertEquals("8 key columns", 5, params.mNumColumns); - assertEquals("8 key rows", 2, params.mNumRows); - assertEquals("8 key left", 2, params.mLeftKeys); - assertEquals("8 key right", 3, params.mRightKeys); - assertEquals("8 key [1]", 0, params.getColumnPos(0)); - assertEquals("8 key [2]", 1, params.getColumnPos(1)); - assertEquals("8 key [3]", -1, params.getColumnPos(2)); - assertEquals("8 key [4]", 2, params.getColumnPos(3)); - assertEquals("8 key [5]", -2, params.getColumnPos(4)); - assertEquals("8 key [6]", 0, params.getColumnPos(5)); - assertEquals("8 key [7]", 1, params.getColumnPos(6)); - assertEquals("8 key [8]", -1, params.getColumnPos(7)); - assertEquals("8 key centering", false, params.mTopRowNeedsCentering); - assertEquals("8 key default", WIDTH * 2, params.getDefaultKeyCoordX()); + // |[5] [6] [7] + // |[1] [2] [3] [4] + public void testLayout7KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("7 key L0 columns", 4, params.mNumColumns); + assertEquals("7 key L0 rows", 2, params.mNumRows); + assertEquals("7 key L0 left", 0, params.mLeftKeys); + assertEquals("7 key L0 right", 4, params.mRightKeys); + assertEquals("7 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("7 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("7 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("7 key L0 [4]", 3, params.getColumnPos(3)); + assertEquals("7 key L0 [5]", 0, params.getColumnPos(4)); + assertEquals("7 key L0 [6]", 1, params.getColumnPos(5)); + assertEquals("7 key L0 [7]", 2, params.getColumnPos(6)); + assertEquals("7 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("7 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [5] [6] [7] + // |___ [1] [2] [3] [4] + public void testLayout7KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("7 key L1 columns", 4, params.mNumColumns); + assertEquals("7 key L1 rows", 2, params.mNumRows); + assertEquals("7 key L1 left", 0, params.mLeftKeys); + assertEquals("7 key L1 right", 4, params.mRightKeys); + assertEquals("7 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("7 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("7 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("7 key L1 [4]", 3, params.getColumnPos(3)); + assertEquals("7 key L1 [5]", 0, params.getColumnPos(4)); + assertEquals("7 key L1 [6]", 1, params.getColumnPos(5)); + assertEquals("7 key L1 [7]", 2, params.getColumnPos(6)); + assertEquals("7 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("7 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [7] [5] [6] + // |___ ___ [3] [1] [2] [4] + public void testLayout7KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("7 key L2 columns", 4, params.mNumColumns); + assertEquals("7 key L2 rows", 2, params.mNumRows); + assertEquals("7 key L2 left", 1, params.mLeftKeys); + assertEquals("7 key L2 right", 3, params.mRightKeys); + assertEquals("7 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("7 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("7 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("7 key L2 [4]", 2, params.getColumnPos(3)); + assertEquals("7 key L2 [5]", 0, params.getColumnPos(4)); + assertEquals("7 key L2 [6]", 1, params.getColumnPos(5)); + assertEquals("7 key L2 [7]", -1, params.getColumnPos(6)); + assertEquals("7 key L2 adjust", 1, params.mTopRowAdjustment); + assertEquals("7 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [7] [6] [5]| + // [4] [3] [2] [1]| + public void testLayout7KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("7 key R0 columns", 4, params.mNumColumns); + assertEquals("7 key R0 rows", 2, params.mNumRows); + assertEquals("7 key R0 left", 3, params.mLeftKeys); + assertEquals("7 key R0 right", 1, params.mRightKeys); + assertEquals("7 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("7 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("7 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("7 key R0 [4]", -3, params.getColumnPos(3)); + assertEquals("7 key R0 [5]", 0, params.getColumnPos(4)); + assertEquals("7 key R0 [6]", -1, params.getColumnPos(5)); + assertEquals("7 key R0 [7]", -2, params.getColumnPos(6)); + assertEquals("7 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("7 key R0 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [7] [6] [5] ___| + // [4] [3] [2] [1] ___| + public void testLayout7KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("7 key R1 columns", 4, params.mNumColumns); + assertEquals("7 key R1 rows", 2, params.mNumRows); + assertEquals("7 key R1 left", 3, params.mLeftKeys); + assertEquals("7 key R1 right", 1, params.mRightKeys); + assertEquals("7 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("7 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("7 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("7 key R1 [4]", -3, params.getColumnPos(3)); + assertEquals("7 key R1 [5]", 0, params.getColumnPos(4)); + assertEquals("7 key R1 [6]", -1, params.getColumnPos(5)); + assertEquals("7 key R1 [7]", -2, params.getColumnPos(6)); + assertEquals("7 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("7 key R1 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [7] [5] [6] ___ ___| + // [4] [3] [1] [2] ___ ___| + public void testLayout7KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("7 key R2 columns", 4, params.mNumColumns); + assertEquals("7 key R2 rows", 2, params.mNumRows); + assertEquals("7 key R2 left", 2, params.mLeftKeys); + assertEquals("7 key R2 right", 2, params.mRightKeys); + assertEquals("7 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("7 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("7 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("7 key R2 [4]", -2, params.getColumnPos(3)); + assertEquals("7 key R2 [5]", 0, params.getColumnPos(4)); + assertEquals("7 key R2 [6]", 1, params.getColumnPos(5)); + assertEquals("7 key R2 [7]", -1, params.getColumnPos(6)); + assertEquals("7 key R2 adjust", -1, params.mTopRowAdjustment); + assertEquals("7 key R2 default", WIDTH * 2, params.getDefaultKeyCoordX()); + } + + // [7] [6] [5] [3] [1] [2] [4] ___| + public void testLayout7KeyR3Max7() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(7, 7, WIDTH, + HEIGHT, XPOS_R3, KEYBOARD_WIDTH); + assertEquals("7 key R2 columns", 7, params.mNumColumns); + assertEquals("7 key R2 rows", 1, params.mNumRows); + assertEquals("7 key R2 left", 4, params.mLeftKeys); + assertEquals("7 key R2 right", 3, params.mRightKeys); + assertEquals("7 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("7 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("7 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("7 key R2 [4]", 2, params.getColumnPos(3)); + assertEquals("7 key R2 [5]", -2, params.getColumnPos(4)); + assertEquals("7 key R2 [6]", -3, params.getColumnPos(5)); + assertEquals("7 key R2 [7]", -4, params.getColumnPos(6)); + assertEquals("7 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("7 key R2 default", WIDTH * 4, params.getDefaultKeyCoordX()); + } + + // [7] [5] [6] [8] + // [3] [1] [2] [4] + public void testLayout8KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(8, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("8 key M0 columns", 4, params.mNumColumns); + assertEquals("8 key M0 rows", 2, params.mNumRows); + assertEquals("8 key M0 left", 1, params.mLeftKeys); + assertEquals("8 key M0 right", 3, params.mRightKeys); + assertEquals("8 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("8 key M0 [2]", 1, params.getColumnPos(1)); + assertEquals("8 key M0 [3]", -1, params.getColumnPos(2)); + assertEquals("8 key M0 [4]", 2, params.getColumnPos(3)); + assertEquals("8 key M0 [5]", 0, params.getColumnPos(4)); + assertEquals("8 key M0 [6]", 1, params.getColumnPos(5)); + assertEquals("8 key M0 [7]", -1, params.getColumnPos(6)); + assertEquals("8 key M0 [8]", 2, params.getColumnPos(7)); + assertEquals("8 key M0 adjust", 0, params.mTopRowAdjustment); + assertEquals("8 key M0 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // |[5] [6] [7] [8] + // |[1] [2] [3] [4] + public void testLayout8KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(8, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("8 key L0 columns", 4, params.mNumColumns); + assertEquals("8 key L0 rows", 2, params.mNumRows); + assertEquals("8 key L0 left", 0, params.mLeftKeys); + assertEquals("8 key L0 right", 4, params.mRightKeys); + assertEquals("8 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("8 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("8 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("8 key L0 [4]", 3, params.getColumnPos(3)); + assertEquals("8 key L0 [5]", 0, params.getColumnPos(4)); + assertEquals("8 key L0 [6]", 1, params.getColumnPos(5)); + assertEquals("8 key L0 [7]", 2, params.getColumnPos(6)); + assertEquals("8 key L0 [8]", 3, params.getColumnPos(7)); + assertEquals("8 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("8 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [5] [6] [7] [8] + // |___ [1] [2] [3] [4] + public void testLayout8KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(8, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("8 key L1 columns", 4, params.mNumColumns); + assertEquals("8 key L1 rows", 2, params.mNumRows); + assertEquals("8 key L1 left", 0, params.mLeftKeys); + assertEquals("8 key L1 right", 4, params.mRightKeys); + assertEquals("8 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("8 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("8 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("8 key L1 [4]", 3, params.getColumnPos(3)); + assertEquals("8 key L1 [5]", 0, params.getColumnPos(4)); + assertEquals("8 key L1 [6]", 1, params.getColumnPos(5)); + assertEquals("8 key L1 [7]", 2, params.getColumnPos(6)); + assertEquals("8 key L1 [8]", 3, params.getColumnPos(7)); + assertEquals("8 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("8 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [7] [5] [6] [8] + // |___ ___ [3] [1] [2] [4] + public void testLayout8KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(8, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("8 key L2 columns", 4, params.mNumColumns); + assertEquals("8 key L2 rows", 2, params.mNumRows); + assertEquals("8 key L2 left", 1, params.mLeftKeys); + assertEquals("8 key L2 right", 3, params.mRightKeys); + assertEquals("8 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("8 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("8 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("8 key L2 [4]", 2, params.getColumnPos(3)); + assertEquals("8 key L2 [5]", 0, params.getColumnPos(4)); + assertEquals("8 key L2 [6]", 1, params.getColumnPos(5)); + assertEquals("8 key L2 [7]", -1, params.getColumnPos(6)); + assertEquals("8 key L2 [8]", 2, params.getColumnPos(7)); + assertEquals("8 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("8 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [8] [7] [6] [5]| + // [4] [3] [2] [1]| + public void testLayout8KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(8, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("8 key R0 columns", 4, params.mNumColumns); + assertEquals("8 key R0 rows", 2, params.mNumRows); + assertEquals("8 key R0 left", 3, params.mLeftKeys); + assertEquals("8 key R0 right", 1, params.mRightKeys); + assertEquals("8 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("8 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("8 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("8 key R0 [4]", -3, params.getColumnPos(3)); + assertEquals("8 key R0 [5]", 0, params.getColumnPos(4)); + assertEquals("8 key R0 [6]", -1, params.getColumnPos(5)); + assertEquals("8 key R0 [7]", -2, params.getColumnPos(6)); + assertEquals("8 key R0 [8]", -3, params.getColumnPos(7)); + assertEquals("8 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("8 key R0 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [8] [7] [6] [5] ___| + // [4] [3] [2] [1] ___| + public void testLayout8KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(8, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("8 key R1 columns", 4, params.mNumColumns); + assertEquals("8 key R1 rows", 2, params.mNumRows); + assertEquals("8 key R1 left", 3, params.mLeftKeys); + assertEquals("8 key R1 right", 1, params.mRightKeys); + assertEquals("8 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("8 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("8 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("8 key R1 [4]", -3, params.getColumnPos(3)); + assertEquals("8 key R1 [5]", 0, params.getColumnPos(4)); + assertEquals("8 key R1 [6]", -1, params.getColumnPos(5)); + assertEquals("8 key R1 [7]", -2, params.getColumnPos(6)); + assertEquals("8 key R1 [8]", -3, params.getColumnPos(7)); + assertEquals("8 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("8 key R1 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [8] [7] [5] [6] ___ ___| + // [4] [3] [1] [2] ___ ___| + public void testLayout8KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(8, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("8 key R2 columns", 4, params.mNumColumns); + assertEquals("8 key R2 rows", 2, params.mNumRows); + assertEquals("8 key R2 left", 2, params.mLeftKeys); + assertEquals("8 key R2 right", 2, params.mRightKeys); + assertEquals("8 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("8 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("8 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("8 key R2 [4]", -2, params.getColumnPos(3)); + assertEquals("8 key R2 [5]", 0, params.getColumnPos(4)); + assertEquals("8 key R2 [6]", 1, params.getColumnPos(5)); + assertEquals("8 key R2 [7]", -1, params.getColumnPos(6)); + assertEquals("8 key R2 [8]", -2, params.getColumnPos(7)); + assertEquals("8 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("8 key R2 default", WIDTH * 2, params.getDefaultKeyCoordX()); } // [8] [6] [7] [9] // [5] [3] [1] [2] [4] - public void testLayout9Key() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 9, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 5, WIDTH * 10); - assertEquals("9 key columns", 5, params.mNumColumns); - assertEquals("9 key rows", 2, params.mNumRows); - assertEquals("9 key left", 2, params.mLeftKeys); - assertEquals("9 key right", 3, params.mRightKeys); - assertEquals("9 key [1]", 0, params.getColumnPos(0)); - assertEquals("9 key [2]", 1, params.getColumnPos(1)); - assertEquals("9 key [3]", -1, params.getColumnPos(2)); - assertEquals("9 key [4]", 2, params.getColumnPos(3)); - assertEquals("9 key [5]", -2, params.getColumnPos(4)); - assertEquals("9 key [6]", 0, params.getColumnPos(5)); - assertEquals("9 key [7]", 1, params.getColumnPos(6)); - assertEquals("9 key [8]", -1, params.getColumnPos(7)); - assertEquals("9 key [9]", 2, params.getColumnPos(8)); - assertEquals("9 key centering", true, params.mTopRowNeedsCentering); - assertEquals("9 key default", WIDTH * 2, params.getDefaultKeyCoordX()); - } - - // Nine keys test. There is no key space for mini keyboard at left of the parent key. - // [6] [7] [8] [9] - // [1] [2] [3] [4] [5] - public void testLayout9KeyLeft() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 9, MAX_COLUMNS, WIDTH, HEIGHT, - 0, WIDTH * 10); - assertEquals("9 key left columns", 5, params.mNumColumns); - assertEquals("9 key left rows", 2, params.mNumRows); - assertEquals("9 key left left", 0, params.mLeftKeys); - assertEquals("9 key left right", 5, params.mRightKeys); - assertEquals("9 key left [1]", 0, params.getColumnPos(0)); - assertEquals("9 key left [2]", 1, params.getColumnPos(1)); - assertEquals("9 key left [3]", 2, params.getColumnPos(2)); - assertEquals("9 key left [4]", 3, params.getColumnPos(3)); - assertEquals("9 key left [5]", 4, params.getColumnPos(4)); - assertEquals("9 key left [6]", 0, params.getColumnPos(5)); - assertEquals("9 key left [7]", 1, params.getColumnPos(6)); - assertEquals("9 key left [8]", 2, params.getColumnPos(7)); - assertEquals("9 key left [9]", 3, params.getColumnPos(8)); - assertEquals("9 key left centering", true, params.mTopRowNeedsCentering); - assertEquals("9 key left default", 0, params.getDefaultKeyCoordX()); - } - - // Nine keys test. There is only one key space for mini keyboard at left of the parent key. - // [8] [6] [7] [9] - // [3] [1] [2] [4] [5] - public void testLayout9KeyNearLeft() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 9, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH, WIDTH * 10); - assertEquals("9 key near left columns", 5, params.mNumColumns); - assertEquals("9 key near left rows", 2, params.mNumRows); - assertEquals("9 key near left left", 1, params.mLeftKeys); - assertEquals("9 key near left right", 4, params.mRightKeys); - assertEquals("9 key near left [1]", 0, params.getColumnPos(0)); - assertEquals("9 key near left [2]", 1, params.getColumnPos(1)); - assertEquals("9 key near left [3]", -1, params.getColumnPos(2)); - assertEquals("9 key near left [4]", 2, params.getColumnPos(3)); - assertEquals("9 key near left [5]", 3, params.getColumnPos(4)); - assertEquals("9 key near left [6]", 0, params.getColumnPos(5)); - assertEquals("9 key near left [7]", 1, params.getColumnPos(6)); - assertEquals("9 key near left [8]", -1, params.getColumnPos(7)); - assertEquals("9 key near left [9]", 2, params.getColumnPos(8)); - assertEquals("9 key near left centering", true, params.mTopRowNeedsCentering); - assertEquals("9 key near left default", WIDTH, params.getDefaultKeyCoordX()); - } - - - // Nine keys test. There is no key space for mini keyboard at right of the parent key. - // [9] [8] [7] [6] - // [5] [4] [3] [2] [1] - public void testLayout9KeyRight() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 9, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 9, WIDTH * 10); - assertEquals("9 key right columns", 5, params.mNumColumns); - assertEquals("9 key right rows", 2, params.mNumRows); - assertEquals("9 key right left", 4, params.mLeftKeys); - assertEquals("9 key right right", 1, params.mRightKeys); - assertEquals("9 key right [1]", 0, params.getColumnPos(0)); - assertEquals("9 key right [2]", -1, params.getColumnPos(1)); - assertEquals("9 key right [3]", -2, params.getColumnPos(2)); - assertEquals("9 key right [4]", -3, params.getColumnPos(3)); - assertEquals("9 key right [5]", -4, params.getColumnPos(4)); - assertEquals("9 key right [6]", 0, params.getColumnPos(5)); - assertEquals("9 key right [7]", -1, params.getColumnPos(6)); - assertEquals("9 key right [8]", -2, params.getColumnPos(7)); - assertEquals("9 key right [9]", -3, params.getColumnPos(8)); - assertEquals("9 key right centering", true, params.mTopRowNeedsCentering); - assertEquals("9 key right default", WIDTH * 4, params.getDefaultKeyCoordX()); - } - - // Nine keys test. There is only one key space for mini keyboard at right of the parent key. - // [9] [8] [6] [7] - // [5] [4] [3] [1] [2] - public void testLayout9KeyNearRight() { - MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams( - 9, MAX_COLUMNS, WIDTH, HEIGHT, - WIDTH * 8, WIDTH * 10); - assertEquals("9 key near right columns", 5, params.mNumColumns); - assertEquals("9 key near right rows", 2, params.mNumRows); - assertEquals("9 key near right left", 3, params.mLeftKeys); - assertEquals("9 key near right right", 2, params.mRightKeys); - assertEquals("9 key near right [1]", 0, params.getColumnPos(0)); - assertEquals("9 key near right [2]", 1, params.getColumnPos(1)); - assertEquals("9 key near right [3]", -1, params.getColumnPos(2)); - assertEquals("9 key near right [4]", -2, params.getColumnPos(3)); - assertEquals("9 key near right [5]", -3, params.getColumnPos(4)); - assertEquals("9 key near right [6]", 0, params.getColumnPos(5)); - assertEquals("9 key near right [7]", 1, params.getColumnPos(6)); - assertEquals("9 key near right [8]", -1, params.getColumnPos(7)); - assertEquals("9 key near right [9]", -2, params.getColumnPos(8)); - assertEquals("9 key near right centering", true, params.mTopRowNeedsCentering); - assertEquals("9 key near right default", WIDTH * 3, params.getDefaultKeyCoordX()); + public void testLayout9KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(9, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("9 key M0 columns", 5, params.mNumColumns); + assertEquals("9 key M0 rows", 2, params.mNumRows); + assertEquals("9 key M0 left", 2, params.mLeftKeys); + assertEquals("9 key M0 right", 3, params.mRightKeys); + assertEquals("9 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("9 key M0 [2]", 1, params.getColumnPos(1)); + assertEquals("9 key M0 [3]", -1, params.getColumnPos(2)); + assertEquals("9 key M0 [4]", 2, params.getColumnPos(3)); + assertEquals("9 key M0 [5]", -2, params.getColumnPos(4)); + assertEquals("9 key M0 [6]", 0, params.getColumnPos(5)); + assertEquals("9 key M0 [7]", 1, params.getColumnPos(6)); + assertEquals("9 key M0 [8]", -1, params.getColumnPos(7)); + assertEquals("9 key M0 [9]", 2, params.getColumnPos(8)); + assertEquals("9 key M0 adjust", -1, params.mTopRowAdjustment); + assertEquals("9 key M0 default", WIDTH * 2, params.getDefaultKeyCoordX()); + } + + // |[6] [7] [8] [9] + // |[1] [2] [3] [4] [5] + public void testLayout9KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(9, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("9 key L0 columns", 5, params.mNumColumns); + assertEquals("9 key L0 rows", 2, params.mNumRows); + assertEquals("9 key L0 left", 0, params.mLeftKeys); + assertEquals("9 key L0 right", 5, params.mRightKeys); + assertEquals("9 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("9 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("9 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("9 key L0 [4]", 3, params.getColumnPos(3)); + assertEquals("9 key L0 [5]", 4, params.getColumnPos(4)); + assertEquals("9 key L0 [6]", 0, params.getColumnPos(5)); + assertEquals("9 key L0 [7]", 1, params.getColumnPos(6)); + assertEquals("9 key L0 [8]", 2, params.getColumnPos(7)); + assertEquals("9 key L0 [9]", 3, params.getColumnPos(8)); + assertEquals("9 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("9 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [6] [7] [8] [9] + // |___ [1] [2] [3] [4] [5] + public void testLayout9KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(9, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("9 key L1 columns", 5, params.mNumColumns); + assertEquals("9 key L1 rows", 2, params.mNumRows); + assertEquals("9 key L1 left", 0, params.mLeftKeys); + assertEquals("9 key L1 right", 5, params.mRightKeys); + assertEquals("9 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("9 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("9 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("9 key L1 [4]", 3, params.getColumnPos(3)); + assertEquals("9 key L1 [5]", 4, params.getColumnPos(4)); + assertEquals("9 key L1 [6]", 0, params.getColumnPos(5)); + assertEquals("9 key L1 [7]", 1, params.getColumnPos(6)); + assertEquals("9 key L1 [8]", 2, params.getColumnPos(7)); + assertEquals("9 key L1 [9]", 3, params.getColumnPos(8)); + assertEquals("9 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("9 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [8] [6] [7] [9] + // |___ ___ [3] [1] [2] [4] [5] + public void testLayout9KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(9, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("9 key L2 columns", 5, params.mNumColumns); + assertEquals("9 key L2 rows", 2, params.mNumRows); + assertEquals("9 key L2 left", 1, params.mLeftKeys); + assertEquals("9 key L2 right", 4, params.mRightKeys); + assertEquals("9 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("9 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("9 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("9 key L2 [4]", 2, params.getColumnPos(3)); + assertEquals("9 key L2 [5]", 3, params.getColumnPos(4)); + assertEquals("9 key L2 [6]", 0, params.getColumnPos(5)); + assertEquals("9 key L2 [7]", 1, params.getColumnPos(6)); + assertEquals("9 key L2 [8]", -1, params.getColumnPos(7)); + assertEquals("9 key L2 [9]", 2, params.getColumnPos(8)); + assertEquals("9 key L2 adjust", 1, params.mTopRowAdjustment); + assertEquals("9 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [9] [8] [7] [6]| + // [5] [4] [3] [2] [1]| + public void testLayout9KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(9, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("9 key R0 columns", 5, params.mNumColumns); + assertEquals("9 key R0 rows", 2, params.mNumRows); + assertEquals("9 key R0 left", 4, params.mLeftKeys); + assertEquals("9 key R0 right", 1, params.mRightKeys); + assertEquals("9 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("9 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("9 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("9 key R0 [4]", -3, params.getColumnPos(3)); + assertEquals("9 key R0 [5]", -4, params.getColumnPos(4)); + assertEquals("9 key R0 [6]", 0, params.getColumnPos(5)); + assertEquals("9 key R0 [7]", -1, params.getColumnPos(6)); + assertEquals("9 key R0 [8]", -2, params.getColumnPos(7)); + assertEquals("9 key R0 [9]", -3, params.getColumnPos(8)); + assertEquals("9 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("9 key R0 default", WIDTH * 4, params.getDefaultKeyCoordX()); + } + + // [9] [8] [7] [6] ___| + // [5] [4] [3] [2] [1] ___| + public void testLayout9KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(9, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("9 key R1 columns", 5, params.mNumColumns); + assertEquals("9 key R1 rows", 2, params.mNumRows); + assertEquals("9 key R1 left", 4, params.mLeftKeys); + assertEquals("9 key R1 right", 1, params.mRightKeys); + assertEquals("9 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("9 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("9 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("9 key R1 [4]", -3, params.getColumnPos(3)); + assertEquals("9 key R1 [5]", -4, params.getColumnPos(4)); + assertEquals("9 key R1 [6]", 0, params.getColumnPos(5)); + assertEquals("9 key R1 [7]", -1, params.getColumnPos(6)); + assertEquals("9 key R1 [8]", -2, params.getColumnPos(7)); + assertEquals("9 key R1 [9]", -3, params.getColumnPos(8)); + assertEquals("9 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("9 key R1 default", WIDTH * 4, params.getDefaultKeyCoordX()); + } + + // [9] [8] [6] [7] ___ ___| + // [5] [4] [3] [1] [2] ___ ___| + public void testLayout9KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(9, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("9 key R2 columns", 5, params.mNumColumns); + assertEquals("9 key R2 rows", 2, params.mNumRows); + assertEquals("9 key R2 left", 3, params.mLeftKeys); + assertEquals("9 key R2 right", 2, params.mRightKeys); + assertEquals("9 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("9 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("9 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("9 key R2 [4]", -2, params.getColumnPos(3)); + assertEquals("9 key R2 [5]", -3, params.getColumnPos(4)); + assertEquals("9 key R2 [6]", 0, params.getColumnPos(5)); + assertEquals("9 key R2 [7]", 1, params.getColumnPos(6)); + assertEquals("9 key R2 [8]", -1, params.getColumnPos(7)); + assertEquals("9 key R2 [9]", -2, params.getColumnPos(8)); + assertEquals("9 key R2 adjust", -1, params.mTopRowAdjustment); + assertEquals("9 key R2 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [A] [8] [6] [7] [9] + // [5] [3] [1] [2] [4] + public void testLayout10KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("10 key M0 columns", 5, params.mNumColumns); + assertEquals("10 key M0 rows", 2, params.mNumRows); + assertEquals("10 key M0 left", 2, params.mLeftKeys); + assertEquals("10 key M0 right", 3, params.mRightKeys); + assertEquals("10 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("10 key M0 [2]", 1, params.getColumnPos(1)); + assertEquals("10 key M0 [3]", -1, params.getColumnPos(2)); + assertEquals("10 key M0 [4]", 2, params.getColumnPos(3)); + assertEquals("10 key M0 [5]", -2, params.getColumnPos(4)); + assertEquals("10 key M0 [6]", 0, params.getColumnPos(5)); + assertEquals("10 key M0 [7]", 1, params.getColumnPos(6)); + assertEquals("10 key M0 [8]", -1, params.getColumnPos(7)); + assertEquals("10 key M0 [9]", 2, params.getColumnPos(8)); + assertEquals("10 key M0 [A]", -2, params.getColumnPos(9)); + assertEquals("10 key M0 adjust", 0, params.mTopRowAdjustment); + assertEquals("10 key M0 default", WIDTH * 2, params.getDefaultKeyCoordX()); + } + + // |[6] [7] [8] [9] [A] + // |[1] [2] [3] [4] [5] + public void testLayout10KeyL0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L0, KEYBOARD_WIDTH); + assertEquals("10 key L0 columns", 5, params.mNumColumns); + assertEquals("10 key L0 rows", 2, params.mNumRows); + assertEquals("10 key L0 left", 0, params.mLeftKeys); + assertEquals("10 key L0 right", 5, params.mRightKeys); + assertEquals("10 key L0 [1]", 0, params.getColumnPos(0)); + assertEquals("10 key L0 [2]", 1, params.getColumnPos(1)); + assertEquals("10 key L0 [3]", 2, params.getColumnPos(2)); + assertEquals("10 key L0 [4]", 3, params.getColumnPos(3)); + assertEquals("10 key L0 [5]", 4, params.getColumnPos(4)); + assertEquals("10 key L0 [6]", 0, params.getColumnPos(5)); + assertEquals("10 key L0 [7]", 1, params.getColumnPos(6)); + assertEquals("10 key L0 [8]", 2, params.getColumnPos(7)); + assertEquals("10 key L0 [9]", 3, params.getColumnPos(8)); + assertEquals("10 key L0 [A]", 4, params.getColumnPos(9)); + assertEquals("10 key L0 adjust", 0, params.mTopRowAdjustment); + assertEquals("10 key L0 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ [6] [7] [8] [9] [A] + // |___ [1] [2] [3] [4] [5] + public void testLayout10KeyL1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L1, KEYBOARD_WIDTH); + assertEquals("10 key L1 columns", 5, params.mNumColumns); + assertEquals("10 key L1 rows", 2, params.mNumRows); + assertEquals("10 key L1 left", 0, params.mLeftKeys); + assertEquals("10 key L1 right", 5, params.mRightKeys); + assertEquals("10 key L1 [1]", 0, params.getColumnPos(0)); + assertEquals("10 key L1 [2]", 1, params.getColumnPos(1)); + assertEquals("10 key L1 [3]", 2, params.getColumnPos(2)); + assertEquals("10 key L1 [4]", 3, params.getColumnPos(3)); + assertEquals("10 key L1 [5]", 4, params.getColumnPos(4)); + assertEquals("10 key L1 [6]", 0, params.getColumnPos(5)); + assertEquals("10 key L1 [7]", 1, params.getColumnPos(6)); + assertEquals("10 key L1 [8]", 2, params.getColumnPos(7)); + assertEquals("10 key L1 [9]", 3, params.getColumnPos(8)); + assertEquals("10 key L1 [A]", 4, params.getColumnPos(9)); + assertEquals("10 key L1 adjust", 0, params.mTopRowAdjustment); + assertEquals("10 key L1 default", WIDTH * 0, params.getDefaultKeyCoordX()); + } + + // |___ ___ [8] [6] [7] [9] [A] + // |___ ___ [3] [1] [2] [4] [5] + public void testLayout10KeyL2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_L2, KEYBOARD_WIDTH); + assertEquals("10 key L2 columns", 5, params.mNumColumns); + assertEquals("10 key L2 rows", 2, params.mNumRows); + assertEquals("10 key L2 left", 1, params.mLeftKeys); + assertEquals("10 key L2 right", 4, params.mRightKeys); + assertEquals("10 key L2 [1]", 0, params.getColumnPos(0)); + assertEquals("10 key L2 [2]", 1, params.getColumnPos(1)); + assertEquals("10 key L2 [3]", -1, params.getColumnPos(2)); + assertEquals("10 key L2 [4]", 2, params.getColumnPos(3)); + assertEquals("10 key L2 [5]", 3, params.getColumnPos(4)); + assertEquals("10 key L2 [6]", 0, params.getColumnPos(5)); + assertEquals("10 key L2 [7]", 1, params.getColumnPos(6)); + assertEquals("10 key L2 [8]", -1, params.getColumnPos(7)); + assertEquals("10 key L2 [9]", 2, params.getColumnPos(8)); + assertEquals("10 key L2 [A]", 3, params.getColumnPos(9)); + assertEquals("10 key L2 adjust", 0, params.mTopRowAdjustment); + assertEquals("10 key L2 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [A] [9] [8] [7] [6]| + // [5] [4] [3] [2] [1]| + public void testLayout10KeyR0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R0, KEYBOARD_WIDTH); + assertEquals("10 key R0 columns", 5, params.mNumColumns); + assertEquals("10 key R0 rows", 2, params.mNumRows); + assertEquals("10 key R0 left", 4, params.mLeftKeys); + assertEquals("10 key R0 right", 1, params.mRightKeys); + assertEquals("10 key R0 [1]", 0, params.getColumnPos(0)); + assertEquals("10 key R0 [2]", -1, params.getColumnPos(1)); + assertEquals("10 key R0 [3]", -2, params.getColumnPos(2)); + assertEquals("10 key R0 [4]", -3, params.getColumnPos(3)); + assertEquals("10 key R0 [5]", -4, params.getColumnPos(4)); + assertEquals("10 key R0 [6]", 0, params.getColumnPos(5)); + assertEquals("10 key R0 [7]", -1, params.getColumnPos(6)); + assertEquals("10 key R0 [8]", -2, params.getColumnPos(7)); + assertEquals("10 key R0 [9]", -3, params.getColumnPos(8)); + assertEquals("10 key R0 [A]", -4, params.getColumnPos(9)); + assertEquals("10 key R0 adjust", 0, params.mTopRowAdjustment); + assertEquals("10 key R0 default", WIDTH * 4, params.getDefaultKeyCoordX()); + } + + // [A] [9] [8] [7] [6] ___| + // [5] [4] [3] [2] [1] ___| + public void testLayout10KeyR1() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R1, KEYBOARD_WIDTH); + assertEquals("10 key R1 columns", 5, params.mNumColumns); + assertEquals("10 key R1 rows", 2, params.mNumRows); + assertEquals("10 key R1 left", 4, params.mLeftKeys); + assertEquals("10 key R1 right", 1, params.mRightKeys); + assertEquals("10 key R1 [1]", 0, params.getColumnPos(0)); + assertEquals("10 key R1 [2]", -1, params.getColumnPos(1)); + assertEquals("10 key R1 [3]", -2, params.getColumnPos(2)); + assertEquals("10 key R1 [4]", -3, params.getColumnPos(3)); + assertEquals("10 key R1 [5]", -4, params.getColumnPos(4)); + assertEquals("10 key R1 [6]", 0, params.getColumnPos(5)); + assertEquals("10 key R1 [7]", -1, params.getColumnPos(6)); + assertEquals("10 key R1 [8]", -2, params.getColumnPos(7)); + assertEquals("10 key R1 [9]", -3, params.getColumnPos(8)); + assertEquals("10 key R1 [A]", -4, params.getColumnPos(9)); + assertEquals("10 key R1 adjust", 0, params.mTopRowAdjustment); + assertEquals("10 key R1 default", WIDTH * 4, params.getDefaultKeyCoordX()); + } + + // [A] [9] [8] [6] [7] ___ ___| + // [5] [4] [3] [1] [2] ___ ___| + public void testLayout10KeyR2() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(10, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_R2, KEYBOARD_WIDTH); + assertEquals("10 key R2 columns", 5, params.mNumColumns); + assertEquals("10 key R2 rows", 2, params.mNumRows); + assertEquals("10 key R2 left", 3, params.mLeftKeys); + assertEquals("10 key R2 right", 2, params.mRightKeys); + assertEquals("10 key R2 [1]", 0, params.getColumnPos(0)); + assertEquals("10 key R2 [2]", 1, params.getColumnPos(1)); + assertEquals("10 key R2 [3]", -1, params.getColumnPos(2)); + assertEquals("10 key R2 [4]", -2, params.getColumnPos(3)); + assertEquals("10 key R2 [5]", -3, params.getColumnPos(4)); + assertEquals("10 key R2 [6]", 0, params.getColumnPos(5)); + assertEquals("10 key R2 [7]", 1, params.getColumnPos(6)); + assertEquals("10 key R2 [8]", -1, params.getColumnPos(7)); + assertEquals("10 key R2 [9]", -2, params.getColumnPos(8)); + assertEquals("10 key R2 [A]", -3, params.getColumnPos(9)); + assertEquals("10 key R2 adjust", 0, params.mTopRowAdjustment); + assertEquals("10 key R2 default", WIDTH * 3, params.getDefaultKeyCoordX()); + } + + // [B] [9] [A] + // [7] [5] [6] [8] + // [3] [1] [2] [4] + public void testLayout11KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(11, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("11 key M0 columns", 4, params.mNumColumns); + assertEquals("11 key M0 rows", 3, params.mNumRows); + assertEquals("11 key M0 left", 1, params.mLeftKeys); + assertEquals("11 key M0 right", 3, params.mRightKeys); + assertEquals("11 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("11 key M0 [2]", 1, params.getColumnPos(1)); + assertEquals("11 key M0 [3]", -1, params.getColumnPos(2)); + assertEquals("11 key M0 [4]", 2, params.getColumnPos(3)); + assertEquals("11 key M0 [5]", 0, params.getColumnPos(4)); + assertEquals("11 key M0 [6]", 1, params.getColumnPos(5)); + assertEquals("11 key M0 [7]", -1, params.getColumnPos(6)); + assertEquals("11 key M0 [8]", 2, params.getColumnPos(7)); + assertEquals("11 key M0 [9]", 0, params.getColumnPos(8)); + assertEquals("11 key M0 [A]", 1, params.getColumnPos(9)); + assertEquals("11 key M0 [B]", -1, params.getColumnPos(10)); + assertEquals("11 key M0 adjust", 1, params.mTopRowAdjustment); + assertEquals("11 key M0 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + // [B] [9] [A] [C] + // [7] [5] [6] [8] + // [3] [1] [2] [4] + public void testLayout12KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(12, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("12 key M0 columns", 4, params.mNumColumns); + assertEquals("12 key M0 rows", 3, params.mNumRows); + assertEquals("12 key M0 left", 1, params.mLeftKeys); + assertEquals("12 key M0 right", 3, params.mRightKeys); + assertEquals("12 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("12 key M0 [2]", 1, params.getColumnPos(1)); + assertEquals("12 key M0 [3]", -1, params.getColumnPos(2)); + assertEquals("12 key M0 [4]", 2, params.getColumnPos(3)); + assertEquals("12 key M0 [5]", 0, params.getColumnPos(4)); + assertEquals("12 key M0 [6]", 1, params.getColumnPos(5)); + assertEquals("12 key M0 [7]", -1, params.getColumnPos(6)); + assertEquals("12 key M0 [8]", 2, params.getColumnPos(7)); + assertEquals("12 key M0 [9]", 0, params.getColumnPos(8)); + assertEquals("12 key M0 [A]", 1, params.getColumnPos(9)); + assertEquals("12 key M0 [B]", -1, params.getColumnPos(10)); + assertEquals("12 key M0 [C]", 2, params.getColumnPos(11)); + assertEquals("12 key M0 adjust", 0, params.mTopRowAdjustment); + assertEquals("12 key M0 default", WIDTH * 1, params.getDefaultKeyCoordX()); + } + + + // [D] [B] [C] + // [A] [8] [6] [7] [9] + // [5] [3] [1] [2] [4] + public void testLayout13KeyM0() { + MiniKeyboardLayoutParams params = new MiniKeyboardLayoutParams(13, MAX_COLUMNS, WIDTH, + HEIGHT, XPOS_M0, KEYBOARD_WIDTH); + assertEquals("13 key M0 columns", 5, params.mNumColumns); + assertEquals("13 key M0 rows", 3, params.mNumRows); + assertEquals("13 key M0 left", 2, params.mLeftKeys); + assertEquals("13 key M0 right", 3, params.mRightKeys); + assertEquals("13 key M0 [1]", 0, params.getColumnPos(0)); + assertEquals("13 key M0 [2]", 1, params.getColumnPos(1)); + assertEquals("13 key M0 [3]", -1, params.getColumnPos(2)); + assertEquals("13 key M0 [4]", 2, params.getColumnPos(3)); + assertEquals("13 key M0 [5]", -2, params.getColumnPos(4)); + assertEquals("13 key M0 [6]", 0, params.getColumnPos(5)); + assertEquals("13 key M0 [7]", 1, params.getColumnPos(6)); + assertEquals("13 key M0 [8]", -1, params.getColumnPos(7)); + assertEquals("13 key M0 [9]", 2, params.getColumnPos(8)); + assertEquals("13 key M0 [A]", -2, params.getColumnPos(9)); + assertEquals("13 key M0 [B]", 0, params.getColumnPos(10)); + assertEquals("13 key M0 [C]", 1, params.getColumnPos(11)); + assertEquals("13 key M0 [D]", -1, params.getColumnPos(12)); + assertEquals("13 key M0 adjust", 0, params.mTopRowAdjustment); + assertEquals("13 key M0 default", WIDTH * 2, params.getDefaultKeyCoordX()); } }