aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorsatok <satok@google.com>2010-09-22 23:10:47 +0900
committerJean-Baptiste Queru <jbq@google.com>2010-12-03 13:08:21 -0800
commitb80f171623a11bceb99b563594162d0034b9bde8 (patch)
tree9d6996fe249113dbf24d96f5c6981fe0deeb8918 /java
parent3dbc3a0afacda6a95803e7f15aac5a960f289add (diff)
parent36f64d2bba87ce098513c07814c86b40e5a978bd (diff)
downloadlatinime-b80f171623a11bceb99b563594162d0034b9bde8.tar.gz
latinime-b80f171623a11bceb99b563594162d0034b9bde8.tar.xz
latinime-b80f171623a11bceb99b563594162d0034b9bde8.zip
Merge remote branch 'goog/master' into merge6
Change-Id: If021cd2074cd4c4f6755a7ceaec0e90ea122956c
Diffstat (limited to 'java')
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.pngbin530 -> 521 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.pngbin780 -> 783 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.pngbin1108 -> 1112 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.pngbin744 -> 747 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.pngbin965 -> 962 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.pngbin1290 -> 1282 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.pngbin460 -> 481 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.pngbin332 -> 332 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.pngbin692 -> 498 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.pngbin498 -> 1643 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_dark_background.9.pngbin228 -> 1041 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_0.9.pngbin0 -> 379 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_1.9.pngbin0 -> 301 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_2.9.pngbin0 -> 404 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_3.9.pngbin0 -> 413 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_4.9.pngbin0 -> 341 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_5.9.pngbin0 -> 388 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_6.9.pngbin0 -> 413 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_7.9.pngbin0 -> 367 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_8.9.pngbin0 -> 417 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_hint_9.9.pngbin0 -> 417 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_background.9.pngbin1169 -> 1099 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.pngbin1475 -> 1310 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-hdpi/keyboard_popup_panel_background.9.pngbin4021 -> 1494 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-hdpi/sym_keyboard_delete.pngbin2058 -> 599 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-hdpi/sym_keyboard_feedback_delete.pngbin2150 -> 681 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_settings.pngbin1524 -> 1558 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_shift.pngbin649 -> 677 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.pngbin1764 -> 652 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_shift.pngbin659 -> 640 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_shift_locked.pngbin1485 -> 593 bytes
-rwxr-xr-xjava/res/drawable-hdpi/working.pngbin8636 -> 1180 bytes
-rwxr-xr-xjava/res/drawable-land-hdpi/btn_keyboard_key_normal.9.pngbin737 -> 0 bytes
-rwxr-xr-xjava/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.pngbin941 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/btn_keyboard_key_normal_off_stone.9.pngbin2691 -> 0 bytes
-rwxr-xr-xjava/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.pngbin1076 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/btn_keyboard_key_normal_on_stone.9.pngbin2720 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/btn_keyboard_key_normal_stone.9.pngbin2517 -> 0 bytes
-rwxr-xr-xjava/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.pngbin733 -> 0 bytes
-rwxr-xr-xjava/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.pngbin964 -> 0 bytes
-rwxr-xr-xjava/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.pngbin1055 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/btn_keyboard_key_normal.9.pngbin818 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/btn_keyboard_key_normal_off_stone.9.pngbin2691 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/btn_keyboard_key_normal_on_stone.9.pngbin2720 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/btn_keyboard_key_normal_stone.9.pngbin2517 -> 0 bytes
-rwxr-xr-xjava/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.pngbin740 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_dark_normal.9.pngbin520 -> 385 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off.9.pngbin774 -> 550 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on.9.pngbin1130 -> 813 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_dark_pressed.9.pngbin795 -> 518 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off.9.pngbin1029 -> 700 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on.9.pngbin1332 -> 950 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_light_normal.9.pngbin497 -> 358 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.pngbin642 -> 252 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_light_popup_selected.9.pngbin1514 -> 389 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/btn_keyboard_key_light_pressed.9.pngbin812 -> 530 bytes
-rw-r--r--java/res/drawable-mdpi/cancel.pngbin1259 -> 5792 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/dialog_bubble_step02.9.pngbin1036 -> 1036 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/dialog_bubble_step07.9.pngbin4646 -> 4646 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/ic_subtype_keyboard.pngbin498 -> 498 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/keyboard_dark_background.9.pngbin228 -> 232 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_0.9.pngbin0 -> 379 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_1.9.pngbin0 -> 301 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_2.9.pngbin0 -> 404 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_3.9.pngbin0 -> 413 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_4.9.pngbin0 -> 341 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_5.9.pngbin0 -> 388 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_6.9.pngbin0 -> 413 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_7.9.pngbin0 -> 367 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_8.9.pngbin0 -> 417 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_hint_9.9.pngbin0 -> 417 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_background.9.pngbin1182 -> 764 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/keyboard_key_feedback_more_background.9.pngbin1385 -> 850 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_popup_panel_background.9.pngbin996 -> 1726 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_suggest_strip.9.pngbin220 -> 205 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_suggest_strip_divider.pngbin2846 -> 2812 bytes
-rw-r--r--java/res/drawable-mdpi/mic_slash.pngbin3098 -> 7595 bytes
-rw-r--r--java/res/drawable-mdpi/ok_cancel.pngbin8453 -> 3330 bytes
-rw-r--r--java/res/drawable-mdpi/speak_now_level0.pngbin3263 -> 6738 bytes
-rw-r--r--java/res/drawable-mdpi/speak_now_level1.pngbin3572 -> 6804 bytes
-rw-r--r--java/res/drawable-mdpi/speak_now_level2.pngbin3974 -> 6897 bytes
-rw-r--r--java/res/drawable-mdpi/speak_now_level3.pngbin4270 -> 7077 bytes
-rw-r--r--java/res/drawable-mdpi/speak_now_level4.pngbin4241 -> 7109 bytes
-rw-r--r--java/res/drawable-mdpi/speak_now_level5.pngbin4252 -> 6933 bytes
-rw-r--r--java/res/drawable-mdpi/speak_now_level6.pngbin2201 -> 7050 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_delete.pngbin829 -> 3432 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/sym_keyboard_done.pngbin771 -> 771 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.pngbin694 -> 4640 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_delete.pngbin374 -> 3414 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/sym_keyboard_feedback_done.pngbin498 -> 498 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.pngbin249 -> 3126 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.pngbin249 -> 3121 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_mic.pngbin483 -> 3803 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_numalt.pngbin735 -> 4679 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_return.pngbin381 -> 3613 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/sym_keyboard_feedback_search.pngbin501 -> 3793 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_settings.pngbin729 -> 3839 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_shift.pngbin437 -> 3320 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.pngbin333 -> 3268 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_space.pngbin223 -> 3222 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_tab.pngbin364 -> 3529 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_language_arrows_left.pngbin261 -> 3001 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_language_arrows_right.pngbin257 -> 3032 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_mic.pngbin859 -> 3439 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_return.pngbin866 -> 3380 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/sym_keyboard_search.pngbin1029 -> 3535 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_settings.pngbin1459 -> 3448 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_shift.pngbin1017 -> 3217 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_shift_lock.pngbin0 -> 3188 bytes
-rw-r--r--[-rwxr-xr-x]java/res/drawable-mdpi/sym_keyboard_shift_locked.pngbin799 -> 3188 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_space.pngbin424 -> 3063 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_space_led.9.pngbin1291 -> 365 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_tab.pngbin645 -> 3269 bytes
-rw-r--r--java/res/drawable-mdpi/voice_ime_background.9.pngbin20661 -> 828 bytes
-rw-r--r--java/res/drawable-mdpi/working.pngbin33111 -> 3367 bytes
-rw-r--r--java/res/drawable/btn_keyboard_key_gingerbread_popup.xml21
-rw-r--r--[-rwxr-xr-x]java/res/layout/candidate_preview.xml0
-rw-r--r--[-rwxr-xr-x]java/res/layout/candidates.xml2
-rw-r--r--[-rwxr-xr-x]java/res/layout/input_basic.xml0
-rw-r--r--[-rwxr-xr-x]java/res/layout/input_basic_highcontrast.xml0
-rw-r--r--[-rwxr-xr-x]java/res/layout/input_gingerbread.xml0
-rw-r--r--[-rwxr-xr-x]java/res/layout/input_stone_bold.xml0
-rw-r--r--[-rwxr-xr-x]java/res/layout/input_stone_normal.xml0
-rw-r--r--[-rwxr-xr-x]java/res/layout/input_stone_popup.xml0
-rw-r--r--[-rwxr-xr-x]java/res/layout/input_trans.xml0
-rw-r--r--java/res/layout/key_preview.xml (renamed from java/res/layout/keyboard_key_preview.xml)0
-rw-r--r--[-rwxr-xr-x]java/res/layout/keyboard_popup.xml (renamed from java/res/layout/input_gingerbread_popup.xml)8
-rw-r--r--java/res/layout/keyboard_popup_keyboard.xml39
-rw-r--r--java/res/values-cs/donottranslate-altchars.xml34
-rw-r--r--java/res/values-cs/strings.xml9
-rw-r--r--java/res/values-da/donottranslate-altchars.xml38
-rw-r--r--java/res/values-da/strings.xml9
-rw-r--r--java/res/values-de/donottranslate-altchars.xml31
-rw-r--r--java/res/values-de/strings.xml9
-rw-r--r--java/res/values-el/donottranslate-altchars.xml (renamed from java/res/values-en/donottranslate.xml)13
-rw-r--r--java/res/values-el/strings.xml9
-rw-r--r--java/res/values-en/donottranslate-altchars.xml (renamed from java/res/values-pl/donottranslate.xml)12
-rw-r--r--java/res/values-es-rUS/donottranslate-altchars.xml30
-rw-r--r--java/res/values-es-rUS/strings.xml9
-rw-r--r--java/res/values-es/donottranslate-altchars.xml (renamed from java/res/values-cs/donottranslate.xml)19
-rw-r--r--java/res/values-es/strings.xml9
-rw-r--r--java/res/values-fr/donottranslate-altchars.xml33
-rw-r--r--java/res/values-fr/strings.xml9
-rw-r--r--java/res/values-it/donottranslate-altchars.xml30
-rw-r--r--java/res/values-it/strings.xml9
-rw-r--r--java/res/values-ja/donottranslate-altchars.xml30
-rw-r--r--java/res/values-ja/strings.xml9
-rw-r--r--java/res/values-ko/donottranslate-altchars.xml30
-rw-r--r--java/res/values-ko/strings.xml9
-rw-r--r--java/res/values-land/dimens.xml6
-rw-r--r--java/res/values-nb/donottranslate-altchars.xml37
-rw-r--r--java/res/values-nb/strings.xml9
-rw-r--r--java/res/values-nl/donottranslate-altchars.xml30
-rw-r--r--java/res/values-nl/strings.xml9
-rw-r--r--java/res/values-pl/donottranslate-altchars.xml32
-rw-r--r--java/res/values-pl/strings.xml9
-rw-r--r--java/res/values-pt-rPT/donottranslate-altchars.xml30
-rw-r--r--java/res/values-pt-rPT/strings.xml9
-rw-r--r--java/res/values-pt/donottranslate-altchars.xml30
-rw-r--r--java/res/values-pt/strings.xml9
-rw-r--r--java/res/values-rm/donottranslate-altchars.xml30
-rw-r--r--java/res/values-rm/strings.xml9
-rw-r--r--java/res/values-ru/donottranslate-altchars.xml32
-rw-r--r--java/res/values-ru/strings.xml9
-rw-r--r--java/res/values-sv/donottranslate-altchars.xml38
-rw-r--r--java/res/values-sv/strings.xml9
-rw-r--r--java/res/values-tr/donottranslate-altchars.xml (renamed from java/res/values-tr/donottranslate.xml)12
-rw-r--r--java/res/values-tr/strings.xml9
-rw-r--r--java/res/values-zh-rCN/donottranslate-altchars.xml30
-rw-r--r--java/res/values-zh-rCN/strings.xml9
-rw-r--r--java/res/values-zh-rTW/donottranslate-altchars.xml30
-rw-r--r--java/res/values-zh-rTW/strings.xml9
-rw-r--r--java/res/values/attrs.xml3
-rw-r--r--java/res/values/colors.xml4
-rw-r--r--java/res/values/dimens.xml5
-rw-r--r--java/res/values/donottranslate-altchars.xml46
-rw-r--r--java/res/values/donottranslate.xml26
-rw-r--r--java/res/values/keycodes.xml6
-rw-r--r--java/res/values/strings.xml39
-rw-r--r--java/res/values/styles.xml7
-rw-r--r--java/res/xml-da/kbd_qwerty.xml662
-rw-r--r--java/res/xml-da/kbd_qwerty_black.xml603
-rw-r--r--[-rwxr-xr-x]java/res/xml-de/kbd_qwerty.xml631
-rw-r--r--[-rwxr-xr-x]java/res/xml-de/kbd_qwerty_black.xml573
-rw-r--r--java/res/xml-fr/kbd_qwerty.xml634
-rw-r--r--java/res/xml-fr/kbd_qwerty_black.xml576
-rw-r--r--[-rwxr-xr-x]java/res/xml-iw/kbd_qwerty.xml563
-rw-r--r--[-rwxr-xr-x]java/res/xml-iw/kbd_qwerty_black.xml505
-rw-r--r--java/res/xml-nb/kbd_qwerty.xml660
-rw-r--r--java/res/xml-nb/kbd_qwerty_black.xml602
-rw-r--r--[-rwxr-xr-x]java/res/xml-ru/kbd_qwerty.xml619
-rw-r--r--[-rwxr-xr-x]java/res/xml-ru/kbd_qwerty_black.xml560
-rw-r--r--java/res/xml-sr/kbd_qwerty.xml605
-rw-r--r--java/res/xml-sr/kbd_qwerty_black.xml547
-rw-r--r--java/res/xml-sv/kbd_qwerty.xml661
-rw-r--r--java/res/xml-sv/kbd_qwerty_black.xml604
-rw-r--r--java/res/xml/azerty.xml114
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_phone.xml106
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_phone_black.xml104
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_phone_symbols.xml102
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_phone_symbols_black.xml100
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_qwerty.xml651
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_qwerty_black.xml588
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_symbols.xml290
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_symbols_black.xml278
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_symbols_shift.xml233
-rw-r--r--[-rwxr-xr-x]java/res/xml/kbd_symbols_shift_black.xml221
-rw-r--r--java/res/xml/popup_domains.xml30
-rw-r--r--java/res/xml/popup_punctuation.xml58
-rw-r--r--java/res/xml/popup_smileys.xml78
-rw-r--r--java/res/xml/prefs.xml9
-rwxr-xr-xjava/src/com/android/inputmethod/latin/CandidateView.java5
-rw-r--r--java/src/com/android/inputmethod/latin/Hints.java6
-rw-r--r--java/src/com/android/inputmethod/latin/InputLanguageSelection.java2
-rw-r--r--java/src/com/android/inputmethod/latin/KeyboardSwitcher.java177
-rw-r--r--java/src/com/android/inputmethod/latin/LanguageSwitcher.java2
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java105
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIMESettings.java13
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIMEUtil.java8
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboard.java284
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java235
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboardView.java16
-rw-r--r--java/src/com/android/inputmethod/latin/MiniKeyboardKeyDetector.java59
-rw-r--r--java/src/com/android/inputmethod/latin/PointerTracker.java57
-rw-r--r--java/src/com/android/inputmethod/latin/SharedPreferencesCompat.java54
225 files changed, 10563 insertions, 4059 deletions
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png
index 045e1bba7..0c4820b34 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png
index 14424b4c2..5a20da1db 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png
index f30ad1e7b..4ec703d6c 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png
index 3622e6203..93322d2e2 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png
index 2733f9af7..5a9c722ce 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png
index a351be7a2..99b6cb170 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png
index e9e889c29..7dc59bf82 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png
index 66f83ebd3..e3a77d61b 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png
index 1e6688c91..431c44967 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png
index 46c40a4cb..c150341e3 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_dark_background.9.png b/java/res/drawable-hdpi/keyboard_dark_background.9.png
index 2d5c02080..f315cbdd4 100644
--- a/java/res/drawable-hdpi/keyboard_dark_background.9.png
+++ b/java/res/drawable-hdpi/keyboard_dark_background.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_0.9.png b/java/res/drawable-hdpi/keyboard_hint_0.9.png
new file mode 100644
index 000000000..271264e92
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_0.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_1.9.png b/java/res/drawable-hdpi/keyboard_hint_1.9.png
new file mode 100644
index 000000000..eaf374262
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_1.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_2.9.png b/java/res/drawable-hdpi/keyboard_hint_2.9.png
new file mode 100644
index 000000000..8a1657117
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_2.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_3.9.png b/java/res/drawable-hdpi/keyboard_hint_3.9.png
new file mode 100644
index 000000000..34b501109
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_3.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_4.9.png b/java/res/drawable-hdpi/keyboard_hint_4.9.png
new file mode 100644
index 000000000..d4cc250dd
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_4.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_5.9.png b/java/res/drawable-hdpi/keyboard_hint_5.9.png
new file mode 100644
index 000000000..6a054b42f
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_5.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_6.9.png b/java/res/drawable-hdpi/keyboard_hint_6.9.png
new file mode 100644
index 000000000..66e91400a
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_6.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_7.9.png b/java/res/drawable-hdpi/keyboard_hint_7.9.png
new file mode 100644
index 000000000..5eae24f4f
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_7.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_8.9.png b/java/res/drawable-hdpi/keyboard_hint_8.9.png
new file mode 100644
index 000000000..ea7f512fd
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_8.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_hint_9.9.png b/java/res/drawable-hdpi/keyboard_hint_9.9.png
new file mode 100644
index 000000000..0bf85de93
--- /dev/null
+++ b/java/res/drawable-hdpi/keyboard_hint_9.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png
index dd0ce95c7..762a25704 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png
index e14f25c1a..141d2d6be 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png
index f94bc38ed..d6b2c7936 100755..100644
--- a/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png
+++ b/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_delete.png b/java/res/drawable-hdpi/sym_keyboard_delete.png
index 3c89e2820..459ebcff8 100755..100644
--- a/java/res/drawable-hdpi/sym_keyboard_delete.png
+++ b/java/res/drawable-hdpi/sym_keyboard_delete.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png
index 28dca5a15..8322e8e1d 100755..100644
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png
+++ b/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png b/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png
index b72ec7bc0..8a02be07e 100644
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png
+++ b/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png b/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png
index 5f319f5c6..abf15f8f9 100644
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png
+++ b/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png b/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
index 26000da50..1fd822ea6 100644
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
+++ b/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_shift.png b/java/res/drawable-hdpi/sym_keyboard_shift.png
index f433dca74..bf217d147 100644
--- a/java/res/drawable-hdpi/sym_keyboard_shift.png
+++ b/java/res/drawable-hdpi/sym_keyboard_shift.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_locked.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked.png
index 6cb5372bb..d11b39712 100644
--- a/java/res/drawable-hdpi/sym_keyboard_shift_locked.png
+++ b/java/res/drawable-hdpi/sym_keyboard_shift_locked.png
Binary files differ
diff --git a/java/res/drawable-hdpi/working.png b/java/res/drawable-hdpi/working.png
index 8b51ed116..5ea702307 100755
--- a/java/res/drawable-hdpi/working.png
+++ b/java/res/drawable-hdpi/working.png
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png
deleted file mode 100755
index 603bf0e15..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png
deleted file mode 100755
index 6ddd516e7..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off_stone.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off_stone.9.png
deleted file mode 100644
index 67a204f85..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off_stone.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png
deleted file mode 100755
index 65fdeb353..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on_stone.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on_stone.9.png
deleted file mode 100644
index 63cbe60a3..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on_stone.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_stone.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_stone.9.png
deleted file mode 100644
index 0dd33b429..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_stone.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png
deleted file mode 100755
index 7ec915fe8..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png
deleted file mode 100755
index 439271723..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png
deleted file mode 100755
index c2cc32044..000000000
--- a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png
deleted file mode 100644
index ea2506c6d..000000000
--- a/java/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/btn_keyboard_key_normal_off_stone.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_normal_off_stone.9.png
deleted file mode 100644
index 67a204f85..000000000
--- a/java/res/drawable-land-mdpi/btn_keyboard_key_normal_off_stone.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/btn_keyboard_key_normal_on_stone.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_normal_on_stone.9.png
deleted file mode 100644
index 63cbe60a3..000000000
--- a/java/res/drawable-land-mdpi/btn_keyboard_key_normal_on_stone.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/btn_keyboard_key_normal_stone.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_normal_stone.9.png
deleted file mode 100644
index 0dd33b429..000000000
--- a/java/res/drawable-land-mdpi/btn_keyboard_key_normal_stone.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png
deleted file mode 100755
index 6b5c718c7..000000000
--- a/java/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal.9.png
index 48ebb6183..53fe9c97d 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off.9.png
index 38b8b48aa..649ef9773 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on.9.png
index 147c1b22e..93f7d87c2 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed.9.png
index f8affea64..8560b3ba7 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off.9.png
index 75962e9b0..778abaf24 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on.9.png
index b7dccfe3c..2a23945e5 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_normal.9.png
index 9ccad8020..6af2d8d0c 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_light_normal.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_light_normal.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png
index ce58880db..02d0fcf93 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_light_popup_normal.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_popup_selected.9.png
index fe6c517f9..125ff1335 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_light_popup_selected.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_light_popup_selected.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed.9.png
index d09bd3db3..fdaf69966 100755..100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/cancel.png b/java/res/drawable-mdpi/cancel.png
index 081532bec..713a37875 100644
--- a/java/res/drawable-mdpi/cancel.png
+++ b/java/res/drawable-mdpi/cancel.png
Binary files differ
diff --git a/java/res/drawable-mdpi/dialog_bubble_step02.9.png b/java/res/drawable-mdpi/dialog_bubble_step02.9.png
index d77f85fe2..d77f85fe2 100755..100644
--- a/java/res/drawable-mdpi/dialog_bubble_step02.9.png
+++ b/java/res/drawable-mdpi/dialog_bubble_step02.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/dialog_bubble_step07.9.png b/java/res/drawable-mdpi/dialog_bubble_step07.9.png
index 80f4a0eaa..80f4a0eaa 100755..100644
--- a/java/res/drawable-mdpi/dialog_bubble_step07.9.png
+++ b/java/res/drawable-mdpi/dialog_bubble_step07.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_subtype_keyboard.png b/java/res/drawable-mdpi/ic_subtype_keyboard.png
index 0d7ebd4e5..0d7ebd4e5 100755..100644
--- a/java/res/drawable-mdpi/ic_subtype_keyboard.png
+++ b/java/res/drawable-mdpi/ic_subtype_keyboard.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_dark_background.9.png b/java/res/drawable-mdpi/keyboard_dark_background.9.png
index 2d5c02080..a2136f7de 100755..100644
--- a/java/res/drawable-mdpi/keyboard_dark_background.9.png
+++ b/java/res/drawable-mdpi/keyboard_dark_background.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_0.9.png b/java/res/drawable-mdpi/keyboard_hint_0.9.png
new file mode 100644
index 000000000..271264e92
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_0.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_1.9.png b/java/res/drawable-mdpi/keyboard_hint_1.9.png
new file mode 100644
index 000000000..eaf374262
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_1.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_2.9.png b/java/res/drawable-mdpi/keyboard_hint_2.9.png
new file mode 100644
index 000000000..8a1657117
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_2.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_3.9.png b/java/res/drawable-mdpi/keyboard_hint_3.9.png
new file mode 100644
index 000000000..34b501109
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_3.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_4.9.png b/java/res/drawable-mdpi/keyboard_hint_4.9.png
new file mode 100644
index 000000000..d4cc250dd
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_4.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_5.9.png b/java/res/drawable-mdpi/keyboard_hint_5.9.png
new file mode 100644
index 000000000..6a054b42f
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_5.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_6.9.png b/java/res/drawable-mdpi/keyboard_hint_6.9.png
new file mode 100644
index 000000000..66e91400a
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_6.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_7.9.png b/java/res/drawable-mdpi/keyboard_hint_7.9.png
new file mode 100644
index 000000000..5eae24f4f
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_7.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_8.9.png b/java/res/drawable-mdpi/keyboard_hint_8.9.png
new file mode 100644
index 000000000..ea7f512fd
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_8.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_hint_9.9.png b/java/res/drawable-mdpi/keyboard_hint_9.9.png
new file mode 100644
index 000000000..0bf85de93
--- /dev/null
+++ b/java/res/drawable-mdpi/keyboard_hint_9.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background.9.png
index 2a80f096d..a84c19c39 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_background.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_background.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png
index 29aa285bd..82513aadd 100755..100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_popup_panel_background.9.png b/java/res/drawable-mdpi/keyboard_popup_panel_background.9.png
index 36d75df6f..0d9ab97f0 100644
--- a/java/res/drawable-mdpi/keyboard_popup_panel_background.9.png
+++ b/java/res/drawable-mdpi/keyboard_popup_panel_background.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_suggest_strip.9.png b/java/res/drawable-mdpi/keyboard_suggest_strip.9.png
index 71bf5e8f4..fa6c0feff 100644
--- a/java/res/drawable-mdpi/keyboard_suggest_strip.9.png
+++ b/java/res/drawable-mdpi/keyboard_suggest_strip.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-mdpi/keyboard_suggest_strip_divider.png
index c9413d7c1..363936362 100644
--- a/java/res/drawable-mdpi/keyboard_suggest_strip_divider.png
+++ b/java/res/drawable-mdpi/keyboard_suggest_strip_divider.png
Binary files differ
diff --git a/java/res/drawable-mdpi/mic_slash.png b/java/res/drawable-mdpi/mic_slash.png
index 0b0fb5803..d04b56344 100644
--- a/java/res/drawable-mdpi/mic_slash.png
+++ b/java/res/drawable-mdpi/mic_slash.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ok_cancel.png b/java/res/drawable-mdpi/ok_cancel.png
index 0601d3231..20d10f986 100644
--- a/java/res/drawable-mdpi/ok_cancel.png
+++ b/java/res/drawable-mdpi/ok_cancel.png
Binary files differ
diff --git a/java/res/drawable-mdpi/speak_now_level0.png b/java/res/drawable-mdpi/speak_now_level0.png
index abc845466..5bd13603e 100644
--- a/java/res/drawable-mdpi/speak_now_level0.png
+++ b/java/res/drawable-mdpi/speak_now_level0.png
Binary files differ
diff --git a/java/res/drawable-mdpi/speak_now_level1.png b/java/res/drawable-mdpi/speak_now_level1.png
index 67cb235bf..ccb76b879 100644
--- a/java/res/drawable-mdpi/speak_now_level1.png
+++ b/java/res/drawable-mdpi/speak_now_level1.png
Binary files differ
diff --git a/java/res/drawable-mdpi/speak_now_level2.png b/java/res/drawable-mdpi/speak_now_level2.png
index 1e07f26c6..715f90081 100644
--- a/java/res/drawable-mdpi/speak_now_level2.png
+++ b/java/res/drawable-mdpi/speak_now_level2.png
Binary files differ
diff --git a/java/res/drawable-mdpi/speak_now_level3.png b/java/res/drawable-mdpi/speak_now_level3.png
index 31991daee..725248a25 100644
--- a/java/res/drawable-mdpi/speak_now_level3.png
+++ b/java/res/drawable-mdpi/speak_now_level3.png
Binary files differ
diff --git a/java/res/drawable-mdpi/speak_now_level4.png b/java/res/drawable-mdpi/speak_now_level4.png
index 7363ca892..ff6c50b40 100644
--- a/java/res/drawable-mdpi/speak_now_level4.png
+++ b/java/res/drawable-mdpi/speak_now_level4.png
Binary files differ
diff --git a/java/res/drawable-mdpi/speak_now_level5.png b/java/res/drawable-mdpi/speak_now_level5.png
index 9034908f4..a5d6b89d6 100644
--- a/java/res/drawable-mdpi/speak_now_level5.png
+++ b/java/res/drawable-mdpi/speak_now_level5.png
Binary files differ
diff --git a/java/res/drawable-mdpi/speak_now_level6.png b/java/res/drawable-mdpi/speak_now_level6.png
index 3eaa9bdad..dcdb48d08 100644
--- a/java/res/drawable-mdpi/speak_now_level6.png
+++ b/java/res/drawable-mdpi/speak_now_level6.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_delete.png b/java/res/drawable-mdpi/sym_keyboard_delete.png
index 43a033ead..1b0f3f836 100644
--- a/java/res/drawable-mdpi/sym_keyboard_delete.png
+++ b/java/res/drawable-mdpi/sym_keyboard_delete.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_done.png b/java/res/drawable-mdpi/sym_keyboard_done.png
index c0d6d1394..c0d6d1394 100755..100644
--- a/java/res/drawable-mdpi/sym_keyboard_done.png
+++ b/java/res/drawable-mdpi/sym_keyboard_done.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png b/java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
index bc11cf31a..c556c35cb 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-mdpi/sym_keyboard_feedback_delete.png
index 1edb10b4e..a79f15852 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_delete.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_delete.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_done.png b/java/res/drawable-mdpi/sym_keyboard_feedback_done.png
index 0d7ebd4e5..0d7ebd4e5 100755..100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_done.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_done.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
index e3f80fada..eecb02694 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
index 3cb0d9913..7e10ae3af 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_mic.png b/java/res/drawable-mdpi/sym_keyboard_feedback_mic.png
index 247d5b3a9..3ed0782d3 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_mic.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_mic.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png b/java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png
index aac737615..bc8f1cfc3 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_return.png b/java/res/drawable-mdpi/sym_keyboard_feedback_return.png
index 03d9c9b2d..dd99ff381 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_return.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_return.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_search.png b/java/res/drawable-mdpi/sym_keyboard_feedback_search.png
index f4af341eb..6b8e01d90 100755..100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_search.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_search.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_settings.png b/java/res/drawable-mdpi/sym_keyboard_feedback_settings.png
index 08ba18f28..03bad1843 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_settings.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_settings.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_shift.png b/java/res/drawable-mdpi/sym_keyboard_feedback_shift.png
index 97f4661f8..d56357559 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_shift.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_shift.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png b/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
index 7194b30b0..494524a66 100755..100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_space.png b/java/res/drawable-mdpi/sym_keyboard_feedback_space.png
index 739db6879..36eb60c13 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_space.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_space.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_tab.png b/java/res/drawable-mdpi/sym_keyboard_feedback_tab.png
index 593fa6703..a10dc8fa2 100644
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_tab.png
+++ b/java/res/drawable-mdpi/sym_keyboard_feedback_tab.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png
index 91eda5f2d..7067a8bf5 100644
--- a/java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png
+++ b/java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png
index 62a5beba4..f7a133d9e 100644
--- a/java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png
+++ b/java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_mic.png b/java/res/drawable-mdpi/sym_keyboard_mic.png
index a75809549..e926b3fa6 100644
--- a/java/res/drawable-mdpi/sym_keyboard_mic.png
+++ b/java/res/drawable-mdpi/sym_keyboard_mic.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_return.png b/java/res/drawable-mdpi/sym_keyboard_return.png
index 17f257439..0c10f004a 100644
--- a/java/res/drawable-mdpi/sym_keyboard_return.png
+++ b/java/res/drawable-mdpi/sym_keyboard_return.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_search.png b/java/res/drawable-mdpi/sym_keyboard_search.png
index 127755d6b..614f85f5e 100755..100644
--- a/java/res/drawable-mdpi/sym_keyboard_search.png
+++ b/java/res/drawable-mdpi/sym_keyboard_search.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_settings.png b/java/res/drawable-mdpi/sym_keyboard_settings.png
index f3bcdbcac..ad7618fa0 100644
--- a/java/res/drawable-mdpi/sym_keyboard_settings.png
+++ b/java/res/drawable-mdpi/sym_keyboard_settings.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_shift.png b/java/res/drawable-mdpi/sym_keyboard_shift.png
index 0566e5a88..5109b0471 100644
--- a/java/res/drawable-mdpi/sym_keyboard_shift.png
+++ b/java/res/drawable-mdpi/sym_keyboard_shift.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_lock.png b/java/res/drawable-mdpi/sym_keyboard_shift_lock.png
new file mode 100644
index 000000000..244179c2d
--- /dev/null
+++ b/java/res/drawable-mdpi/sym_keyboard_shift_lock.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_locked.png b/java/res/drawable-mdpi/sym_keyboard_shift_locked.png
index ccaf05d3b..244179c2d 100755..100644
--- a/java/res/drawable-mdpi/sym_keyboard_shift_locked.png
+++ b/java/res/drawable-mdpi/sym_keyboard_shift_locked.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_space.png b/java/res/drawable-mdpi/sym_keyboard_space.png
index 4e6273b89..cbe4a88d6 100644
--- a/java/res/drawable-mdpi/sym_keyboard_space.png
+++ b/java/res/drawable-mdpi/sym_keyboard_space.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_space_led.9.png b/java/res/drawable-mdpi/sym_keyboard_space_led.9.png
index 71da57319..1c1ca2cc7 100644
--- a/java/res/drawable-mdpi/sym_keyboard_space_led.9.png
+++ b/java/res/drawable-mdpi/sym_keyboard_space_led.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_tab.png b/java/res/drawable-mdpi/sym_keyboard_tab.png
index cd9daff08..eddb9a592 100644
--- a/java/res/drawable-mdpi/sym_keyboard_tab.png
+++ b/java/res/drawable-mdpi/sym_keyboard_tab.png
Binary files differ
diff --git a/java/res/drawable-mdpi/voice_ime_background.9.png b/java/res/drawable-mdpi/voice_ime_background.9.png
index 67802492a..9b15bc25f 100644
--- a/java/res/drawable-mdpi/voice_ime_background.9.png
+++ b/java/res/drawable-mdpi/voice_ime_background.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/working.png b/java/res/drawable-mdpi/working.png
index 6246a6d1c..4a930c52d 100644
--- a/java/res/drawable-mdpi/working.png
+++ b/java/res/drawable-mdpi/working.png
Binary files differ
diff --git a/java/res/drawable/btn_keyboard_key_gingerbread_popup.xml b/java/res/drawable/btn_keyboard_key_gingerbread_popup.xml
new file mode 100644
index 000000000..9b6d23beb
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_gingerbread_popup.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_light_popup_selected" />
+ <item android:drawable="@drawable/btn_keyboard_key_light_popup_normal" />
+</selector>
diff --git a/java/res/layout/candidate_preview.xml b/java/res/layout/candidate_preview.xml
index fe2002d46..fe2002d46 100755..100644
--- a/java/res/layout/candidate_preview.xml
+++ b/java/res/layout/candidate_preview.xml
diff --git a/java/res/layout/candidates.xml b/java/res/layout/candidates.xml
index 478e20ba1..b89d44290 100755..100644
--- a/java/res/layout/candidates.xml
+++ b/java/res/layout/candidates.xml
@@ -31,6 +31,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/candidate_strip_height"
android:layout_weight="1"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="@dimen/candidate_strip_fading_edge_length"
/>
</LinearLayout>
diff --git a/java/res/layout/input_basic.xml b/java/res/layout/input_basic.xml
index 168eba691..168eba691 100755..100644
--- a/java/res/layout/input_basic.xml
+++ b/java/res/layout/input_basic.xml
diff --git a/java/res/layout/input_basic_highcontrast.xml b/java/res/layout/input_basic_highcontrast.xml
index 19ff1db11..19ff1db11 100755..100644
--- a/java/res/layout/input_basic_highcontrast.xml
+++ b/java/res/layout/input_basic_highcontrast.xml
diff --git a/java/res/layout/input_gingerbread.xml b/java/res/layout/input_gingerbread.xml
index 8f59cae21..8f59cae21 100755..100644
--- a/java/res/layout/input_gingerbread.xml
+++ b/java/res/layout/input_gingerbread.xml
diff --git a/java/res/layout/input_stone_bold.xml b/java/res/layout/input_stone_bold.xml
index e3588bb22..e3588bb22 100755..100644
--- a/java/res/layout/input_stone_bold.xml
+++ b/java/res/layout/input_stone_bold.xml
diff --git a/java/res/layout/input_stone_normal.xml b/java/res/layout/input_stone_normal.xml
index fd7bf85fc..fd7bf85fc 100755..100644
--- a/java/res/layout/input_stone_normal.xml
+++ b/java/res/layout/input_stone_normal.xml
diff --git a/java/res/layout/input_stone_popup.xml b/java/res/layout/input_stone_popup.xml
index f159625f7..f159625f7 100755..100644
--- a/java/res/layout/input_stone_popup.xml
+++ b/java/res/layout/input_stone_popup.xml
diff --git a/java/res/layout/input_trans.xml b/java/res/layout/input_trans.xml
index 4c0979c04..4c0979c04 100755..100644
--- a/java/res/layout/input_trans.xml
+++ b/java/res/layout/input_trans.xml
diff --git a/java/res/layout/keyboard_key_preview.xml b/java/res/layout/key_preview.xml
index de03506ad..de03506ad 100644
--- a/java/res/layout/keyboard_key_preview.xml
+++ b/java/res/layout/key_preview.xml
diff --git a/java/res/layout/input_gingerbread_popup.xml b/java/res/layout/keyboard_popup.xml
index 0cc953edf..9a52e2cbd 100755..100644
--- a/java/res/layout/input_gingerbread_popup.xml
+++ b/java/res/layout/keyboard_popup.xml
@@ -17,7 +17,6 @@
** limitations under the License.
*/
-->
-
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
@@ -33,7 +32,8 @@
android:layout_height="wrap_content"
android:background="@drawable/keyboard_dark_background"
- latin:keyBackground="@drawable/btn_keyboard_key_gingerbread"
- latin:popupLayout="@layout/input_gingerbread_popup"
- />
+ latin:keyBackground="@drawable/btn_keyboard_key_gingerbread_popup"
+ latin:keyHysteresisDistance="0dip"
+ latin:verticalCorrection="-20dip"
+ />
</LinearLayout>
diff --git a/java/res/layout/keyboard_popup_keyboard.xml b/java/res/layout/keyboard_popup_keyboard.xml
deleted file mode 100644
index 6d3985065..000000000
--- a/java/res/layout/keyboard_popup_keyboard.xml
+++ /dev/null
@@ -1,39 +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.
-*/
--->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:background="@drawable/keyboard_popup_panel_background"
- >
- <com.android.inputmethod.latin.LatinKeyboardBaseView
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- android:id="@+id/LatinKeyboardBaseView"
- android:layout_alignParentBottom="true"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@android:color/transparent"
-
- latin:keyBackground="@drawable/btn_keyboard_key_gingerbread"
- latin:keyPreviewLayout="@layout/keyboard_key_preview"
- latin:popupLayout="@layout/keyboard_popup_keyboard"
- />
-</LinearLayout>
diff --git a/java/res/values-cs/donottranslate-altchars.xml b/java/res/values-cs/donottranslate-altchars.xml
new file mode 100644
index 000000000..d91a0e449
--- /dev/null
+++ b/java/res/values-cs/donottranslate-altchars.xml
@@ -0,0 +1,34 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">áàâãäåæ</string>
+ <string name="alternates_for_e">3éěèêë</string>
+ <string name="alternates_for_i">íìîï8</string>
+ <string name="alternates_for_o">óòôõöœø9</string>
+ <string name="alternates_for_u">ůúùûü7</string>
+ <string name="alternates_for_s">š§ß</string>
+ <string name="alternates_for_n">ňñ</string>
+ <string name="alternates_for_c">čç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+ <string name="alternates_for_d">ď</string>
+ <string name="alternates_for_r">ř4</string>
+ <string name="alternates_for_t">ť5</string>
+ <string name="alternates_for_z">ž</string>
+</resources>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index e0fbc9b92..32a593947 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Pokročilé"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Uloženo"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"áàâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"éěèêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"íìîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"óòôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ůúùûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"š§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ňñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"čç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Podržením klávesy zobrazíte diakritiku (á, ž apod.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Stisknutím klávesy Zpět ↶ můžete klávesnici kdykoli zavřít."</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Přístup k číslům a symbolům"</string>
diff --git a/java/res/values-da/donottranslate-altchars.xml b/java/res/values-da/donottranslate-altchars.xml
new file mode 100644
index 000000000..b1cc8b627
--- /dev/null
+++ b/java/res/values-da/donottranslate-altchars.xml
@@ -0,0 +1,38 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">áàâąã</string>
+ <string name="alternates_for_e">3éèêëę€</string>
+ <string name="alternates_for_i">íìîï8</string>
+ <string name="alternates_for_o">óòôõ9</string>
+ <string name="alternates_for_u">úùûū7</string>
+ <string name="alternates_for_s">śšşß</string>
+ <string name="alternates_for_n">ńñň</string>
+ <string name="alternates_for_c">çćč</string>
+ <string name="alternates_for_y">ýÿü6</string>
+ <string name="alternates_for_d">ðď</string>
+ <string name="alternates_for_r">ř4</string>
+ <string name="alternates_for_t">ťþ5</string>
+ <string name="alternates_for_z">źžż</string>
+ <string name="alternates_for_l">ł</string>
+ <string name="alternates_for_v">w</string>
+ <string name="alternates_for_ae">ä</string>
+ <string name="alternates_for_oe">öœ</string>
+</resources>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index 0b0aff254..ed832b5ec 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avanceret"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Gemt"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Hold en tast nede for at se accenter (ø, ö osv.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Tryk på knappen Tilbage ↶ for når som helst at lukke for tastaturet"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Få adgang til tal og symboler"</string>
diff --git a/java/res/values-de/donottranslate-altchars.xml b/java/res/values-de/donottranslate-altchars.xml
new file mode 100644
index 000000000..df27bce28
--- /dev/null
+++ b/java/res/values-de/donottranslate-altchars.xml
@@ -0,0 +1,31 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">ä</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">ö9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ</string>
+ <string name="alternates_for_z">6</string>
+</resources>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index b0ae766f1..58b741ad7 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Erweitert"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: gespeichert"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"ä"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"ö"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Zur Anzeige von Umlauten (ä, ö usw.) Taste gedrückt halten"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Zum Schließen der Tastatur ↶ drücken"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Auf Zahlen und Symbole zugreifen"</string>
diff --git a/java/res/values-en/donottranslate.xml b/java/res/values-el/donottranslate-altchars.xml
index f5692735a..d3beafade 100644
--- a/java/res/values-en/donottranslate.xml
+++ b/java/res/values-el/donottranslate-altchars.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2008, The Android Open Source Project
+** 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.
@@ -18,14 +18,13 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Accented forms of "e" -->
- <string name="alternates_for_e">èéêë3</string>
- <!-- Accented forms of "i" -->
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
<string name="alternates_for_i">ìíîï8</string>
- <!-- Accented forms of "o" -->
<string name="alternates_for_o">òóôõöœø9</string>
- <!-- Accented forms of "u" -->
<string name="alternates_for_u">ùúûü7</string>
- <!-- Accented forms of "y" -->
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
<string name="alternates_for_y">ýÿ6</string>
</resources>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index 09a98f413..687679c2e 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Σύνθετη"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Αποθηκεύτηκε"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Κρατήστε πατημένο ένα πλήκτρο για να δείτε τους τονισμένους χαρακτήρες (ø, ö, κ.τ.λ.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Πατήστε το πλήκτρο Πίσω ↶ για να κλείσετε το πληκτρολόγιο ανά πάσα στιγμή"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Πρόσβαση σε αριθμούς και σύμβολα"</string>
diff --git a/java/res/values-pl/donottranslate.xml b/java/res/values-en/donottranslate-altchars.xml
index 196e73c1d..083befa19 100644
--- a/java/res/values-pl/donottranslate.xml
+++ b/java/res/values-en/donottranslate-altchars.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2009, The Android Open Source Project
+** 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.
@@ -18,8 +18,10 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Accented characters related to "z" -->
- <string name="alternates_for_z">źż</string>
- <!-- Accented characters related to "l" -->
- <string name="alternates_for_l">ł</string>
+ <string name="alternates_for_a">àáâãäåāæ</string>
+ <string name="alternates_for_e">3èéêëē</string>
+ <string name="alternates_for_i">ìíîïī8</string>
+ <string name="alternates_for_o">òóôõöōœø9</string>
+ <string name="alternates_for_u">ùúûüū7</string>
+ <string name="alternates_for_y">ýÿ6</string>
</resources>
diff --git a/java/res/values-es-rUS/donottranslate-altchars.xml b/java/res/values-es-rUS/donottranslate-altchars.xml
new file mode 100644
index 000000000..d3beafade
--- /dev/null
+++ b/java/res/values-es-rUS/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóôõöœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index effd5b9c2..360b713bd 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avanzado"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Mantén una tecla presionada para ver los acentos (ø, ö, etc.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Pulsa la tecla hacia atrás ↶ para cerrar el teclado en cualquier momento"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Acceder a números y símbolos"</string>
diff --git a/java/res/values-cs/donottranslate.xml b/java/res/values-es/donottranslate-altchars.xml
index 9c2a476a6..721062d2d 100644
--- a/java/res/values-cs/donottranslate.xml
+++ b/java/res/values-es/donottranslate-altchars.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2009, The Android Open Source Project
+** 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.
@@ -18,12 +18,13 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Accented characters related to "d" -->
- <string name="alternates_for_d">ď</string>
- <!-- Accented characters related to "r" -->
- <string name="alternates_for_r">ř</string>
- <!-- Accented characters related to "t" -->
- <string name="alternates_for_t">ť</string>
- <!-- Accented characters related to "z" -->
- <string name="alternates_for_z">ž</string>
+ <string name="alternates_for_a">á</string>
+ <string name="alternates_for_e">3é</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">ó9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
</resources>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index bc98bce92..c1af352ba 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avanzado"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"á"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"é"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"ó"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Mantén pulsada una tecla para ver los caracteres acentuados (ø, ö, etc.)."</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Pulsa la tecla \"Atrás\" ↶ para cerrar el teclado en cualquier momento."</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Acceso a números y símbolos"</string>
diff --git a/java/res/values-fr/donottranslate-altchars.xml b/java/res/values-fr/donottranslate-altchars.xml
new file mode 100644
index 000000000..874d89dab
--- /dev/null
+++ b/java/res/values-fr/donottranslate-altchars.xml
@@ -0,0 +1,33 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">1àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóôõöœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+ <string name="alternates_for_q"></string>
+ <string name="alternates_for_w"></string>
+ <string name="alternates_for_z">2</string>
+</resources>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index a9f03e56e..86014b3d4 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avancé"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : enregistré"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Maintenir une touche enfoncée pour afficher les accents (à, é, etc.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Appuyez sur la touche Retour ↶ pour fermer le clavier à tout moment."</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Accéder aux chiffres et symboles"</string>
diff --git a/java/res/values-it/donottranslate-altchars.xml b/java/res/values-it/donottranslate-altchars.xml
new file mode 100644
index 000000000..23960171b
--- /dev/null
+++ b/java/res/values-it/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àá</string>
+ <string name="alternates_for_e">3èé</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òó9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 2063488be..995fc2946 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avanzate"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : parola salvata"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àá"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èé"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òó"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Tieni premuto un tasto per vedere le lettere con segni diacritici (ø, ö etc.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Premi il tasto Indietro ↶ per chiudere la tastiera"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Accedi a numeri e simboli"</string>
diff --git a/java/res/values-ja/donottranslate-altchars.xml b/java/res/values-ja/donottranslate-altchars.xml
new file mode 100644
index 000000000..d3beafade
--- /dev/null
+++ b/java/res/values-ja/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóôõöœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index e7d3bda7a..26c2cd414 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"高度"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:保存しました"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"キー長押しでアクセント文字を表示(ø、öなど)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"戻るキーでキーボードを閉じます"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"数字と記号"</string>
diff --git a/java/res/values-ko/donottranslate-altchars.xml b/java/res/values-ko/donottranslate-altchars.xml
new file mode 100644
index 000000000..d3beafade
--- /dev/null
+++ b/java/res/values-ko/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóôõöœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index cf8d285e3..0fb53cb1c 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"고급"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: 저장됨"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"키를 길게 누르면 악센트(ø, ö 등)가 표시됩니다."</string>
<string name="tip_dismiss" msgid="7585579046862204381">"키보드를 닫으려면 언제든지 뒤로 키(↶)를 누르세요."</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"숫자 및 기호 사용"</string>
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index 43951552e..ac0e030d4 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -21,5 +21,9 @@
<resources>
<dimen name="key_height">47dip</dimen>
<dimen name="candidate_strip_height">38dip</dimen>
+ <dimen name="candidate_strip_fading_edge_length">63dip</dimen>
<dimen name="spacebar_vertical_correction">2dip</dimen>
-</resources> \ No newline at end of file
+ <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
+ <!-- key_height * 1.7 -->
+ <dimen name="mini_keyboard_slide_allowance">79.9dip</dimen>
+</resources>
diff --git a/java/res/values-nb/donottranslate-altchars.xml b/java/res/values-nb/donottranslate-altchars.xml
new file mode 100644
index 000000000..6257dfc31
--- /dev/null
+++ b/java/res/values-nb/donottranslate-altchars.xml
@@ -0,0 +1,37 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">äáàâąã</string>
+ <string name="alternates_for_e">3éèêëę€</string>
+ <string name="alternates_for_i">íìîï8</string>
+ <string name="alternates_for_o">öóòôõ9</string>
+ <string name="alternates_for_u">üúùûū7</string>
+ <string name="alternates_for_s">śšşß</string>
+ <string name="alternates_for_n">ńñň</string>
+ <string name="alternates_for_c">çćč</string>
+ <string name="alternates_for_y">ýÿ6</string>
+ <string name="alternates_for_d">ðď</string>
+ <string name="alternates_for_r">ř4</string>
+ <string name="alternates_for_t">ťþ5</string>
+ <string name="alternates_for_z">źžż</string>
+ <string name="alternates_for_l">ł</string>
+ <string name="alternates_for_v">w</string>
+ <string name="alternates_for_oe">œ</string>
+</resources>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 7d49c669c..df614adac 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avansert"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Lagret"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"åæáàâãä"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"éèêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"íìîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"ôóòöõœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"üùúû"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"ß§"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Hold en tast nede for å se aksenterte tegn (ø, ö, osv.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Trykk tilbakeknappen, ↶, for å lukke tastaturet"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Få tilgang til tall og symboler"</string>
diff --git a/java/res/values-nl/donottranslate-altchars.xml b/java/res/values-nl/donottranslate-altchars.xml
new file mode 100644
index 000000000..d3beafade
--- /dev/null
+++ b/java/res/values-nl/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóôõöœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index d1cfd53ab..3f663e85e 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Geavanceerd"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: opgeslagen"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Houd een toets ingedrukt om diakritische tekens weer te geven (ø, ö, enzovoort)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Druk op elk gewenst moment op de toets Terug ↶ om het toetsenbord te sluiten"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Toegang tot cijfers en symbolen"</string>
diff --git a/java/res/values-pl/donottranslate-altchars.xml b/java/res/values-pl/donottranslate-altchars.xml
new file mode 100644
index 000000000..da6b5fd5c
--- /dev/null
+++ b/java/res/values-pl/donottranslate-altchars.xml
@@ -0,0 +1,32 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">ą</string>
+ <string name="alternates_for_e">ę3</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">ó9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">ś</string>
+ <string name="alternates_for_n">ń</string>
+ <string name="alternates_for_c">ć</string>
+ <string name="alternates_for_y">ýÿ6</string>
+ <string name="alternates_for_z">źż</string>
+ <string name="alternates_for_l">ł</string>
+</resources>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index cfdfcc69d..b770cc697 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Zaawansowany"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Zapisano"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"ą"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"ę"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"ó"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"ś"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ń"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ć"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Przytrzymaj klawisz, aby wyświetlić znaki akcentowane (ą, ó itp.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Naciśnij klawisz cofania ↶, aby zamknąć klawiaturę w dowolnym momencie"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Przejdź do cyfr i symboli"</string>
diff --git a/java/res/values-pt-rPT/donottranslate-altchars.xml b/java/res/values-pt-rPT/donottranslate-altchars.xml
new file mode 100644
index 000000000..d3beafade
--- /dev/null
+++ b/java/res/values-pt-rPT/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóôõöœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index f79ae8f41..522420845 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avançados"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Mantenha uma tecla premida para ver os acentos (ø, ö, etc.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Prima a tecla de retrocesso ↶ para fechar o teclado a qualquer momento"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Aceder a números e símbolos"</string>
diff --git a/java/res/values-pt/donottranslate-altchars.xml b/java/res/values-pt/donottranslate-altchars.xml
new file mode 100644
index 000000000..d3beafade
--- /dev/null
+++ b/java/res/values-pt/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóôõöœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index 5492da60c..12fb62b03 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avançado"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Salvo"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Segure uma tecla pressionada para ver os acentos (ø, ö, etc.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Apertar a tecla voltar ↶ para fechar o teclado, em qualquer ponto"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Acessar números e símbolos"</string>
diff --git a/java/res/values-rm/donottranslate-altchars.xml b/java/res/values-rm/donottranslate-altchars.xml
new file mode 100644
index 000000000..f17026fa9
--- /dev/null
+++ b/java/res/values-rm/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">òóöôõœø9</string>
+ <string name="alternates_for_u">ùúûü7</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
+</resources>
diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml
index a93cd1f65..08c397202 100644
--- a/java/res/values-rm/strings.xml
+++ b/java/res/values-rm/strings.xml
@@ -58,15 +58,6 @@
<item msgid="4894328801530136615">"Avanzà"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Memorisà"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóöôõœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Tegnair smatgà per mussar ils accents (à, é, etc.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Smatgar ↶ per serrar la tastatura"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Acceder a cifras e simbols"</string>
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-ru/donottranslate-altchars.xml
new file mode 100644
index 000000000..46241a62a
--- /dev/null
+++ b/java/res/values-ru/donottranslate-altchars.xml
@@ -0,0 +1,32 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">èéêë</string>
+ <string name="alternates_for_i">ìíîï</string>
+ <string name="alternates_for_o">òóôõöœø</string>
+ <string name="alternates_for_u">ùúûü</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ</string>
+ <string name="alternates_for_cyrillic_e">ё5</string>
+ <string name="alternates_for_cyrillic_soft_sign">ъ</string>
+</resources>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index 91d9edf17..b35eb9ffb 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Дополнительно"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: сохранено"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Удерживайте клавишу, чтобы увидеть варианты с диакритическими знаками (ø, ö и т.д.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Нажмите клавишу \"Назад\" ↶, чтобы закрыть клавиатуру в любой момент"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Открыть цифры и символы"</string>
diff --git a/java/res/values-sv/donottranslate-altchars.xml b/java/res/values-sv/donottranslate-altchars.xml
new file mode 100644
index 000000000..4d26e6c47
--- /dev/null
+++ b/java/res/values-sv/donottranslate-altchars.xml
@@ -0,0 +1,38 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">áàâąã</string>
+ <string name="alternates_for_e">3éèêëę€</string>
+ <string name="alternates_for_i">íìîï8</string>
+ <string name="alternates_for_o">óòôõ9</string>
+ <string name="alternates_for_u">úùûū7</string>
+ <string name="alternates_for_s">śšşß</string>
+ <string name="alternates_for_n">ńñň</string>
+ <string name="alternates_for_c">çćč</string>
+ <string name="alternates_for_y">ýÿü6</string>
+ <string name="alternates_for_d">ðď</string>
+ <string name="alternates_for_r">ř4</string>
+ <string name="alternates_for_t">ťþ5</string>
+ <string name="alternates_for_z">źžż</string>
+ <string name="alternates_for_l">ł</string>
+ <string name="alternates_for_v">w</string>
+ <string name="alternates_for_a_umlaut">æ</string>
+ <string name="alternates_for_o_umlaut">øœ</string>
+</resources>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 86f375f14..59a0f8447 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Avancerade"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: sparat"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Håll nere en tangent om du vill visa accenter (ø, ö, etc.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Tryck på Tillbaka ↶ om du vill stänga tangentbordet"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"För siffror och symboler"</string>
diff --git a/java/res/values-tr/donottranslate.xml b/java/res/values-tr/donottranslate-altchars.xml
index 2154c16bb..4200d949e 100644
--- a/java/res/values-tr/donottranslate.xml
+++ b/java/res/values-tr/donottranslate-altchars.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2009, The Android Open Source Project
+** 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.
@@ -18,6 +18,14 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Accented characters related to "g" -->
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">3èéêë</string>
+ <string name="alternates_for_i">ìíîï8</string>
+ <string name="alternates_for_o">öòóôõœø9</string>
+ <string name="alternates_for_u">üùúû7</string>
+ <string name="alternates_for_s">ş§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ6</string>
<string name="alternates_for_g">ğ</string>
</resources> \ No newline at end of file
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index 34438f7f6..fbc268bdb 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"Gelişmiş"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Kaydedildi"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"iìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"öòóôõœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"üùúû"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"ş§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"Vurguları görmek için bir tuşu basılı tutun (ø, ö, v.b.)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"Klavyeyi herhangi bir anda kapatmak için geri tuşuna ↶ basın"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"Sayılara ve simgelere erişin"</string>
diff --git a/java/res/values-zh-rCN/donottranslate-altchars.xml b/java/res/values-zh-rCN/donottranslate-altchars.xml
new file mode 100644
index 000000000..c165b11c5
--- /dev/null
+++ b/java/res/values-zh-rCN/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">èéêë</string>
+ <string name="alternates_for_i">ìíîï</string>
+ <string name="alternates_for_o">òóôõöœø</string>
+ <string name="alternates_for_u">ùúûü</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ</string>
+</resources>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index c04f2e02b..05b80ccf5 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"高级"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:已保存"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"按住某个键可看到重音符号(例如 ø、ö 等)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"随时可以通过按后退键 ↶ 关闭键盘"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"访问数字和符号"</string>
diff --git a/java/res/values-zh-rTW/donottranslate-altchars.xml b/java/res/values-zh-rTW/donottranslate-altchars.xml
new file mode 100644
index 000000000..c165b11c5
--- /dev/null
+++ b/java/res/values-zh-rTW/donottranslate-altchars.xml
@@ -0,0 +1,30 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">èéêë</string>
+ <string name="alternates_for_i">ìíîï</string>
+ <string name="alternates_for_o">òóôõöœø</string>
+ <string name="alternates_for_u">ùúûü</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ</string>
+</resources>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index 54d93117e..8a96f8667 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -56,15 +56,6 @@
<item msgid="4894328801530136615">"進階模式"</item>
</string-array>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:已儲存"</string>
- <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string>
- <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string>
- <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string>
- <string name="alternates_for_o" msgid="6151402748321267776">"òóôõöœø"</string>
- <string name="alternates_for_u" msgid="5899096818189442934">"ùúûü"</string>
- <string name="alternates_for_s" msgid="348762530927662188">"§ß"</string>
- <string name="alternates_for_n" msgid="6257322556221886400">"ñ"</string>
- <string name="alternates_for_c" msgid="151699780720639892">"ç"</string>
- <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string>
<string name="tip_long_press" msgid="6101270866284343344">"按住按鍵可查看重音符號 (ø、ö 等)"</string>
<string name="tip_dismiss" msgid="7585579046862204381">"隨時可以透過按後退鍵 ↶ 關閉鍵盤"</string>
<string name="tip_access_symbols" msgid="6344098517525531652">"使用數字和符號"</string>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index e3171eb33..995373e84 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -43,6 +43,9 @@
<!-- Height of the key press feedback popup. -->
<attr name="keyPreviewHeight" format="dimension" />
+ <!-- Hysteresis distance for key debouncing -->
+ <attr name="keyHysteresisDistance" format="dimension" />
+
<!-- Amount to offset the touch Y coordinate by, for bias correction. -->
<attr name="verticalCorrection" format="dimension" />
diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml
index 245648df2..0161589a4 100644
--- a/java/res/values/colors.xml
+++ b/java/res/values/colors.xml
@@ -19,8 +19,8 @@
-->
<resources>
<color name="candidate_normal">#FFFFFFFF</color>
- <color name="candidate_recommended">#FFF07020</color>
- <color name="candidate_other">#ffD06015</color>
+ <color name="candidate_recommended">#FFFCAE00</color>
+ <color name="candidate_other">#FFFCAE00</color>
<color name="latinkeyboard_transparent">#00000000</color>
<color name="latinkeyboard_bar_language_shadow_white">#80000000</color>
<color name="latinkeyboard_bar_language_shadow_black">#80FFFFFF</color>
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 39dce9db0..b399af489 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -22,10 +22,13 @@
<dimen name="key_height">54dip</dimen>
<dimen name="bubble_pointer_offset">22dip</dimen>
<dimen name="candidate_strip_height">42dip</dimen>
+ <dimen name="candidate_strip_fading_edge_length">63dip</dimen>
<dimen name="spacebar_vertical_correction">4dip</dimen>
<!-- If the screen height in landscape is larger than the below value, then the keyboard
will not go into extract (fullscreen) mode. -->
<dimen name="max_height_for_fullscreen">2.5in</dimen>
<dimen name="key_text_size">22sp</dimen>
- <dimen name="key_debounce_hysteresis_distance">0.05in</dimen>
+ <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
+ <!-- key_height * 1.7 -->
+ <dimen name="mini_keyboard_slide_allowance">91.8dip</dimen>
</resources>
diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-altchars.xml
new file mode 100644
index 000000000..bba7282c9
--- /dev/null
+++ b/java/res/values/donottranslate-altchars.xml
@@ -0,0 +1,46 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="alternates_for_a">àáâãäåæ</string>
+ <string name="alternates_for_e">èéêë</string>
+ <string name="alternates_for_i">ìíîï</string>
+ <string name="alternates_for_o">òóôõöœø</string>
+ <string name="alternates_for_u">ùúûü</string>
+ <string name="alternates_for_s">§ß</string>
+ <string name="alternates_for_n">ñ</string>
+ <string name="alternates_for_c">ç</string>
+ <string name="alternates_for_y">ýÿ</string>
+ <string name="alternates_for_q">1</string>
+ <string name="alternates_for_w">2</string>
+ <string name="alternates_for_d"></string>
+ <string name="alternates_for_r">4</string>
+ <string name="alternates_for_t">5</string>
+ <string name="alternates_for_z"></string>
+ <string name="alternates_for_l"></string>
+ <string name="alternates_for_g"></string>
+ <string name="alternates_for_p">0</string>
+ <string name="alternates_for_v"></string>
+ <string name="alternates_for_ae"></string>
+ <string name="alternates_for_oe"></string>
+ <string name="alternates_for_cyrillic_e"></string>
+ <string name="alternates_for_cyrillic_soft_sign"></string>
+ <string name="alternates_for_a_umlaut"></string>
+ <string name="alternates_for_o_umlaut"></string>
+</resources>
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index 97b645c4a..936609924 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -24,22 +24,12 @@
<string name="sentence_separators">.,!?)</string>
<!-- Symbols that are suggested between words -->
<string name="suggested_punctuations">!?,\u0022\u0027:()-/@_</string>
- <!-- Accented characters related to "q" -->
- <string name="alternates_for_q">1</string>
- <!-- Accented characters related to "w" -->
- <string name="alternates_for_w">2</string>
- <!-- Accented characters related to "d" -->
- <string name="alternates_for_d"></string>
- <!-- Accented characters related to "r" -->
- <string name="alternates_for_r">4</string>
- <!-- Accented characters related to "t" -->
- <string name="alternates_for_t">5</string>
- <!-- Accented characters related to "z" -->
- <string name="alternates_for_z"></string>
- <!-- Accented characters related to "l" -->
- <string name="alternates_for_l"></string>
- <!-- Accented characters related to "g" -->
- <string name="alternates_for_g"></string>
- <!-- Accented characters related to "p" -->
- <string name="alternates_for_p">0</string>
+
+ <!-- Option values to show/hide the settings key in onscreen keyboard -->
+ <!-- Automatically decide to show or hide the settings key -->
+ <string name="settings_key_mode_auto" translatable="false">0</string>
+ <!-- Always show the settings key -->
+ <string name="settings_key_mode_always_show" translatable="false">1</string>
+ <!-- Always hide the settings key -->
+ <string name="settings_key_mode_always_hide" translatable="false">2</string>
</resources>
diff --git a/java/res/values/keycodes.xml b/java/res/values/keycodes.xml
index 3f03dd665..9dded508a 100644
--- a/java/res/values/keycodes.xml
+++ b/java/res/values/keycodes.xml
@@ -19,6 +19,12 @@
-->
<resources>
+ <integer name="key_tab">9</integer>
+ <integer name="key_return">10</integer>
+ <integer name="key_space">32</integer>
+ <integer name="key_shift">-1</integer>
+ <integer name="key_symbol">-2</integer>
+ <integer name="key_delete">-5</integer>
<!-- Keycode for F1 (function) key. This one switches between language switch & comma/.com -->
<integer name="key_settings">-100</integer>
<integer name="key_f1">-103</integer>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index d2febb566..3a3e1c9c2 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -91,6 +91,27 @@
<!-- Description for auto completion -->
<string name="auto_complete_summary">Spacebar and punctuation automatically insert highlighted word</string>
+ <!-- Option to show/hide the settings key -->
+ <string name="prefs_settings_key">Show settings key</string>
+ <!-- Array of the settings key mode values -->
+ <string-array name="settings_key_modes_values" translatable="false">
+ <item>@string/settings_key_mode_auto</item>
+ <item>@string/settings_key_mode_always_show</item>
+ <item>@string/settings_key_mode_always_hide</item>
+ </string-array>
+ <!-- Option to automatically decide to show/hide the settings key -->
+ <string name="settings_key_mode_auto_name">Automatic</string>
+ <!-- Option to always show the settings key -->
+ <string name="settings_key_mode_always_show_name">Always show</string>
+ <!-- Option to always hide the settings key -->
+ <string name="settings_key_mode_always_hide_name">Always hide</string>
+ <!-- Array of the settings key modes -->
+ <string-array name="settings_key_modes">
+ <item>@string/settings_key_mode_auto_name</item>
+ <item>@string/settings_key_mode_always_show_name</item>
+ <item>@string/settings_key_mode_always_hide_name</item>
+ </string-array>
+
<!-- Option to enable bigram completion -->
<string name="bigram_suggestion">Bigram Suggestions</string>
<!-- Description for auto completion -->
@@ -118,24 +139,6 @@
<!-- Indicates that a word has been added to the dictionary -->
<string name="added_word"><xliff:g id="word">%s</xliff:g> : Saved</string>
- <!-- Accented forms of "a" -->
- <string name="alternates_for_a">àáâãäåæ</string>
- <!-- Accented forms of "e" -->
- <string name="alternates_for_e">èéêë</string>
- <!-- Accented forms of "i" -->
- <string name="alternates_for_i">ìíîï</string>
- <!-- Accented forms of "o" -->
- <string name="alternates_for_o">òóôõöœø</string>
- <!-- Accented forms of "u" -->
- <string name="alternates_for_u">ùúûü</string>
- <!-- Letters associated with "s" -->
- <string name="alternates_for_s">§ß</string>
- <!-- Accented forms of "n" -->
- <string name="alternates_for_n">ñ</string>
- <!-- Accented forms of "c" -->
- <string name="alternates_for_c">ç</string>
- <!-- Accented forms of "y" -->
- <string name="alternates_for_y">ýÿ</string>
<!-- Tip to long press on keys -->
<string name="tip_long_press">Hold a key down to see accents (ø, ö, etc.)</string>
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 16478c883..60fffe873 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -21,11 +21,12 @@
<item name="keyBackground">@drawable/btn_keyboard_key</item>
<item name="keyTextSize">@dimen/key_text_size</item>
<item name="keyTextColor">#FFFFFFFF</item>
- <item name="keyPreviewLayout">@layout/keyboard_key_preview</item>
- <item name="keyPreviewOffset">5dip</item>
+ <item name="keyPreviewLayout">@layout/key_preview</item>
+ <item name="keyPreviewOffset">0dip</item>
<item name="keyPreviewHeight">80dip</item>
<item name="labelTextSize">14sp</item>
- <item name="popupLayout">@layout/keyboard_popup_keyboard</item>
+ <item name="popupLayout">@layout/keyboard_popup</item>
+ <item name="keyHysteresisDistance">0.05in</item>
<item name="verticalCorrection">-10dip</item>
<item name="shadowColor">#BB000000</item>
<item name="shadowRadius">2.75</item>
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index 57b013a9d..a17d604bf 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -24,187 +24,511 @@
Just a copy of the Norwegian layout, with æ/ø switched.
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="éèêëę€"/>
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ř"/>
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ťþ"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ýÿü"/>
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="úùûū"/>
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="íìîï"/>
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="óòôõ"/>
- <Key android:codes="112" android:keyLabel="p"/>
- <Key android:keyLabel="å"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p" />
+ <Key
+ android:keyLabel="å"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="áàâąã"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="śšşß"/>
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ðď"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ł"/>
- <Key android:keyLabel="æ"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ä"/>
- <Key android:keyLabel="ø"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="öœ"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="æ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_ae" />
+ <Key
+ android:keyLabel="ø"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_oe"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="10%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="źžż"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="çćč"/>
- <Key android:codes="118" android:keyLabel="v"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="w"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ńñň"/>
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Row
+ android:keyWidth="10%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-da/kbd_qwerty_black.xml b/java/res/xml-da/kbd_qwerty_black.xml
index bde77d6dc..bab7db5d3 100644
--- a/java/res/xml-da/kbd_qwerty_black.xml
+++ b/java/res/xml-da/kbd_qwerty_black.xml
@@ -24,186 +24,453 @@
Just a copy of the Norwegian layout, with æ/ø switched.
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="éèêëę€"/>
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ř"/>
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ťþ"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ýÿü"/>
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="úùûū"/>
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="íìîï"/>
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="óòôõ"/>
- <Key android:codes="112" android:keyLabel="p"/>
- <Key android:keyLabel="å"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p" />
+ <Key
+ android:keyLabel="å"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="áàâąã"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="śšşß"/>
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ðď"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ł"/>
- <Key android:keyLabel="æ"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ä"/>
- <Key android:keyLabel="ø"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="öœ"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="æ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_ae" />
+ <Key
+ android:keyLabel="ø"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_oe"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="10%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="źžż"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="çćč"/>
- <Key android:codes="118" android:keyLabel="v"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="w"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ńñň"/>
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Row
+ android:keyWidth="10%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 52ac24210..167f84c62 100755..100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -18,173 +18,496 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_e"
- />
- <Key android:codes="114" android:keyLabel="r"/>
- <Key android:codes="116" android:keyLabel="t"/>
- <Key android:codes="122" android:keyLabel="z" />
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_u"
- />
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_i"
- />
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_o"
- />
- <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_a"
- android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_s"
- />
- <Key android:codes="100" android:keyLabel="d"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_y"
- />
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_c"
- />
- <Key android:codes="118" android:keyLabel="v"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_n"
- />
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-de/kbd_qwerty_black.xml b/java/res/xml-de/kbd_qwerty_black.xml
index 5e7261ae7..0ec39b9c8 100755..100644
--- a/java/res/xml-de/kbd_qwerty_black.xml
+++ b/java/res/xml-de/kbd_qwerty_black.xml
@@ -18,173 +18,438 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_e"
- />
- <Key android:codes="114" android:keyLabel="r"/>
- <Key android:codes="116" android:keyLabel="t"/>
- <Key android:codes="122" android:keyLabel="z" />
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_u"
- />
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_i"
- />
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_o"
- />
- <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_a"
- android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_s"
- />
- <Key android:codes="100" android:keyLabel="d"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_y"
- />
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_c"
- />
- <Key android:codes="118" android:keyLabel="v"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_n"
- />
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index b4da9365a..a86ae1e1c 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -18,175 +18,497 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_a"
- android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_e"
- />
- <Key android:codes="114" android:keyLabel="r"/>
- <Key android:codes="116" android:keyLabel="t"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_y"
- />
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_u"
- />
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_i"
- />
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_o"
- />
- <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_s"
- />
- <Key android:codes="100" android:keyLabel="d"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"/>
- <Key android:codes="109" android:keyLabel="m" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="m"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_c"
- />
- <Key android:codes="118" android:keyLabel="v"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_n"
- />
- <!--Key android:codes="233,224,232,234" android:keyLabel="é"/-->
- <Key android:keyLabel="\'"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="\'" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-fr/kbd_qwerty_black.xml b/java/res/xml-fr/kbd_qwerty_black.xml
index c49d98212..f01c3a811 100644
--- a/java/res/xml-fr/kbd_qwerty_black.xml
+++ b/java/res/xml-fr/kbd_qwerty_black.xml
@@ -18,175 +18,439 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_a"
- android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_e"
- />
- <Key android:codes="114" android:keyLabel="r"/>
- <Key android:codes="116" android:keyLabel="t"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_y"
- />
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_u"
- />
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_i"
- />
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_o"
- />
- <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_s"
- />
- <Key android:codes="100" android:keyLabel="d"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"/>
- <Key android:codes="109" android:keyLabel="m" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="m"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_c"
- />
- <Key android:codes="118" android:keyLabel="v"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_n"
- />
- <!--Key android:codes="233,224,232,234" android:keyLabel="é"/-->
- <Key android:keyLabel="\'"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="\'" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index c6b2056e2..c0b133976 100755..100644
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -18,148 +18,455 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:keyLabel="ק"
- android:horizontalGap="5%p"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ר"/>
- <Key android:keyLabel="א"/>
- <Key android:keyLabel="ט"/>
- <Key android:keyLabel="ו"/>
- <Key android:keyLabel="ן"/>
- <Key android:keyLabel="ם"/>
- <Key android:keyLabel="פ"/>
- <Key android:codes="-5"
- android:horizontalGap="1.25%p"
- android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="13.75%p" android:keyEdgeFlags="right"
+ <Key
+ android:keyLabel="ק"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ר" />
+ <Key
+ android:keyLabel="א" />
+ <Key
+ android:keyLabel="ט" />
+ <Key
+ android:keyLabel="ו" />
+ <Key
+ android:keyLabel="ן" />
+ <Key
+ android:keyLabel="ם" />
+ <Key
+ android:keyLabel="פ" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ android:keyWidth="13.75%p"
+ android:isModifier="true"
+ android:horizontalGap="1.25%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="ש" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ד"/>
- <Key android:keyLabel="ג"/>
- <Key android:keyLabel="כ"/>
- <Key android:keyLabel="ע"/>
- <Key android:keyLabel="י"/>
- <Key android:keyLabel="ח"/>
- <Key android:keyLabel="ל"/>
- <Key android:keyLabel="ך"/>
- <Key android:keyLabel="ף" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="ש"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ד" />
+ <Key
+ android:keyLabel="ג" />
+ <Key
+ android:keyLabel="כ" />
+ <Key
+ android:keyLabel="ע" />
+ <Key
+ android:keyLabel="י" />
+ <Key
+ android:keyLabel="ח" />
+ <Key
+ android:keyLabel="ל" />
+ <Key
+ android:keyLabel="ך" />
+ <Key
+ android:keyLabel="ף"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="ז" android:horizontalGap="5%p" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ס"/>
- <Key android:keyLabel="ב"/>
- <Key android:keyLabel="ה"/>
- <Key android:keyLabel="נ"/>
- <Key android:keyLabel="מ"/>
- <Key android:keyLabel="צ"/>
- <Key android:keyLabel="ת"/>
- <Key android:keyLabel="ץ" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="ז"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ס" />
+ <Key
+ android:keyLabel="ב" />
+ <Key
+ android:keyLabel="ה" />
+ <Key
+ android:keyLabel="נ" />
+ <Key
+ android:keyLabel="מ" />
+ <Key
+ android:keyLabel="צ" />
+ <Key
+ android:keyLabel="ת" />
+ <Key
+ android:keyLabel="ץ"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
-
diff --git a/java/res/xml-iw/kbd_qwerty_black.xml b/java/res/xml-iw/kbd_qwerty_black.xml
index 8b64c82ad..b0ed519d2 100755..100644
--- a/java/res/xml-iw/kbd_qwerty_black.xml
+++ b/java/res/xml-iw/kbd_qwerty_black.xml
@@ -18,148 +18,397 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:keyLabel="ק"
- android:horizontalGap="5%p"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ר"/>
- <Key android:keyLabel="א"/>
- <Key android:keyLabel="ט"/>
- <Key android:keyLabel="ו"/>
- <Key android:keyLabel="ן"/>
- <Key android:keyLabel="ם"/>
- <Key android:keyLabel="פ"/>
- <Key android:codes="-5"
- android:horizontalGap="1.25%p"
- android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="13.75%p" android:keyEdgeFlags="right"
+ <Key
+ android:keyLabel="ק"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ר" />
+ <Key
+ android:keyLabel="א" />
+ <Key
+ android:keyLabel="ט" />
+ <Key
+ android:keyLabel="ו" />
+ <Key
+ android:keyLabel="ן" />
+ <Key
+ android:keyLabel="ם" />
+ <Key
+ android:keyLabel="פ" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ android:keyWidth="13.75%p"
+ android:horizontalGap="1.25%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="ש" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ד"/>
- <Key android:keyLabel="ג"/>
- <Key android:keyLabel="כ"/>
- <Key android:keyLabel="ע"/>
- <Key android:keyLabel="י"/>
- <Key android:keyLabel="ח"/>
- <Key android:keyLabel="ל"/>
- <Key android:keyLabel="ך"/>
- <Key android:keyLabel="ף" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="ש"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ד" />
+ <Key
+ android:keyLabel="ג" />
+ <Key
+ android:keyLabel="כ" />
+ <Key
+ android:keyLabel="ע" />
+ <Key
+ android:keyLabel="י" />
+ <Key
+ android:keyLabel="ח" />
+ <Key
+ android:keyLabel="ל" />
+ <Key
+ android:keyLabel="ך" />
+ <Key
+ android:keyLabel="ף"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="ז" android:horizontalGap="5%p" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ס"/>
- <Key android:keyLabel="ב"/>
- <Key android:keyLabel="ה"/>
- <Key android:keyLabel="נ"/>
- <Key android:keyLabel="מ"/>
- <Key android:keyLabel="צ"/>
- <Key android:keyLabel="ת"/>
- <Key android:keyLabel="ץ" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="ז"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ס" />
+ <Key
+ android:keyLabel="ב" />
+ <Key
+ android:keyLabel="ה" />
+ <Key
+ android:keyLabel="נ" />
+ <Key
+ android:keyLabel="מ" />
+ <Key
+ android:keyLabel="צ" />
+ <Key
+ android:keyLabel="ת" />
+ <Key
+ android:keyLabel="ץ"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
-
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index 7bc02ebe4..89d45468c 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -24,185 +24,511 @@
Just a copy of the Swedish layout, with ä/æ and ö/ø switched.
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="éèêëę€"/>
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ř"/>
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ťþ"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ýÿ"/>
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="üúùûū"/>
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="íìîï"/>
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="öóòôõ"/>
- <Key android:codes="112" android:keyLabel="p"/>
- <Key android:keyLabel="å"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p" />
+ <Key
+ android:keyLabel="å"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="äáàâąã"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="śšşß"/>
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ðď"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ł"/>
- <Key android:keyLabel="ø"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="œ"/>
- <Key android:keyLabel="æ"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="ø"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_oe" />
+ <Key
+ android:keyLabel="æ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_ae"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="10%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="źžż"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="çćč"/>
- <Key android:codes="118" android:keyLabel="v"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="w"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ńñň"/>
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Row
+ android:keyWidth="10%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-nb/kbd_qwerty_black.xml b/java/res/xml-nb/kbd_qwerty_black.xml
index e87452165..8fbfead79 100644
--- a/java/res/xml-nb/kbd_qwerty_black.xml
+++ b/java/res/xml-nb/kbd_qwerty_black.xml
@@ -24,185 +24,453 @@
Just a copy of the Swedish layout, with ä/æ and ö/ø switched.
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="éèêëę€"/>
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ř"/>
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ťþ"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ýÿ"/>
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="üúùûū"/>
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="íìîï"/>
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="öóòôõ"/>
- <Key android:codes="112" android:keyLabel="p"/>
- <Key android:keyLabel="å"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p" />
+ <Key
+ android:keyLabel="å"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="äáàâąã"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="śšşß"/>
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ðď"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ł"/>
- <Key android:keyLabel="ø"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="œ"/>
- <Key android:keyLabel="æ"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="ø"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_oe" />
+ <Key
+ android:keyLabel="æ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_ae"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="10%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="źžż"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="çćč"/>
- <Key android:codes="118" android:keyLabel="v"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="w"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ńñň"/>
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Row
+ android:keyWidth="10%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index 41d23b7d5..1877f838e 100755..100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -18,160 +18,495 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:keyLabel="й" android:keyWidth="8.75%p"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ц"/>
- <Key android:keyLabel="у"/>
- <Key android:keyLabel="к"/>
- <Key android:keyLabel="е"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ё" />
- <Key android:keyLabel="н"/>
- <Key android:keyLabel="г"/>
- <Key android:keyLabel="ш"/>
- <Key android:keyLabel="щ"/>
- <Key android:keyLabel="з"/>
- <Key android:keyLabel="х" android:keyWidth="8.75%p"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="й"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="1"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ц"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="2" />
+ <Key
+ android:keyLabel="у"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="3" />
+ <Key
+ android:keyLabel="к"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="4" />
+ <Key
+ android:keyLabel="е"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_cyrillic_e" />
+ <Key
+ android:keyLabel="н"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="6" />
+ <Key
+ android:keyLabel="г"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="7" />
+ <Key
+ android:keyLabel="ш"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="8" />
+ <Key
+ android:keyLabel="щ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="9" />
+ <Key
+ android:keyLabel="з"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="0" />
+ <Key
+ android:keyLabel="х"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="ф" android:keyWidth="8.75%p"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ы"/>
- <Key android:keyLabel="в"/>
- <Key android:keyLabel="а"/>
- <Key android:keyLabel="п"/>
- <Key android:keyLabel="р"/>
- <Key android:keyLabel="о"/>
- <Key android:keyLabel="л"/>
- <Key android:keyLabel="д"/>
- <Key android:keyLabel="ж"/>
- <Key android:keyLabel="э" android:keyWidth="8.75%p"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="ф"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ы" />
+ <Key
+ android:keyLabel="в" />
+ <Key
+ android:keyLabel="а" />
+ <Key
+ android:keyLabel="п" />
+ <Key
+ android:keyLabel="р" />
+ <Key
+ android:keyLabel="о" />
+ <Key
+ android:keyLabel="л" />
+ <Key
+ android:keyLabel="д" />
+ <Key
+ android:keyLabel="ж" />
+ <Key
+ android:keyLabel="э"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="8.5%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="11.75%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="я"/>
- <Key android:keyLabel="ч"/>
- <Key android:keyLabel="с"/>
- <Key android:keyLabel="м"/>
- <Key android:keyLabel="и"/>
- <Key android:keyLabel="т"/>
- <Key android:keyLabel="ь"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ъ" />
- <Key android:keyLabel="б"/>
- <Key android:keyLabel="ю"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="11.75%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Row
+ android:keyWidth="8.5%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="11.75%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="я" />
+ <Key
+ android:keyLabel="ч" />
+ <Key
+ android:keyLabel="с" />
+ <Key
+ android:keyLabel="м" />
+ <Key
+ android:keyLabel="и" />
+ <Key
+ android:keyLabel="т" />
+ <Key
+ android:keyLabel="ь"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_cyrillic_soft_sign" />
+ <Key
+ android:keyLabel="б" />
+ <Key
+ android:keyLabel="ю" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="11.75%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
-
diff --git a/java/res/xml-ru/kbd_qwerty_black.xml b/java/res/xml-ru/kbd_qwerty_black.xml
index 241c8524e..ebf78ce97 100755..100644
--- a/java/res/xml-ru/kbd_qwerty_black.xml
+++ b/java/res/xml-ru/kbd_qwerty_black.xml
@@ -18,159 +18,437 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:keyLabel="й" android:keyWidth="8.75%p"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ц"/>
- <Key android:keyLabel="у"/>
- <Key android:keyLabel="к"/>
- <Key android:keyLabel="е"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ё" />
- <Key android:keyLabel="н"/>
- <Key android:keyLabel="г"/>
- <Key android:keyLabel="ш"/>
- <Key android:keyLabel="щ"/>
- <Key android:keyLabel="з"/>
- <Key android:keyLabel="х" android:keyWidth="8.75%p"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="й"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="1"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ц"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="2" />
+ <Key
+ android:keyLabel="у"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="3" />
+ <Key
+ android:keyLabel="к"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="4" />
+ <Key
+ android:keyLabel="е"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_cyrillic_e" />
+ <Key
+ android:keyLabel="н"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="6" />
+ <Key
+ android:keyLabel="г"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="7" />
+ <Key
+ android:keyLabel="ш"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="8" />
+ <Key
+ android:keyLabel="щ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="9" />
+ <Key
+ android:keyLabel="з"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="0" />
+ <Key
+ android:keyLabel="х"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="ф" android:keyWidth="8.75%p"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ы"/>
- <Key android:keyLabel="в"/>
- <Key android:keyLabel="а"/>
- <Key android:keyLabel="п"/>
- <Key android:keyLabel="р"/>
- <Key android:keyLabel="о"/>
- <Key android:keyLabel="л"/>
- <Key android:keyLabel="д"/>
- <Key android:keyLabel="ж"/>
- <Key android:keyLabel="э" android:keyWidth="8.75%p"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="ф"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ы" />
+ <Key
+ android:keyLabel="в" />
+ <Key
+ android:keyLabel="а" />
+ <Key
+ android:keyLabel="п" />
+ <Key
+ android:keyLabel="р" />
+ <Key
+ android:keyLabel="о" />
+ <Key
+ android:keyLabel="л" />
+ <Key
+ android:keyLabel="д" />
+ <Key
+ android:keyLabel="ж" />
+ <Key
+ android:keyLabel="э"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="8.5%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="11.75%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="я"/>
- <Key android:keyLabel="ч"/>
- <Key android:keyLabel="с"/>
- <Key android:keyLabel="м"/>
- <Key android:keyLabel="и"/>
- <Key android:keyLabel="т"/>
- <Key android:keyLabel="ь"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ъ" />
- <Key android:keyLabel="б"/>
- <Key android:keyLabel="ю"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="11.75%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Row
+ android:keyWidth="8.5%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="11.75%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="я" />
+ <Key
+ android:keyLabel="ч" />
+ <Key
+ android:keyLabel="с" />
+ <Key
+ android:keyLabel="м" />
+ <Key
+ android:keyLabel="и" />
+ <Key
+ android:keyLabel="т" />
+ <Key
+ android:keyLabel="ь"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_cyrillic_soft_sign" />
+ <Key
+ android:keyLabel="б" />
+ <Key
+ android:keyLabel="ю" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="11.75%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 78852fc22..ba8bf8c7d 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -19,154 +19,487 @@
-->
<!-- Serbian keyboard layout, based on the X11 layout for Serbian -->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:keyLabel="љ"
- android:keyEdgeFlags="left" />
- <Key android:keyLabel="њ" />
- <Key android:keyLabel="е" />
- <Key android:keyLabel="р" />
- <Key android:keyLabel="т" />
- <Key android:keyLabel="з" />
- <Key android:keyLabel="у" />
- <Key android:keyLabel="и" />
- <Key android:keyLabel="о" />
- <Key android:keyLabel="п" />
- <Key android:keyLabel="ш"
- android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel="љ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="1"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="њ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="2" />
+ <Key
+ android:keyLabel="е"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="3" />
+ <Key
+ android:keyLabel="р"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="4" />
+ <Key
+ android:keyLabel="т"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="5" />
+ <Key
+ android:keyLabel="з"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="6" />
+ <Key
+ android:keyLabel="у"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="7" />
+ <Key
+ android:keyLabel="и"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="8" />
+ <Key
+ android:keyLabel="о"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="9" />
+ <Key
+ android:keyLabel="п"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="0" />
+ <Key
+ android:keyLabel="ш"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="а"
- android:keyEdgeFlags="left" />
- <Key android:keyLabel="с" />
- <Key android:keyLabel="д" />
- <Key android:keyLabel="ф" />
- <Key android:keyLabel="г" />
- <Key android:keyLabel="х" />
- <Key android:keyLabel="ј" />
- <Key android:keyLabel="к" />
- <Key android:keyLabel="л" />
- <Key android:keyLabel="ч" />
- <Key android:keyLabel="ћ" />
- <Key android:keyLabel="ђ"
- android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel="а"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="с" />
+ <Key
+ android:keyLabel="д" />
+ <Key
+ android:keyLabel="ф" />
+ <Key
+ android:keyLabel="г" />
+ <Key
+ android:keyLabel="х" />
+ <Key
+ android:keyLabel="ј" />
+ <Key
+ android:keyLabel="к" />
+ <Key
+ android:keyLabel="л" />
+ <Key
+ android:keyLabel="ч" />
+ <Key
+ android:keyLabel="ћ" />
+ <Key
+ android:keyLabel="ђ"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="8.5%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="11.75%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ж" />
- <Key android:keyLabel="џ" />
- <Key android:keyLabel="ц" />
- <Key android:keyLabel="в" />
- <Key android:keyLabel="б" />
- <Key android:keyLabel="н" />
- <Key android:keyLabel="м" />
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="11.75%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Row
+ android:keyWidth="8.5%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="11.75%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ж" />
+ <Key
+ android:keyLabel="џ" />
+ <Key
+ android:keyLabel="ц" />
+ <Key
+ android:keyLabel="в" />
+ <Key
+ android:keyLabel="б" />
+ <Key
+ android:keyLabel="н" />
+ <Key
+ android:keyLabel="м" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="11.75%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-sr/kbd_qwerty_black.xml b/java/res/xml-sr/kbd_qwerty_black.xml
index c61e0ce2a..1bfb58e48 100644
--- a/java/res/xml-sr/kbd_qwerty_black.xml
+++ b/java/res/xml-sr/kbd_qwerty_black.xml
@@ -19,154 +19,429 @@
-->
<!-- Serbian keyboard layout, based on the X11 layout for Serbian -->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:keyLabel="љ"
- android:keyEdgeFlags="left" />
- <Key android:keyLabel="њ" />
- <Key android:keyLabel="е" />
- <Key android:keyLabel="р" />
- <Key android:keyLabel="т" />
- <Key android:keyLabel="з" />
- <Key android:keyLabel="у" />
- <Key android:keyLabel="и" />
- <Key android:keyLabel="о" />
- <Key android:keyLabel="п" />
- <Key android:keyLabel="ш"
- android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel="љ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="1"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="њ"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="2" />
+ <Key
+ android:keyLabel="е"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="3" />
+ <Key
+ android:keyLabel="р"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="4" />
+ <Key
+ android:keyLabel="т"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="5" />
+ <Key
+ android:keyLabel="з"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="6" />
+ <Key
+ android:keyLabel="у"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="7" />
+ <Key
+ android:keyLabel="и"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="8" />
+ <Key
+ android:keyLabel="о"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="9" />
+ <Key
+ android:keyLabel="п"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="0" />
+ <Key
+ android:keyLabel="ш"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="а"
- android:keyEdgeFlags="left" />
- <Key android:keyLabel="с" />
- <Key android:keyLabel="д" />
- <Key android:keyLabel="ф" />
- <Key android:keyLabel="г" />
- <Key android:keyLabel="х" />
- <Key android:keyLabel="ј" />
- <Key android:keyLabel="к" />
- <Key android:keyLabel="л" />
- <Key android:keyLabel="ч" />
- <Key android:keyLabel="ћ" />
- <Key android:keyLabel="ђ"
- android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel="а"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="с" />
+ <Key
+ android:keyLabel="д" />
+ <Key
+ android:keyLabel="ф" />
+ <Key
+ android:keyLabel="г" />
+ <Key
+ android:keyLabel="х" />
+ <Key
+ android:keyLabel="ј" />
+ <Key
+ android:keyLabel="к" />
+ <Key
+ android:keyLabel="л" />
+ <Key
+ android:keyLabel="ч" />
+ <Key
+ android:keyLabel="ћ" />
+ <Key
+ android:keyLabel="ђ"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="8.5%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="11.75%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="ж" />
- <Key android:keyLabel="џ" />
- <Key android:keyLabel="ц" />
- <Key android:keyLabel="в" />
- <Key android:keyLabel="б" />
- <Key android:keyLabel="н" />
- <Key android:keyLabel="м" />
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="11.75%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Row
+ android:keyWidth="8.5%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="11.75%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="ж" />
+ <Key
+ android:keyLabel="џ" />
+ <Key
+ android:keyLabel="ц" />
+ <Key
+ android:keyLabel="в" />
+ <Key
+ android:keyLabel="б" />
+ <Key
+ android:keyLabel="н" />
+ <Key
+ android:keyLabel="м" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="11.75%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index bd5c67631..32a6add89 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -26,187 +26,510 @@
Local additions: ۧ
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="éèêëę€"/>
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ř"/>
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ťþ"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ýÿü"/>
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="úùûū"/>
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="íìîï"/>
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="óòôõ"/>
- <Key android:codes="112" android:keyLabel="p"/>
- <Key android:keyLabel="å"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p" />
+ <Key
+ android:keyLabel="å"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="áàâąã"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="śšşß"/>
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ðď"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ł"/>
- <Key android:keyLabel="ö"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="øœ"/>
- <Key android:keyLabel="ä"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="æ"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="ö"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o_umlaut" />
+ <Key
+ android:keyLabel="ä"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a_umlaut"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="10%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="źžż"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="çćč"/>
- <Key android:codes="118" android:keyLabel="v"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="w"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ńñň"/>
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Row
+ android:keyWidth="10%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml-sv/kbd_qwerty_black.xml b/java/res/xml-sv/kbd_qwerty_black.xml
index dccc63a65..56050e9d0 100644
--- a/java/res/xml-sv/kbd_qwerty_black.xml
+++ b/java/res/xml-sv/kbd_qwerty_black.xml
@@ -26,187 +26,453 @@
Local additions: ۧ
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="9.09%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="éèêëę€"/>
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ř"/>
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ťþ"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ýÿü"/>
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="úùûū"/>
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="íìîï"/>
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="óòôõ"/>
- <Key android:codes="112" android:keyLabel="p"/>
- <Key android:keyLabel="å"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p" />
+ <Key
+ android:keyLabel="å"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="áàâąã"
- android:keyWidth="8.75%p" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="śšşß"/>
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ðď"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ł"/>
- <Key android:keyLabel="ö"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="øœ"/>
- <Key android:keyLabel="ä"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="æ"
- android:keyWidth="8.75%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l" />
+ <Key
+ android:keyLabel="ö"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o_umlaut" />
+ <Key
+ android:keyLabel="ä"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a_umlaut"
+ android:keyWidth="8.75%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyWidth="10%p">
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="źžż"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="çćč"/>
- <Key android:codes="118" android:keyLabel="v"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="w"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ńñň"/>
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Row
+ android:keyWidth="10%p"
+ >
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:keyWidth="10%p"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/azerty.xml b/java/res/xml/azerty.xml
deleted file mode 100644
index 614aa4936..000000000
--- a/java/res/xml/azerty.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 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 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:android="http://schemas.android.com/apk/res/android"
- android:keyWidth="10%p"
- android:horizontalGap="0px"
- android:verticalGap="0px"
- android:keyHeight="@dimen/key_height"
- >
-
- <Row>
- <Key android:codes="97" android:keyLabel="a"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_a"
- android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"/>
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_e"
- />
- <Key android:codes="114" android:keyLabel="r"/>
- <Key android:codes="116" android:keyLabel="t"/>
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_y"
- />
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_u"
- />
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_i"
- />
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_o"
- />
- <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
- </Row>
-
- <Row>
- <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_s"
- />
- <Key android:codes="100" android:keyLabel="d"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"/>
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"/>
- <Key android:codes="109" android:keyLabel="m" android:keyEdgeFlags="right"/>
- </Row>
-
- <Row>
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="119" android:keyLabel="w"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_c"
- />
- <Key android:codes="118" android:keyLabel="v"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_n"
- />
- <Key android:codes="233,224,232,234" android:keyLabel="é"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
- </Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-3" android:keyIcon="@drawable/sym_keyboard_done"
- android:iconPreview="@drawable/sym_keyboard_feedback_done"
- android:keyWidth="20%p" android:keyEdgeFlags="left"/>
- <Key android:codes="-2" android:keyLabel="123" android:keyWidth="15%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46,44" android:keyLabel=". ,"
- android:popupKeyboard="@xml/popup_punctuation" android:keyWidth="15%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="20%p" android:keyEdgeFlags="right"/>
- </Row>
-</Keyboard>
- \ No newline at end of file
diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml
index 73d022fcb..9f381b905 100755..100644
--- a/java/res/xml/kbd_phone.xml
+++ b/java/res/xml/kbd_phone.xml
@@ -17,49 +17,85 @@
** limitations under the License.
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="26.67%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:codes="49" android:keyIcon="@drawable/sym_keyboard_num1" android:keyEdgeFlags="left"/>
- <Key android:codes="50" android:keyIcon="@drawable/sym_keyboard_num2"/>
- <Key android:codes="51" android:keyIcon="@drawable/sym_keyboard_num3"/>
- <Key android:keyLabel="-" android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="49"
+ android:keyIcon="@drawable/sym_keyboard_num1"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="50"
+ android:keyIcon="@drawable/sym_keyboard_num2" />
+ <Key
+ android:codes="51"
+ android:keyIcon="@drawable/sym_keyboard_num3" />
+ <Key
+ android:keyLabel="-"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="52" android:keyIcon="@drawable/sym_keyboard_num4" android:keyEdgeFlags="left"/>
- <Key android:codes="53" android:keyIcon="@drawable/sym_keyboard_num5"/>
- <Key android:codes="54" android:keyIcon="@drawable/sym_keyboard_num6"/>
- <Key android:keyLabel="." android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="52"
+ android:keyIcon="@drawable/sym_keyboard_num4"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="53"
+ android:keyIcon="@drawable/sym_keyboard_num5" />
+ <Key
+ android:codes="54"
+ android:keyIcon="@drawable/sym_keyboard_num6" />
+ <Key
+ android:keyLabel="."
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="55" android:keyIcon="@drawable/sym_keyboard_num7" android:keyEdgeFlags="left"/>
- <Key android:codes="56" android:keyIcon="@drawable/sym_keyboard_num8"/>
- <Key android:codes="57" android:keyIcon="@drawable/sym_keyboard_num9"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:keyWidth="20%p"
- android:isRepeatable="true" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="55"
+ android:keyIcon="@drawable/sym_keyboard_num7"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="56"
+ android:keyIcon="@drawable/sym_keyboard_num8" />
+ <Key
+ android:codes="57"
+ android:keyIcon="@drawable/sym_keyboard_num9" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="20%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyIcon="@drawable/sym_keyboard_numalt"
- android:iconPreview="@drawable/sym_keyboard_feedback_numalt"/>
-
- <Key android:codes="48" android:keyIcon="@drawable/sym_keyboard_num0"/>
-
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:keyWidth="20%p"
- android:keyEdgeFlags="right"/>
+ <Row
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyIcon="@drawable/sym_keyboard_numalt"
+ android:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
+ <Key
+ android:codes="48"
+ android:keyIcon="@drawable/sym_keyboard_num0" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
-</Keyboard> \ No newline at end of file
+</Keyboard>
diff --git a/java/res/xml/kbd_phone_black.xml b/java/res/xml/kbd_phone_black.xml
index 3738f2b68..7a956b796 100755..100644
--- a/java/res/xml/kbd_phone_black.xml
+++ b/java/res/xml/kbd_phone_black.xml
@@ -17,49 +17,85 @@
** limitations under the License.
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="26.67%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:codes="49" android:keyIcon="@drawable/sym_bkeyboard_num1" android:keyEdgeFlags="left"/>
- <Key android:codes="50" android:keyIcon="@drawable/sym_bkeyboard_num2"/>
- <Key android:codes="51" android:keyIcon="@drawable/sym_bkeyboard_num3"/>
- <Key android:keyLabel="-" android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="49"
+ android:keyIcon="@drawable/sym_bkeyboard_num1"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="50"
+ android:keyIcon="@drawable/sym_bkeyboard_num2" />
+ <Key
+ android:codes="51"
+ android:keyIcon="@drawable/sym_bkeyboard_num3" />
+ <Key
+ android:keyLabel="-"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="52" android:keyIcon="@drawable/sym_bkeyboard_num4" android:keyEdgeFlags="left"/>
- <Key android:codes="53" android:keyIcon="@drawable/sym_bkeyboard_num5"/>
- <Key android:codes="54" android:keyIcon="@drawable/sym_bkeyboard_num6"/>
- <Key android:keyLabel="." android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="52"
+ android:keyIcon="@drawable/sym_bkeyboard_num4"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="53"
+ android:keyIcon="@drawable/sym_bkeyboard_num5" />
+ <Key
+ android:codes="54"
+ android:keyIcon="@drawable/sym_bkeyboard_num6" />
+ <Key
+ android:keyLabel="."
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="55" android:keyIcon="@drawable/sym_bkeyboard_num7" android:keyEdgeFlags="left"/>
- <Key android:codes="56" android:keyIcon="@drawable/sym_bkeyboard_num8"/>
- <Key android:codes="57" android:keyIcon="@drawable/sym_bkeyboard_num9"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:keyWidth="20%p"
- android:isRepeatable="true" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="55"
+ android:keyIcon="@drawable/sym_bkeyboard_num7"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="56"
+ android:keyIcon="@drawable/sym_bkeyboard_num8" />
+ <Key
+ android:codes="57"
+ android:keyIcon="@drawable/sym_bkeyboard_num9" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="20%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyIcon="@drawable/sym_bkeyboard_numalt"
- android:iconPreview="@drawable/sym_keyboard_feedback_numalt"/>
-
- <Key android:codes="48" android:keyIcon="@drawable/sym_bkeyboard_num0"/>
-
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:keyWidth="20%p"
- android:keyEdgeFlags="right"/>
+ <Row
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyIcon="@drawable/sym_bkeyboard_numalt"
+ android:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
+ <Key
+ android:codes="48"
+ android:keyIcon="@drawable/sym_bkeyboard_num0" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
</Keyboard>
diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml
index 9196df8da..598e211f5 100755..100644
--- a/java/res/xml/kbd_phone_symbols.xml
+++ b/java/res/xml/kbd_phone_symbols.xml
@@ -18,51 +18,81 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="26.67%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:keyLabel="(" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="/"/>
- <Key android:keyLabel=")"/>
- <Key android:keyLabel="-" android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="("
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:keyLabel=")" />
+ <Key
+ android:keyLabel="-"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="N" android:keyEdgeFlags="left"/>
- <!-- Pause is a comma.
- Check PhoneNumberUtils.java to see if this has changed. -->
- <Key android:codes="44" android:keyLabel="Pause"/>
- <Key android:keyLabel=","/>
- <Key android:keyLabel="." android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="N"
+ android:keyEdgeFlags="left" />
+ <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this
+ has changed. -->
+ <Key
+ android:codes="44"
+ android:keyLabel="Pause" />
+ <Key
+ android:keyLabel="," />
+ <Key
+ android:keyLabel="."
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="42" android:keyIcon="@drawable/sym_keyboard_numstar"
- android:keyEdgeFlags="left"/>
+ <Key
+ android:codes="42"
+ android:keyIcon="@drawable/sym_keyboard_numstar"
+ android:keyEdgeFlags="left" />
<!-- Wait is a semicolon. -->
- <Key android:codes="59" android:keyLabel="Wait"/>
- <Key android:codes="35" android:keyIcon="@drawable/sym_keyboard_numpound"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:keyWidth="20%p"
- android:isRepeatable="true" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="59"
+ android:keyLabel="Wait" />
+ <Key
+ android:codes="35"
+ android:keyIcon="@drawable/sym_keyboard_numpound" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="20%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_phone_key"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="+"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:keyWidth="20%p"
- android:keyEdgeFlags="right"/>
+ <Row
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_phone_key"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="+" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
-</Keyboard> \ No newline at end of file
+</Keyboard>
diff --git a/java/res/xml/kbd_phone_symbols_black.xml b/java/res/xml/kbd_phone_symbols_black.xml
index b996e8b31..5bc628965 100755..100644
--- a/java/res/xml/kbd_phone_symbols_black.xml
+++ b/java/res/xml/kbd_phone_symbols_black.xml
@@ -18,51 +18,81 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="26.67%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:keyLabel="(" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="/"/>
- <Key android:keyLabel=")"/>
- <Key android:keyLabel="-" android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="("
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:keyLabel=")" />
+ <Key
+ android:keyLabel="-"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:keyLabel="N" android:keyEdgeFlags="left"/>
- <!-- Pause is a comma.
- Check PhoneNumberUtils.java to see if this has changed. -->
- <Key android:codes="44" android:keyLabel="Pause"/>
- <Key android:keyLabel=","/>
- <Key android:keyLabel="." android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="N"
+ android:keyEdgeFlags="left" />
+ <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this
+ has changed. -->
+ <Key
+ android:codes="44"
+ android:keyLabel="Pause" />
+ <Key
+ android:keyLabel="," />
+ <Key
+ android:keyLabel="."
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="42" android:keyIcon="@drawable/sym_bkeyboard_numstar"
- android:keyEdgeFlags="left"/>
+ <Key
+ android:codes="42"
+ android:keyIcon="@drawable/sym_bkeyboard_numstar"
+ android:keyEdgeFlags="left" />
<!-- Wait is a semicolon. -->
- <Key android:codes="59" android:keyLabel="Wait"/>
- <Key android:codes="35" android:keyIcon="@drawable/sym_bkeyboard_numpound"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:keyWidth="20%p"
- android:isRepeatable="true" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="59"
+ android:keyLabel="Wait" />
+ <Key
+ android:codes="35"
+ android:keyIcon="@drawable/sym_bkeyboard_numpound" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="20%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_phone_key"
- android:keyEdgeFlags="left"/>
- <Key android:keyLabel="+"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:keyWidth="20%p"
- android:keyEdgeFlags="right"/>
+ <Row
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_phone_key"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="+" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
</Keyboard>
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index c75e27afb..ca9f99a31 100755..100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
-/*
+/*
**
** Copyright 2008, The Android Open Source Project
**
@@ -18,201 +18,486 @@
*/
-->
-<!-- TODO: Add settings key to other languages -->
-<!-- TODO: Add modifier attr to functional keys in other languages -->
-
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_q"
- />
- <Key android:codes="119" android:keyLabel="w"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_w"
- />
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_e"
- />
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_r"
- />
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_t"
- />
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_y"
- />
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_u"
- />
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_i"
- />
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_o"
- />
- <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_p"
- />
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_a"
- android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_s"
- />
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_d"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_g"
- />
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_l"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_z"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_c"
- />
- <Key android:codes="118" android:keyLabel="v"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_n"
- />
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_keyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="\@" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="/"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="\@"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_keyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_keyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/kbd_qwerty_black.xml b/java/res/xml/kbd_qwerty_black.xml
index 06bc102bb..fa300a034 100755..100644
--- a/java/res/xml/kbd_qwerty_black.xml
+++ b/java/res/xml/kbd_qwerty_black.xml
@@ -18,198 +18,428 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
- >
-
+>
<Row>
- <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_q"
- />
- <Key android:codes="119" android:keyLabel="w"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_w"
- />
- <Key android:codes="101" android:keyLabel="e"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_e"
- />
- <Key android:codes="114" android:keyLabel="r"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_r"
- />
- <Key android:codes="116" android:keyLabel="t"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_t"
- />
- <Key android:codes="121" android:keyLabel="y"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_y"
- />
- <Key android:codes="117" android:keyLabel="u"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_u"
- />
- <Key android:codes="105" android:keyLabel="i"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_i"
- />
- <Key android:codes="111" android:keyLabel="o"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_o"
- />
- <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_p"
- />
+ <Key
+ android:keyLabel="q"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_q"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="w"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_w" />
+ <Key
+ android:keyLabel="e"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_e" />
+ <Key
+ android:keyLabel="r"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_r" />
+ <Key
+ android:keyLabel="t"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_t" />
+ <Key
+ android:keyLabel="y"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_y" />
+ <Key
+ android:keyLabel="u"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_u" />
+ <Key
+ android:keyLabel="i"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_i" />
+ <Key
+ android:keyLabel="o"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_o" />
+ <Key
+ android:keyLabel="p"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_p"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_a"
- android:keyEdgeFlags="left"/>
- <Key android:codes="115" android:keyLabel="s"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_s"
- />
- <Key android:codes="100" android:keyLabel="d"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_d"/>
- <Key android:codes="102" android:keyLabel="f"/>
- <Key android:codes="103" android:keyLabel="g"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_g"
- />
- <Key android:codes="104" android:keyLabel="h"/>
- <Key android:codes="106" android:keyLabel="j"/>
- <Key android:codes="107" android:keyLabel="k"/>
- <Key android:codes="108" android:keyLabel="l"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_l"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="a"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_a"
+ android:horizontalGap="5%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="s"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_s" />
+ <Key
+ android:keyLabel="d"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_d" />
+ <Key
+ android:keyLabel="f" />
+ <Key
+ android:keyLabel="g"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_g" />
+ <Key
+ android:keyLabel="h" />
+ <Key
+ android:keyLabel="j" />
+ <Key
+ android:keyLabel="k" />
+ <Key
+ android:keyLabel="l"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_l"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyIcon="@drawable/sym_bkeyboard_shift"
- android:keyWidth="15%p" android:isModifier="true"
- android:iconPreview="@drawable/sym_keyboard_feedback_shift"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="122" android:keyLabel="z"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_z"/>
- <Key android:codes="120" android:keyLabel="x"/>
- <Key android:codes="99" android:keyLabel="c"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_c"
- />
- <Key android:codes="118" android:keyLabel="v"/>
- <Key android:codes="98" android:keyLabel="b"/>
- <Key android:codes="110" android:keyLabel="n"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="@string/alternates_for_n"
- />
- <Key android:codes="109" android:keyLabel="m"/>
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete"
- android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyIcon="@drawable/sym_bkeyboard_shift"
+ android:iconPreview="@drawable/sym_keyboard_feedback_shift"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="z"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_z" />
+ <Key
+ android:keyLabel="x" />
+ <Key
+ android:keyLabel="c"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_c" />
+ <Key
+ android:keyLabel="v"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_v" />
+ <Key
+ android:keyLabel="b" />
+ <Key
+ android:keyLabel="n"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="@string/alternates_for_n" />
+ <Key
+ android:keyLabel="m" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_normal"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="/" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_url"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="\@"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_email"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:keyLabel=":-)" android:keyOutputText=":-) "
- android:popupKeyboard="@xml/popup_smileys"
- android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_im"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
- android:iconPreview="@drawable/sym_keyboard_feedback_mic"
- android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:keyWidth="30%p" android:isRepeatable="true"/>
- <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
- android:iconPreview="@drawable/sym_keyboard_feedback_tab"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+ <Row
+ android:keyboardMode="@+id/mode_webentry"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="20%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+ android:keyWidth="20%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_normal_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_url_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_email_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_im_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:popupKeyboard="@xml/popup_smileys"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_webentry_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_symbol_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:keyIcon="@drawable/sym_bkeyboard_mic"
+ android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyIcon="@drawable/sym_bkeyboard_tab"
+ android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index fad3ebc10..cb8b3b38f 100755..100644
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -18,125 +18,195 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¹½⅓¼⅛"
- />
- <Key android:codes="50" android:keyLabel="2"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="²⅔"
- />
- <Key android:codes="51" android:keyLabel="3"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="³¾⅜"
- />
- <Key android:codes="52" android:keyLabel="4"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="⁴"
- />
- <Key android:codes="53" android:keyLabel="5"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="⅝"
- />
- <Key android:codes="54" android:keyLabel="6"/>
- <Key android:codes="55" android:keyLabel="7"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="⅞"
- />
- <Key android:codes="56" android:keyLabel="8"/>
- <Key android:codes="57" android:keyLabel="9"/>
- <Key android:codes="48" android:keyLabel="0"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ⁿ∅"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="1"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¹½⅓¼⅛"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="2"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="²⅔" />
+ <Key
+ android:keyLabel="3"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="³¾⅜" />
+ <Key
+ android:keyLabel="4"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="⁴" />
+ <Key
+ android:keyLabel="5"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="⅝" />
+ <Key
+ android:keyLabel="6" />
+ <Key
+ android:keyLabel="7"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="⅞" />
+ <Key
+ android:keyLabel="8" />
+ <Key
+ android:keyLabel="9" />
+ <Key
+ android:keyLabel="0"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="ⁿ∅"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="64" android:keyLabel="\@" android:keyEdgeFlags="left"/>
- <Key android:codes="35" android:keyLabel="\#"/>
- <Key android:codes="36" android:keyLabel="$"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¢£€¥₣₤₱"
- />
- <Key android:codes="37" android:keyLabel="%"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="‰"
- />
- <Key android:codes="38" android:keyLabel="&amp;"/>
- <Key android:codes="42" android:keyLabel="*"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="†‡★"
- />
- <Key android:codes="45" android:keyLabel="-"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="_–—"
- />
- <Key android:keyLabel="+"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="±"
- />
- <Key android:codes="40" android:keyLabel="("
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="[{&lt;"
- />
- <Key android:codes="41" android:keyLabel=")" android:keyEdgeFlags="right"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="]}&gt;"
- />
+ <Key
+ android:keyLabel="\@"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\#" />
+ <Key
+ android:keyLabel="$"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¢£€¥₣₤₱" />
+ <Key
+ android:keyLabel="%"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="‰" />
+ <Key
+ android:keyLabel="&amp;" />
+ <Key
+ android:keyLabel="*"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="†‡★" />
+ <Key
+ android:keyLabel="-"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="_–—" />
+ <Key
+ android:keyLabel="+"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="±" />
+ <Key
+ android:keyLabel="("
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="[{&lt;" />
+ <Key
+ android:keyLabel=")"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="]}&gt;"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyLabel="@string/label_alt_key"
- android:keyWidth="15%p" android:isModifier="true"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="33" android:keyLabel="!"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¡"
- />
- <Key android:codes="34" android:keyLabel="&quot;"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="“”«»˝"
- />
- <Key android:codes="39" android:keyLabel="\'"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="‘’"
- />
- <Key android:codes="58" android:keyLabel=":"/>
- <Key android:codes="59" android:keyLabel=";"/>
- <Key android:codes="47" android:keyLabel="/" />
- <Key android:codes="63" android:keyLabel="\?"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¿"
- />
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyLabel="@string/label_alt_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="!"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¡" />
+ <Key
+ android:keyLabel="&quot;"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="“”«»˝" />
+ <Key
+ android:keyLabel="\'"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="‘’" />
+ <Key
+ android:keyLabel=":" />
+ <Key
+ android:keyLabel=";" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:keyLabel="\?"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¿" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="@integer/key_f1" android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:keyWidth="30%p"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true" android:isModifier="true"/>
- <Key android:codes="46" android:keyLabel="."
- android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="25%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_symbols"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_symbols_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_f1"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/kbd_symbols_black.xml b/java/res/xml/kbd_symbols_black.xml
index 7eae55481..bfb1646f4 100755..100644
--- a/java/res/xml/kbd_symbols_black.xml
+++ b/java/res/xml/kbd_symbols_black.xml
@@ -18,125 +18,183 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¹½⅓¼⅛"
- />
- <Key android:codes="50" android:keyLabel="2"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="²⅔"
- />
- <Key android:codes="51" android:keyLabel="3"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="³¾⅜"
- />
- <Key android:codes="52" android:keyLabel="4"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="⁴"
- />
- <Key android:codes="53" android:keyLabel="5"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="⅝"
- />
- <Key android:codes="54" android:keyLabel="6"/>
- <Key android:codes="55" android:keyLabel="7"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="⅞"
- />
- <Key android:codes="56" android:keyLabel="8"/>
- <Key android:codes="57" android:keyLabel="9"/>
- <Key android:codes="48" android:keyLabel="0"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="ⁿ∅"
- android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="1"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¹½⅓¼⅛"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="2"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="²⅔" />
+ <Key
+ android:keyLabel="3"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="³¾⅜" />
+ <Key
+ android:keyLabel="4"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="⁴" />
+ <Key
+ android:keyLabel="5"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="⅝" />
+ <Key
+ android:keyLabel="6" />
+ <Key
+ android:keyLabel="7"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="⅞" />
+ <Key
+ android:keyLabel="8" />
+ <Key
+ android:keyLabel="9" />
+ <Key
+ android:keyLabel="0"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="ⁿ∅"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="64" android:keyLabel="\@" android:keyEdgeFlags="left"/>
- <Key android:codes="35" android:keyLabel="\#"/>
- <Key android:codes="36" android:keyLabel="$"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¢£€¥₣₤₱"
- />
- <Key android:codes="37" android:keyLabel="%"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="‰"
- />
- <Key android:codes="38" android:keyLabel="&amp;"/>
- <Key android:codes="42" android:keyLabel="*"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="†‡★"
- />
- <Key android:codes="45" android:keyLabel="-"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="_–—"
- />
- <Key android:keyLabel="+"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="±"
- />
- <Key android:codes="40" android:keyLabel="("
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="[{&lt;"
- />
- <Key android:codes="41" android:keyLabel=")" android:keyEdgeFlags="right"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="]}&gt;"
- />
+ <Key
+ android:keyLabel="\@"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\#" />
+ <Key
+ android:keyLabel="$"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¢£€¥₣₤₱" />
+ <Key
+ android:keyLabel="%"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="‰" />
+ <Key
+ android:keyLabel="&amp;" />
+ <Key
+ android:keyLabel="*"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="†‡★" />
+ <Key
+ android:keyLabel="-"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="_–—" />
+ <Key
+ android:keyLabel="+"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="±" />
+ <Key
+ android:keyLabel="("
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="[{&lt;" />
+ <Key
+ android:keyLabel=")"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="]}&gt;"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyLabel="@string/label_alt_key"
- android:keyWidth="15%p" android:isModifier="true"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:codes="33" android:keyLabel="!"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¡"
- />
- <Key android:codes="34" android:keyLabel="&quot;"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="“”«»˝"
- />
- <Key android:codes="39" android:keyLabel="\'"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="‘’"
- />
- <Key android:codes="58" android:keyLabel=":"/>
- <Key android:codes="59" android:keyLabel=";"/>
- <Key android:codes="47" android:keyLabel="/" />
- <Key android:codes="63" android:keyLabel="\?"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="¿"
- />
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyLabel="@string/label_alt_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="!"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¡" />
+ <Key
+ android:keyLabel="&quot;"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="“”«»˝" />
+ <Key
+ android:keyLabel="\'"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="‘’" />
+ <Key
+ android:keyLabel=":" />
+ <Key
+ android:keyLabel=";" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:keyLabel="\?"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="¿" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
- android:keyWidth="15%p" android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:codes="@integer/key_f1" android:keyWidth="10%p"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:keyWidth="30%p"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
- <Key android:codes="46" android:keyLabel="."
- android:popupKeyboard="@xml/popup_punctuation"
- android:keyWidth="10%p"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return" android:keyWidth="25%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- />
+ <Row
+ android:keyboardMode="@+id/mode_symbols"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_f1" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_symbols_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:codes="@integer/key_f1" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="."
+ android:popupKeyboard="@xml/popup_punctuation" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index b0693917e..21cbb7132 100755..100644
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -18,91 +18,172 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:keyLabel="~" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="`"/>
- <Key android:keyLabel="|"/>
- <Key android:keyLabel="•"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="♪♥♠♦♣"
- />
- <Key android:keyLabel="√"/>
- <Key android:keyLabel="π"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="Π"
- />
- <Key android:keyLabel="÷"/>
- <Key android:keyLabel="×"/>
- <Key android:keyLabel="{"/>
- <Key android:keyLabel="}" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="~"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="`" />
+ <Key
+ android:keyLabel="|" />
+ <Key
+ android:keyLabel="•"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="♪♥♠♦♣" />
+ <Key
+ android:keyLabel="√" />
+ <Key
+ android:keyLabel="π"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="Π" />
+ <Key
+ android:keyLabel="÷" />
+ <Key
+ android:keyLabel="×" />
+ <Key
+ android:keyLabel="{" />
+ <Key
+ android:keyLabel="}"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="9" android:keyLabel="\u21E5" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="£"/>
- <Key android:keyLabel="¢"/>
- <Key android:keyLabel="€"/>
- <Key android:keyLabel="°"/>
- <Key android:keyLabel="^"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="↑↓←→"
- />
- <Key android:keyLabel="_"/>
- <Key android:keyLabel="="
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="≠≈∞"
- />
- <Key android:keyLabel="["/>
- <Key android:keyLabel="]" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyLabel="\u21E5"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="£" />
+ <Key
+ android:keyLabel="¢" />
+ <Key
+ android:keyLabel="€" />
+ <Key
+ android:keyLabel="°" />
+ <Key
+ android:keyLabel="^"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="↑↓←→" />
+ <Key
+ android:keyLabel="_" />
+ <Key
+ android:keyLabel="="
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="≠≈∞" />
+ <Key
+ android:keyLabel="[" />
+ <Key
+ android:keyLabel="]"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyLabel="@string/label_alt_key"
- android:keyWidth="15%p" android:isModifier="true"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="™"/>
- <Key android:keyLabel="®"/>
- <Key android:keyLabel="©"/>
- <Key android:keyLabel="¶"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="§"
- />
- <Key android:keyLabel="\\"/>
- <Key android:keyLabel="&lt;"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="≤«‹"
- />
- <Key android:keyLabel="&gt;"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="≥»›"
- />
- <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true" android:isModifier="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyLabel="@string/label_alt_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="™" />
+ <Key
+ android:keyLabel="®" />
+ <Key
+ android:keyLabel="©" />
+ <Key
+ android:keyLabel="¶"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="§" />
+ <Key
+ android:keyLabel="\\" />
+ <Key
+ android:keyLabel="&lt;"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="≤«‹" />
+ <Key
+ android:keyLabel="&gt;"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="≥»›" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_keyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="15%p"
- android:keyEdgeFlags="left" android:isModifier="true"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:keyLabel="„" android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
- android:keyWidth="30%p"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true" android:isModifier="true"/>
- <Key android:keyLabel="…" android:keyWidth="10%p" android:isModifier="true"/>
- <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- android:isModifier="true"/>
+ <Row
+ android:keyboardMode="@+id/mode_symbols"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="„"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="…"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_symbols_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_keyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="„"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_keyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p"
+ android:isModifier="true" />
+ <Key
+ android:keyLabel="…"
+ android:isModifier="true" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_keyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:isModifier="true"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift_black.xml b/java/res/xml/kbd_symbols_shift_black.xml
index 250e0854c..d5d49ce0d 100755..100644
--- a/java/res/xml/kbd_symbols_shift_black.xml
+++ b/java/res/xml/kbd_symbols_shift_black.xml
@@ -18,91 +18,160 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row>
- <Key android:keyLabel="~" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="`"/>
- <Key android:keyLabel="|"/>
- <Key android:keyLabel="•"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="♪♥♠♦♣"
- />
- <Key android:keyLabel="√"/>
- <Key android:keyLabel="π"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="Π"
- />
- <Key android:keyLabel="÷"/>
- <Key android:keyLabel="×"/>
- <Key android:keyLabel="{"/>
- <Key android:keyLabel="}" android:keyEdgeFlags="right"/>
+ <Key
+ android:keyLabel="~"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="`" />
+ <Key
+ android:keyLabel="|" />
+ <Key
+ android:keyLabel="•"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="♪♥♠♦♣" />
+ <Key
+ android:keyLabel="√" />
+ <Key
+ android:keyLabel="π"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="Π" />
+ <Key
+ android:keyLabel="÷" />
+ <Key
+ android:keyLabel="×" />
+ <Key
+ android:keyLabel="{" />
+ <Key
+ android:keyLabel="}"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="9" android:keyLabel="\u21E5" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="£"/>
- <Key android:keyLabel="¢"/>
- <Key android:keyLabel="€"/>
- <Key android:keyLabel="°"/>
- <Key android:keyLabel="^"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="↑↓←→"
- />
- <Key android:keyLabel="_"/>
- <Key android:keyLabel="="
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="≠≈∞"
- />
- <Key android:keyLabel="["/>
- <Key android:keyLabel="]" android:keyEdgeFlags="right"/>
+ <Key
+ android:codes="@integer/key_tab"
+ android:keyLabel="\u21E5"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="£" />
+ <Key
+ android:keyLabel="¢" />
+ <Key
+ android:keyLabel="€" />
+ <Key
+ android:keyLabel="°" />
+ <Key
+ android:keyLabel="^"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="↑↓←→" />
+ <Key
+ android:keyLabel="_" />
+ <Key
+ android:keyLabel="="
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="≠≈∞" />
+ <Key
+ android:keyLabel="[" />
+ <Key
+ android:keyLabel="]"
+ android:keyEdgeFlags="right" />
</Row>
-
<Row>
- <Key android:codes="-1" android:keyLabel="@string/label_alt_key"
- android:keyWidth="15%p" android:isModifier="true"
- android:isSticky="true" android:keyEdgeFlags="left"/>
- <Key android:keyLabel="™"/>
- <Key android:keyLabel="®"/>
- <Key android:keyLabel="©"/>
- <Key android:keyLabel="¶"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="§"
- />
- <Key android:keyLabel="\\"/>
- <Key android:keyLabel="&lt;"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="≤«‹"
- />
- <Key android:keyLabel="&gt;"
- android:popupKeyboard="@xml/kbd_popup_template"
- android:popupCharacters="≥»›"
- />
- <Key android:codes="-5" android:keyIcon="@drawable/sym_bkeyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_delete"
- android:isRepeatable="true"/>
+ <Key
+ android:codes="@integer/key_shift"
+ android:keyLabel="@string/label_alt_key"
+ android:keyWidth="15%p"
+ android:isModifier="true"
+ android:isSticky="true"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="™" />
+ <Key
+ android:keyLabel="®" />
+ <Key
+ android:keyLabel="©" />
+ <Key
+ android:keyLabel="¶"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="§" />
+ <Key
+ android:keyLabel="\\" />
+ <Key
+ android:keyLabel="&lt;"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="≤«‹" />
+ <Key
+ android:keyLabel="&gt;"
+ android:popupKeyboard="@xml/kbd_popup_template"
+ android:popupCharacters="≥»›" />
+ <Key
+ android:codes="@integer/key_delete"
+ android:keyIcon="@drawable/sym_bkeyboard_delete"
+ android:iconPreview="@drawable/sym_keyboard_feedback_delete"
+ android:keyWidth="15%p"
+ android:isRepeatable="true"
+ android:keyEdgeFlags="right" />
</Row>
-
- <Row android:rowEdgeFlags="bottom">
- <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="15%p"
- android:keyEdgeFlags="left"/>
- <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
- android:iconPreview="@drawable/sym_keyboard_feedback_settings"
- android:keyWidth="10%p"/>
- <Key android:keyLabel="„" android:keyWidth="10%p" />
- <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
- android:keyWidth="30%p"
- android:iconPreview="@drawable/sym_keyboard_feedback_space"
- android:isRepeatable="true"/>
- <Key android:keyLabel="…" android:keyWidth="10%p" />
- <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
- android:keyWidth="25%p" android:keyEdgeFlags="right"
- android:iconPreview="@drawable/sym_keyboard_feedback_return"
- />
+ <Row
+ android:keyboardMode="@+id/mode_symbols"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="„" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="40%p" />
+ <Key
+ android:keyLabel="…" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="20%p"
+ android:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ android:keyboardMode="@+id/mode_symbols_with_settings_key"
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:codes="@integer/key_symbol"
+ android:keyLabel="@string/label_alpha_key"
+ android:keyWidth="15%p"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:codes="@integer/key_settings"
+ android:keyIcon="@drawable/sym_bkeyboard_settings"
+ android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+ <Key
+ android:keyLabel="„" />
+ <Key
+ android:codes="@integer/key_space"
+ android:keyIcon="@drawable/sym_bkeyboard_space"
+ android:iconPreview="@drawable/sym_keyboard_feedback_space"
+ android:keyWidth="30%p" />
+ <Key
+ android:keyLabel="…" />
+ <Key
+ android:codes="@integer/key_return"
+ android:keyIcon="@drawable/sym_bkeyboard_return"
+ android:iconPreview="@drawable/sym_keyboard_feedback_return"
+ android:keyWidth="25%p"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/popup_domains.xml b/java/res/xml/popup_domains.xml
index b733fe24f..0f7d97691 100644
--- a/java/res/xml/popup_domains.xml
+++ b/java/res/xml/popup_domains.xml
@@ -18,21 +18,29 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="15%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top|bottom"
>
-
- <Row android:rowEdgeFlags="top|bottom">
- <Key android:keyLabel="@string/popular_domain_1"
- android:keyOutputText="@string/popular_domain_1" android:keyEdgeFlags="left" />
- <Key android:keyLabel="@string/popular_domain_2"
- android:keyOutputText="@string/popular_domain_2"/>
- <Key android:keyLabel="@string/popular_domain_3"
- android:keyOutputText="@string/popular_domain_3"/>
- <Key android:keyLabel="@string/popular_domain_4"
- android:keyOutputText="@string/popular_domain_4" android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel="@string/popular_domain_1"
+ android:keyOutputText="@string/popular_domain_1"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="@string/popular_domain_2"
+ android:keyOutputText="@string/popular_domain_2" />
+ <Key
+ android:keyLabel="@string/popular_domain_3"
+ android:keyOutputText="@string/popular_domain_3" />
+ <Key
+ android:keyLabel="@string/popular_domain_4"
+ android:keyOutputText="@string/popular_domain_4"
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/popup_punctuation.xml b/java/res/xml/popup_punctuation.xml
index a29fb520d..ee1feabec 100644
--- a/java/res/xml/popup_punctuation.xml
+++ b/java/res/xml/popup_punctuation.xml
@@ -18,29 +18,51 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row android:rowEdgeFlags="top">
- <Key android:keyLabel=":" android:keyEdgeFlags="left" />
- <Key android:keyLabel="/" />
- <Key android:keyLabel="&amp;" />
- <Key android:keyLabel="(" />
- <Key android:keyLabel=")" />
- <Key android:keyLabel="-" />
- <Key android:keyLabel="+" android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel=":"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="/" />
+ <Key
+ android:keyLabel="&amp;" />
+ <Key
+ android:keyLabel="(" />
+ <Key
+ android:keyLabel=")" />
+ <Key
+ android:keyLabel="-" />
+ <Key
+ android:keyLabel="+"
+ android:keyEdgeFlags="right" />
</Row>
- <Row android:rowEdgeFlags="bottom">
- <Key android:keyLabel=";" android:keyEdgeFlags="left" />
- <Key android:keyLabel="," />
- <Key android:keyLabel="\@" />
- <Key android:keyLabel="\'" />
- <Key android:keyLabel="&quot;" />
- <Key android:keyLabel="\?" />
- <Key android:keyLabel="!" android:keyEdgeFlags="right" />
+ <Row
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:keyLabel=";"
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="\@" />
+ <Key
+ android:keyLabel="\'" />
+ <Key
+ android:keyLabel="&quot;" />
+ <Key
+ android:keyLabel="\?" />
+ <Key
+ android:keyLabel="!" />
+ <Key
+ android:keyLabel=","
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/popup_smileys.xml b/java/res/xml/popup_smileys.xml
index 5663fefc8..3b556da77 100644
--- a/java/res/xml/popup_smileys.xml
+++ b/java/res/xml/popup_smileys.xml
@@ -18,32 +18,72 @@
*/
-->
-<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
+<Keyboard
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="15%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
+>
+ <Row
+ android:rowEdgeFlags="top"
>
-
- <Row android:rowEdgeFlags="top">
- <Key android:keyLabel=":-)" android:keyOutputText=":-) " android:keyEdgeFlags="left" />
- <Key android:keyLabel=":-(" android:keyOutputText=":-( "/>
- <Key android:keyLabel=";-)" android:keyOutputText=";-) "/>
- <Key android:keyLabel=":-P" android:keyOutputText=":-P "/>
- <Key android:keyLabel="=-O" android:keyOutputText="=-O " android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel=":-)"
+ android:keyOutputText=":-) "
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel=":-("
+ android:keyOutputText=":-( " />
+ <Key
+ android:keyLabel=";-)"
+ android:keyOutputText=";-) " />
+ <Key
+ android:keyLabel=":-P"
+ android:keyOutputText=":-P " />
+ <Key
+ android:keyLabel="=-O"
+ android:keyOutputText="=-O "
+ android:keyEdgeFlags="right" />
</Row>
<Row>
- <Key android:keyLabel=":-*" android:keyOutputText=":-* " android:keyEdgeFlags="left" />
- <Key android:keyLabel=":O" android:keyOutputText=":O "/>
- <Key android:keyLabel="B-)" android:keyOutputText="B-) "/>
- <Key android:keyLabel=":-$" android:keyOutputText=":-$ "/>
- <Key android:keyLabel=":-!" android:keyOutputText=":-! " android:keyEdgeFlags="right" />
+ <Key
+ android:keyLabel=":-*"
+ android:keyOutputText=":-* "
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel=":O"
+ android:keyOutputText=":O " />
+ <Key
+ android:keyLabel="B-)"
+ android:keyOutputText="B-) " />
+ <Key
+ android:keyLabel=":-$"
+ android:keyOutputText=":-$ " />
+ <Key
+ android:keyLabel=":-!"
+ android:keyOutputText=":-! "
+ android:keyEdgeFlags="right" />
</Row>
- <Row android:rowEdgeFlags="bottom">
- <Key android:keyLabel=":-[" android:keyOutputText=":-[ " android:keyEdgeFlags="left" />
- <Key android:keyLabel="O:-)" android:keyOutputText="O:-) "/>
- <Key android:keyLabel=":-\\" android:keyOutputText=":-\\ "/>
- <Key android:keyLabel=":'(" android:keyOutputText=":'( "/>
- <Key android:keyLabel=":-D" android:keyOutputText=":-D " android:keyEdgeFlags="right" />
+ <Row
+ android:rowEdgeFlags="bottom"
+ >
+ <Key
+ android:keyLabel=":-["
+ android:keyOutputText=":-[ "
+ android:keyEdgeFlags="left" />
+ <Key
+ android:keyLabel="O:-)"
+ android:keyOutputText="O:-) " />
+ <Key
+ android:keyLabel=":-\\"
+ android:keyOutputText=":-\\ " />
+ <Key
+ android:keyLabel=":'("
+ android:keyOutputText=":'( " />
+ <Key
+ android:keyLabel=":-D"
+ android:keyOutputText=":-D "
+ android:keyEdgeFlags="right" />
</Row>
</Keyboard>
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index cd0a12f77..a09e0a2b9 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -60,6 +60,15 @@
/>
<ListPreference
+ android:key="settings_key"
+ android:title="@string/prefs_settings_key"
+ android:persistent="true"
+ android:entryValues="@array/settings_key_modes_values"
+ android:entries="@array/settings_key_modes"
+ android:defaultValue="@string/settings_key_mode_auto"
+ />
+
+ <ListPreference
android:key="voice_mode"
android:title="@string/voice_input"
android:persistent="true"
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index bd73c6fb8..0f5b43009 100755
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -186,7 +186,6 @@ public class CandidateView extends View {
return true;
}
});
- setHorizontalFadingEdgeEnabled(true);
setWillNotDraw(false);
setHorizontalScrollBarEnabled(false);
setVerticalScrollBarEnabled(false);
@@ -248,7 +247,9 @@ public class CandidateView extends View {
paint.setTypeface(Typeface.DEFAULT_BOLD);
paint.setColor(mColorRecommended);
existsAutoCompletion = true;
- } else if (i != 0) {
+ } else if (i != 0 || (suggestion.length() == 1 && count > 1)) {
+ // HACK: even if i == 0, we use mColorOther when this suggestion's length is 1 and
+ // there are multiple suggestions, such as the default punctuation list.
paint.setColor(mColorOther);
}
final int wordWidth;
diff --git a/java/src/com/android/inputmethod/latin/Hints.java b/java/src/com/android/inputmethod/latin/Hints.java
index 2434d5195..c467365e7 100644
--- a/java/src/com/android/inputmethod/latin/Hints.java
+++ b/java/src/com/android/inputmethod/latin/Hints.java
@@ -106,7 +106,7 @@ public class Hints {
SharedPreferences.Editor editor =
PreferenceManager.getDefaultSharedPreferences(mContext).edit();
editor.putLong(PREF_VOICE_INPUT_LAST_TIME_USED, System.currentTimeMillis());
- editor.commit();
+ SharedPreferencesCompat.apply(editor);
mVoiceResultContainedPunctuation = false;
for (CharSequence s : SPEAKABLE_PUNCTUATION.keySet()) {
@@ -168,7 +168,7 @@ public class Hints {
SharedPreferences.Editor editor = sp.edit();
editor.putInt(PREF_VOICE_HINT_NUM_UNIQUE_DAYS_SHOWN, numUniqueDaysShown + 1);
editor.putLong(PREF_VOICE_HINT_LAST_TIME_SHOWN, System.currentTimeMillis());
- editor.commit();
+ SharedPreferencesCompat.apply(editor);
}
if (mDisplay != null) {
@@ -181,7 +181,7 @@ public class Hints {
int value = sp.getInt(pref, 0);
SharedPreferences.Editor editor = sp.edit();
editor.putInt(pref, value + 1);
- editor.commit();
+ SharedPreferencesCompat.apply(editor);
return value;
}
}
diff --git a/java/src/com/android/inputmethod/latin/InputLanguageSelection.java b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java
index 7258874c0..e811a2cdd 100644
--- a/java/src/com/android/inputmethod/latin/InputLanguageSelection.java
+++ b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java
@@ -143,7 +143,7 @@ public class InputLanguageSelection extends PreferenceActivity {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = sp.edit();
editor.putString(LatinIME.PREF_SELECTED_LANGUAGES, checkedLanguages);
- editor.commit();
+ SharedPreferencesCompat.apply(editor);
}
ArrayList<Loc> getUniqueLocales() {
diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index 284b29305..ebf2f4e60 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -16,13 +16,13 @@
package com.android.inputmethod.latin;
-import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.preference.PreferenceManager;
import android.view.InflateException;
+import java.lang.ref.SoftReference;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -38,11 +38,29 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
public static final int MODE_IM = 6;
public static final int MODE_WEB = 7;
+ // Main keyboard layouts without the settings key
public static final int KEYBOARDMODE_NORMAL = R.id.mode_normal;
public static final int KEYBOARDMODE_URL = R.id.mode_url;
public static final int KEYBOARDMODE_EMAIL = R.id.mode_email;
public static final int KEYBOARDMODE_IM = R.id.mode_im;
public static final int KEYBOARDMODE_WEB = R.id.mode_webentry;
+ // Main keyboard layouts with the settings key
+ public static final int KEYBOARDMODE_NORMAL_WITH_SETTINGS_KEY =
+ R.id.mode_normal_with_settings_key;
+ public static final int KEYBOARDMODE_URL_WITH_SETTINGS_KEY =
+ R.id.mode_url_with_settings_key;
+ public static final int KEYBOARDMODE_EMAIL_WITH_SETTINGS_KEY =
+ R.id.mode_email_with_settings_key;
+ public static final int KEYBOARDMODE_IM_WITH_SETTINGS_KEY =
+ R.id.mode_im_with_settings_key;
+ public static final int KEYBOARDMODE_WEB_WITH_SETTINGS_KEY =
+ R.id.mode_webentry_with_settings_key;
+
+ // Symbols keyboard layout without the settings key
+ public static final int KEYBOARDMODE_SYMBOLS = R.id.mode_symbols;
+ // Symbols keyboard layout with the settings key
+ public static final int KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY =
+ R.id.mode_symbols_with_settings_key;
public static final String DEFAULT_LAYOUT_ID = "4";
public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20100902";
@@ -68,22 +86,26 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
private static final int SYMBOLS_MODE_STATE_BEGIN = 1;
private static final int SYMBOLS_MODE_STATE_SYMBOL = 2;
- LatinKeyboardView mInputView;
+ private LatinKeyboardView mInputView;
private static final int[] ALPHABET_MODES = {
KEYBOARDMODE_NORMAL,
KEYBOARDMODE_URL,
KEYBOARDMODE_EMAIL,
KEYBOARDMODE_IM,
- KEYBOARDMODE_WEB};
+ KEYBOARDMODE_WEB,
+ KEYBOARDMODE_NORMAL_WITH_SETTINGS_KEY,
+ KEYBOARDMODE_URL_WITH_SETTINGS_KEY,
+ KEYBOARDMODE_EMAIL_WITH_SETTINGS_KEY,
+ KEYBOARDMODE_IM_WITH_SETTINGS_KEY,
+ KEYBOARDMODE_WEB_WITH_SETTINGS_KEY };
- Context mContext;
- LatinIME mInputMethodService;
+ private final LatinIME mInputMethodService;
private KeyboardId mSymbolsId;
private KeyboardId mSymbolsShiftedId;
private KeyboardId mCurrentId;
- private Map<KeyboardId, LatinKeyboard> mKeyboards;
+ private final Map<KeyboardId, SoftReference<LatinKeyboard>> mKeyboards;
private int mMode = MODE_NONE; /** One of the MODE_XXX values */
private int mImeOptions;
@@ -96,23 +118,32 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
private boolean mPreferSymbols;
private int mSymbolsModeState = SYMBOLS_MODE_STATE_NONE;
+ // Indicates whether or not we have the settings key
+ private boolean mHasSettingsKey;
+ private static final int SETTINGS_KEY_MODE_AUTO = R.string.settings_key_mode_auto;
+ private static final int SETTINGS_KEY_MODE_ALWAYS_SHOW = R.string.settings_key_mode_always_show;
+ // NOTE: No need to have SETTINGS_KEY_MODE_ALWAYS_HIDE here because it's not being referred to
+ // in the source code now.
+ // Default is SETTINGS_KEY_MODE_AUTO.
+ private static final int DEFAULT_SETTINGS_KEY_MODE = SETTINGS_KEY_MODE_AUTO;
+
private int mLastDisplayWidth;
private LanguageSwitcher mLanguageSwitcher;
private Locale mInputLocale;
private int mLayoutId;
- KeyboardSwitcher(Context context, LatinIME ims) {
- mContext = context;
+ public KeyboardSwitcher(LatinIME ims) {
+ mInputMethodService = ims;
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ims);
mLayoutId = Integer.valueOf(prefs.getString(PREF_KEYBOARD_LAYOUT, DEFAULT_LAYOUT_ID));
+ updateSettingsKeyState(prefs);
prefs.registerOnSharedPreferenceChangeListener(this);
- mKeyboards = new HashMap<KeyboardId, LatinKeyboard>();
+ mKeyboards = new HashMap<KeyboardId, SoftReference<LatinKeyboard>>();
mSymbolsId = makeSymbolsId(false);
mSymbolsShiftedId = makeSymbolsShiftedId(false);
- mInputMethodService = ims;
}
/**
@@ -121,24 +152,24 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
* @param locale the current input locale, or null for default locale with no locale
* button.
*/
- void setLanguageSwitcher(LanguageSwitcher languageSwitcher) {
+ public void setLanguageSwitcher(LanguageSwitcher languageSwitcher) {
mLanguageSwitcher = languageSwitcher;
mInputLocale = mLanguageSwitcher.getInputLocale();
}
- void setInputView(LatinKeyboardView inputView) {
- mInputView = inputView;
- }
-
private KeyboardId makeSymbolsId(boolean hasVoice) {
- return new KeyboardId(KBD_SYMBOLS[getCharColorId()], hasVoice);
+ return new KeyboardId(KBD_SYMBOLS[getCharColorId()], mHasSettingsKey ?
+ KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+ false, hasVoice);
}
private KeyboardId makeSymbolsShiftedId(boolean hasVoice) {
- return new KeyboardId(KBD_SYMBOLS_SHIFT[getCharColorId()], hasVoice);
+ return new KeyboardId(KBD_SYMBOLS_SHIFT[getCharColorId()], mHasSettingsKey ?
+ KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+ false, hasVoice);
}
- void makeKeyboards(boolean forceCreate) {
+ public void makeKeyboards(boolean forceCreate) {
mSymbolsId = makeSymbolsId(mHasVoice && !mVoiceOnPrimary);
mSymbolsShiftedId = makeSymbolsShiftedId(mHasVoice && !mVoiceOnPrimary);
@@ -157,10 +188,11 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
* which also serve as a unique identifier for each keyboard type.
*/
private static class KeyboardId {
- public int mXml;
- public int mKeyboardMode; /** A KEYBOARDMODE_XXX value */
- public boolean mEnableShiftLock;
- public boolean mHasVoice;
+ // TODO: should have locale and portrait/landscape orientation?
+ public final int mXml;
+ public final int mKeyboardMode; /** A KEYBOARDMODE_XXX value */
+ public final boolean mEnableShiftLock;
+ public final boolean mHasVoice;
public KeyboardId(int xml, int mode, boolean enableShiftLock, boolean hasVoice) {
this.mXml = xml;
@@ -178,10 +210,11 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
return other instanceof KeyboardId && equals((KeyboardId) other);
}
- public boolean equals(KeyboardId other) {
- return other.mXml == this.mXml
- && other.mKeyboardMode == this.mKeyboardMode
- && other.mEnableShiftLock == this.mEnableShiftLock;
+ private boolean equals(KeyboardId other) {
+ return other.mXml == this.mXml
+ && other.mKeyboardMode == this.mKeyboardMode
+ && other.mEnableShiftLock == this.mEnableShiftLock
+ && other.mHasVoice == this.mHasVoice;
}
@Override
@@ -191,7 +224,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
}
}
- void setVoiceMode(boolean enableVoice, boolean voiceOnPrimary) {
+ public void setVoiceMode(boolean enableVoice, boolean voiceOnPrimary) {
if (enableVoice != mHasVoice || voiceOnPrimary != mVoiceOnPrimary) {
mKeyboards.clear();
}
@@ -200,11 +233,11 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
setKeyboardMode(mMode, mImeOptions, mHasVoice, mIsSymbols);
}
- boolean hasVoiceButton(boolean isSymbols) {
+ private boolean hasVoiceButton(boolean isSymbols) {
return mHasVoice && (isSymbols != mVoiceOnPrimary);
}
- void setKeyboardMode(int mode, int imeOptions, boolean enableVoice) {
+ public void setKeyboardMode(int mode, int imeOptions, boolean enableVoice) {
mSymbolsModeState = SYMBOLS_MODE_STATE_NONE;
mPreferSymbols = mode == MODE_SYMBOLS;
if (mode == MODE_SYMBOLS) {
@@ -217,7 +250,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
}
}
- void setKeyboardMode(int mode, int imeOptions, boolean enableVoice, boolean isSymbols) {
+ private void setKeyboardMode(int mode, int imeOptions, boolean enableVoice, boolean isSymbols) {
if (mInputView == null) return;
mMode = mode;
mImeOptions = imeOptions;
@@ -233,25 +266,28 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
if (mode == MODE_PHONE) {
mInputView.setPhoneKeyboard(keyboard);
- mInputView.setPreviewEnabled(false);
}
mCurrentId = id;
mInputView.setKeyboard(keyboard);
keyboard.setShifted(false);
keyboard.setShiftLocked(keyboard.isShiftLocked());
- keyboard.setImeOptions(mContext.getResources(), mMode, imeOptions);
+ keyboard.setImeOptions(mInputMethodService.getResources(), mMode, imeOptions);
keyboard.setColorOfSymbolIcons(mIsAutoCompletionActive, isBlackSym());
+ // Update the settings key state because number of enabled IMEs could have been changed
+ updateSettingsKeyState(PreferenceManager.getDefaultSharedPreferences(mInputMethodService));
}
private LatinKeyboard getKeyboard(KeyboardId id) {
- if (!mKeyboards.containsKey(id)) {
- Resources orig = mContext.getResources();
+ SoftReference<LatinKeyboard> ref = mKeyboards.get(id);
+ LatinKeyboard keyboard = (ref == null) ? null : ref.get();
+ if (keyboard == null) {
+ Resources orig = mInputMethodService.getResources();
Configuration conf = orig.getConfiguration();
Locale saveLocale = conf.locale;
conf.locale = mInputLocale;
orig.updateConfiguration(conf, null);
- LatinKeyboard keyboard = new LatinKeyboard(mContext, id.mXml, id.mKeyboardMode);
+ keyboard = new LatinKeyboard(mInputMethodService, id.mXml, id.mKeyboardMode);
keyboard.setVoiceMode(hasVoiceButton(id.mXml == R.xml.kbd_symbols
|| id.mXml == R.xml.kbd_symbols_black), mHasVoice);
keyboard.setLanguageSwitcher(mLanguageSwitcher, mIsAutoCompletionActive, isBlackSym());
@@ -259,12 +295,12 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
if (id.mEnableShiftLock) {
keyboard.enableShiftLock();
}
- mKeyboards.put(id, keyboard);
+ mKeyboards.put(id, new SoftReference<LatinKeyboard>(keyboard));
conf.locale = saveLocale;
orig.updateConfiguration(conf, null);
}
- return mKeyboards.get(id);
+ return keyboard;
}
private KeyboardId getKeyboardId(int mode, int imeOptions, boolean isSymbols) {
@@ -276,7 +312,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
if (mode == MODE_PHONE) {
return new KeyboardId(KBD_PHONE_SYMBOLS[charColorId], hasVoice);
} else {
- return new KeyboardId(KBD_SYMBOLS[charColorId], hasVoice);
+ return new KeyboardId(KBD_SYMBOLS[charColorId], mHasSettingsKey ?
+ KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+ false, hasVoice);
}
}
switch (mode) {
@@ -285,32 +323,36 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
"getKeyboardId:" + mode + "," + imeOptions + "," + isSymbols);
/* fall through */
case MODE_TEXT:
- return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_NORMAL, true, hasVoice);
+ return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+ KEYBOARDMODE_NORMAL_WITH_SETTINGS_KEY : KEYBOARDMODE_NORMAL,
+ true, hasVoice);
case MODE_SYMBOLS:
- return new KeyboardId(KBD_SYMBOLS[charColorId], hasVoice);
+ return new KeyboardId(KBD_SYMBOLS[charColorId], mHasSettingsKey ?
+ KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+ false, hasVoice);
case MODE_PHONE:
return new KeyboardId(KBD_PHONE[charColorId], hasVoice);
case MODE_URL:
- return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_URL, true, hasVoice);
+ return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+ KEYBOARDMODE_URL_WITH_SETTINGS_KEY : KEYBOARDMODE_URL, true, hasVoice);
case MODE_EMAIL:
- return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_EMAIL, true, hasVoice);
+ return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+ KEYBOARDMODE_EMAIL_WITH_SETTINGS_KEY : KEYBOARDMODE_EMAIL, true, hasVoice);
case MODE_IM:
- return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_IM, true, hasVoice);
+ return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+ KEYBOARDMODE_IM_WITH_SETTINGS_KEY : KEYBOARDMODE_IM, true, hasVoice);
case MODE_WEB:
- return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_WEB, true, hasVoice);
+ return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+ KEYBOARDMODE_WEB_WITH_SETTINGS_KEY : KEYBOARDMODE_WEB, true, hasVoice);
}
return null;
}
- int getKeyboardMode() {
+ public int getKeyboardMode() {
return mMode;
}
- boolean isTextMode() {
- return mMode == MODE_TEXT;
- }
-
- boolean isAlphabetMode() {
+ public boolean isAlphabetMode() {
if (mCurrentId == null) {
return false;
}
@@ -323,19 +365,19 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
return false;
}
- void setShifted(boolean shifted) {
+ public void setShifted(boolean shifted) {
if (mInputView != null) {
mInputView.setShifted(shifted);
}
}
- void setShiftLocked(boolean shiftLocked) {
+ public void setShiftLocked(boolean shiftLocked) {
if (mInputView != null) {
mInputView.setShiftLocked(shiftLocked);
}
}
- void toggleShift() {
+ public void toggleShift() {
if (mCurrentId.equals(mSymbolsId)) {
LatinKeyboard symbolsShiftedKeyboard = getKeyboard(mSymbolsShiftedId);
mCurrentId = mSymbolsShiftedId;
@@ -346,7 +388,8 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
// called.
symbolsShiftedKeyboard.enableShiftLock();
symbolsShiftedKeyboard.setShiftLocked(true);
- symbolsShiftedKeyboard.setImeOptions(mContext.getResources(), mMode, mImeOptions);
+ symbolsShiftedKeyboard.setImeOptions(mInputMethodService.getResources(),
+ mMode, mImeOptions);
} else if (mCurrentId.equals(mSymbolsShiftedId)) {
LatinKeyboard symbolsKeyboard = getKeyboard(mSymbolsId);
mCurrentId = mSymbolsId;
@@ -355,11 +398,11 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
// indicator, we need to call enableShiftLock() and setShiftLocked(false).
symbolsKeyboard.enableShiftLock();
symbolsKeyboard.setShifted(false);
- symbolsKeyboard.setImeOptions(mContext.getResources(), mMode, mImeOptions);
+ symbolsKeyboard.setImeOptions(mInputMethodService.getResources(), mMode, mImeOptions);
}
}
- void toggleSymbols() {
+ public void toggleSymbols() {
setKeyboardMode(mMode, mImeOptions, mHasVoice, !mIsSymbols);
if (mIsSymbols && !mPreferSymbols) {
mSymbolsModeState = SYMBOLS_MODE_STATE_BEGIN;
@@ -376,7 +419,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
* Updates state machine to figure out when to automatically switch back to alpha mode.
* Returns true if the keyboard needs to switch back
*/
- boolean onKey(int key) {
+ public boolean onKey(int key) {
// Switch back to alpha mode if user types one or more non-space/enter characters
// followed by a space/enter
switch (mSymbolsModeState) {
@@ -440,11 +483,14 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
if (PREF_KEYBOARD_LAYOUT.equals(key)) {
changeLatinKeyboardView(
Integer.valueOf(sharedPreferences.getString(key, DEFAULT_LAYOUT_ID)), false);
+ } else if (LatinIMESettings.PREF_SETTINGS_KEY.equals(key)) {
+ updateSettingsKeyState(sharedPreferences);
+ recreateInputView();
}
}
public boolean isBlackSym () {
- if (mInputView != null && mInputView.getSymbolColorSheme() == 1) {
+ if (mInputView != null && mInputView.getSymbolColorScheme() == 1) {
return true;
}
return false;
@@ -466,4 +512,19 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
.onAutoCompletionStateChanged(isAutoCompletion));
}
}
+
+ private void updateSettingsKeyState(SharedPreferences prefs) {
+ Resources resources = mInputMethodService.getResources();
+ final String settingsKeyMode = prefs.getString(LatinIMESettings.PREF_SETTINGS_KEY,
+ resources.getString(DEFAULT_SETTINGS_KEY_MODE));
+ // We show the settings key when 1) SETTINGS_KEY_MODE_ALWAYS_SHOW or
+ // 2) SETTINGS_KEY_MODE_AUTO and there are two or more enabled IMEs on the system
+ if (settingsKeyMode.equals(resources.getString(SETTINGS_KEY_MODE_ALWAYS_SHOW))
+ || (settingsKeyMode.equals(resources.getString(SETTINGS_KEY_MODE_AUTO))
+ && LatinIMEUtil.hasMultipleEnabledIMEs(mInputMethodService))) {
+ mHasSettingsKey = true;
+ } else {
+ mHasSettingsKey = false;
+ }
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/LanguageSwitcher.java b/java/src/com/android/inputmethod/latin/LanguageSwitcher.java
index 578c80526..7b5c30491 100644
--- a/java/src/com/android/inputmethod/latin/LanguageSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/LanguageSwitcher.java
@@ -188,7 +188,7 @@ public class LanguageSwitcher {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mIme);
Editor editor = sp.edit();
editor.putString(LatinIME.PREF_INPUT_LANGUAGE, getInputLanguage());
- editor.commit();
+ SharedPreferencesCompat.apply(editor);
}
static String toTitleCase(String s) {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 7097844e2..7fa763c5e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1,6 +1,6 @@
/*
* 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
* the License at
@@ -228,8 +228,9 @@ public class LatinIME extends InputMethodService
private int mDeleteCount;
private long mLastKeyTime;
- // Shift modifier key state
+ // Modifier keys state
private ModifierKeyState mShiftKeyState = new ModifierKeyState();
+ private ModifierKeyState mSymbolKeyState = new ModifierKeyState();
private Tutorial mTutorial;
@@ -260,7 +261,7 @@ public class LatinIME extends InputMethodService
List<String> candidates;
Map<String, List<CharSequence>> alternatives;
}
-
+
public abstract static class WordAlternatives {
protected CharSequence mChosenWord;
@@ -354,7 +355,7 @@ public class LatinIME extends InputMethodService
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
mLanguageSwitcher = new LanguageSwitcher(this);
mLanguageSwitcher.loadLocales(prefs);
- mKeyboardSwitcher = new KeyboardSwitcher(this, this);
+ mKeyboardSwitcher = new KeyboardSwitcher(this);
mKeyboardSwitcher.setLanguageSwitcher(mLanguageSwitcher);
mSystemLocale = conf.locale.toString();
mLanguageSwitcher.setSystemLocale(conf.locale);
@@ -596,9 +597,10 @@ public class LatinIME extends InputMethodService
switch (attribute.inputType & EditorInfo.TYPE_MASK_CLASS) {
case EditorInfo.TYPE_CLASS_NUMBER:
case EditorInfo.TYPE_CLASS_DATETIME:
- mKeyboardSwitcher.setKeyboardMode(KeyboardSwitcher.MODE_SYMBOLS,
- attribute.imeOptions, enableVoiceButton);
- break;
+ // fall through
+ // NOTE: For now, we use the phone keyboard for NUMBER and DATETIME until we get
+ // a dedicated number entry keypad.
+ // TODO: Use a dedicated number entry keypad here when we get one.
case EditorInfo.TYPE_CLASS_PHONE:
mKeyboardSwitcher.setKeyboardMode(KeyboardSwitcher.MODE_PHONE,
attribute.imeOptions, enableVoiceButton);
@@ -793,6 +795,37 @@ public class LatinIME extends InputMethodService
}
}
+ /**
+ * This is called when the user has clicked on the extracted text view,
+ * when running in fullscreen mode. The default implementation hides
+ * the candidates view when this happens, but only if the extracted text
+ * editor has a vertical scroll bar because its text doesn't fit.
+ * Here we override the behavior due to the possibility that a re-correction could
+ * cause the candidate strip to disappear and re-appear.
+ */
+ @Override
+ public void onExtractedTextClicked() {
+ if (mReCorrectionEnabled && isPredictionOn()) return;
+
+ super.onExtractedTextClicked();
+ }
+
+ /**
+ * This is called when the user has performed a cursor movement in the
+ * extracted text view, when it is running in fullscreen mode. The default
+ * implementation hides the candidates view when a vertical movement
+ * happens, but only if the extracted text editor has a vertical scroll bar
+ * because its text doesn't fit.
+ * Here we override the behavior due to the possibility that a re-correction could
+ * cause the candidate strip to disappear and re-appear.
+ */
+ @Override
+ public void onExtractedCursorMovement(int dx, int dy) {
+ if (mReCorrectionEnabled && isPredictionOn()) return;
+
+ super.onExtractedCursorMovement(dx, dy);
+ }
+
@Override
public void hideWindow() {
LatinImeLogger.commit();
@@ -951,7 +984,7 @@ public class LatinIME extends InputMethodService
private void reloadKeyboards() {
if (mKeyboardSwitcher == null) {
- mKeyboardSwitcher = new KeyboardSwitcher(this, this);
+ mKeyboardSwitcher = new KeyboardSwitcher(this);
}
mKeyboardSwitcher.setLanguageSwitcher(mLanguageSwitcher);
if (mKeyboardSwitcher.getInputView() != null
@@ -1089,11 +1122,6 @@ public class LatinIME extends InputMethodService
}
}
- private boolean hasMultipleEnabledIMEs() {
- return ((InputMethodManager) getSystemService(
- INPUT_METHOD_SERVICE)).getEnabledInputMethodList().size() > 1;
- }
-
private void showInputMethodPicker() {
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.showInputMethodPicker();
@@ -1101,7 +1129,7 @@ public class LatinIME extends InputMethodService
private void onOptionKeyPressed() {
if (!isShowingOptionDialog()) {
- if (hasMultipleEnabledIMEs()) {
+ if (LatinIMEUtil.hasMultipleEnabledIMEs(this)) {
showOptionsMenu();
} else {
launchSettings();
@@ -1111,7 +1139,7 @@ public class LatinIME extends InputMethodService
private void onOptionKeyLongPressed() {
if (!isShowingOptionDialog()) {
- if (hasMultipleEnabledIMEs()) {
+ if (LatinIMEUtil.hasMultipleEnabledIMEs(this)) {
showInputMethodPicker();
} else {
launchSettings();
@@ -1132,6 +1160,7 @@ public class LatinIME extends InputMethodService
mDeleteCount = 0;
}
mLastKeyTime = when;
+ final boolean distinctMultiTouch = mKeyboardSwitcher.hasDistinctMultitouch();
switch (primaryCode) {
case Keyboard.KEYCODE_DELETE:
handleBackspace();
@@ -1140,9 +1169,14 @@ public class LatinIME extends InputMethodService
break;
case Keyboard.KEYCODE_SHIFT:
// Shift key is handled in onPress() when device has distinct multi-touch panel.
- if (!mKeyboardSwitcher.hasDistinctMultitouch())
+ if (!distinctMultiTouch)
handleShift();
break;
+ case Keyboard.KEYCODE_MODE_CHANGE:
+ // Symbol key is handled in onPress() when device has distinct multi-touch panel.
+ if (!distinctMultiTouch)
+ changeKeyboardMode();
+ break;
case Keyboard.KEYCODE_CANCEL:
if (!isShowingOptionDialog()) {
handleClose();
@@ -1160,10 +1194,6 @@ public class LatinIME extends InputMethodService
case LatinKeyboardView.KEYCODE_PREV_LANGUAGE:
toggleLanguage(false, false);
break;
- case Keyboard.KEYCODE_MODE_CHANGE:
- // TODO: Mode change (symbol key) should be handled in onPress().
- changeKeyboardMode();
- break;
case LatinKeyboardView.KEYCODE_VOICE:
if (VOICE_INSTALLED) {
startListening(false /* was a button press, was not a swipe */);
@@ -1344,14 +1374,21 @@ public class LatinIME extends InputMethodService
}
}
if (mKeyboardSwitcher.getInputView().isShifted()) {
- // TODO: This doesn't work with [beta], need to fix it in the next release.
if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
|| keyCodes[0] > Character.MAX_CODE_POINT) {
return;
}
primaryCode = keyCodes[0];
- if (mKeyboardSwitcher.isAlphabetMode()) {
- primaryCode = Character.toUpperCase(primaryCode);
+ if (mKeyboardSwitcher.isAlphabetMode() && Character.isLowerCase(primaryCode)) {
+ int upperCaseCode = Character.toUpperCase(primaryCode);
+ if (upperCaseCode != primaryCode) {
+ primaryCode = upperCaseCode;
+ } else {
+ // Some keys, such as [eszett], have upper case as multi-characters.
+ String upperCase = new String(new int[] {primaryCode}, 0, 1).toUpperCase();
+ onText(upperCase);
+ return;
+ }
}
}
if (mPredicting) {
@@ -1547,7 +1584,7 @@ public class LatinIME extends InputMethodService
SharedPreferences.Editor editor =
PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putBoolean(PREF_HAS_USED_VOICE_INPUT, true);
- editor.commit();
+ SharedPreferencesCompat.apply(editor);
mHasUsedVoiceInput = true;
}
@@ -1557,7 +1594,7 @@ public class LatinIME extends InputMethodService
SharedPreferences.Editor editor =
PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putBoolean(PREF_HAS_USED_VOICE_INPUT_UNSUPPORTED_LOCALE, true);
- editor.commit();
+ SharedPreferencesCompat.apply(editor);
mHasUsedVoiceInputUnsupportedLocale = true;
}
@@ -2209,13 +2246,16 @@ public class LatinIME extends InputMethodService
public void onPress(int primaryCode) {
vibrate();
playKeyClick(primaryCode);
- if (mKeyboardSwitcher.hasDistinctMultitouch() && primaryCode == Keyboard.KEYCODE_SHIFT) {
+ final boolean distinctMultiTouch = mKeyboardSwitcher.hasDistinctMultitouch();
+ if (distinctMultiTouch && primaryCode == Keyboard.KEYCODE_SHIFT) {
mShiftKeyState.onPress();
handleShift();
- } else if (primaryCode == Keyboard.KEYCODE_MODE_CHANGE) {
- // TODO: We should handle KEYCODE_MODE_CHANGE (symbol) here as well.
+ } else if (distinctMultiTouch && primaryCode == Keyboard.KEYCODE_MODE_CHANGE) {
+ mSymbolKeyState.onPress();
+ changeKeyboardMode();
} else {
mShiftKeyState.onOtherKeyPressed();
+ mSymbolKeyState.onOtherKeyPressed();
}
}
@@ -2223,12 +2263,15 @@ public class LatinIME extends InputMethodService
// Reset any drag flags in the keyboard
((LatinKeyboard) mKeyboardSwitcher.getInputView().getKeyboard()).keyReleased();
//vibrate();
- if (mKeyboardSwitcher.hasDistinctMultitouch() && primaryCode == Keyboard.KEYCODE_SHIFT) {
+ final boolean distinctMultiTouch = mKeyboardSwitcher.hasDistinctMultitouch();
+ if (distinctMultiTouch && primaryCode == Keyboard.KEYCODE_SHIFT) {
if (mShiftKeyState.isMomentary())
resetShift();
mShiftKeyState.onRelease();
- } else if (primaryCode == Keyboard.KEYCODE_MODE_CHANGE) {
- // TODO: We should handle KEYCODE_MODE_CHANGE (symbol) here as well.
+ } else if (distinctMultiTouch && primaryCode == Keyboard.KEYCODE_MODE_CHANGE) {
+ if (mSymbolKeyState.isMomentary())
+ changeKeyboardMode();
+ mSymbolKeyState.onRelease();
}
}
diff --git a/java/src/com/android/inputmethod/latin/LatinIMESettings.java b/java/src/com/android/inputmethod/latin/LatinIMESettings.java
index 565c1e6e8..f9534d265 100644
--- a/java/src/com/android/inputmethod/latin/LatinIMESettings.java
+++ b/java/src/com/android/inputmethod/latin/LatinIMESettings.java
@@ -46,6 +46,7 @@ public class LatinIMESettings extends PreferenceActivity
private static final String PREDICTION_SETTINGS_KEY = "prediction_settings";
private static final String VOICE_SETTINGS_KEY = "voice_mode";
private static final String DEBUG_MODE_KEY = "debug_mode";
+ /* package */ static final String PREF_SETTINGS_KEY = "settings_key";
private static final String TAG = "LatinIMESettings";
@@ -55,6 +56,7 @@ public class LatinIMESettings extends PreferenceActivity
private CheckBoxPreference mQuickFixes;
private CheckBoxPreference mDebugMode;
private ListPreference mVoicePreference;
+ private ListPreference mSettingsKeyPreference;
private boolean mVoiceOn;
private VoiceInputLogger mLogger;
@@ -68,6 +70,7 @@ public class LatinIMESettings extends PreferenceActivity
addPreferencesFromResource(R.xml.prefs);
mQuickFixes = (CheckBoxPreference) findPreference(QUICK_FIXES_KEY);
mVoicePreference = (ListPreference) findPreference(VOICE_SETTINGS_KEY);
+ mSettingsKeyPreference = (ListPreference) findPreference(PREF_SETTINGS_KEY);
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
prefs.registerOnSharedPreferenceChangeListener(this);
@@ -93,6 +96,7 @@ public class LatinIMESettings extends PreferenceActivity
} else {
updateVoiceModeSummary();
}
+ updateSettingsKeySummary();
}
@Override
@@ -106,7 +110,7 @@ public class LatinIMESettings extends PreferenceActivity
(new BackupManager(this)).dataChanged();
// If turning on voice input, show dialog
if (key.equals(VOICE_SETTINGS_KEY) && !mVoiceOn) {
- if (! prefs.getString(VOICE_SETTINGS_KEY, mVoiceModeOff)
+ if (!prefs.getString(VOICE_SETTINGS_KEY, mVoiceModeOff)
.equals(mVoiceModeOff)) {
showVoiceConfirmation();
}
@@ -118,6 +122,13 @@ public class LatinIMESettings extends PreferenceActivity
}
mVoiceOn = !(prefs.getString(VOICE_SETTINGS_KEY, mVoiceModeOff).equals(mVoiceModeOff));
updateVoiceModeSummary();
+ updateSettingsKeySummary();
+ }
+
+ private void updateSettingsKeySummary() {
+ mSettingsKeyPreference.setSummary(
+ getResources().getStringArray(R.array.settings_key_modes)
+ [mSettingsKeyPreference.findIndexOfValue(mSettingsKeyPreference.getValue())]);
}
private void updateDebugMode() {
diff --git a/java/src/com/android/inputmethod/latin/LatinIMEUtil.java b/java/src/com/android/inputmethod/latin/LatinIMEUtil.java
index 93ad4072d..34b52845e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIMEUtil.java
+++ b/java/src/com/android/inputmethod/latin/LatinIMEUtil.java
@@ -16,6 +16,9 @@
package com.android.inputmethod.latin;
+import android.view.inputmethod.InputMethodManager;
+
+import android.content.Context;
import android.os.AsyncTask;
import android.text.format.DateUtils;
import android.util.Log;
@@ -72,4 +75,9 @@ public class LatinIMEUtil {
}
}
}
+
+ public static boolean hasMultipleEnabledIMEs(Context context) {
+ return ((InputMethodManager) context.getSystemService(
+ Context.INPUT_METHOD_SERVICE)).getEnabledInputMethodList().size() > 1;
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboard.java b/java/src/com/android/inputmethod/latin/LatinKeyboard.java
index caae92363..14a503bc3 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboard.java
@@ -56,25 +56,28 @@ public class LatinKeyboard extends Keyboard {
private Drawable mMicPreviewIcon;
private Drawable m123MicIcon;
private Drawable m123MicPreviewIcon;
- private Drawable mButtonArrowLeftIcon;
- private Drawable mButtonArrowRightIcon;
+ private final Drawable mButtonArrowLeftIcon;
+ private final Drawable mButtonArrowRightIcon;
private Key mShiftKey;
private Key mEnterKey;
private Key mF1Key;
private Key mSpaceKey;
private Key m123Key;
+ private final int NUMBER_HINT_COUNT = 10;
+ private Key[] mNumberHintKeys;
+ private Drawable[] mNumberHintIcons = new Drawable[NUMBER_HINT_COUNT];
private int mSpaceKeyIndex = -1;
private int mSpaceDragStartX;
private int mSpaceDragLastDiff;
- /* package */ Locale mLocale;
+ private Locale mLocale;
private LanguageSwitcher mLanguageSwitcher;
- private Resources mRes;
- private Context mContext;
+ private final Resources mRes;
+ private final Context mContext;
// Whether this keyboard has voice icon on it
private boolean mHasVoiceButton;
// Whether voice icon is enabled at all
private boolean mVoiceEnabled;
- private boolean mIsAlphaKeyboard;
+ private final boolean mIsAlphaKeyboard;
private CharSequence m123Label;
private boolean mCurrentlyInSpace;
private SlidingLocaleDrawable mSlidingLocaleIcon;
@@ -96,8 +99,15 @@ public class LatinKeyboard extends Keyboard {
private static final float SPACEBAR_DRAG_THRESHOLD = 0.8f;
private static final float OVERLAP_PERCENTAGE_LOW_PROB = 0.70f;
private static final float OVERLAP_PERCENTAGE_HIGH_PROB = 0.85f;
+ // Minimum width of space key preview (proportional to keyboard width)
+ private static final float SPACEBAR_POPUP_MIN_RATIO = 0.4f;
+ // Height in space key the language name will be drawn. (proportional to space key height)
+ private static final float SPACEBAR_LANGUAGE_BASELINE = 0.6f;
+ // If the full language name needs to be smaller than this value to be drawn on space key,
+ // its short language name will be used instead.
+ private static final float MINIMUM_SCALE_OF_LANGUAGE_NAME = 0.8f;
- static int sSpacebarVerticalCorrection;
+ private static int sSpacebarVerticalCorrection;
public LatinKeyboard(Context context, int xmlLayoutResId) {
this(context, xmlLayoutResId, 0);
@@ -128,12 +138,22 @@ public class LatinKeyboard extends Keyboard {
R.dimen.spacebar_vertical_correction);
mIsAlphaKeyboard = xmlLayoutResId == R.xml.kbd_qwerty
|| xmlLayoutResId == R.xml.kbd_qwerty_black;
- mSpaceKeyIndex = indexOf(' ');
+ mSpaceKeyIndex = indexOf(LatinIME.KEYCODE_SPACE);
+ initializeNumberHintResources(context);
}
- public LatinKeyboard(Context context, int layoutTemplateResId,
- CharSequence characters, int columns, int horizontalPadding) {
- super(context, layoutTemplateResId, characters, columns, horizontalPadding);
+ private void initializeNumberHintResources(Context context) {
+ final Resources res = context.getResources();
+ mNumberHintIcons[0] = res.getDrawable(R.drawable.keyboard_hint_0);
+ mNumberHintIcons[1] = res.getDrawable(R.drawable.keyboard_hint_1);
+ mNumberHintIcons[2] = res.getDrawable(R.drawable.keyboard_hint_2);
+ mNumberHintIcons[3] = res.getDrawable(R.drawable.keyboard_hint_3);
+ mNumberHintIcons[4] = res.getDrawable(R.drawable.keyboard_hint_4);
+ mNumberHintIcons[5] = res.getDrawable(R.drawable.keyboard_hint_5);
+ mNumberHintIcons[6] = res.getDrawable(R.drawable.keyboard_hint_6);
+ mNumberHintIcons[7] = res.getDrawable(R.drawable.keyboard_hint_7);
+ mNumberHintIcons[8] = res.getDrawable(R.drawable.keyboard_hint_8);
+ mNumberHintIcons[9] = res.getDrawable(R.drawable.keyboard_hint_9);
}
@Override
@@ -141,13 +161,13 @@ public class LatinKeyboard extends Keyboard {
XmlResourceParser parser) {
Key key = new LatinKey(res, parent, x, y, parser);
switch (key.codes[0]) {
- case 10:
+ case LatinIME.KEYCODE_ENTER:
mEnterKey = key;
break;
case LatinKeyboardView.KEYCODE_F1:
mF1Key = key;
break;
- case 32:
+ case LatinIME.KEYCODE_SPACE:
mSpaceKey = key;
break;
case KEYCODE_MODE_CHANGE:
@@ -155,6 +175,23 @@ public class LatinKeyboard extends Keyboard {
m123Label = key.label;
break;
}
+
+ // For number hints on the upper-right corner of key
+ if (mNumberHintKeys == null) {
+ // NOTE: This protected method is being called from the base class constructor before
+ // mNumberHintKeys gets initialized.
+ mNumberHintKeys = new Key[NUMBER_HINT_COUNT];
+ }
+ int hintNumber = -1;
+ if (LatinKeyboardBaseView.isNumberAtLeftmostPopupChar(key)) {
+ hintNumber = key.popupCharacters.charAt(0) - '0';
+ } else if (LatinKeyboardBaseView.isNumberAtRightmostPopupChar(key)) {
+ hintNumber = key.popupCharacters.charAt(key.popupCharacters.length() - 1) - '0';
+ }
+ if (hintNumber >= 0 && hintNumber <= 9) {
+ mNumberHintKeys[hintNumber] = key;
+ }
+
return key;
}
@@ -298,6 +335,7 @@ public class LatinKeyboard extends Keyboard {
if (mSpaceKey != null) {
updateSpaceBarForLocale(isAutoCompletion, isBlack);
}
+ updateNumberHintKeys();
}
private void setDefaultBounds(Drawable drawable) {
@@ -345,12 +383,23 @@ public class LatinKeyboard extends Keyboard {
return mSpaceKey;
}
+ private void updateNumberHintKeys() {
+ for (int i = 0; i < mNumberHintKeys.length; ++i) {
+ if (mNumberHintKeys[i] != null) {
+ mNumberHintKeys[i].icon = mNumberHintIcons[i];
+ }
+ }
+ }
+
+ public boolean isLanguageSwitchEnabled() {
+ return mLocale != null;
+ }
+
private void updateSpaceBarForLocale(boolean isAutoCompletion, boolean isBlack) {
// If application locales are explicitly selected.
if (mLocale != null) {
mSpaceKey.icon = new BitmapDrawable(mRes,
drawSpaceBar(OPACITY_FULLY_OPAQUE, isAutoCompletion, isBlack));
- mSpaceKey.repeatable = mLanguageSwitcher.getLocaleCount() < 2;
} else {
// sym_keyboard_space_led can be shared with Black and White symbol themes.
if (isAutoCompletion) {
@@ -360,47 +409,97 @@ public class LatinKeyboard extends Keyboard {
mSpaceKey.icon = isBlack ? mRes.getDrawable(R.drawable.sym_bkeyboard_space)
: mRes.getDrawable(R.drawable.sym_keyboard_space);
}
- mSpaceKey.repeatable = true;
}
}
+ // Compute width of text with specified text size using paint.
+ private static int getTextWidth(Paint paint, String text, float textSize, Rect bounds) {
+ paint.setTextSize(textSize);
+ paint.getTextBounds(text, 0, text.length(), bounds);
+ return bounds.width();
+ }
+
+ // Layout local language name and left and right arrow on space bar.
+ private static String layoutSpaceBar(Paint paint, Locale locale, Drawable lArrow,
+ Drawable rArrow, int width, int height, float origTextSize,
+ boolean allowVariableTextSize) {
+ final float arrowWidth = lArrow.getIntrinsicWidth();
+ final float arrowHeight = lArrow.getIntrinsicHeight();
+ final float maxTextWidth = width - (arrowWidth + arrowWidth);
+ final Rect bounds = new Rect();
+
+ // Estimate appropriate language name text size to fit in maxTextWidth.
+ String language = LanguageSwitcher.toTitleCase(locale.getDisplayLanguage(locale));
+ int textWidth = getTextWidth(paint, language, origTextSize, bounds);
+ // Assuming text width and text size are proportional to each other.
+ float textSize = origTextSize * Math.min(maxTextWidth / textWidth, 1.0f);
+
+ final boolean useShortName;
+ if (allowVariableTextSize) {
+ textWidth = getTextWidth(paint, language, textSize, bounds);
+ // If text size goes too small or text does not fit, use short name
+ useShortName = textSize / origTextSize < MINIMUM_SCALE_OF_LANGUAGE_NAME
+ || textWidth > maxTextWidth;
+ } else {
+ useShortName = textWidth > maxTextWidth;
+ textSize = origTextSize;
+ }
+ if (useShortName) {
+ language = LanguageSwitcher.toTitleCase(locale.getLanguage());
+ textWidth = getTextWidth(paint, language, origTextSize, bounds);
+ textSize = origTextSize * Math.min(maxTextWidth / textWidth, 1.0f);
+ }
+ paint.setTextSize(textSize);
+
+ // Place left and right arrow just before and after language text.
+ final float baseline = height * SPACEBAR_LANGUAGE_BASELINE;
+ final int top = (int)(baseline - arrowHeight);
+ final float remains = (width - textWidth) / 2;
+ lArrow.setBounds((int)(remains - arrowWidth), top, (int)remains, (int)baseline);
+ rArrow.setBounds((int)(remains + textWidth), top, (int)(remains + textWidth + arrowWidth),
+ (int)baseline);
+
+ return language;
+ }
+
private Bitmap drawSpaceBar(int opacity, boolean isAutoCompletion, boolean isBlack) {
- int width = mSpaceKey.width;
- int height = mSpaceIcon.getIntrinsicHeight();
- Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- Canvas canvas = new Canvas(buffer);
+ final int width = mSpaceKey.width;
+ final int height = mSpaceIcon.getIntrinsicHeight();
+ final Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ final Canvas canvas = new Canvas(buffer);
canvas.drawColor(mRes.getColor(R.color.latinkeyboard_transparent), PorterDuff.Mode.CLEAR);
+
// If application locales are explicitly selected.
if (mLocale != null) {
- Paint paint = new Paint();
- paint.setAntiAlias(true);
+ final Paint paint = new Paint();
paint.setAlpha(opacity);
- // Get the text size from the theme
- paint.setTextSize(getTextSizeFromTheme(android.R.style.TextAppearance_Small, 14));
+ paint.setAntiAlias(true);
paint.setTextAlign(Align.CENTER);
- final String language = getInputLanguage(mSpaceKey.width, paint);
- final int ascent = (int) -paint.ascent();
-
- int shadowColor = isBlack ?
- mRes.getColor(R.color.latinkeyboard_bar_language_shadow_black)
- : mRes.getColor(R.color.latinkeyboard_bar_language_shadow_white);
+ final boolean allowVariableTextSize = true;
+ final String language = layoutSpaceBar(paint, mLanguageSwitcher.getInputLocale(),
+ mButtonArrowLeftIcon, mButtonArrowRightIcon, width, height,
+ getTextSizeFromTheme(android.R.style.TextAppearance_Small, 14),
+ allowVariableTextSize);
+
+ // Draw language text with shadow
+ final int shadowColor = mRes.getColor(isBlack
+ ? R.color.latinkeyboard_bar_language_shadow_black
+ : R.color.latinkeyboard_bar_language_shadow_white);
+ final float baseline = height * SPACEBAR_LANGUAGE_BASELINE;
+ final float descent = paint.descent();
paint.setColor(shadowColor);
- canvas.drawText(language, width / 2, ascent - 1, paint);
+ canvas.drawText(language, width / 2, baseline - descent - 1, paint);
paint.setColor(mRes.getColor(R.color.latinkeyboard_bar_language_text));
- canvas.drawText(language, width / 2, ascent, paint);
- // Put arrows on either side of the text
+ canvas.drawText(language, width / 2, baseline - descent, paint);
+
+ // Put arrows that are already layed out on either side of the text
if (mLanguageSwitcher.getLocaleCount() > 1) {
- Rect bounds = new Rect();
- paint.getTextBounds(language, 0, language.length(), bounds);
- drawButtonArrow(mButtonArrowLeftIcon, canvas,
- (mSpaceKey.width - bounds.right) / 2
- - mButtonArrowLeftIcon.getIntrinsicWidth(),
- (int) paint.getTextSize());
- drawButtonArrow(mButtonArrowRightIcon, canvas,
- (mSpaceKey.width + bounds.right) / 2, (int) paint.getTextSize());
+ mButtonArrowLeftIcon.draw(canvas);
+ mButtonArrowRightIcon.draw(canvas);
}
}
+
// Draw the spacebar icon at the bottom
if (isAutoCompletion) {
final int iconWidth = width * SPACE_LED_LENGTH_PERCENT / 100;
@@ -420,38 +519,13 @@ public class LatinKeyboard extends Keyboard {
return buffer;
}
- private void drawButtonArrow(Drawable arrow, Canvas canvas, int x, int bottomY) {
- arrow.setBounds(x, bottomY - arrow.getIntrinsicHeight(), x + arrow.getIntrinsicWidth(),
- bottomY);
- arrow.draw(canvas);
- }
-
- private String getInputLanguage(int widthAvail, Paint paint) {
- return chooseDisplayName(mLanguageSwitcher.getInputLocale(), widthAvail, paint);
- }
-
- private String getNextInputLanguage(int widthAvail, Paint paint) {
- return chooseDisplayName(mLanguageSwitcher.getNextInputLocale(), widthAvail, paint);
- }
-
- private String getPrevInputLanguage(int widthAvail, Paint paint) {
- return chooseDisplayName(mLanguageSwitcher.getPrevInputLocale(), widthAvail, paint);
- }
-
- private String chooseDisplayName(Locale locale, int widthAvail, Paint paint) {
- if (widthAvail < (int) (.35 * getMinWidth())) {
- return LanguageSwitcher.toTitleCase(locale.getLanguage().substring(0, 2));
- } else {
- return LanguageSwitcher.toTitleCase(locale.getDisplayLanguage(locale));
- }
- }
-
private void updateLocaleDrag(int diff) {
if (mSlidingLocaleIcon == null) {
- mSlidingLocaleIcon = new SlidingLocaleDrawable(mSpacePreviewIcon, mSpaceKey.width,
- mSpacePreviewIcon.getIntrinsicHeight());
- mSlidingLocaleIcon.setBounds(0, 0, mSpaceKey.width,
- mSpacePreviewIcon.getIntrinsicHeight());
+ final int width = Math.max(mSpaceKey.width,
+ (int)(getMinWidth() * SPACEBAR_POPUP_MIN_RATIO));
+ final int height = mSpacePreviewIcon.getIntrinsicHeight();
+ mSlidingLocaleIcon = new SlidingLocaleDrawable(mSpacePreviewIcon, width, height);
+ mSlidingLocaleIcon.setBounds(0, 0, width, height);
mSpaceKey.iconPreview = mSlidingLocaleIcon;
}
mSlidingLocaleIcon.setDiff(diff);
@@ -484,9 +558,8 @@ public class LatinKeyboard extends Keyboard {
.equalsIgnoreCase(locale.getLanguage())) {
locale = null;
}
- setColorOfSymbolIcons(isAutoCompletion, isBlackSym);
- if (mLocale != null && mLocale.equals(locale)) return;
mLocale = locale;
+ setColorOfSymbolIcons(isAutoCompletion, isBlackSym);
}
boolean isCurrentlyInSpace() {
@@ -737,17 +810,16 @@ public class LatinKeyboard extends Keyboard {
*/
class SlidingLocaleDrawable extends Drawable {
- private int mWidth;
- private int mHeight;
- private Drawable mBackground;
+ private final int mWidth;
+ private final int mHeight;
+ private final Drawable mBackground;
+ private final TextPaint mTextPaint;
+ private final int mMiddleX;
+ private final Drawable mLeftDrawable;
+ private final Drawable mRightDrawable;
+ private final int mThreshold;
private int mDiff;
- private TextPaint mTextPaint;
- private int mMiddleX;
- private int mAscent;
- private Drawable mLeftDrawable;
- private Drawable mRightDrawable;
private boolean mHitThreshold;
- private int mThreshold;
private String mCurrentLanguage;
private String mNextLanguage;
private String mPrevLanguage;
@@ -759,26 +831,20 @@ public class LatinKeyboard extends Keyboard {
mWidth = width;
mHeight = height;
mTextPaint = new TextPaint();
- int textSize = getTextSizeFromTheme(android.R.style.TextAppearance_Medium, 18);
- mTextPaint.setTextSize(textSize);
+ mTextPaint.setTextSize(getTextSizeFromTheme(android.R.style.TextAppearance_Medium, 18));
mTextPaint.setColor(R.color.latinkeyboard_transparent);
mTextPaint.setTextAlign(Align.CENTER);
mTextPaint.setAlpha(OPACITY_FULLY_OPAQUE);
mTextPaint.setAntiAlias(true);
- mAscent = (int) mTextPaint.ascent();
mMiddleX = (mWidth - mBackground.getIntrinsicWidth()) / 2;
mLeftDrawable =
mRes.getDrawable(R.drawable.sym_keyboard_feedback_language_arrows_left);
mRightDrawable =
mRes.getDrawable(R.drawable.sym_keyboard_feedback_language_arrows_right);
- mLeftDrawable.setBounds(0, 0,
- mLeftDrawable.getIntrinsicWidth(), mLeftDrawable.getIntrinsicHeight());
- mRightDrawable.setBounds(mWidth - mRightDrawable.getIntrinsicWidth(), 0,
- mWidth, mRightDrawable.getIntrinsicHeight());
mThreshold = ViewConfiguration.get(mContext).getScaledTouchSlop();
}
- void setDiff(int diff) {
+ private void setDiff(int diff) {
if (diff == Integer.MAX_VALUE) {
mHitThreshold = false;
mCurrentLanguage = null;
@@ -791,25 +857,39 @@ public class LatinKeyboard extends Keyboard {
invalidateSelf();
}
+ private String getLanguageName(Locale locale) {
+ return LanguageSwitcher.toTitleCase(locale.getDisplayLanguage(locale));
+ }
+
@Override
public void draw(Canvas canvas) {
canvas.save();
if (mHitThreshold) {
- mTextPaint.setColor(mRes.getColor(R.color.latinkeyboard_feedback_language_text));
- canvas.clipRect(0, 0, mWidth, mHeight);
+ Paint paint = mTextPaint;
+ final int width = mWidth;
+ final int height = mHeight;
+ final int diff = mDiff;
+ final Drawable lArrow = mLeftDrawable;
+ final Drawable rArrow = mRightDrawable;
+ canvas.clipRect(0, 0, width, height);
if (mCurrentLanguage == null) {
- mCurrentLanguage = getInputLanguage(mWidth, mTextPaint);
- mNextLanguage = getNextInputLanguage(mWidth, mTextPaint);
- mPrevLanguage = getPrevInputLanguage(mWidth, mTextPaint);
+ final LanguageSwitcher languageSwitcher = mLanguageSwitcher;
+ mCurrentLanguage = getLanguageName(languageSwitcher.getInputLocale());
+ mNextLanguage = getLanguageName(languageSwitcher.getNextInputLocale());
+ mPrevLanguage = getLanguageName(languageSwitcher.getPrevInputLocale());
}
- canvas.drawText(mCurrentLanguage,
- mWidth / 2 + mDiff, -mAscent + 4, mTextPaint);
- canvas.drawText(mNextLanguage,
- mDiff - mWidth / 2, -mAscent + 4, mTextPaint);
- canvas.drawText(mPrevLanguage,
- mDiff + mWidth + mWidth / 2, -mAscent + 4, mTextPaint);
- mLeftDrawable.draw(canvas);
- mRightDrawable.draw(canvas);
+ // Draw language text with shadow
+ final float baseline = mHeight * SPACEBAR_LANGUAGE_BASELINE - paint.descent();
+ paint.setColor(mRes.getColor(R.color.latinkeyboard_feedback_language_text));
+ canvas.drawText(mCurrentLanguage, width / 2 + diff, baseline, paint);
+ canvas.drawText(mNextLanguage, diff - width / 2, baseline, paint);
+ canvas.drawText(mPrevLanguage, diff + width + width / 2, baseline, paint);
+
+ lArrow.setBounds(0, 0, lArrow.getIntrinsicWidth(), lArrow.getIntrinsicHeight());
+ rArrow.setBounds(width - rArrow.getIntrinsicWidth(), 0, width,
+ rArrow.getIntrinsicHeight());
+ lArrow.draw(canvas);
+ rArrow.draw(canvas);
}
if (mBackground != null) {
canvas.translate(mMiddleX, 0);
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 8f1ec6591..dafbb669e 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -48,6 +48,7 @@ import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
/**
@@ -153,7 +154,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
// Timing constants
private static final int DELAY_BEFORE_PREVIEW = 0;
- private static final int DELAY_AFTER_PREVIEW = 70;
+ private static final int DELAY_AFTER_PREVIEW = 100;
private static final int REPEAT_INTERVAL = PointerTracker.REPEAT_INTERVAL;
// Miscellaneous constants
@@ -170,6 +171,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
private float mShadowRadius;
private Drawable mKeyBackground;
private float mBackgroundDimAmount;
+ private float mKeyHysteresisDistance;
private float mVerticalCorrection;
private int mPreviewOffset;
private int mPreviewHeight;
@@ -180,7 +182,6 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
private Key[] mKeys;
// Key preview popup
- private final static boolean PREVIEW_CENTERED = false;
private TextView mPreviewText;
private PopupWindow mPreviewPopup;
private int mPreviewTextSizeLarge;
@@ -188,11 +189,10 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
private int mOldPreviewKeyIndex = NOT_A_KEY;
private boolean mShowPreview = true;
private boolean mShowTouchPoints = true;
- private int mPopupPreviewX;
- private int mPopupPreviewY;
private int mPopupPreviewOffsetX;
private int mPopupPreviewOffsetY;
private int mWindowY;
+ private int mPopupPreviewDisplayedY;
// Popup mini keyboard
private PopupWindow mMiniKeyboardPopup;
@@ -203,13 +203,13 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
private int mMiniKeyboardOriginY;
private long mMiniKeyboardPopupTime;
private int[] mWindowOffset;
+ private final float mMiniKeyboardSlideAllowance;
/** Listener for {@link OnKeyboardActionListener}. */
private OnKeyboardActionListener mKeyboardActionListener;
private final ArrayList<PointerTracker> mPointerTrackers = new ArrayList<PointerTracker>();
private final PointerQueue mPointerQueue = new PointerQueue();
- private final float mDebounceHysteresis;
private final boolean mHasDistinctMultitouch;
private int mOldPointerCount = 1;
@@ -347,7 +347,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
return -1;
}
- public void releasePointersOlderThan(PointerTracker tracker, long eventTime) {
+ public void releaseAllPointersOlderThan(PointerTracker tracker, long eventTime) {
LinkedList<PointerTracker> queue = mQueue;
int oldestPos = 0;
for (PointerTracker t = queue.get(oldestPos); t != tracker; t = queue.get(oldestPos)) {
@@ -355,11 +355,24 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
oldestPos++;
} else {
t.onUpEvent(t.getLastX(), t.getLastY(), eventTime);
+ t.setAlreadyProcessed();
queue.remove(oldestPos);
}
}
}
+ public void releaseAllPointersExcept(PointerTracker tracker, long eventTime) {
+ for (PointerTracker t : mQueue) {
+ if (t == tracker)
+ continue;
+ t.onUpEvent(t.getLastX(), t.getLastY(), eventTime);
+ t.setAlreadyProcessed();
+ }
+ mQueue.clear();
+ if (tracker != null)
+ mQueue.add(tracker);
+ }
+
public void remove(PointerTracker tracker) {
mQueue.remove(tracker);
}
@@ -388,6 +401,9 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
case R.styleable.LatinKeyboardBaseView_keyBackground:
mKeyBackground = a.getDrawable(attr);
break;
+ case R.styleable.LatinKeyboardBaseView_keyHysteresisDistance:
+ mKeyHysteresisDistance = a.getDimensionPixelOffset(attr, 0);
+ break;
case R.styleable.LatinKeyboardBaseView_verticalCorrection:
mVerticalCorrection = a.getDimensionPixelOffset(attr, 0);
break;
@@ -472,7 +488,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
mSwipeThreshold = (int) (500 * res.getDisplayMetrics().density);
// TODO: Refer frameworks/base/core/res/res/values/config.xml
mDisambiguateSwipe = res.getBoolean(R.bool.config_swipeDisambiguation);
- mDebounceHysteresis = res.getDimension(R.dimen.key_debounce_hysteresis_distance);
+ mMiniKeyboardSlideAllowance = res.getDimension(R.dimen.mini_keyboard_slide_allowance);
GestureDetector.SimpleOnGestureListener listener =
new GestureDetector.SimpleOnGestureListener() {
@@ -555,7 +571,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
mKeys = mKeyDetector.setKeyboard(keyboard, -getPaddingLeft(),
-getPaddingTop() + mVerticalCorrection);
for (PointerTracker tracker : mPointerTrackers) {
- tracker.setKeyboard(mKeys, mDebounceHysteresis);
+ tracker.setKeyboard(mKeys, mKeyHysteresisDistance);
}
requestLayout();
// Hint to reallocate the buffer if the size changed
@@ -629,7 +645,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
return mShowPreview;
}
- public int getSymbolColorSheme() {
+ public int getSymbolColorScheme() {
return mSymbolColorScheme;
}
@@ -781,6 +797,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
canvas.translate(key.x + kbdPaddingLeft, key.y + kbdPaddingTop);
keyBackground.draw(canvas);
+ boolean shouldDrawIcon = true;
if (label != null) {
// For characters, use large font. For labels like "Done", use small font.
if (label.length() > 1 && key.codes.length < 2) {
@@ -801,14 +818,24 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
paint);
// Turn off drop shadow
paint.setShadowLayer(0, 0, 0, 0);
- } else if (key.icon != null) {
+
+ // Usually don't draw icon if label is not null, but we draw icon for the number
+ // hint.
+ shouldDrawIcon = isNumberAtEdgeOfPopupChars(key);
+ }
+ if (key.icon != null && shouldDrawIcon) {
+ // Special handing for the upper-right number hint icons
+ final int drawableWidth = isNumberAtEdgeOfPopupChars(key) ?
+ key.width : key.icon.getIntrinsicWidth();
+ final int drawableHeight = isNumberAtEdgeOfPopupChars(key) ?
+ key.height : key.icon.getIntrinsicHeight();
+
final int drawableX = (key.width - padding.left - padding.right
- - key.icon.getIntrinsicWidth()) / 2 + padding.left;
+ - drawableWidth) / 2 + padding.left;
final int drawableY = (key.height - padding.top - padding.bottom
- - key.icon.getIntrinsicHeight()) / 2 + padding.top;
+ - drawableHeight) / 2 + padding.top;
canvas.translate(drawableX, drawableY);
- key.icon.setBounds(0, 0,
- key.icon.getIntrinsicWidth(), key.icon.getIntrinsicHeight());
+ key.icon.setBounds(0, 0, drawableWidth, drawableHeight);
key.icon.draw(canvas);
canvas.translate(-drawableX, -drawableY);
}
@@ -854,8 +881,17 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
public void showPreview(int keyIndex, PointerTracker tracker) {
int oldKeyIndex = mOldPreviewKeyIndex;
mOldPreviewKeyIndex = keyIndex;
- // If key changed and preview is on ...
- if (oldKeyIndex != keyIndex && mShowPreview) {
+ final boolean isLanguageSwitchEnabled = (mKeyboard instanceof LatinKeyboard)
+ && ((LatinKeyboard)mKeyboard).isLanguageSwitchEnabled();
+ // We should re-draw popup preview when 1) we need to hide the preview, 2) we will show
+ // the space key preview and 3) pointer moves off the space key to other letter key, we
+ // should hide the preview of the previous key.
+ final boolean hidePreviewOrShowSpaceKeyPreview = (tracker == null)
+ || tracker.isSpaceKey(keyIndex) || tracker.isSpaceKey(oldKeyIndex);
+ // If key changed and preview is on or the key is space (language switch is enabled)
+ if (oldKeyIndex != keyIndex
+ && (mShowPreview
+ || (hidePreviewOrShowSpaceKeyPreview && isLanguageSwitchEnabled))) {
if (keyIndex == NOT_A_KEY) {
mHandler.cancelPopupPreview();
mHandler.dismissPreview(DELAY_AFTER_PREVIEW);
@@ -869,8 +905,8 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
Key key = tracker.getKey(keyIndex);
if (key == null)
return;
- final PopupWindow previewPopup = mPreviewPopup;
- if (key.icon != null) {
+ // Should not draw number hint icons
+ if (key.icon != null && !isNumberAtEdgeOfPopupChars(key)) {
mPreviewText.setCompoundDrawables(null, null, null,
key.iconPreview != null ? key.iconPreview : key.icon);
mPreviewText.setText(null);
@@ -895,51 +931,48 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
lp.width = popupWidth;
lp.height = popupHeight;
}
- if (PREVIEW_CENTERED) {
- // TODO: Fix this if centering is brought back
- mPopupPreviewX = 160 - mPreviewText.getMeasuredWidth() / 2;
- mPopupPreviewY = - mPreviewText.getMeasuredHeight();
- } else {
- mPopupPreviewX = key.x - mPreviewText.getPaddingLeft() + getPaddingLeft();
- mPopupPreviewY = key.y - popupHeight + mPreviewOffset;
- }
+
+ int popupPreviewX = key.x - (popupWidth - key.width) / 2;
+ int popupPreviewY = key.y - popupHeight + mPreviewOffset;
+
mHandler.cancelDismissPreview();
if (mOffsetInWindow == null) {
mOffsetInWindow = new int[2];
getLocationInWindow(mOffsetInWindow);
mOffsetInWindow[0] += mPopupPreviewOffsetX; // Offset may be zero
mOffsetInWindow[1] += mPopupPreviewOffsetY; // Offset may be zero
- int[] mWindowLocation = new int[2];
- getLocationOnScreen(mWindowLocation);
- mWindowY = mWindowLocation[1];
+ int[] windowLocation = new int[2];
+ getLocationOnScreen(windowLocation);
+ mWindowY = windowLocation[1];
}
// Set the preview background state
mPreviewText.getBackground().setState(
key.popupResId != 0 ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
- mPopupPreviewX += mOffsetInWindow[0];
- mPopupPreviewY += mOffsetInWindow[1];
+ popupPreviewX += mOffsetInWindow[0];
+ popupPreviewY += mOffsetInWindow[1];
// If the popup cannot be shown above the key, put it on the side
- if (mPopupPreviewY + mWindowY < 0) {
+ if (popupPreviewY + mWindowY < 0) {
// If the key you're pressing is on the left side of the keyboard, show the popup on
// the right, offset by enough to see at least one key to the left/right.
if (key.x + key.width <= getWidth() / 2) {
- mPopupPreviewX += (int) (key.width * 2.5);
+ popupPreviewX += (int) (key.width * 2.5);
} else {
- mPopupPreviewX -= (int) (key.width * 2.5);
+ popupPreviewX -= (int) (key.width * 2.5);
}
- mPopupPreviewY += popupHeight;
+ popupPreviewY += popupHeight;
}
- if (previewPopup.isShowing()) {
- previewPopup.update(mPopupPreviewX, mPopupPreviewY,
- popupWidth, popupHeight);
+ if (mPreviewPopup.isShowing()) {
+ mPreviewPopup.update(popupPreviewX, popupPreviewY, popupWidth, popupHeight);
} else {
- previewPopup.setWidth(popupWidth);
- previewPopup.setHeight(popupHeight);
- previewPopup.showAtLocation(mMiniKeyboardParent, Gravity.NO_GRAVITY,
- mPopupPreviewX, mPopupPreviewY);
+ mPreviewPopup.setWidth(popupWidth);
+ mPreviewPopup.setHeight(popupHeight);
+ mPreviewPopup.showAtLocation(mMiniKeyboardParent, Gravity.NO_GRAVITY,
+ popupPreviewX, popupPreviewY);
}
+ // Record popup preview position to display mini-keyboard later at the same positon
+ mPopupPreviewDisplayedY = popupPreviewY;
mPreviewText.setVisibility(VISIBLE);
}
@@ -998,8 +1031,9 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
if (container == null)
throw new NullPointerException();
- mMiniKeyboard = (LatinKeyboardBaseView)container.findViewById(R.id.LatinKeyboardBaseView);
- mMiniKeyboard.setOnKeyboardActionListener(new OnKeyboardActionListener() {
+ LatinKeyboardBaseView miniKeyboard =
+ (LatinKeyboardBaseView)container.findViewById(R.id.LatinKeyboardBaseView);
+ miniKeyboard.setOnKeyboardActionListener(new OnKeyboardActionListener() {
public void onKey(int primaryCode, int[] keyCodes, int x, int y) {
mKeyboardActionListener.onKey(primaryCode, keyCodes, x, y);
dismissPopupKeyboard();
@@ -1029,6 +1063,8 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
mKeyboardActionListener.onRelease(primaryCode);
}
});
+ // Override default ProximityKeyDetector.
+ miniKeyboard.mKeyDetector = new MiniKeyboardKeyDetector(mMiniKeyboardSlideAllowance);
Keyboard keyboard;
if (popupKey.popupCharacters != null) {
@@ -1037,8 +1073,8 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
} else {
keyboard = new Keyboard(getContext(), popupKeyboardId);
}
- mMiniKeyboard.setKeyboard(keyboard);
- mMiniKeyboard.setPopupParent(this);
+ miniKeyboard.setKeyboard(keyboard);
+ miniKeyboard.setPopupParent(this);
container.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST),
MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.AT_MOST));
@@ -1046,6 +1082,19 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
return container;
}
+ private static boolean isOneRowKeyboard(Keyboard keyboard) {
+ final List<Key> keys = keyboard.getKeys();
+ if (keys.size() == 0) return false;
+ final int edgeFlags = keys.get(0).edgeFlags;
+ // HACK: The first key of mini keyboard which was inflated from xml and has multiple rows,
+ // does not have both top and bottom edge flags on at the same time. On the other hand,
+ // the first key of mini keyboard that was created with popupCharacters must have both top
+ // and bottom edge flags on.
+ // When you want to use one row mini-keyboard from xml file, make sure that the row has
+ // both top and bottom edge flags set.
+ return (edgeFlags & Keyboard.EDGE_TOP) != 0 && (edgeFlags & Keyboard.EDGE_BOTTOM) != 0;
+ }
+
/**
* Called when a key is long pressed. By default this will open any popup keyboard associated
* with this key through the attributes popupLayout and popupCharacters.
@@ -1070,17 +1119,35 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
mWindowOffset = new int[2];
getLocationInWindow(mWindowOffset);
}
- int popupX = popupKey.x + popupKey.width + getPaddingLeft();
- int popupY = popupKey.y + getPaddingTop();
- popupX -= container.getMeasuredWidth();
+
+ // HACK: Have the leftmost number in the popup characters right above the key
+ boolean isNumberAtLeftmost =
+ hasMultiplePopupChars(popupKey) && isNumberAtLeftmostPopupChar(popupKey);
+ int popupX = popupKey.x + mWindowOffset[0];
+ int popupY = popupKey.y + mWindowOffset[1];
+ if (isNumberAtLeftmost) {
+ popupX -= container.getPaddingLeft();
+ } else {
+ popupX += popupKey.width + getPaddingLeft();
+ popupX -= container.getMeasuredWidth();
+ popupX += container.getPaddingRight();
+ }
+ popupY += getPaddingTop();
popupY -= container.getMeasuredHeight();
- popupX += mWindowOffset[0];
- popupY += mWindowOffset[1];
- final int x = popupX + container.getPaddingRight();
- final int y = popupY + container.getPaddingBottom();
- mMiniKeyboardOriginX = (x < 0 ? 0 : x) + container.getPaddingLeft();
- mMiniKeyboardOriginY = y + container.getPaddingTop();
- mMiniKeyboard.setPopupOffset((x < 0) ? 0 : x, y);
+ popupY += container.getPaddingBottom();
+ final int x = popupX;
+ final int y = mShowPreview && isOneRowKeyboard(mMiniKeyboard.getKeyboard())
+ ? mPopupPreviewDisplayedY : popupY;
+
+ int adjustedX = x;
+ if (x < 0) {
+ adjustedX = 0;
+ } else if (x > (getMeasuredWidth() - container.getMeasuredWidth())) {
+ adjustedX = getMeasuredWidth() - container.getMeasuredWidth();
+ }
+ mMiniKeyboardOriginX = adjustedX + container.getPaddingLeft() - mWindowOffset[0];
+ mMiniKeyboardOriginY = y + container.getPaddingTop() - mWindowOffset[1];
+ mMiniKeyboard.setPopupOffset(adjustedX, y);
mMiniKeyboard.setShifted(isShifted());
// Mini keyboard needs no pop-up key preview displayed.
mMiniKeyboard.setPreviewEnabled(false);
@@ -1101,9 +1168,40 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
return true;
}
+ private static boolean hasMultiplePopupChars(Key key) {
+ if (key.popupCharacters != null && key.popupCharacters.length() > 1) {
+ return true;
+ }
+ return false;
+ }
+
+ private static boolean isNumberAtEdgeOfPopupChars(Key key) {
+ return isNumberAtLeftmostPopupChar(key) || isNumberAtRightmostPopupChar(key);
+ }
+
+ /* package */ static boolean isNumberAtLeftmostPopupChar(Key key) {
+ if (key.popupCharacters != null && key.popupCharacters.length() > 0
+ && isAsciiDigit(key.popupCharacters.charAt(0))) {
+ return true;
+ }
+ return false;
+ }
+
+ /* package */ static boolean isNumberAtRightmostPopupChar(Key key) {
+ if (key.popupCharacters != null && key.popupCharacters.length() > 0
+ && isAsciiDigit(key.popupCharacters.charAt(key.popupCharacters.length() - 1))) {
+ return true;
+ }
+ return false;
+ }
+
+ private static boolean isAsciiDigit(char c) {
+ return (c < 0x80) && Character.isDigit(c);
+ }
+
private MotionEvent generateMiniKeyboardMotionEvent(int action, int x, int y, long eventTime) {
return MotionEvent.obtain(mMiniKeyboardPopupTime, eventTime, action,
- x - mMiniKeyboardOriginX, y - mMiniKeyboardOriginY, 0);
+ x - mMiniKeyboardOriginX, y - mMiniKeyboardOriginY, 0);
}
private PointerTracker getPointerTracker(final int id) {
@@ -1116,7 +1214,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
final PointerTracker tracker =
new PointerTracker(i, mHandler, mKeyDetector, this, mHasDistinctMultitouch);
if (keys != null)
- tracker.setKeyboard(keys, mDebounceHysteresis);
+ tracker.setKeyboard(keys, mKeyHysteresisDistance);
if (listener != null)
tracker.setOnKeyboardActionListener(listener);
pointers.add(tracker);
@@ -1227,17 +1325,28 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
}
private void onDownEvent(PointerTracker tracker, int x, int y, long eventTime) {
+ if (tracker.isOnModifierKey(x, y)) {
+ // Before processing a down event of modifier key, all pointers already being tracked
+ // should be released.
+ mPointerQueue.releaseAllPointersExcept(null, eventTime);
+ }
tracker.onDownEvent(x, y, eventTime);
mPointerQueue.add(tracker);
}
private void onUpEvent(PointerTracker tracker, int x, int y, long eventTime) {
- int index = mPointerQueue.lastIndexOf(tracker);
- if (index >= 0) {
- mPointerQueue.releasePointersOlderThan(tracker, eventTime);
+ if (tracker.isModifier()) {
+ // Before processing an up event of modifier key, all pointers already being tracked
+ // should be released.
+ mPointerQueue.releaseAllPointersExcept(tracker, eventTime);
} else {
- Log.w(TAG, "onUpEvent: corresponding down event not found for pointer "
- + tracker.mPointerId);
+ int index = mPointerQueue.lastIndexOf(tracker);
+ if (index >= 0) {
+ mPointerQueue.releaseAllPointersOlderThan(tracker, eventTime);
+ } else {
+ Log.w(TAG, "onUpEvent: corresponding down event not found for pointer "
+ + tracker.mPointerId);
+ }
}
tracker.onUpEvent(x, y, eventTime);
mPointerQueue.remove(tracker);
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
index 8f20a22d0..2872f6b46 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java
@@ -24,6 +24,7 @@ import android.inputmethodservice.Keyboard.Key;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.MotionEvent;
@@ -52,9 +53,6 @@ public class LatinKeyboardView extends LatinKeyboardBaseView {
/** The y coordinate of the last row */
private int mLastRowY;
- // This is local working variable for onLongPress().
- private int[] mKeyCodes = new int[1];
-
public LatinKeyboardView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@@ -68,6 +66,16 @@ public class LatinKeyboardView extends LatinKeyboardBaseView {
}
@Override
+ public void setPreviewEnabled(boolean previewEnabled) {
+ if (getKeyboard() == mPhoneKeyboard) {
+ // Phone keyboard never shows popup preview (except language switch).
+ super.setPreviewEnabled(false);
+ } else {
+ super.setPreviewEnabled(previewEnabled);
+ }
+ }
+
+ @Override
public void setKeyboard(Keyboard k) {
super.setKeyboard(k);
// One-seventh of the keyboard width seems like a reasonable threshold
@@ -104,7 +112,7 @@ public class LatinKeyboardView extends LatinKeyboardBaseView {
if (keyboard.isShifted()
&& keyboard instanceof LatinKeyboard
&& ((LatinKeyboard) keyboard).isAlphaKeyboard()
- && label != null && label.length() < 3
+ && !TextUtils.isEmpty(label) && label.length() < 3
&& Character.isLowerCase(label.charAt(0))) {
label = label.toString().toUpperCase();
}
diff --git a/java/src/com/android/inputmethod/latin/MiniKeyboardKeyDetector.java b/java/src/com/android/inputmethod/latin/MiniKeyboardKeyDetector.java
new file mode 100644
index 000000000..356e62d48
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/MiniKeyboardKeyDetector.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * 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.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.inputmethodservice.Keyboard.Key;
+
+class MiniKeyboardKeyDetector extends KeyDetector {
+ private static final int MAX_NEARBY_KEYS = 1;
+
+ private final int mSlideAllowanceSquare;
+ private final int mSlideAllowanceSquareTop;
+
+ public MiniKeyboardKeyDetector(float slideAllowance) {
+ super();
+ mSlideAllowanceSquare = (int)(slideAllowance * slideAllowance);
+ // Top slide allowance is slightly longer (sqrt(2) times) than other edges.
+ mSlideAllowanceSquareTop = mSlideAllowanceSquare * 2;
+ }
+
+ @Override
+ protected int getMaxNearbyKeys() {
+ return MAX_NEARBY_KEYS;
+ }
+
+ @Override
+ public int getKeyIndexAndNearbyCodes(int x, int y, int[] allKeys) {
+ final Key[] keys = getKeys();
+ final int touchX = getTouchX(x);
+ final int touchY = getTouchY(y);
+ int closestKeyIndex = LatinKeyboardBaseView.NOT_A_KEY;
+ int closestKeyDist = (y < 0) ? mSlideAllowanceSquareTop : mSlideAllowanceSquare;
+ final int keyCount = keys.length;
+ for (int i = 0; i < keyCount; i++) {
+ final Key key = keys[i];
+ int dist = key.squaredDistanceFrom(touchX, touchY);
+ if (dist < closestKeyDist) {
+ closestKeyIndex = i;
+ closestKeyDist = dist;
+ }
+ }
+ if (allKeys != null && closestKeyIndex != LatinKeyboardBaseView.NOT_A_KEY)
+ allKeys[0] = keys[closestKeyIndex].codes[0];
+ return closestKeyIndex;
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/PointerTracker.java b/java/src/com/android/inputmethod/latin/PointerTracker.java
index 8b1f019d4..cb717cbe7 100644
--- a/java/src/com/android/inputmethod/latin/PointerTracker.java
+++ b/java/src/com/android/inputmethod/latin/PointerTracker.java
@@ -55,7 +55,7 @@ public class PointerTracker {
private final boolean mHasDistinctMultitouch;
private Key[] mKeys;
- private int mKeyDebounceThresholdSquared = -1;
+ private int mKeyHysteresisDistanceSquared = -1;
private int mCurrentKey = NOT_A_KEY;
private int mStartX;
@@ -106,11 +106,13 @@ public class PointerTracker {
mListener = listener;
}
- public void setKeyboard(Key[] keys, float hysteresisPixel) {
- if (keys == null || hysteresisPixel < 1.0f)
+ public void setKeyboard(Key[] keys, float keyHysteresisDistance) {
+ if (keys == null || keyHysteresisDistance < 0)
throw new IllegalArgumentException();
mKeys = keys;
- mKeyDebounceThresholdSquared = (int)(hysteresisPixel * hysteresisPixel);
+ mKeyHysteresisDistanceSquared = (int)(keyHysteresisDistance * keyHysteresisDistance);
+ // Update current key index because keyboard layout has been changed.
+ mCurrentKey = mKeyDetector.getKeyIndexAndNearbyCodes(mStartX, mStartY, null);
}
private boolean isValidKeyIndex(int keyIndex) {
@@ -121,13 +123,26 @@ public class PointerTracker {
return isValidKeyIndex(keyIndex) ? mKeys[keyIndex] : null;
}
- public boolean isModifier() {
- Key key = getKey(mCurrentKey);
+ private boolean isModifierInternal(int keyIndex) {
+ Key key = getKey(keyIndex);
if (key == null)
return false;
int primaryCode = key.codes[0];
- // TODO: KEYCODE_MODE_CHANGE (symbol) will be also a modifier key
- return primaryCode == Keyboard.KEYCODE_SHIFT;
+ return primaryCode == Keyboard.KEYCODE_SHIFT
+ || primaryCode == Keyboard.KEYCODE_MODE_CHANGE;
+ }
+
+ public boolean isModifier() {
+ return isModifierInternal(mCurrentKey);
+ }
+
+ public boolean isOnModifierKey(int x, int y) {
+ return isModifierInternal(mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null));
+ }
+
+ public boolean isSpaceKey(int keyIndex) {
+ Key key = getKey(keyIndex);
+ return key != null && key.codes[0] == LatinIME.KEYCODE_SPACE;
}
public void updateKey(int keyIndex) {
@@ -173,6 +188,8 @@ public class PointerTracker {
}
public void onDownEvent(int x, int y, long eventTime) {
+ if (DEBUG)
+ debugLog("onDownEvent:", x, y);
int keyIndex = mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null);
mCurrentKey = keyIndex;
mStartX = x;
@@ -186,6 +203,8 @@ public class PointerTracker {
if (mListener != null) {
int primaryCode = isValidKeyIndex(keyIndex) ? mKeys[keyIndex].codes[0] : 0;
mListener.onPress(primaryCode);
+ // This onPress call may have changed keyboard layout and have updated mCurrentKey
+ keyIndex = mCurrentKey;
}
if (isValidKeyIndex(keyIndex)) {
if (mKeys[keyIndex].repeatable) {
@@ -197,11 +216,11 @@ public class PointerTracker {
}
showKeyPreviewAndUpdateKey(keyIndex);
updateMoveDebouncing(x, y);
- if (DEBUG)
- debugLog("onDownEvent:", x, y);
}
public void onMoveEvent(int x, int y, long eventTime) {
+ if (DEBUG_MOVE)
+ debugLog("onMoveEvent:", x, y);
if (mKeyAlreadyProcessed)
return;
int keyIndex = mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null);
@@ -242,15 +261,13 @@ public class PointerTracker {
*/
showKeyPreviewAndUpdateKey(isMinorTimeBounce() ? mLastKey : mCurrentKey);
updateMoveDebouncing(x, y);
- if (DEBUG_MOVE)
- debugLog("onMoveEvent:", x, y);
}
public void onUpEvent(int x, int y, long eventTime) {
- if (mKeyAlreadyProcessed)
- return;
if (DEBUG)
debugLog("onUpEvent :", x, y);
+ if (mKeyAlreadyProcessed)
+ return;
mHandler.cancelKeyTimers();
mHandler.cancelPopupPreview();
int keyIndex = mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null);
@@ -331,13 +348,12 @@ public class PointerTracker {
}
private boolean isMinorMoveBounce(int x, int y, int newKey, int curKey) {
- if (mKeys == null || mKeyDebounceThresholdSquared < 0)
+ if (mKeys == null || mKeyHysteresisDistanceSquared < 0)
throw new IllegalStateException("keyboard and/or hysteresis not set");
if (newKey == curKey) {
return true;
} else if (isValidKeyIndex(curKey)) {
- return getSquareDistanceToKeyEdge(x, y, mKeys[curKey])
- < mKeyDebounceThresholdSquared;
+ return getSquareDistanceToKeyEdge(x, y, mKeys[curKey]) < mKeyHysteresisDistanceSquared;
} else {
return false;
}
@@ -384,8 +400,11 @@ public class PointerTracker {
// The modifier key, such as shift key, should not be shown as preview when multi-touch is
// supported. On thge other hand, if multi-touch is not supported, the modifier key should
// be shown as preview.
- if (!isModifier() || !mHasDistinctMultitouch)
+ if (mHasDistinctMultitouch && isModifier()) {
+ mProxy.showPreview(NOT_A_KEY, this);
+ } else {
mProxy.showPreview(keyIndex, this);
+ }
}
private void detectAndSendKey(int index, int x, int y, long eventTime) {
@@ -478,7 +497,7 @@ public class PointerTracker {
}
private void debugLog(String title, int x, int y) {
- Key key = getKey(mCurrentKey);
+ Key key = getKey(mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null));
final String code;
if (key == null) {
code = "----";
diff --git a/java/src/com/android/inputmethod/latin/SharedPreferencesCompat.java b/java/src/com/android/inputmethod/latin/SharedPreferencesCompat.java
new file mode 100644
index 000000000..8364c90fa
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/SharedPreferencesCompat.java
@@ -0,0 +1,54 @@
+/*
+ * 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 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.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.SharedPreferences;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * Reflection utils to call SharedPreferences$Editor.apply when possible,
+ * falling back to commit when apply isn't available.
+ */
+public class SharedPreferencesCompat {
+ private static final Method sApplyMethod = findApplyMethod();
+
+ private static Method findApplyMethod() {
+ try {
+ Class cls = SharedPreferences.Editor.class;
+ return cls.getMethod("apply");
+ } catch (NoSuchMethodException unused) {
+ // fall through
+ }
+ return null;
+ }
+
+ public static void apply(SharedPreferences.Editor editor) {
+ if (sApplyMethod != null) {
+ try {
+ sApplyMethod.invoke(editor);
+ return;
+ } catch (InvocationTargetException unused) {
+ // fall through
+ } catch (IllegalAccessException unused) {
+ // fall through
+ }
+ }
+ editor.commit();
+ }
+}