aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/res/layout-large/candidate.xml2
-rw-r--r--java/res/layout-large/candidate_preview.xml2
-rw-r--r--java/res/layout-large/candidates.xml2
-rw-r--r--java/res/layout-large/keyboard_popup_honeycomb.xml2
-rw-r--r--java/res/values-large-land/dimens.xml2
-rw-r--r--java/res/values-large/config.xml8
-rw-r--r--java/res/values-large/dimens.xml2
-rw-r--r--java/res/values-large/donottranslate.xml4
-rw-r--r--java/res/values/donottranslate-altchars.xml7
-rw-r--r--java/res/xml-large-land/kbd_popup_template.xml4
-rw-r--r--java/res/xml-large/kbd_azerty_rows.xml81
-rw-r--r--java/res/xml-large/kbd_key_styles.xml291
-rw-r--r--java/res/xml-large/kbd_number.xml255
-rw-r--r--java/res/xml-large/kbd_numkey_styles.xml8
-rw-r--r--java/res/xml-large/kbd_phone.xml134
-rw-r--r--java/res/xml-large/kbd_phone_symbols.xml162
-rw-r--r--java/res/xml-large/kbd_popup_template.xml6
-rw-r--r--java/res/xml-large/kbd_qwerty.xml3
-rw-r--r--java/res/xml-large/kbd_qwerty_row1.xml29
-rw-r--r--java/res/xml-large/kbd_qwerty_row2.xml19
-rw-r--r--java/res/xml-large/kbd_qwerty_row3.xml34
-rw-r--r--java/res/xml-large/kbd_qwerty_row4.xml247
-rw-r--r--java/res/xml-large/kbd_qwerty_rows.xml2
-rw-r--r--java/res/xml-large/kbd_qwerty_rows_scandinavia.xml47
-rw-r--r--java/res/xml-large/kbd_qwertz_rows.xml60
-rw-r--r--java/res/xml-large/kbd_ru_rows.xml58
-rw-r--r--java/res/xml-large/kbd_symbols.xml165
-rw-r--r--java/res/xml-large/kbd_symbols_shift.xml110
-rw-r--r--java/res/xml-xlarge/kbd_symbols.xml16
-rw-r--r--java/res/xml-xlarge/kbd_symbols_shift.xml3
-rw-r--r--java/res/xml/kbd_key_styles.xml70
-rw-r--r--java/res/xml/kbd_popup_narrow_template.xml27
-rw-r--r--java/res/xml/kbd_qwerty_black_symbol.xml84
-rw-r--r--java/res/xml/kbd_qwerty_f1.xml22
-rw-r--r--java/res/xml/kbd_symbols.xml7
-rw-r--r--java/res/xml/kbd_symbols_f1.xml11
-rw-r--r--java/res/xml/kbd_symbols_shift.xml16
-rw-r--r--java/res/xml/kbd_symbols_shift_row4.xml8
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java6
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyDetector.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyStyles.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardId.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardParser.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardShiftState.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java3
-rw-r--r--java/src/com/android/inputmethod/keyboard/MiniKeyboard.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/MiniKeyboardBuilder.java91
-rw-r--r--java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/ModifierKeyState.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTrackerKeyState.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTrackerQueue.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/ProximityInfo.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/Row.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/ShiftKeyState.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/SwipeTracker.java2
-rw-r--r--java/src/com/android/inputmethod/latin/AutoDictionary.java2
-rw-r--r--java/src/com/android/inputmethod/latin/EditingUtils.java2
-rw-r--r--java/src/com/android/inputmethod/latin/InputLanguageSelection.java2
-rw-r--r--java/src/com/android/inputmethod/latin/LanguageSwitcher.java2
-rw-r--r--java/src/com/android/inputmethod/latin/UserBigramDictionary.java2
-rw-r--r--java/src/com/android/inputmethod/voice/FieldContext.java2
-rw-r--r--java/src/com/android/inputmethod/voice/Hints.java2
-rw-r--r--java/src/com/android/inputmethod/voice/RecognitionView.java2
-rw-r--r--java/src/com/android/inputmethod/voice/SettingsUtil.java2
-rw-r--r--java/src/com/android/inputmethod/voice/SoundIndicator.java2
-rw-r--r--java/src/com/android/inputmethod/voice/VoiceIMEConnector.java2
-rw-r--r--java/src/com/android/inputmethod/voice/VoiceInput.java2
-rw-r--r--java/src/com/android/inputmethod/voice/VoiceInputLogger.java2
-rw-r--r--java/src/com/android/inputmethod/voice/WaveformImage.java2
-rw-r--r--java/src/com/android/inputmethod/voice/Whitelist.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/MiniKeyboardBuilderTests.java1516
77 files changed, 2159 insertions, 1537 deletions
diff --git a/java/res/layout-large/candidate.xml b/java/res/layout-large/candidate.xml
index 74532a1e2..e672707a1 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 61d5f8e7b..3ef2e6ed4 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 e2ddb84b1..26d6822e9 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 0b8229ca5..49eb936d6 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 625dd263c..19b78d3b0 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 f075b1b50..fe5aee3cf 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 69283202e..47d5e0f36 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 672dea589..6d94c2811 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 518e74af1..e77957578 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">":,/,&amp;,(,),-,+,;,\@,\',\",\?,!,\\,"</string>
+ <string name="alternates_for_punctuation">"\\,,\?,!,:,-,\',\",(,),/,;,+,&amp;,\@"</string>
+ <string name="alternates_for_web_tab_punctuation">".,\\,,\?,!,:,-,\',\",(,),/,;,+,&amp;,\@"</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 3caae1a60..2c1d1902e 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 564f77629..d0100e017 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 fc06d00fc..c2ca3e13a 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,46 +75,65 @@
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"
latin:keyIcon="@drawable/sym_bkeyboard_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 012b75115..9b8d4b31d 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 e27db94c7..72efbbcba 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 9122176a9..8dd1ab760 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 055c14867..d355c8eac 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 7d39d1a3a..fff2659be 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 1c8d51ffe..9541e13fd 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 f5135591c..df9712535 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 02bd0a6c9..07dd66f6b 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 b7e9bcff9..c8e78d440 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 f36b61fc7..afe12e89b 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="&quot;" />
+ 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 6237712f6..a2d26b3de 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 fb2034fb7..9521c0b37 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 3e99f0511..239563dca 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 c5cd04371..fa2af3be0 100644
--- a/java/res/xml-large/kbd_ru_rows.xml
+++ b/java/res/xml-large/kbd_ru_rows.xml
@@ -23,63 +23,65 @@
>
<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
latin:keyLabel="в" />
@@ -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 1061178e0..3f79ae178 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="[,{,&lt;" />
<Key
latin:keyLabel=")"
- latin:popupCharacters="],},&gt;" />
- <Key
- latin:keyStyle="returnKeyStyle"
- latin:keyWidth="15.750%p"
+ latin:popupCharacters="],},&gt;"
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="&lt;"
- latin:popupCharacters="≤,«,‹" />
- <Key
- latin:keyLabel="&gt;"
- 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="&quot;"
+ 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="&quot;"
- 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="&quot;"
- 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 8359b7571..97fbc1ec7 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,18 +31,13 @@
>
<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
latin:keyLabel="|" />
@@ -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="&lt;"
+ latin:popupCharacters="≤,«,‹" />
<Key
- latin:keyStyle="nonPasswordSymbolKeyStyle"
- latin:keyLabel="¿" />
+ latin:keyLabel="&gt;"
+ 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 1061178e0..16722a04b 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="&quot;"
- 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="&quot;"
- 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 8359b7571..cc23358a5 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 473510ec4..54522369b 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
@@ -105,8 +134,6 @@
latin:colorScheme="black"
>
<key-style
- latin:styleName="functionalKeyStyle" />
- <key-style
latin:styleName="shiftKeyStyle"
latin:code="@integer/key_shift"
latin:keyIcon="@drawable/sym_bkeyboard_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 36caf1c15..000000000
--- 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 6e45c12bf..000000000
--- 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 cbdb8c09a..d0e2884e1 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 b3b3f4ebd..bd3917bb2 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="&quot;"
- 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 8487b6158..0fb7136b9 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 368ee805b..b99d97084 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 9159bab24..e4b5403b5 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 15259a289..8eadf4ba4 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 a7ede5f26..a8346c581 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 169f2e6c3..8d9b1b41e 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 06d44680d..0b545d9c2 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 098af214e..7e67d6f6b 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 d09f6786e..97ef687bd 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 feb56ab3a..6af0d537c 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 d5412791d..e015b5158 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 61af15b1d..e33e76251 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 3b1408ccf..a45aaa4c6 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 53dab9440..765750fbe 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 a8750d378..1243f6f37 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 f215db876..ebbc79a9e 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 746857819..4b3fe8b8b 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 a62ed96a3..64ba80a04 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 928f3cdc1..01d9b5d2c 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 32c25801d..ff78ee5c9 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 80d6de952..33acc6907 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 87f3e1497..e2ff8c48e 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 3618c0448..40d7e1472 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 9229208a9..ba15624f0 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 41f8c2a7c..ad8b0d623 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 730cdc390..975b13b50 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 a00b0915c..54c6f309c 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 0ca06ddfc..90c250dcb 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 5587c685f..b58a57e42 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 6faf7f95e..2dd3038f9 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 4750fb991..656e6f8e0 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 dfdfbaa9f..95c7f5be0 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 d11d3b042..f5689092f 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 95a79f463..d26a877d5 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 4d746e120..372e8d6da 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 543290b32..40b68996a 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 105656fe0..a244c9e41 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 2df9e8588..392eea364 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 3e65434a2..07f2bd1c5 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 8bac669fc..b0ea99b79 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 f4c24de0c..adbd59135 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 7e3106d7f..600342a7c 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());
}
}