aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.pngbin564 -> 435 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.pngbin648 -> 514 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.pngbin721 -> 585 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.pngbin684 -> 556 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.pngbin721 -> 639 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.pngbin838 -> 720 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.pngbin583 -> 468 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.pngbin652 -> 544 bytes
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.pngbin894 -> 855 bytes
-rw-r--r--java/res/drawable-hdpi/hint_popup.9.pngbin242 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/hint_popup_holo.9.pngbin324 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.pngbin2150 -> 2179 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.pngbin2066 -> 2105 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.pngbin2223 -> 2237 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.pngbin2307 -> 2332 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.pngbin2077 -> 2120 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.pngbin2239 -> 2267 bytes
-rw-r--r--java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.pngbin168 -> 167 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num0.pngbin1928 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num1.pngbin899 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num2.pngbin2805 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num3.pngbin2578 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num4.pngbin2489 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num5.pngbin2287 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num6.pngbin3017 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num7.pngbin3108 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num8.pngbin2719 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_bkeyboard_num9.pngbin3330 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_123_mic_holo.pngbin0 -> 2195 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_delete_holo.pngbin1123 -> 951 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.pngbin6061 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_delete.pngbin4019 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.pngbin3397 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.pngbin3388 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_numalt.pngbin5931 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_return.pngbin4346 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_search.pngbin4658 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_feedback_shift.pngbin3865 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_language_arrows_left.pngbin3220 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_language_arrows_right.pngbin3286 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num0.pngbin1872 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num0_holo.pngbin963 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num1.pngbin867 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num1_holo.pngbin582 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num2.pngbin2720 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num2_holo.pngbin1636 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num3.pngbin2523 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num3_holo.pngbin1283 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num4.pngbin2419 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num4_holo.pngbin1190 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num5.pngbin2230 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num5_holo.pngbin1255 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num6.pngbin2950 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num6_holo.pngbin1744 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num7.pngbin3035 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num7_holo.pngbin1837 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num8.pngbin2628 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num8_holo.pngbin1505 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num9.pngbin3255 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_num9_holo.pngbin2072 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_return_holo.pngbin1012 -> 846 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_search_holo.pngbin0 -> 1218 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_settings_holo.pngbin1684 -> 1312 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_shift_holo.pngbin1282 -> 1010 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.pngbin1025 -> 807 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_space_holo.pngbin470 -> 486 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_tab_holo.pngbin903 -> 873 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_voice_holo.pngbin1258 -> 1020 bytes
-rw-r--r--java/res/drawable-hdpi/sym_keyboard_voice_off_holo.pngbin1180 -> 880 bytes
-rw-r--r--java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.pngbin737 -> 0 bytes
-rw-r--r--java/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
-rw-r--r--java/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
-rw-r--r--java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.pngbin733 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.pngbin964 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.pngbin1055 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/hint_popup_holo.9.pngbin321 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/hint_popup_holo.9.pngbin1180 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/hint_popup_holo.9.pngbin373 -> 0 bytes
-rw-r--r--java/res/drawable-land/btn_keyboard_key.xml38
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.pngbin402 -> 334 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.pngbin446 -> 373 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.pngbin498 -> 422 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.pngbin460 -> 392 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.pngbin496 -> 453 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.pngbin571 -> 500 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.pngbin394 -> 332 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.pngbin436 -> 369 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.pngbin612 -> 564 bytes
-rw-r--r--java/res/drawable-mdpi/hint_popup.9.pngbin202 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/hint_popup_holo.9.pngbin273 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.pngbin1371 -> 1377 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.pngbin1349 -> 1388 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.pngbin1446 -> 1486 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.pngbin1473 -> 1470 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.pngbin1339 -> 1367 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.pngbin1443 -> 1457 bytes
-rw-r--r--java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.pngbin162 -> 159 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num0.pngbin1148 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num1.pngbin493 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num2.pngbin1785 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num3.pngbin1675 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num4.pngbin1530 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num5.pngbin1411 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num6.pngbin1943 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num7.pngbin2040 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num8.pngbin1618 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_bkeyboard_num9.pngbin2167 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_123_mic_holo.pngbin0 -> 1449 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_delete_holo.pngbin819 -> 673 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.pngbin4640 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_delete.pngbin3414 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.pngbin3126 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.pngbin3121 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_numalt.pngbin4679 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_return.pngbin3613 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_search.pngbin3793 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_feedback_shift.pngbin3320 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_language_arrows_left.pngbin3001 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_language_arrows_right.pngbin3032 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num0.pngbin1160 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num0_holo.pngbin753 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num1.pngbin506 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num1_holo.pngbin504 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num2.pngbin1778 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num2_holo.pngbin1231 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num3.pngbin1676 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num3_holo.pngbin1033 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num4.pngbin1540 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num4_holo.pngbin975 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num5.pngbin1417 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num5_holo.pngbin958 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num6.pngbin1952 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num6_holo.pngbin1316 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num7.pngbin2051 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num7_holo.pngbin1339 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num8.pngbin1605 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num8_holo.pngbin1124 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num9.pngbin2173 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_num9_holo.pngbin1483 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_return_holo.pngbin710 -> 619 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_search_holo.pngbin0 -> 819 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_settings_holo.pngbin1061 -> 878 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_shift_holo.pngbin867 -> 678 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.pngbin738 -> 610 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_space_holo.pngbin397 -> 399 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_tab_holo.pngbin679 -> 642 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_voice_holo.pngbin841 -> 695 bytes
-rw-r--r--java/res/drawable-mdpi/sym_keyboard_voice_off_holo.pngbin801 -> 619 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/btn_keyboard_key_popup_selected_holo.9.pngbin250 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/hint_popup_holo.9.pngbin333 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_delete_holo.pngbin0 -> 951 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_numsymbol_holo.pngbin4137 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_return_holo.pngbin0 -> 846 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_search_holo.pngbin0 -> 1448 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_settings_holo.pngbin0 -> 1312 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_holo.pngbin0 -> 1010 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_locked_holo.pngbin0 -> 807 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_smiley_holo.pngbin0 -> 796 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_space_holo.pngbin0 -> 486 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.pngbin1361 -> 873 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_holo.pngbin0 -> 1020 bytes
-rw-r--r--java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_off_holo.pngbin0 -> 880 bytes
-rw-r--r--java/res/drawable-sw600dp-land-hdpi/hint_popup_holo.9.pngbin333 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-land-mdpi/hint_popup_holo.9.pngbin206 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-land-xhdpi/hint_popup_holo.9.pngbin379 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.pngbin597 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.pngbin751 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.pngbin295 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.pngbin626 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.pngbin739 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_normal_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_pressed_holo.9.pngbin233 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/btn_keyboard_key_popup_selected_holo.9.pngbin151 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/hint_popup_holo.9.pngbin206 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/keyboard_background_holo.9.pngbin1108 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/keyboard_popup_panel_background_holo.9.pngbin3730 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/keyboard_suggest_strip_holo.9.pngbin1003 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.pngbin1419 -> 673 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num0_holo.pngbin1759 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num1_holo.pngbin1324 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num2_holo.pngbin2397 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num3_holo.pngbin2143 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num4_holo.pngbin2063 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num5_holo.pngbin2021 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num6_holo.pngbin2502 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num7_holo.pngbin2540 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num8_holo.pngbin2226 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_num9_holo.pngbin2699 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_numbpound_holo.pngbin1548 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_numbstar_holo.pngbin1414 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_numsymbol_holo.pngbin830 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.pngbin1391 -> 619 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_search_holo.pngbin0 -> 941 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.pngbin1865 -> 878 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.pngbin1683 -> 678 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.pngbin1480 -> 610 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_smiley_holo.pngbin0 -> 563 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_space_holo.pngbin1195 -> 399 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.pngbin387 -> 642 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.pngbin1678 -> 695 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.pngbin1587 -> 619 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.pngbin248 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/hint_popup_holo.9.pngbin379 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_delete_holo.pngbin0 -> 1271 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_numsymbol_holo.pngbin6242 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_return_holo.pngbin0 -> 1141 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_search_holo.pngbin0 -> 2095 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_settings_holo.pngbin0 -> 1872 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_holo.pngbin0 -> 1336 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_locked_holo.pngbin0 -> 1073 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_smiley_holo.pngbin0 -> 1024 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_space_holo.pngbin0 -> 523 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.pngbin1803 -> 1186 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_holo.pngbin0 -> 1427 bytes
-rw-r--r--java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_off_holo.pngbin0 -> 1192 bytes
-rw-r--r--java/res/drawable-sw768dp-hdpi/btn_keyboard_key_popup_selected_holo.9.pngbin250 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-hdpi/hint_popup_holo.9.pngbin333 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-hdpi/hint_popup_holo.9.pngbin321 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/hint_popup_holo.9.pngbin1180 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-xhdpi/hint_popup_holo.9.pngbin373 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.pngbin597 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.pngbin751 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.pngbin295 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.pngbin626 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.pngbin739 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_normal_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_pressed_holo.9.pngbin233 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/btn_keyboard_key_popup_selected_holo.9.pngbin151 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/hint_popup_holo.9.pngbin1168 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/keyboard_background_holo.9.pngbin1108 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/keyboard_popup_panel_background_holo.9.pngbin3730 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/keyboard_suggest_strip_holo.9.pngbin1003 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_delete_holo.pngbin1419 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num0_holo.pngbin1759 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num1_holo.pngbin1324 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num2_holo.pngbin2397 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num3_holo.pngbin2143 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num4_holo.pngbin2063 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num5_holo.pngbin2021 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num6_holo.pngbin2502 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num7_holo.pngbin2540 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num8_holo.pngbin2226 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_num9_holo.pngbin2699 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_numbpound_holo.pngbin1548 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_numbstar_holo.pngbin1414 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_return_holo.pngbin1391 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_settings_holo.pngbin1865 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_holo.pngbin1683 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_locked_holo.pngbin1480 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_space_holo.pngbin1195 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_holo.pngbin1678 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_off_holo.pngbin1587 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.pngbin248 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-xhdpi/hint_popup_holo.9.pngbin379 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.pngbin759 -> 568 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.pngbin856 -> 655 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.pngbin987 -> 775 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.pngbin932 -> 755 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.pngbin961 -> 881 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.pngbin1177 -> 1029 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.pngbin795 -> 591 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.pngbin867 -> 669 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.pngbin1287 -> 1206 bytes
-rw-r--r--java/res/drawable-xhdpi/hint_popup.9.pngbin292 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/hint_popup_holo.9.pngbin410 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.pngbin3062 -> 3120 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.pngbin2907 -> 3048 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.pngbin3122 -> 3222 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.pngbin3275 -> 3317 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.pngbin2904 -> 2996 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.pngbin3119 -> 3180 bytes
-rw-r--r--java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.pngbin181 -> 180 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num0.pngbin2769 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num1.pngbin1206 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num2.pngbin4122 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num3.pngbin3831 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num4.pngbin3727 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num5.pngbin3326 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num6.pngbin4572 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num7.pngbin4576 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num8.pngbin3946 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_bkeyboard_num9.pngbin5053 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_123_mic_holo.pngbin0 -> 3115 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_delete_holo.pngbin1608 -> 1271 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_123_mic.pngbin7767 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_delete.pngbin4645 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_left.pngbin3624 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_right.pngbin3602 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_numalt.pngbin7559 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_return.pngbin5070 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_search.pngbin5742 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_feedback_shift.pngbin4380 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_language_arrows_left.pngbin3356 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_language_arrows_right.pngbin3461 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num0.pngbin2694 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num0_holo.pngbin1216 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num1.pngbin1157 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num1_holo.pngbin703 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num2.pngbin4032 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num2_holo.pngbin2293 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num3.pngbin3748 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num3_holo.pngbin1714 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num4.pngbin3636 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num4_holo.pngbin1615 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num5.pngbin3279 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num5_holo.pngbin1728 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num6.pngbin4495 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num6_holo.pngbin2565 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num7.pngbin4499 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num7_holo.pngbin2597 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num8.pngbin3849 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num8_holo.pngbin2047 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num9.pngbin4970 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_num9_holo.pngbin2992 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_return_holo.pngbin1346 -> 1141 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_search_holo.pngbin0 -> 1769 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_settings_holo.pngbin2351 -> 1872 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_shift_holo.pngbin1814 -> 1336 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.pngbin1435 -> 1073 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_space_holo.pngbin551 -> 523 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_tab_holo.pngbin1223 -> 1186 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_voice_holo.pngbin1703 -> 1427 bytes
-rw-r--r--java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.pngbin1561 -> 1192 bytes
-rw-r--r--java/res/drawable/keyboard_key_feedback_left_ics.xml21
-rw-r--r--java/res/drawable/keyboard_key_feedback_right_ics.xml21
-rw-r--r--java/res/layout/candidate_divider.xml3
-rw-r--r--java/res/layout/candidate_word.xml11
-rw-r--r--java/res/layout/candidates_strip.xml131
-rw-r--r--java/res/layout/key_preview.xml1
-rw-r--r--java/res/values-land/dimens.xml8
-rw-r--r--java/res/values-sw600dp-land/dimens.xml8
-rw-r--r--java/res/values-sw600dp/dimens.xml9
-rw-r--r--java/res/values-sw768dp-land/dimens.xml12
-rw-r--r--java/res/values-sw768dp/dimens.xml11
-rw-r--r--java/res/values/attrs.xml81
-rw-r--r--java/res/values/dimens.xml23
-rw-r--r--java/res/values/keyboard-icons-black.xml22
-rw-r--r--java/res/values/keyboard-icons-ics.xml80
-rw-r--r--java/res/values/keyboard-icons-white.xml16
-rw-r--r--java/res/values/styles.xml42
-rw-r--r--java/res/values/themes-basic-highcontrast.xml1
-rw-r--r--java/res/values/themes-basic.xml1
-rw-r--r--java/res/values/themes-gingerbread.xml1
-rw-r--r--java/res/values/themes-ics.xml1
-rw-r--r--java/res/values/themes-stone-bold.xml1
-rw-r--r--java/res/values/themes-stone.xml1
-rw-r--r--java/res/xml-sw600dp/kbd_key_styles.xml6
-rw-r--r--java/res/xml-sw600dp/kbd_number.xml45
-rw-r--r--java/res/xml-sw600dp/kbd_phone.xml14
-rw-r--r--java/res/xml-sw600dp/kbd_phone_symbols.xml16
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row3.xml4
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row4.xml14
-rw-r--r--java/res/xml-sw600dp/kbd_row3_right.xml4
-rw-r--r--java/res/xml-sw600dp/kbd_rows_azerty.xml4
-rw-r--r--java/res/xml-sw600dp/kbd_rows_qwertz.xml4
-rw-r--r--java/res/xml-sw600dp/kbd_rows_russian.xml2
-rw-r--r--java/res/xml-sw600dp/kbd_rows_scandinavian.xml4
-rw-r--r--java/res/xml-sw600dp/kbd_rows_serbian.xml4
-rw-r--r--java/res/xml-sw768dp/kbd_key_styles.xml4
-rw-r--r--java/res/xml-sw768dp/kbd_number.xml48
-rw-r--r--java/res/xml-sw768dp/kbd_phone.xml14
-rw-r--r--java/res/xml-sw768dp/kbd_phone_symbols.xml16
-rw-r--r--java/res/xml-sw768dp/kbd_qwerty_row4.xml10
-rw-r--r--java/res/xml-sw768dp/kbd_row3_right2.xml4
-rw-r--r--java/res/xml-sw768dp/kbd_rows_azerty.xml6
-rw-r--r--java/res/xml-sw768dp/kbd_rows_qwertz.xml4
-rw-r--r--java/res/xml/kbd_key_styles.xml4
-rw-r--r--java/res/xml/kbd_number.xml31
-rw-r--r--java/res/xml/kbd_numkey_styles.xml78
-rw-r--r--java/res/xml/kbd_phone.xml4
-rw-r--r--java/res/xml/kbd_phone_symbols.xml23
-rw-r--r--java/res/xml/kbd_qwerty_row1.xml20
-rw-r--r--java/res/xml/kbd_qwerty_row4.xml8
-rw-r--r--java/res/xml/kbd_rows_azerty.xml20
-rw-r--r--java/res/xml/kbd_rows_qwertz.xml20
-rw-r--r--java/res/xml/kbd_rows_russian.xml20
-rw-r--r--java/res/xml/kbd_rows_scandinavian.xml20
-rw-r--r--java/res/xml/kbd_rows_serbian.xml20
-rw-r--r--java/res/xml/kbd_symbols_row4.xml4
-rw-r--r--java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java6
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java60
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java316
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboard.java71
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java42
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java31
-rw-r--r--java/src/com/android/inputmethod/latin/CandidateView.java130
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java13
395 files changed, 932 insertions, 786 deletions
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png
index 2dc1bed5d..5e6a9d6a4 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png
index 575781f07..eb9d7406a 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png
index 6c5b42e5c..869a33080 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png
index 8c999f655..1195a42c1 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
index 8c7c2f3bc..0a9d4b453 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
index 02497b472..fac757a03 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png
index a13b2003f..baff85873 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png
index 0b76855e6..f0ebdafbb 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.png
index 0b2758925..046bac69e 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/hint_popup.9.png b/java/res/drawable-hdpi/hint_popup.9.png
deleted file mode 100644
index 5b2ad5388..000000000
--- a/java/res/drawable-hdpi/hint_popup.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/hint_popup_holo.9.png b/java/res/drawable-hdpi/hint_popup_holo.9.png
deleted file mode 100644
index c44af8883..000000000
--- a/java/res/drawable-hdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png
index fd7a56e17..e99456058 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.png
index 60d920315..0891b91f2 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.png
index f694b796c..28975d131 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png
index 3165d08aa..462072c52 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.png
index 3136073a2..72c474c09 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.png
index 13d5af9cb..8035afd8d 100644
--- a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png
index f25003405..85b6360c5 100644
--- a/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png
+++ b/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num0.png b/java/res/drawable-hdpi/sym_bkeyboard_num0.png
deleted file mode 100644
index 02f281166..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num0.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num1.png b/java/res/drawable-hdpi/sym_bkeyboard_num1.png
deleted file mode 100644
index 304acfd31..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num1.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num2.png b/java/res/drawable-hdpi/sym_bkeyboard_num2.png
deleted file mode 100644
index 295eba1e4..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num2.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num3.png b/java/res/drawable-hdpi/sym_bkeyboard_num3.png
deleted file mode 100644
index 9ee6e4437..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num3.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num4.png b/java/res/drawable-hdpi/sym_bkeyboard_num4.png
deleted file mode 100644
index ab4392dcb..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num4.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num5.png b/java/res/drawable-hdpi/sym_bkeyboard_num5.png
deleted file mode 100644
index 004ecd72e..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num5.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num6.png b/java/res/drawable-hdpi/sym_bkeyboard_num6.png
deleted file mode 100644
index 2aa317d77..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num6.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num7.png b/java/res/drawable-hdpi/sym_bkeyboard_num7.png
deleted file mode 100644
index 721361c29..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num7.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num8.png b/java/res/drawable-hdpi/sym_bkeyboard_num8.png
deleted file mode 100644
index 941359f6b..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num8.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num9.png b/java/res/drawable-hdpi/sym_bkeyboard_num9.png
deleted file mode 100644
index 74e08a087..000000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_num9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_123_mic_holo.png b/java/res/drawable-hdpi/sym_keyboard_123_mic_holo.png
new file mode 100644
index 000000000..3b32171ec
--- /dev/null
+++ b/java/res/drawable-hdpi/sym_keyboard_123_mic_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_delete_holo.png b/java/res/drawable-hdpi/sym_keyboard_delete_holo.png
index 9d87ba619..11ed0b3fe 100644
--- a/java/res/drawable-hdpi/sym_keyboard_delete_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_delete_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png b/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png
deleted file mode 100644
index e56799cdb..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png
+++ /dev/null
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
deleted file mode 100644
index 960bb4e8e..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
deleted file mode 100644
index 5d1cb7833..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
deleted file mode 100644
index 3a56d4745..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png b/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png
deleted file mode 100644
index 7d418d91d..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_return.png b/java/res/drawable-hdpi/sym_keyboard_feedback_return.png
deleted file mode 100644
index f73ff3cd9..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_return.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_search.png b/java/res/drawable-hdpi/sym_keyboard_feedback_search.png
deleted file mode 100644
index 0e69157d6..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_search.png
+++ /dev/null
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
deleted file mode 100644
index fc858f220..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png
deleted file mode 100644
index 79f235f25..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png
deleted file mode 100644
index e1444e85b..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num0.png b/java/res/drawable-hdpi/sym_keyboard_num0.png
deleted file mode 100644
index 2024f416b..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num0.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num0_holo.png b/java/res/drawable-hdpi/sym_keyboard_num0_holo.png
deleted file mode 100644
index fbd55d68d..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num0_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num1.png b/java/res/drawable-hdpi/sym_keyboard_num1.png
deleted file mode 100644
index 5e66b9a31..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num1.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num1_holo.png b/java/res/drawable-hdpi/sym_keyboard_num1_holo.png
deleted file mode 100644
index e651c3e85..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num1_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num2.png b/java/res/drawable-hdpi/sym_keyboard_num2.png
deleted file mode 100644
index 3933270dc..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num2.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num2_holo.png b/java/res/drawable-hdpi/sym_keyboard_num2_holo.png
deleted file mode 100644
index 8458f5313..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num2_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num3.png b/java/res/drawable-hdpi/sym_keyboard_num3.png
deleted file mode 100644
index c69548345..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num3.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num3_holo.png b/java/res/drawable-hdpi/sym_keyboard_num3_holo.png
deleted file mode 100644
index 81025c635..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num3_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num4.png b/java/res/drawable-hdpi/sym_keyboard_num4.png
deleted file mode 100644
index ef20add54..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num4.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num4_holo.png b/java/res/drawable-hdpi/sym_keyboard_num4_holo.png
deleted file mode 100644
index 30a0c77c7..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num4_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num5.png b/java/res/drawable-hdpi/sym_keyboard_num5.png
deleted file mode 100644
index 9a2f51f8d..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num5.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num5_holo.png b/java/res/drawable-hdpi/sym_keyboard_num5_holo.png
deleted file mode 100644
index 147f056fc..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num5_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num6.png b/java/res/drawable-hdpi/sym_keyboard_num6.png
deleted file mode 100644
index 6829f81d1..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num6.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num6_holo.png b/java/res/drawable-hdpi/sym_keyboard_num6_holo.png
deleted file mode 100644
index b96830844..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num6_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num7.png b/java/res/drawable-hdpi/sym_keyboard_num7.png
deleted file mode 100644
index dc608d4e1..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num7.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num7_holo.png b/java/res/drawable-hdpi/sym_keyboard_num7_holo.png
deleted file mode 100644
index 7d44bfb45..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num7_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num8.png b/java/res/drawable-hdpi/sym_keyboard_num8.png
deleted file mode 100644
index f0978c611..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num8.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num8_holo.png b/java/res/drawable-hdpi/sym_keyboard_num8_holo.png
deleted file mode 100644
index 093cd743a..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num8_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num9.png b/java/res/drawable-hdpi/sym_keyboard_num9.png
deleted file mode 100644
index 4b8328d1f..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_num9_holo.png b/java/res/drawable-hdpi/sym_keyboard_num9_holo.png
deleted file mode 100644
index f35e80dab..000000000
--- a/java/res/drawable-hdpi/sym_keyboard_num9_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_return_holo.png b/java/res/drawable-hdpi/sym_keyboard_return_holo.png
index ef04d6767..090608209 100644
--- a/java/res/drawable-hdpi/sym_keyboard_return_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_return_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_search_holo.png b/java/res/drawable-hdpi/sym_keyboard_search_holo.png
new file mode 100644
index 000000000..86b925217
--- /dev/null
+++ b/java/res/drawable-hdpi/sym_keyboard_search_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_settings_holo.png b/java/res/drawable-hdpi/sym_keyboard_settings_holo.png
index 29085e5ea..c08b2b7f3 100644
--- a/java/res/drawable-hdpi/sym_keyboard_settings_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_settings_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_holo.png b/java/res/drawable-hdpi/sym_keyboard_shift_holo.png
index 1e074a716..faf6b294b 100644
--- a/java/res/drawable-hdpi/sym_keyboard_shift_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_shift_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png
index ab77b9542..f2b9fce30 100644
--- a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_space_holo.png b/java/res/drawable-hdpi/sym_keyboard_space_holo.png
index 143a89964..908f1ed9a 100644
--- a/java/res/drawable-hdpi/sym_keyboard_space_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_space_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_tab_holo.png b/java/res/drawable-hdpi/sym_keyboard_tab_holo.png
index 321c541cc..721574366 100644
--- a/java/res/drawable-hdpi/sym_keyboard_tab_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_tab_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_voice_holo.png b/java/res/drawable-hdpi/sym_keyboard_voice_holo.png
index d3cb46e0d..d5414c83f 100644
--- a/java/res/drawable-hdpi/sym_keyboard_voice_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_voice_holo.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.png
index 45e3e79c5..6fb538cec 100644
--- a/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.png
+++ b/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.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 100644
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 100644
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 100644
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 100644
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 100644
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 100644
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-hdpi/hint_popup_holo.9.png b/java/res/drawable-land-hdpi/hint_popup_holo.9.png
deleted file mode 100644
index 2b93014e1..000000000
--- a/java/res/drawable-land-hdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/hint_popup_holo.9.png b/java/res/drawable-land-mdpi/hint_popup_holo.9.png
deleted file mode 100644
index c409cea00..000000000
--- a/java/res/drawable-land-mdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/hint_popup_holo.9.png b/java/res/drawable-land-xhdpi/hint_popup_holo.9.png
deleted file mode 100644
index 3cd20d34f..000000000
--- a/java/res/drawable-land-xhdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land/btn_keyboard_key.xml b/java/res/drawable-land/btn_keyboard_key.xml
deleted file mode 100644
index 45578e582..000000000
--- a/java/res/drawable-land/btn_keyboard_key.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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
-
- 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">
-
- <!-- Toggle keys. Use checkable/checked state. -->
-
- <item android:state_checkable="true" android:state_checked="true"
- android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_on" />
- <item android:state_checkable="true" android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed_off" />
- <item android:state_checkable="true" android:state_checked="true"
- android:drawable="@drawable/btn_keyboard_key_normal_on" />
- <item android:state_checkable="true"
- android:drawable="@drawable/btn_keyboard_key_normal_off" />
-
- <!-- Normal keys -->
-
- <item android:state_pressed="true"
- android:drawable="@drawable/btn_keyboard_key_pressed" />
- <item
- android:drawable="@drawable/btn_keyboard_key_normal" />
-
-</selector>
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png
index 034d63870..d449d7600 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
index 0cb53d506..80fe863f5 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
index 0050a0110..196d6d9bd 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
index 27f8fdac6..ab0b3bed5 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
index b8ce95235..b0969a891 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
index 4d4d1a748..cb49f1878 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png
index 90f471f48..976083fdf 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png
index c850768cd..1de7abbd2 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.png
index e9186b7bb..d66309d10 100644
--- a/java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.png
+++ b/java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/hint_popup.9.png b/java/res/drawable-mdpi/hint_popup.9.png
deleted file mode 100644
index 444cc26ee..000000000
--- a/java/res/drawable-mdpi/hint_popup.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/hint_popup_holo.9.png b/java/res/drawable-mdpi/hint_popup_holo.9.png
deleted file mode 100644
index e9e131c54..000000000
--- a/java/res/drawable-mdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png
index 9a1b7aadd..f3be5fd6c 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.png
index cb222b0f9..51eb7ed45 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.png
index 07d980083..de3236413 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png
index 05a332b8e..1d893a512 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.png
index fd1675512..900e4baee 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.png
index 1acbd8268..78cb488fa 100644
--- a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.png
+++ b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png
index 17faf86d0..e488323c9 100644
--- a/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png
+++ b/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num0.png b/java/res/drawable-mdpi/sym_bkeyboard_num0.png
deleted file mode 100644
index 7188f9ca5..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num0.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num1.png b/java/res/drawable-mdpi/sym_bkeyboard_num1.png
deleted file mode 100644
index 2a31bd458..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num1.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num2.png b/java/res/drawable-mdpi/sym_bkeyboard_num2.png
deleted file mode 100644
index c1e9cc9b1..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num2.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num3.png b/java/res/drawable-mdpi/sym_bkeyboard_num3.png
deleted file mode 100644
index e9987668c..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num3.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num4.png b/java/res/drawable-mdpi/sym_bkeyboard_num4.png
deleted file mode 100644
index 7f0f3cccc..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num4.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num5.png b/java/res/drawable-mdpi/sym_bkeyboard_num5.png
deleted file mode 100644
index 5f748b416..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num5.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num6.png b/java/res/drawable-mdpi/sym_bkeyboard_num6.png
deleted file mode 100644
index 78aae74a0..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num6.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num7.png b/java/res/drawable-mdpi/sym_bkeyboard_num7.png
deleted file mode 100644
index 5bb874c47..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num7.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num8.png b/java/res/drawable-mdpi/sym_bkeyboard_num8.png
deleted file mode 100644
index 6b58fdc8a..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num8.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num9.png b/java/res/drawable-mdpi/sym_bkeyboard_num9.png
deleted file mode 100644
index f348c92af..000000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_num9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_123_mic_holo.png b/java/res/drawable-mdpi/sym_keyboard_123_mic_holo.png
new file mode 100644
index 000000000..546cce279
--- /dev/null
+++ b/java/res/drawable-mdpi/sym_keyboard_123_mic_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_delete_holo.png b/java/res/drawable-mdpi/sym_keyboard_delete_holo.png
index f8f6e6a80..bc3393feb 100644
--- a/java/res/drawable-mdpi/sym_keyboard_delete_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_delete_holo.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
deleted file mode 100644
index c556c35cb..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
+++ /dev/null
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
deleted file mode 100644
index a79f15852..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_delete.png
+++ /dev/null
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
deleted file mode 100644
index eecb02694..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
+++ /dev/null
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
deleted file mode 100644
index 7e10ae3af..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
+++ /dev/null
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
deleted file mode 100644
index bc8f1cfc3..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png
+++ /dev/null
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
deleted file mode 100644
index dd99ff381..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_return.png
+++ /dev/null
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
deleted file mode 100644
index 6b8e01d90..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_search.png
+++ /dev/null
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
deleted file mode 100644
index d56357559..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_feedback_shift.png
+++ /dev/null
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
deleted file mode 100644
index 7067a8bf5..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png
+++ /dev/null
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
deleted file mode 100644
index f7a133d9e..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num0.png b/java/res/drawable-mdpi/sym_keyboard_num0.png
deleted file mode 100644
index e7007c871..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num0.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-mdpi/sym_keyboard_num0_holo.png
deleted file mode 100644
index 2c57adf8b..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num0_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num1.png b/java/res/drawable-mdpi/sym_keyboard_num1.png
deleted file mode 100644
index aaac11b0c..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num1.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-mdpi/sym_keyboard_num1_holo.png
deleted file mode 100644
index 509e28f9b..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num1_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num2.png b/java/res/drawable-mdpi/sym_keyboard_num2.png
deleted file mode 100644
index 4372eb8f0..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num2.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-mdpi/sym_keyboard_num2_holo.png
deleted file mode 100644
index 0da18e772..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num2_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num3.png b/java/res/drawable-mdpi/sym_keyboard_num3.png
deleted file mode 100644
index 6f54c850f..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num3.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-mdpi/sym_keyboard_num3_holo.png
deleted file mode 100644
index e8470586f..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num3_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num4.png b/java/res/drawable-mdpi/sym_keyboard_num4.png
deleted file mode 100644
index 3e50bb957..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num4.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-mdpi/sym_keyboard_num4_holo.png
deleted file mode 100644
index 13c216d3a..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num4_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num5.png b/java/res/drawable-mdpi/sym_keyboard_num5.png
deleted file mode 100644
index c39ef4404..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num5.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-mdpi/sym_keyboard_num5_holo.png
deleted file mode 100644
index 0065153fc..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num5_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num6.png b/java/res/drawable-mdpi/sym_keyboard_num6.png
deleted file mode 100644
index ea88ceb94..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num6.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-mdpi/sym_keyboard_num6_holo.png
deleted file mode 100644
index 09fab76a1..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num6_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num7.png b/java/res/drawable-mdpi/sym_keyboard_num7.png
deleted file mode 100644
index ce800ba42..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num7.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-mdpi/sym_keyboard_num7_holo.png
deleted file mode 100644
index d350fddc8..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num7_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num8.png b/java/res/drawable-mdpi/sym_keyboard_num8.png
deleted file mode 100644
index 1a8ff94bf..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num8.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-mdpi/sym_keyboard_num8_holo.png
deleted file mode 100644
index c40cb89a5..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num8_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num9.png b/java/res/drawable-mdpi/sym_keyboard_num9.png
deleted file mode 100644
index 8b344c0a6..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-mdpi/sym_keyboard_num9_holo.png
deleted file mode 100644
index 73526939d..000000000
--- a/java/res/drawable-mdpi/sym_keyboard_num9_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_return_holo.png b/java/res/drawable-mdpi/sym_keyboard_return_holo.png
index abbce5234..c0a16dfd6 100644
--- a/java/res/drawable-mdpi/sym_keyboard_return_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_return_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_search_holo.png b/java/res/drawable-mdpi/sym_keyboard_search_holo.png
new file mode 100644
index 000000000..423dff7f5
--- /dev/null
+++ b/java/res/drawable-mdpi/sym_keyboard_search_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_settings_holo.png b/java/res/drawable-mdpi/sym_keyboard_settings_holo.png
index 82df90376..7ac90d0f5 100644
--- a/java/res/drawable-mdpi/sym_keyboard_settings_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_settings_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_holo.png b/java/res/drawable-mdpi/sym_keyboard_shift_holo.png
index 49b9fc088..13298adb6 100644
--- a/java/res/drawable-mdpi/sym_keyboard_shift_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_shift_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png
index 5375beb4e..594ebfec2 100644
--- a/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_space_holo.png b/java/res/drawable-mdpi/sym_keyboard_space_holo.png
index e413ddf2e..27e3d2153 100644
--- a/java/res/drawable-mdpi/sym_keyboard_space_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_space_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_tab_holo.png b/java/res/drawable-mdpi/sym_keyboard_tab_holo.png
index c41af7b89..e42432125 100644
--- a/java/res/drawable-mdpi/sym_keyboard_tab_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_tab_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_voice_holo.png b/java/res/drawable-mdpi/sym_keyboard_voice_holo.png
index 158439a9f..dc5a9dd37 100644
--- a/java/res/drawable-mdpi/sym_keyboard_voice_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_voice_holo.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png
index 79026f1ab..527e832a6 100644
--- a/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png
+++ b/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw600dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png
deleted file mode 100644
index 544ed7f78..000000000
--- a/java/res/drawable-sw600dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-hdpi/hint_popup_holo.9.png
deleted file mode 100644
index 2ffc6ea2b..000000000
--- a/java/res/drawable-sw600dp-hdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_delete_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_delete_holo.png
new file mode 100644
index 000000000..223fcfb3a
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_delete_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_numsymbol_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_numsymbol_holo.png
deleted file mode 100644
index 398eaea12..000000000
--- a/java/res/drawable-sw600dp-hdpi/sym_keyboard_numsymbol_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_return_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_return_holo.png
new file mode 100644
index 000000000..c9d3d749b
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_return_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_search_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_search_holo.png
new file mode 100644
index 000000000..5ed614a59
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_search_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_settings_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_settings_holo.png
new file mode 100644
index 000000000..00168b272
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_settings_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_holo.png
new file mode 100644
index 000000000..980547e37
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_locked_holo.png
new file mode 100644
index 000000000..868eec332
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_shift_locked_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_smiley_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_smiley_holo.png
new file mode 100644
index 000000000..27d2b7d1b
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_smiley_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_space_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_space_holo.png
new file mode 100644
index 000000000..d89bddae9
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_space_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.png
index 1780f682b..e11d854e4 100644
--- a/java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.png
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_holo.png
new file mode 100644
index 000000000..0eb4aa244
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_off_holo.png
new file mode 100644
index 000000000..b53456a99
--- /dev/null
+++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_voice_off_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-land-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-land-hdpi/hint_popup_holo.9.png
deleted file mode 100644
index 2ffc6ea2b..000000000
--- a/java/res/drawable-sw600dp-land-hdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-land-mdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-land-mdpi/hint_popup_holo.9.png
deleted file mode 100644
index f5d15b728..000000000
--- a/java/res/drawable-sw600dp-land-mdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-land-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-land-xhdpi/hint_popup_holo.9.png
deleted file mode 100644
index bc37fa844..000000000
--- a/java/res/drawable-sw600dp-land-xhdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png
deleted file mode 100644
index 2ad73041e..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
deleted file mode 100644
index fc21e79c4..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
deleted file mode 100644
index 76cfbb221..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
deleted file mode 100644
index 73748c2fb..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
deleted file mode 100644
index 059d4ac2e..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
deleted file mode 100644
index e5cfdec88..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_normal_holo.9.png
deleted file mode 100644
index 060524a53..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_normal_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png
deleted file mode 100644
index f4b061e07..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png
deleted file mode 100644
index ffa7386df..000000000
--- a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-mdpi/hint_popup_holo.9.png
deleted file mode 100644
index f5d15b728..000000000
--- a/java/res/drawable-sw600dp-mdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/keyboard_background_holo.9.png b/java/res/drawable-sw600dp-mdpi/keyboard_background_holo.9.png
deleted file mode 100644
index a93966c92..000000000
--- a/java/res/drawable-sw600dp-mdpi/keyboard_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-sw600dp-mdpi/keyboard_popup_panel_background_holo.9.png
deleted file mode 100644
index 7be7ab7e2..000000000
--- a/java/res/drawable-sw600dp-mdpi/keyboard_popup_panel_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-sw600dp-mdpi/keyboard_suggest_strip_holo.9.png
deleted file mode 100644
index 1f87a68e9..000000000
--- a/java/res/drawable-sw600dp-mdpi/keyboard_suggest_strip_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.png
index 155579169..66111eefa 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num0_holo.png
deleted file mode 100644
index e1d395b45..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num0_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num1_holo.png
deleted file mode 100644
index 225436ac2..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num1_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num2_holo.png
deleted file mode 100644
index e513fa4a0..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num2_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num3_holo.png
deleted file mode 100644
index b91e005fc..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num3_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num4_holo.png
deleted file mode 100644
index 65f88245b..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num4_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num5_holo.png
deleted file mode 100644
index b89ef07eb..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num5_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num6_holo.png
deleted file mode 100644
index 931275a9e..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num6_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num7_holo.png
deleted file mode 100644
index 9396c4c8f..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num7_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num8_holo.png
deleted file mode 100644
index 12e3eef45..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num8_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num9_holo.png
deleted file mode 100644
index 6911c2b4f..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num9_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbpound_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbpound_holo.png
deleted file mode 100644
index e3a8b4900..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbpound_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbstar_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbstar_holo.png
deleted file mode 100644
index e80e9345f..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbstar_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_numsymbol_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numsymbol_holo.png
deleted file mode 100644
index 73153849c..000000000
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_numsymbol_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.png
index d519ccecf..5420161b7 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_search_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_search_holo.png
new file mode 100644
index 000000000..182133727
--- /dev/null
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_search_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.png
index 784a45054..3c8166682 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.png
index 91d6e32f9..6e3d718b2 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.png
index 2bd053656..ea2f0e967 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_smiley_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_smiley_holo.png
new file mode 100644
index 000000000..9c08b5a17
--- /dev/null
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_smiley_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_space_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_space_holo.png
index 25e655d96..dac90bb87 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_space_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_space_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.png
index 5acd12cc4..79f3735ef 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.png
index c1116dc17..b1678f03e 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.png
index 081a13096..58142fa6d 100644
--- a/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.png
+++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw600dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png
deleted file mode 100644
index 8b5d1b098..000000000
--- a/java/res/drawable-sw600dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-xhdpi/hint_popup_holo.9.png
deleted file mode 100644
index bc37fa844..000000000
--- a/java/res/drawable-sw600dp-xhdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_delete_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_delete_holo.png
new file mode 100644
index 000000000..df64bbe9b
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_delete_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_numsymbol_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_numsymbol_holo.png
deleted file mode 100644
index c7a8b286a..000000000
--- a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_numsymbol_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_return_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_return_holo.png
new file mode 100644
index 000000000..13f78c480
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_return_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_search_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_search_holo.png
new file mode 100644
index 000000000..7e0f1ae07
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_search_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_settings_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_settings_holo.png
new file mode 100644
index 000000000..8c1395edf
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_settings_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_holo.png
new file mode 100644
index 000000000..a4068eae4
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_locked_holo.png
new file mode 100644
index 000000000..4cb37cdfc
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_shift_locked_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_smiley_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_smiley_holo.png
new file mode 100644
index 000000000..481d889ab
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_smiley_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_space_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_space_holo.png
new file mode 100644
index 000000000..4bfbf6651
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_space_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.png
index fd9f8cce6..1ea57c5cb 100644
--- a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.png
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_holo.png
new file mode 100644
index 000000000..597be7d92
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_holo.png
Binary files differ
diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_off_holo.png
new file mode 100644
index 000000000..58fd48b4a
--- /dev/null
+++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_voice_off_holo.png
Binary files differ
diff --git a/java/res/drawable-sw768dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw768dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png
deleted file mode 100644
index 544ed7f78..000000000
--- a/java/res/drawable-sw768dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-hdpi/hint_popup_holo.9.png
deleted file mode 100644
index 2ffc6ea2b..000000000
--- a/java/res/drawable-sw768dp-hdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-land-hdpi/hint_popup_holo.9.png
deleted file mode 100644
index 2b93014e1..000000000
--- a/java/res/drawable-sw768dp-land-hdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/hint_popup_holo.9.png
deleted file mode 100644
index c409cea00..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-land-xhdpi/hint_popup_holo.9.png
deleted file mode 100644
index 3cd20d34f..000000000
--- a/java/res/drawable-sw768dp-land-xhdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png
deleted file mode 100644
index 2ad73041e..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
deleted file mode 100644
index fc21e79c4..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
deleted file mode 100644
index 76cfbb221..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
deleted file mode 100644
index 73748c2fb..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
deleted file mode 100644
index 059d4ac2e..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
deleted file mode 100644
index e5cfdec88..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_normal_holo.9.png
deleted file mode 100644
index 060524a53..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_normal_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png
deleted file mode 100644
index f4b061e07..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png
deleted file mode 100644
index ffa7386df..000000000
--- a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-mdpi/hint_popup_holo.9.png
deleted file mode 100644
index 01d1139d8..000000000
--- a/java/res/drawable-sw768dp-mdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/keyboard_background_holo.9.png b/java/res/drawable-sw768dp-mdpi/keyboard_background_holo.9.png
deleted file mode 100644
index a93966c92..000000000
--- a/java/res/drawable-sw768dp-mdpi/keyboard_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-sw768dp-mdpi/keyboard_popup_panel_background_holo.9.png
deleted file mode 100644
index 7be7ab7e2..000000000
--- a/java/res/drawable-sw768dp-mdpi/keyboard_popup_panel_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-sw768dp-mdpi/keyboard_suggest_strip_holo.9.png
deleted file mode 100644
index 1f87a68e9..000000000
--- a/java/res/drawable-sw768dp-mdpi/keyboard_suggest_strip_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_delete_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_delete_holo.png
deleted file mode 100644
index 155579169..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_delete_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num0_holo.png
deleted file mode 100644
index e1d395b45..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num0_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num1_holo.png
deleted file mode 100644
index 225436ac2..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num1_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num2_holo.png
deleted file mode 100644
index e513fa4a0..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num2_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num3_holo.png
deleted file mode 100644
index b91e005fc..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num3_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num4_holo.png
deleted file mode 100644
index 65f88245b..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num4_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num5_holo.png
deleted file mode 100644
index b89ef07eb..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num5_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num6_holo.png
deleted file mode 100644
index 931275a9e..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num6_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num7_holo.png
deleted file mode 100644
index 9396c4c8f..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num7_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num8_holo.png
deleted file mode 100644
index 12e3eef45..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num8_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num9_holo.png
deleted file mode 100644
index 6911c2b4f..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num9_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbpound_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbpound_holo.png
deleted file mode 100644
index e3a8b4900..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbpound_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbstar_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbstar_holo.png
deleted file mode 100644
index e80e9345f..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbstar_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_return_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_return_holo.png
deleted file mode 100644
index d519ccecf..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_return_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_settings_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_settings_holo.png
deleted file mode 100644
index 784a45054..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_settings_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_holo.png
deleted file mode 100644
index 91d6e32f9..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_locked_holo.png
deleted file mode 100644
index 2bd053656..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_locked_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_space_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_space_holo.png
deleted file mode 100644
index 25e655d96..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_space_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_holo.png
deleted file mode 100644
index c1116dc17..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_off_holo.png
deleted file mode 100644
index 081a13096..000000000
--- a/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_off_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw768dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png
deleted file mode 100644
index 8b5d1b098..000000000
--- a/java/res/drawable-sw768dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-xhdpi/hint_popup_holo.9.png
deleted file mode 100644
index bc37fa844..000000000
--- a/java/res/drawable-sw768dp-xhdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png
index b9667be13..d2cd029bb 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png
index 1719992e1..0f709eb02 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png
index 0eb9c9f93..2f4de8ee7 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png
index 5114bf5f1..aefb21bb3 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
index 992395039..b49ba10bd 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
index 474951c1d..e9c73878c 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png
index 4a255f7fb..b26f1d27a 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png
index 5bcd1c9c2..b6ab8150b 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.png
index 10d788dfb..cbcabe151 100644
--- a/java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.png
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/hint_popup.9.png b/java/res/drawable-xhdpi/hint_popup.9.png
deleted file mode 100644
index add474337..000000000
--- a/java/res/drawable-xhdpi/hint_popup.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/hint_popup_holo.9.png b/java/res/drawable-xhdpi/hint_popup_holo.9.png
deleted file mode 100644
index a2b114e14..000000000
--- a/java/res/drawable-xhdpi/hint_popup_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.png
index 44675ba00..0e4056f00 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.png
index cfd1f5242..353deed23 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.png
index a01c1733d..0c9a35eab 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.png
index 1d2abc26b..4ff70294b 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.png
index 5616d1988..58e2922aa 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.png
index ecf9c2cbc..06c33c04c 100644
--- a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.png
+++ b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png
index f4ff7dc1c..b40f76662 100644
--- a/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png
+++ b/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num0.png b/java/res/drawable-xhdpi/sym_bkeyboard_num0.png
deleted file mode 100644
index da8d50a8c..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num0.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num1.png b/java/res/drawable-xhdpi/sym_bkeyboard_num1.png
deleted file mode 100644
index 62443eb1c..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num1.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num2.png b/java/res/drawable-xhdpi/sym_bkeyboard_num2.png
deleted file mode 100644
index 4b3ef7ecc..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num2.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num3.png b/java/res/drawable-xhdpi/sym_bkeyboard_num3.png
deleted file mode 100644
index 48315e499..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num3.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num4.png b/java/res/drawable-xhdpi/sym_bkeyboard_num4.png
deleted file mode 100644
index 17958d7cc..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num4.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num5.png b/java/res/drawable-xhdpi/sym_bkeyboard_num5.png
deleted file mode 100644
index 43716c424..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num5.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num6.png b/java/res/drawable-xhdpi/sym_bkeyboard_num6.png
deleted file mode 100644
index 09f2b428d..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num6.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num7.png b/java/res/drawable-xhdpi/sym_bkeyboard_num7.png
deleted file mode 100644
index 72438ec0f..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num7.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num8.png b/java/res/drawable-xhdpi/sym_bkeyboard_num8.png
deleted file mode 100644
index 403b53f71..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num8.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num9.png b/java/res/drawable-xhdpi/sym_bkeyboard_num9.png
deleted file mode 100644
index 644c2a4df..000000000
--- a/java/res/drawable-xhdpi/sym_bkeyboard_num9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_123_mic_holo.png b/java/res/drawable-xhdpi/sym_keyboard_123_mic_holo.png
new file mode 100644
index 000000000..9306903ee
--- /dev/null
+++ b/java/res/drawable-xhdpi/sym_keyboard_123_mic_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_delete_holo.png b/java/res/drawable-xhdpi/sym_keyboard_delete_holo.png
index 5150073b8..53479ab85 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_delete_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_delete_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_123_mic.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_123_mic.png
deleted file mode 100644
index 5238c16d2..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_123_mic.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_delete.png
deleted file mode 100644
index f0c29e7c8..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_delete.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_left.png
deleted file mode 100644
index a90b8dacf..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_left.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_right.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_right.png
deleted file mode 100644
index 1123bf36e..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_right.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_numalt.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_numalt.png
deleted file mode 100644
index b68e6066a..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_numalt.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_return.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_return.png
deleted file mode 100644
index c777d00d6..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_return.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_search.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_search.png
deleted file mode 100644
index 32e0789dd..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_search.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_shift.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_shift.png
deleted file mode 100644
index d8c0325c4..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_feedback_shift.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-xhdpi/sym_keyboard_language_arrows_left.png
deleted file mode 100644
index 226f2e617..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_language_arrows_left.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-xhdpi/sym_keyboard_language_arrows_right.png
deleted file mode 100644
index 1e02e7e46..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_language_arrows_right.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num0.png b/java/res/drawable-xhdpi/sym_keyboard_num0.png
deleted file mode 100644
index 06bd3bfc7..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num0.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png
deleted file mode 100644
index 33e80bdc3..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num1.png b/java/res/drawable-xhdpi/sym_keyboard_num1.png
deleted file mode 100644
index dfa0cfe78..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num1.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png
deleted file mode 100644
index dce3ee801..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num2.png b/java/res/drawable-xhdpi/sym_keyboard_num2.png
deleted file mode 100644
index 4bd2ead08..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num2.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png
deleted file mode 100644
index e776efb33..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num3.png b/java/res/drawable-xhdpi/sym_keyboard_num3.png
deleted file mode 100644
index 39db11228..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num3.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png
deleted file mode 100644
index 66e7b3735..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num4.png b/java/res/drawable-xhdpi/sym_keyboard_num4.png
deleted file mode 100644
index 60356947e..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num4.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png
deleted file mode 100644
index bf70e2890..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num5.png b/java/res/drawable-xhdpi/sym_keyboard_num5.png
deleted file mode 100644
index 3238b3f40..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num5.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png
deleted file mode 100644
index 98d0b5cc9..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num6.png b/java/res/drawable-xhdpi/sym_keyboard_num6.png
deleted file mode 100644
index c8da5a9d0..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num6.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png
deleted file mode 100644
index 67340ef6a..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num7.png b/java/res/drawable-xhdpi/sym_keyboard_num7.png
deleted file mode 100644
index 553cf5f0d..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num7.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png
deleted file mode 100644
index 843224954..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num8.png b/java/res/drawable-xhdpi/sym_keyboard_num8.png
deleted file mode 100644
index eaaf53390..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num8.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png
deleted file mode 100644
index 6d520bca9..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num9.png b/java/res/drawable-xhdpi/sym_keyboard_num9.png
deleted file mode 100644
index b510d3774..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png
deleted file mode 100644
index 158c87957..000000000
--- a/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_return_holo.png b/java/res/drawable-xhdpi/sym_keyboard_return_holo.png
index 6e2e1c0b9..6b0021d42 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_return_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_return_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_search_holo.png b/java/res/drawable-xhdpi/sym_keyboard_search_holo.png
new file mode 100644
index 000000000..118f4f9aa
--- /dev/null
+++ b/java/res/drawable-xhdpi/sym_keyboard_search_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_settings_holo.png b/java/res/drawable-xhdpi/sym_keyboard_settings_holo.png
index 018e45d9e..16a8aea32 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_settings_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_settings_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift_holo.png b/java/res/drawable-xhdpi/sym_keyboard_shift_holo.png
index 41d4ca176..8195112ee 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_shift_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_shift_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.png
index b811b7464..ab4d61b9b 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_space_holo.png b/java/res/drawable-xhdpi/sym_keyboard_space_holo.png
index da8926496..2a11eaaeb 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_space_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_space_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_tab_holo.png b/java/res/drawable-xhdpi/sym_keyboard_tab_holo.png
index dd207ca3f..166643418 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_tab_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_tab_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_voice_holo.png b/java/res/drawable-xhdpi/sym_keyboard_voice_holo.png
index d73e49910..fc05b9c6c 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_voice_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_voice_holo.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.png
index 8d34a5ada..6a5b1217d 100644
--- a/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.png
+++ b/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.png
Binary files differ
diff --git a/java/res/drawable/keyboard_key_feedback_left_ics.xml b/java/res/drawable/keyboard_key_feedback_left_ics.xml
new file mode 100644
index 000000000..b68b37f6b
--- /dev/null
+++ b/java/res/drawable/keyboard_key_feedback_left_ics.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of 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_long_pressable="true"
+ android:drawable="@drawable/keyboard_key_feedback_left_more_background_holo" />
+ <item android:drawable="@drawable/keyboard_key_feedback_left_background_holo" />
+</selector>
diff --git a/java/res/drawable/keyboard_key_feedback_right_ics.xml b/java/res/drawable/keyboard_key_feedback_right_ics.xml
new file mode 100644
index 000000000..830678a5a
--- /dev/null
+++ b/java/res/drawable/keyboard_key_feedback_right_ics.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of 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_long_pressable="true"
+ android:drawable="@drawable/keyboard_key_feedback_right_more_background_holo" />
+ <item android:drawable="@drawable/keyboard_key_feedback_right_background_holo" />
+</selector>
diff --git a/java/res/layout/candidate_divider.xml b/java/res/layout/candidate_divider.xml
index 1d75e52b3..748163074 100644
--- a/java/res/layout/candidate_divider.xml
+++ b/java/res/layout/candidate_divider.xml
@@ -23,8 +23,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/keyboard_suggest_strip_divider"
- android:paddingRight="@dimen/candidate_padding"
- android:paddingLeft="@dimen/candidate_padding"
+ android:padding="0dp"
android:focusable="false"
android:clickable="false"
android:gravity="center_vertical|center_horizontal" />
diff --git a/java/res/layout/candidate_word.xml b/java/res/layout/candidate_word.xml
index 3d2ad06e4..7b6db2fe8 100644
--- a/java/res/layout/candidate_word.xml
+++ b/java/res/layout/candidate_word.xml
@@ -20,9 +20,14 @@
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
android:minWidth="@dimen/candidate_min_width"
android:textSize="@dimen/candidate_text_size"
- android:padding="0dp"
+ android:paddingLeft="@dimen/candidate_padding"
+ android:paddingTop="0dp"
+ android:paddingRight="@dimen/candidate_padding"
+ android:paddingBottom="0dp"
+ android:singleLine="true"
+ android:ellipsize="none"
style="?attr/suggestionBackgroundStyle" />
diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/candidates_strip.xml
index bb11e057c..ea6708ee7 100644
--- a/java/res/layout/candidates_strip.xml
+++ b/java/res/layout/candidates_strip.xml
@@ -22,42 +22,11 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <RelativeLayout
- android:layout_weight="1.0"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:gravity="center"
- >
- <include
- android:id="@+id/word_left"
- layout="@layout/candidate_word" />
- <include
- android:id="@+id/info_left"
- layout="@layout/candidate_info" />
- </RelativeLayout>
- <include
- layout="@layout/candidate_divider" />
- <RelativeLayout
- android:layout_weight="1.0"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:gravity="center"
- >
- <include
- android:id="@+id/word_center"
- layout="@layout/candidate_word" />
- <include
- android:id="@+id/info_center"
- layout="@layout/candidate_info" />
- </RelativeLayout>
- <include
- layout="@layout/candidate_divider" />
<LinearLayout
+ android:id="@+id/candidates_strip"
android:orientation="horizontal"
- android:layout_weight="1.0"
- android:layout_width="0dp"
+ android:layout_width="match_parent"
android:layout_height="match_parent"
- android:gravity="center_vertical"
>
<RelativeLayout
android:layout_weight="1.0"
@@ -66,24 +35,90 @@
android:gravity="center"
>
<include
- android:id="@+id/word_right"
+ android:id="@+id/word_left"
+ layout="@layout/candidate_word" />
+ <include
+ android:id="@+id/info_left"
+ layout="@layout/candidate_info" />
+ </RelativeLayout>
+ <include
+ layout="@layout/candidate_divider" />
+ <RelativeLayout
+ android:layout_weight="1.0"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ >
+ <include
+ android:id="@+id/word_center"
layout="@layout/candidate_word" />
<include
- android:id="@+id/info_right"
+ android:id="@+id/info_center"
layout="@layout/candidate_info" />
</RelativeLayout>
- <!-- Image drawables are set in CandidateView constructor -->
- <ImageButton
- android:id="@+id/expand_candidates_pane"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="gone"
- style="?attr/suggestionsStripBackgroundStyle" />
- <ImageButton
- android:id="@+id/close_candidates_pane"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:visibility="gone"
- style="?attr/suggestionsStripBackgroundStyle" />
+ <include
+ layout="@layout/candidate_divider" />
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_weight="1.0"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ >
+ <RelativeLayout
+ android:layout_weight="1.0"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ >
+ <include
+ android:id="@+id/word_right"
+ layout="@layout/candidate_word" />
+ <include
+ android:id="@+id/info_right"
+ layout="@layout/candidate_info" />
+ </RelativeLayout>
+ <!-- Image drawables are set in CandidateView constructor -->
+ <ImageButton
+ android:id="@+id/expand_candidates_pane"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:background="@null" />
+ <ImageButton
+ android:id="@+id/close_candidates_pane"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ android:background="@null" />
+ </LinearLayout>
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/touch_to_save"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone"
+ >
+ <Button
+ android:id="@+id/word_to_save"
+ android:layout_weight="1.0"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_gravity="center_vertical"
+ android:textSize="@dimen/candidate_text_size"
+ android:singleLine="true"
+ android:ellipsize="middle"
+ style="?attr/suggestionBackgroundStyle" />
+ <include
+ layout="@layout/candidate_divider" />
+ <TextView
+ android:layout_weight="2.0"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:gravity="left|center_vertical"
+ android:text="@string/hint_add_to_dictionary"
+ android:textSize="@dimen/candidate_text_size"
+ android:background="@null" />
</LinearLayout>
</merge>
diff --git a/java/res/layout/key_preview.xml b/java/res/layout/key_preview.xml
index 5332d15c6..b620d07d8 100644
--- a/java/res/layout/key_preview.xml
+++ b/java/res/layout/key_preview.xml
@@ -24,5 +24,4 @@
android:textSize="40sp"
android:minWidth="32dip"
android:gravity="center"
- style="?attr/keyPreviewStyle"
/>
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index 8f6eb2339..d6e096278 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -33,13 +33,21 @@
<dimen name="keyboard_top_padding_ics">0.03in</dimen>
<dimen name="keyboard_bottom_padding_ics">0.00in</dimen>
<dimen name="keyboard_horizontal_edges_padding">0.0in</dimen>
+
+ <!-- left or right padding of label alignment -->
+ <dimen name="key_label_horizontal_alignment_padding">8dip</dimen>
+
<fraction name="key_letter_ratio">55%</fraction>
+ <fraction name="key_large_letter_ratio">68%</fraction>
<fraction name="key_label_ratio">35%</fraction>
<fraction name="key_hint_letter_ratio">28%</fraction>
+ <fraction name="key_hint_label_ratio">45%</fraction>
<fraction name="key_uppercase_letter_ratio">40%</fraction>
<fraction name="key_preview_text_ratio">90%</fraction>
<dimen name="key_preview_offset">0.08in</dimen>
+
<dimen name="key_preview_offset_ics">0.01in</dimen>
+
<dimen name="candidate_strip_height">38dip</dimen>
<dimen name="candidate_strip_fading_edge_length">63dip</dimen>
<!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
diff --git a/java/res/values-sw600dp-land/dimens.xml b/java/res/values-sw600dp-land/dimens.xml
index 6e583e3bf..5d1fbc748 100644
--- a/java/res/values-sw600dp-land/dimens.xml
+++ b/java/res/values-sw600dp-land/dimens.xml
@@ -34,11 +34,15 @@
<dimen name="keyboard_bottom_padding_ics">0.0mm</dimen>
<dimen name="popup_key_height">13.0mm</dimen>
+ <!-- left or right padding of label alignment -->
+ <dimen name="key_label_horizontal_alignment_padding">18dip</dimen>
+
<fraction name="key_letter_ratio">45%</fraction>
+ <fraction name="key_large_letter_ratio">45%</fraction>
<fraction name="key_label_ratio">32%</fraction>
<fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_hint_label_ratio">34%</fraction>
<fraction name="key_uppercase_letter_ratio">29%</fraction>
- <!-- left or right padding of label alignment -->
- <dimen name="key_label_horizontal_alignment_padding">18dip</dimen>
+
<dimen name="candidate_strip_padding">40.0mm</dimen>
</resources>
diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml
index 274b62b4c..675f40c2e 100644
--- a/java/res/values-sw600dp/dimens.xml
+++ b/java/res/values-sw600dp/dimens.xml
@@ -41,16 +41,21 @@
<!-- popup_key_height x -1.0 -->
<dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen>
+ <!-- left or right padding of label alignment -->
+ <dimen name="key_label_horizontal_alignment_padding">6dip</dimen>
+
<fraction name="key_letter_ratio">37%</fraction>
+ <fraction name="key_large_letter_ratio">37%</fraction>
<fraction name="key_label_ratio">22%</fraction>
<fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_hint_label_ratio">26%</fraction>
<fraction name="key_uppercase_letter_ratio">25%</fraction>
<fraction name="key_preview_text_ratio">50%</fraction>
<dimen name="key_preview_height">15.0mm</dimen>
<dimen name="key_preview_offset">0.1in</dimen>
+
+ <dimen name="key_preview_height_ics">15.0mm</dimen>
<dimen name="key_preview_offset_ics">0.05in</dimen>
- <!-- left or right padding of label alignment -->
- <dimen name="key_label_horizontal_alignment_padding">6dip</dimen>
<dimen name="candidate_strip_height">46dip</dimen>
<dimen name="candidate_strip_padding">15.0mm</dimen>
diff --git a/java/res/values-sw768dp-land/dimens.xml b/java/res/values-sw768dp-land/dimens.xml
index 74eb08aa3..2201ce8a3 100644
--- a/java/res/values-sw768dp-land/dimens.xml
+++ b/java/res/values-sw768dp-land/dimens.xml
@@ -35,15 +35,19 @@
<dimen name="popup_key_height">13.0mm</dimen>
<dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen>
+ <!-- left or right padding of label alignment -->
+ <dimen name="key_label_horizontal_alignment_padding">18dip</dimen>
+
<fraction name="key_letter_ratio">38%</fraction>
+ <fraction name="key_large_letter_ratio">38%</fraction>
<fraction name="key_label_ratio">26%</fraction>
<fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_hint_label_ratio">26%</fraction>
<fraction name="key_uppercase_letter_ratio">24%</fraction>
<dimen name="key_preview_height">17.0mm</dimen>
- <!-- left or right padding of label alignment -->
- <dimen name="key_label_horizontal_alignment_padding">18dip</dimen>
- <dimen name="key_preview_height_holo">26.5mm</dimen>
- <dimen name="key_preview_offset_holo">7.5mm</dimen>
+
+ <dimen name="key_preview_height_ics">26.5mm</dimen>
+ <dimen name="key_preview_offset_ics">0.05in</dimen>
<dimen name="candidate_strip_padding">40.0mm</dimen>
</resources>
diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml
index b5d5a8496..2e41db52a 100644
--- a/java/res/values-sw768dp/dimens.xml
+++ b/java/res/values-sw768dp/dimens.xml
@@ -35,7 +35,7 @@
<dimen name="keyboard_bottom_padding_ics">0.0mm</dimen>
<dimen name="popup_key_height">10.0mm</dimen>
<dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen>
- <dimen name="mini_keyboard_horizontal_padding_holo">40dip</dimen>
+ <dimen name="mini_keyboard_horizontal_padding_ics">40dip</dimen>
<dimen name="mini_keyboard_key_horizontal_padding">12dip</dimen>
<!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
<!-- popup_key_height x 1.2 -->
@@ -43,16 +43,21 @@
<!-- popup_key_height x -1.0 -->
<dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen>
+ <!-- left or right padding of label alignment -->
+ <dimen name="key_label_horizontal_alignment_padding">6dip</dimen>
+
<fraction name="key_letter_ratio">38%</fraction>
+ <fraction name="key_large_letter_ratio">38%</fraction>
<fraction name="key_label_ratio">26%</fraction>
<fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_hint_label_ratio">26%</fraction>
<fraction name="key_uppercase_letter_ratio">25%</fraction>
<fraction name="key_preview_text_ratio">50%</fraction>
<dimen name="key_preview_height">15.0mm</dimen>
<dimen name="key_preview_offset">0.1in</dimen>
+
+ <dimen name="key_preview_height_ics">15.0mm</dimen>
<dimen name="key_preview_offset_ics">0.05in</dimen>
- <!-- left or right padding of label alignment -->
- <dimen name="key_label_horizontal_alignment_padding">6dip</dimen>
<dimen name="candidate_strip_height">46dip</dimen>
<!-- candidate_strip_minimum_height =
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index e9b6354a5..4470d7b4e 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -22,7 +22,6 @@
<attr name="latinKeyboardStyle" format="reference" />
<!-- KeyboardView style -->
<attr name="keyboardViewStyle" format="reference" />
- <attr name="keyPreviewStyle" format="reference" />
<!-- PopupMiniKeyboardView style -->
<attr name="popupMiniKeyboardViewStyle" format="reference" />
<attr name="popupMiniKeyboardPanelStyle" format="reference" />
@@ -41,10 +40,15 @@
<!-- Size of the text for one letter keys, in the proportion of key height. -->
<attr name="keyLetterRatio" format="float" />
+ <!-- Large size of the text for one letter keys, in the proportion of key height. -->
+ <attr name="keyLargeLetterRatio" format="float" />
<!-- Size of the text for keys with some text, in the proportion of key height. -->
<attr name="keyLabelRatio" format="float" />
- <!-- Size of the text for hint letter, in the proportion of key height. -->
+ <!-- Size of the text for hint letter (= one character hint label), in the proportion of
+ key height. -->
<attr name="keyHintLetterRatio" format="float" />
+ <!-- Size of the text for hint label, in the proportion of key height. -->
+ <attr name="keyHintLabelRatio" format="float" />
<!-- Size of the text for upper case letter, in the proportion of key height. -->
<attr name="keyUppercaseLetterRatio" format="float" />
@@ -52,21 +56,32 @@
<attr name="keyTextColor" format="color" />
<!-- Color to use for the label in a key when in inactivated state. -->
<attr name="keyTextInactivatedColor" format="color" />
- <!-- Key hint letter color -->
+ <!-- Key hint letter (= one character hint label) color -->
<attr name="keyHintLetterColor" format="color" />
+ <!-- Key hint label color -->
+ <attr name="keyHintLabelColor" format="color" />
<!-- Upper case letter colors -->
<attr name="keyUppercaseLetterInactivatedColor" format="color" />
<attr name="keyUppercaseLetterActivatedColor" format="color" />
- <!-- Popup hint icon "..." -->
- <attr name="keyPopupHintIcon" format="reference" />
-
<!-- Layout resource for key press feedback.-->
<attr name="keyPreviewLayout" format="reference" />
+ <!-- The background for key press feedback. -->
+ <attr name="keyPreviewBackground" format="reference" />
+ <!-- The background for the left edge key press feedback. -->
+ <attr name="keyPreviewLeftBackground" format="reference" />
+ <!-- The background for the right edge key press feedback. -->
+ <attr name="keyPreviewRightBackground" format="reference" />
+ <!-- The background for spacebar press feedback. -->
+ <attr name="keyPreviewSpacebarBackground" format="reference" />
+ <!-- The text color for key press feedback. -->
+ <attr name="keyPreviewTextColor" format="color" />
<!-- Vertical offset of the key press feedback from the key. -->
<attr name="keyPreviewOffset" format="dimension" />
<!-- Height of the key press feedback popup. -->
<attr name="keyPreviewHeight" format="dimension" />
+ <!-- Size of the text for key press feedback popup, int the proportion of key height -->
+ <attr name="keyPreviewTextRatio" format="float" />
<!-- Hysteresis distance for key debouncing -->
<attr name="keyHysteresisDistance" format="dimension" />
@@ -146,16 +161,6 @@
<attr name="iconReturnKey" format="reference" />
<attr name="iconSearchKey" format="reference" />
<attr name="iconTabKey" format="reference" />
- <attr name="iconNum1Key" format="reference" />
- <attr name="iconNum2Key" format="reference" />
- <attr name="iconNum3Key" format="reference" />
- <attr name="iconNum4Key" format="reference" />
- <attr name="iconNum5Key" format="reference" />
- <attr name="iconNum6Key" format="reference" />
- <attr name="iconNum7Key" format="reference" />
- <attr name="iconNum8Key" format="reference" />
- <attr name="iconNum9Key" format="reference" />
- <attr name="iconNum0Key" format="reference" />
<attr name="iconShiftedShiftKey" format="reference" />
<attr name="iconPreviewSpaceKey" format="reference" />
<attr name="iconPreviewTabKey" format="reference" />
@@ -187,19 +192,23 @@
<attr name="keyOutputText" format="string" />
<!-- The label to display on the key. -->
<attr name="keyLabel" format="string" />
- <!-- The hint letter to display on the key in conjunction with the label. -->
- <attr name="keyHintLetter" format="string" />
+ <!-- The hint label to display on the key in conjunction with the label. -->
+ <attr name="keyHintLabel" format="string" />
<!-- The key label option. -->
<attr name="keyLabelOption" format="integer">
<!-- This should be aligned with Key.LABEL_OPTION_* -->
<flag name="alignLeft" value="0x01" />
<flag name="alignRight" value="0x02" />
- <flag name="alignBottom" value="0x08" />
- <flag name="fontNormal" value="0x10" />
- <flag name="fontFixedWidth" value="0x20" />
- <flag name="followKeyLetterRatio" value="0x40" />
- <flag name="popupHint" value="0x80" />
- <flag name="hasUppercaseLetter" value="0x100" />
+ <flag name="alignBottom" value="0x04" />
+ <flag name="alignLeftOfCenter" value="0x08" />
+ <flag name="largeLetter" value="0x10" />
+ <flag name="fontNormal" value="0x20" />
+ <flag name="fontMonoSpace" value="0x40" />
+ <flag name="followKeyLetterRatio" value="0x80" />
+ <flag name="followKeyHintLabelRatio" value="0x100" />
+ <flag name="hasPopupHint" value="0x200" />
+ <flag name="hasUppercaseLetter" value="0x400" />
+ <flag name="hasHintLabel" value="0x800" />
</attr>
<!-- The icon to display on the key instead of the label. -->
<attr name="keyIcon" format="enum">
@@ -214,29 +223,19 @@
<enum name="iconReturnKey" value="8" />
<enum name="iconSearchKey" value="9" />
<enum name="iconTabKey" value="10" />
- <enum name="iconNum1Key" value="11" />
- <enum name="iconNum2Key" value="12" />
- <enum name="iconNum3Key" value="13" />
- <enum name="iconNum4Key" value="14" />
- <enum name="iconNum5Key" value="15" />
- <enum name="iconNum6Key" value="16" />
- <enum name="iconNum7Key" value="17" />
- <enum name="iconNum8Key" value="18" />
- <enum name="iconNum9Key" value="19" />
- <enum name="iconNum0Key" value="20" />
</attr>
<!-- Shift key icon for shifted state -->
<attr name="keyIconShifted" format="enum">
<!-- This should be aligned with KeyboardIcons.ICON_SHIFTED_* -->
- <enum name="iconShiftedShiftKey" value="21" />
+ <enum name="iconShiftedShiftKey" value="11" />
</attr>
<!-- The icon to show in the popup preview. -->
<attr name="keyIconPreview" format="enum">
<!-- This should be aligned with KeyboardIcons.ICON_PREVIEW_* -->
- <enum name="iconPreviewSpaceKey" value="22" />
- <enum name="iconPreviewTabKey" value="23" />
- <enum name="iconPreviewSettingsKey" value="24" />
- <enum name="iconPreviewShortcutKey" value="25" />
+ <enum name="iconPreviewSpaceKey" value="12" />
+ <enum name="iconPreviewTabKey" value="13" />
+ <enum name="iconPreviewSettingsKey" value="14" />
+ <enum name="iconPreviewShortcutKey" value="15" />
</attr>
<!-- The key style to specify a set of key attributes defined by <key_style/> -->
<attr name="keyStyle" format="string" />
@@ -314,9 +313,5 @@
<attr name="disabledShortcutIcon" format="reference" />
<attr name="spacebarTextColor" format="color" />
<attr name="spacebarTextShadowColor" format="color" />
- <attr name="spacebarArrowLeftIcon" format="reference" />
- <attr name="spacebarArrowRightIcon" format="reference" />
- <attr name="spacebarArrowPreviewLeftIcon" format="reference" />
- <attr name="spacebarArrowPreviewRightIcon" format="reference" />
</declare-styleable>
</resources>
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 54256de3c..c1ef86930 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -30,16 +30,16 @@
<dimen name="popup_key_height">0.330in</dimen>
<dimen name="keyboard_top_padding">0.00in</dimen>
<dimen name="keyboard_bottom_padding">0.06in</dimen>
- <dimen name="key_bottom_gap_stone">0.00in</dimen>
- <dimen name="key_horizontal_gap_stone">0.00in</dimen>
+ <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen>
+ <dimen name="mini_keyboard_horizontal_padding">16dip</dimen>
+ <dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen>
+
<dimen name="key_bottom_gap_ics">0.06in</dimen>
<dimen name="key_horizontal_gap_ics">0.01in</dimen>
<dimen name="keyboard_top_padding_ics">0.03in</dimen>
<dimen name="keyboard_bottom_padding_ics">0.06in</dimen>
- <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen>
- <dimen name="mini_keyboard_horizontal_padding">16dip</dimen>
- <dimen name="mini_keyboard_horizontal_padding_holo">38dip</dimen>
- <dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen>
+ <dimen name="mini_keyboard_horizontal_padding_ics">38dip</dimen>
+
<!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
<!-- popup_key_height x 1.2 -->
<dimen name="mini_keyboard_slide_allowance">0.396in</dimen>
@@ -49,15 +49,20 @@
to user's finger. -->
<dimen name="keyboard_vertical_correction">-0.05in</dimen>
+ <!-- left or right padding of label alignment -->
+ <dimen name="key_label_horizontal_alignment_padding">4dip</dimen>
+
<fraction name="key_letter_ratio">45%</fraction>
+ <fraction name="key_large_letter_ratio">55%</fraction>
<fraction name="key_label_ratio">29%</fraction>
<fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_hint_label_ratio">36%</fraction>
<fraction name="key_uppercase_letter_ratio">35%</fraction>
- <!-- left or right padding of label alignment -->
- <dimen name="key_label_horizontal_alignment_padding">21dip</dimen>
<fraction name="key_preview_text_ratio">82%</fraction>
<dimen name="key_preview_height">80sp</dimen>
<dimen name="key_preview_offset">0.1in</dimen>
+
+ <dimen name="key_preview_height_ics">80sp</dimen>
<dimen name="key_preview_offset_ics">0.05in</dimen>
<dimen name="candidate_strip_height">42dip</dimen>
@@ -66,7 +71,7 @@
<dimen name="candidate_strip_minimum_height">100sp</dimen>
<dimen name="candidate_strip_fading_edge_length">63dip</dimen>
<dimen name="candidate_strip_padding">0dip</dimen>
- <dimen name="candidate_min_width">32dip</dimen>
+ <dimen name="candidate_min_width">44dip</dimen>
<dimen name="candidate_padding">6dip</dimen>
<dimen name="candidate_text_size">18dip</dimen>
<!-- If the screen height in landscape is larger than the below value, then the keyboard
diff --git a/java/res/values/keyboard-icons-black.xml b/java/res/values/keyboard-icons-black.xml
index 3ba345580..e2c688995 100644
--- a/java/res/values/keyboard-icons-black.xml
+++ b/java/res/values/keyboard-icons-black.xml
@@ -15,8 +15,12 @@
-->
<resources>
- <style name="KeyboardIcons.Black" parent="android:Theme.Light">
+ <style name="KeyboardIcons.Black">
<!-- Keyboard icons -->
+ <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are too
+ large for phone.
+ sym_bkeyboard_voice_off
+ -->
<item name="iconShiftKey">@drawable/sym_bkeyboard_shift</item>
<item name="iconToSymbolKeyWithShortcut">@drawable/sym_bkeyboard_123_mic</item>
<item name="iconDeleteKey">@drawable/sym_bkeyboard_delete</item>
@@ -26,16 +30,6 @@
<item name="iconReturnKey">@drawable/sym_bkeyboard_return</item>
<item name="iconSearchKey">@drawable/sym_bkeyboard_search</item>
<item name="iconTabKey">@drawable/sym_bkeyboard_tab</item>
- <item name="iconNum1Key">@drawable/sym_bkeyboard_num1</item>
- <item name="iconNum2Key">@drawable/sym_bkeyboard_num2</item>
- <item name="iconNum3Key">@drawable/sym_bkeyboard_num3</item>
- <item name="iconNum4Key">@drawable/sym_bkeyboard_num4</item>
- <item name="iconNum5Key">@drawable/sym_bkeyboard_num5</item>
- <item name="iconNum6Key">@drawable/sym_bkeyboard_num6</item>
- <item name="iconNum7Key">@drawable/sym_bkeyboard_num7</item>
- <item name="iconNum8Key">@drawable/sym_bkeyboard_num8</item>
- <item name="iconNum9Key">@drawable/sym_bkeyboard_num9</item>
- <item name="iconNum0Key">@drawable/sym_bkeyboard_num0</item>
<item name="iconShiftedShiftKey">@drawable/sym_bkeyboard_shift_locked</item>
<item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item>
<item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
@@ -43,10 +37,6 @@
<item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item>
<!-- LatinKeyboard icons -->
<item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item>
- <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item>
- <item name="spacebarArrowLeftIcon">@drawable/sym_keyboard_language_arrows_left</item>
- <item name="spacebarArrowRightIcon">@drawable/sym_keyboard_language_arrows_right</item>
- <item name="spacebarArrowPreviewLeftIcon">@drawable/sym_keyboard_feedback_language_arrows_left</item>
- <item name="spacebarArrowPreviewRightIcon">@drawable/sym_keyboard_feedback_language_arrows_right</item>
+ <item name="disabledShortcutIcon">@drawable/sym_bkeyboard_voice_off</item>
</style>
</resources>
diff --git a/java/res/values/keyboard-icons-ics.xml b/java/res/values/keyboard-icons-ics.xml
index 1dfbdf96e..c81315284 100644
--- a/java/res/values/keyboard-icons-ics.xml
+++ b/java/res/values/keyboard-icons-ics.xml
@@ -15,64 +15,42 @@
-->
<resources>
- <style name="KeyboardIcons.IceCreamSandwich" parent="android:Theme.Holo">
+ <style name="KeyboardIcons.IceCreamSandwich">
<!-- Keyboard icons -->
-<!-- <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo</item> -->
- <item name="iconShiftKey">@drawable/sym_keyboard_shift</item>
-<!-- <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_voice_holo</item> -->
- <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic</item>
-<!-- <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item> -->
- <item name="iconDeleteKey">@drawable/sym_keyboard_delete</item>
-<!-- <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item> -->
- <item name="iconSettingsKey">@drawable/sym_keyboard_settings</item>
-<!-- <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item> -->
- <item name="iconShortcutKey">@drawable/sym_keyboard_mic</item>
-<!-- <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo</item> -->
- <item name="iconSpaceKey">@drawable/sym_keyboard_space</item>
-<!-- <item name="iconReturnKey">@drawable/sym_keyboard_return_holo</item> -->
- <item name="iconReturnKey">@drawable/sym_keyboard_return</item>
-<!-- <item name="iconSearchKey">@drawable/sym_keyboard_search_holo</item> -->
+ <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are too
+ large for phone.
+ sym_keyboard_shift_holo
+ sym_keyboard_shift_locked_holo
+ sym_keyboard_delete_holo,
+ sym_keyboard_settings_holo
+ sym_keyboard_voice_holo
+ sym_keyboard_voice_holo_off
+ sym_keyboard_space_holo
+ sym_keyboard_return_holo
+ sym_keyboard_tab_holo
+ -->
+ <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are missing.
+ sym_keyboard_123_mic_holo
+ sym_keyboard_search_holo
+ sym_keyboard_feedback_tab_holo
+ sym_keyboard_feedback_voice_holo
+ -->
+ <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo</item>
+ <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic_holo</item>
+ <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item>
+ <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item>
+ <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item>
+ <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo</item>
+ <item name="iconReturnKey">@drawable/sym_keyboard_return_holo</item>
<item name="iconSearchKey">@drawable/sym_keyboard_search</item>
-<!-- <item name="iconTabKey">@drawable/sym_keyboard_tab_holo</item> -->
- <item name="iconTabKey">@drawable/sym_keyboard_tab</item>
-<!-- <item name="iconNum1Key">@drawable/sym_keyboard_num1_holo</item> -->
-<!-- <item name="iconNum2Key">@drawable/sym_keyboard_num2_holo</item> -->
-<!-- <item name="iconNum3Key">@drawable/sym_keyboard_num3_holo</item> -->
-<!-- <item name="iconNum4Key">@drawable/sym_keyboard_num4_holo</item> -->
-<!-- <item name="iconNum5Key">@drawable/sym_keyboard_num5_holo</item> -->
-<!-- <item name="iconNum6Key">@drawable/sym_keyboard_num6_holo</item> -->
-<!-- <item name="iconNum7Key">@drawable/sym_keyboard_num7_holo</item> -->
-<!-- <item name="iconNum8Key">@drawable/sym_keyboard_num8_holo</item> -->
-<!-- <item name="iconNum9Key">@drawable/sym_keyboard_num9_holo</item> -->
-<!-- <item name="iconNum0Key">@drawable/sym_keyboard_num0_holo</item> -->
-<!-- <item name="iconNumStarKey">@drawable/sym_keyboard_numbstar_holo</item> -->
-<!-- <item name="iconNumPoundKey">@drawable/sym_keyboard_numbpound_holo</item> -->
-<!-- <item name="iconNumAltKey">@drawable/sym_keyboard_numalt_holo</item> -->
- <item name="iconNum1Key">@drawable/sym_keyboard_num1</item>
- <item name="iconNum2Key">@drawable/sym_keyboard_num2</item>
- <item name="iconNum3Key">@drawable/sym_keyboard_num3</item>
- <item name="iconNum4Key">@drawable/sym_keyboard_num4</item>
- <item name="iconNum5Key">@drawable/sym_keyboard_num5</item>
- <item name="iconNum6Key">@drawable/sym_keyboard_num6</item>
- <item name="iconNum7Key">@drawable/sym_keyboard_num7</item>
- <item name="iconNum8Key">@drawable/sym_keyboard_num8</item>
- <item name="iconNum9Key">@drawable/sym_keyboard_num9</item>
- <item name="iconNum0Key">@drawable/sym_keyboard_num0</item>
-<!-- <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked_holo</item> -->
- <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked</item>
+ <item name="iconTabKey">@drawable/sym_keyboard_tab_holo</item>
+ <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked_holo</item>
<item name="iconPreviewSpaceKey">@drawable/transparent</item>
-<!-- <item name="iconPreviewTabKey">@drawable/sym_keyboard_tab_holo</item> -->
<item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
-<!-- <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings_holo</item> -->
- <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings</item>
-<!-- <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_voice_holo</item> -->
+ <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings_holo</item>
<item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item>
<!-- LatinKeyboard icons -->
<item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item>
<item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item>
- <item name="spacebarArrowLeftIcon">@drawable/sym_keyboard_language_arrows_left</item>
- <item name="spacebarArrowRightIcon">@drawable/sym_keyboard_language_arrows_right</item>
-<!-- <item name="spacebarArrowPreviewLeftIcon">@drawable/sym_keyboard_feedback_language_arrows_left</item> -->
-<!-- <item name="spacebarArrowPreviewRightIcon">@drawable/sym_keyboard_feedback_language_arrows_right</item> -->
</style>
</resources>
diff --git a/java/res/values/keyboard-icons-white.xml b/java/res/values/keyboard-icons-white.xml
index 9f5fb5a5b..8bc7539fa 100644
--- a/java/res/values/keyboard-icons-white.xml
+++ b/java/res/values/keyboard-icons-white.xml
@@ -15,7 +15,7 @@
-->
<resources>
- <style name="KeyboardIcons" parent="android:Theme">
+ <style name="KeyboardIcons">
<!-- Keyboard icons -->
<item name="iconShiftKey">@drawable/sym_keyboard_shift</item>
<item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic</item>
@@ -26,16 +26,6 @@
<item name="iconReturnKey">@drawable/sym_keyboard_return</item>
<item name="iconSearchKey">@drawable/sym_keyboard_search</item>
<item name="iconTabKey">@drawable/sym_keyboard_tab</item>
- <item name="iconNum1Key">@drawable/sym_keyboard_num1</item>
- <item name="iconNum2Key">@drawable/sym_keyboard_num2</item>
- <item name="iconNum3Key">@drawable/sym_keyboard_num3</item>
- <item name="iconNum4Key">@drawable/sym_keyboard_num4</item>
- <item name="iconNum5Key">@drawable/sym_keyboard_num5</item>
- <item name="iconNum6Key">@drawable/sym_keyboard_num6</item>
- <item name="iconNum7Key">@drawable/sym_keyboard_num7</item>
- <item name="iconNum8Key">@drawable/sym_keyboard_num8</item>
- <item name="iconNum9Key">@drawable/sym_keyboard_num9</item>
- <item name="iconNum0Key">@drawable/sym_keyboard_num0</item>
<item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked</item>
<item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item>
<item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
@@ -44,9 +34,5 @@
<!-- LatinKeyboard icons -->
<item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item>
<item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item>
- <item name="spacebarArrowLeftIcon">@drawable/sym_keyboard_language_arrows_left</item>
- <item name="spacebarArrowRightIcon">@drawable/sym_keyboard_language_arrows_right</item>
- <item name="spacebarArrowPreviewLeftIcon">@drawable/sym_keyboard_feedback_language_arrows_left</item>
- <item name="spacebarArrowPreviewRightIcon">@drawable/sym_keyboard_feedback_language_arrows_right</item>
</style>
</resources>
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 05defcb52..08301be5c 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -37,19 +37,27 @@
<item name="android:background">@drawable/keyboard_background</item>
<item name="keyBackground">@drawable/btn_keyboard_key</item>
<item name="keyLetterRatio">@fraction/key_letter_ratio</item>
+ <item name="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item>
<item name="keyLabelRatio">@fraction/key_label_ratio</item>
<item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item>
+ <item name="keyHintLabelRatio">@fraction/key_hint_label_ratio</item>
<item name="keyUppercaseLetterRatio">@fraction/key_uppercase_letter_ratio</item>
<item name="keyTextStyle">normal</item>
<item name="keyTextColor">#FFFFFFFF</item>
<item name="keyTextInactivatedColor">#FFFFFFFF</item>
<item name="keyHintLetterColor">#80000000</item>
+ <item name="keyHintLabelColor">#E0E0E4E5</item>
<item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item>
<item name="keyUppercaseLetterActivatedColor">#CCE0E4E5</item>
- <item name="keyPopupHintIcon">@drawable/hint_popup</item>
<item name="keyPreviewLayout">@layout/key_preview</item>
+ <item name="keyPreviewBackground">@drawable/keyboard_key_feedback</item>
+ <item name="keyPreviewLeftBackground">@null</item>
+ <item name="keyPreviewRightBackground">@null</item>
+ <item name="keyPreviewSpacebarBackground">@drawable/keyboard_key_feedback</item>
+ <item name="keyPreviewTextColor">#FFFFFFFF</item>
<item name="keyPreviewOffset">@dimen/key_preview_offset</item>
<item name="keyPreviewHeight">@dimen/key_preview_height</item>
+ <item name="keyPreviewTextRatio">@fraction/key_preview_text_ratio</item>
<item name="popupLayout">@layout/keyboard_popup</item>
<item name="keyHysteresisDistance">@dimen/key_hysteresis_distance</item>
<item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>
@@ -57,10 +65,6 @@
<item name="shadowRadius">2.75</item>
<item name="backgroundDimAmount">0.5</item>
</style>
- <style name="KeyPreviewStyle">
- <item name="android:background">@drawable/keyboard_key_feedback</item>
- <item name="android:textColor">#FFFFFFFF</item>
- </style>
<style name="PopupMiniKeyboardView" parent="KeyboardView">
<item name="keyBackground">@drawable/btn_keyboard_key_popup</item>
<item name="keyHysteresisDistance">0dip</item>
@@ -95,17 +99,21 @@
</style>
<!-- Theme "Stone" -->
<style name="Keyboard.Stone" parent="Keyboard">
- <item name="horizontalGap">@dimen/key_horizontal_gap_stone</item>
- <item name="verticalGap">@dimen/key_bottom_gap_stone</item>
+ <item name="horizontalGap">@dimen/key_horizontal_gap</item>
+ <item name="verticalGap">@dimen/key_bottom_gap</item>
</style>
<style name="LatinKeyboard.Stone" parent="LatinKeyboard">
- <item name="spacebarTextColor">#FF444444</item>
- <item name="spacebarTextShadowColor">#80FFFFFF</item>
+ <item name="spacebarTextColor">#FF000000</item>
+ <item name="spacebarTextShadowColor">#D0FFFFFF</item>
</style>
<style name="KeyboardView.Stone" parent="KeyboardView">
<item name="keyBackground">@drawable/btn_keyboard_key_stone</item>
<item name="keyTextColor">#FF000000</item>
<item name="keyTextInactivatedColor">#FF808080</item>
+ <item name="keyHintLetterColor">#80000000</item>
+ <item name="keyHintLabelColor">#E0000000</item>
+ <item name="keyUppercaseLetterInactivatedColor">#66000000</item>
+ <item name="keyUppercaseLetterActivatedColor">#CC000000</item>
<item name="shadowColor">#FFFFFFFF</item>
</style>
<style name="PopupMiniKeyboardView.Stone" parent="PopupMiniKeyboardView">
@@ -142,25 +150,27 @@
<item name="keyTextStyle">bold</item>
<item name="keyTextInactivatedColor">#66E0E4E5</item>
<item name="keyHintLetterColor">#80000000</item>
+ <item name="keyHintLabelColor">#A0FFFFFF</item>
<item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item>
<item name="keyUppercaseLetterActivatedColor">#FFFFFFFF</item>
- <item name="keyPopupHintIcon">@drawable/hint_popup</item>
- <item name="keyPreviewHeight">@dimen/key_preview_height</item>
+ <item name="keyPreviewBackground">@drawable/keyboard_key_feedback_ics</item>
+ <item name="keyPreviewLeftBackground">@drawable/keyboard_key_feedback_left_ics</item>
+ <item name="keyPreviewRightBackground">@drawable/keyboard_key_feedback_right_ics</item>
+ <item name="keyPreviewSpacebarBackground">@drawable/transparent</item>
+ <item name="keyPreviewTextColor">#FFFFFFFF</item>
+ <item name="keyPreviewHeight">@dimen/key_preview_height_ics</item>
<item name="keyPreviewOffset">@dimen/key_preview_offset_ics</item>
<item name="shadowColor">#00000000</item>
<item name="shadowRadius">0.0</item>
</style>
- <style name="KeyPreviewStyle.IceCreamSandwich">
- <item name="android:background">@drawable/keyboard_key_feedback_ics</item>
- </style>
<style name="PopupMiniKeyboardView.IceCreamSandwich" parent="PopupMiniKeyboardView">
<item name="android:background">@null</item>
<item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item>
</style>
<style name="PopupMiniKeyboardPanelStyle.IceCreamSandwich">
<item name="android:background">@drawable/keyboard_popup_panel_background_holo</item>
- <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding_holo</item>
- <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding_holo</item>
+ <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding_ics</item>
+ <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding_ics</item>
</style>
<style name="SuggestionsStripBackgroundStyle.IceCreamSandwich">
<item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
diff --git a/java/res/values/themes-basic-highcontrast.xml b/java/res/values/themes-basic-highcontrast.xml
index 8122e4eb0..820f96216 100644
--- a/java/res/values/themes-basic-highcontrast.xml
+++ b/java/res/values/themes-basic-highcontrast.xml
@@ -19,7 +19,6 @@
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item>
- <item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
diff --git a/java/res/values/themes-basic.xml b/java/res/values/themes-basic.xml
index 50b52de32..18cae4e24 100644
--- a/java/res/values/themes-basic.xml
+++ b/java/res/values/themes-basic.xml
@@ -19,7 +19,6 @@
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView</item>
- <item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml
index cdb10c81a..091baa737 100644
--- a/java/res/values/themes-gingerbread.xml
+++ b/java/res/values/themes-gingerbread.xml
@@ -19,7 +19,6 @@
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item>
- <item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Gingerbread</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 33c40816b..97c594408 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -19,7 +19,6 @@
<item name="keyboardStyle">@style/Keyboard.IceCreamSandwich</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.IceCreamSandwich</item>
<item name="keyboardViewStyle">@style/KeyboardView.IceCreamSandwich</item>
- <item name="keyPreviewStyle">@style/KeyPreviewStyle.IceCreamSandwich</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.IceCreamSandwich</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle.IceCreamSandwich</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.IceCreamSandwich</item>
diff --git a/java/res/values/themes-stone-bold.xml b/java/res/values/themes-stone-bold.xml
index 6589807ec..d33e6bf35 100644
--- a/java/res/values/themes-stone-bold.xml
+++ b/java/res/values/themes-stone-bold.xml
@@ -19,7 +19,6 @@
<item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item>
- <item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
diff --git a/java/res/values/themes-stone.xml b/java/res/values/themes-stone.xml
index a8608f6b3..230b2ca4d 100644
--- a/java/res/values/themes-stone.xml
+++ b/java/res/values/themes-stone.xml
@@ -19,7 +19,6 @@
<item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone</item>
- <item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
diff --git a/java/res/xml-sw600dp/kbd_key_styles.xml b/java/res/xml-sw600dp/kbd_key_styles.xml
index e8e80ac03..dbea4dcfd 100644
--- a/java/res/xml-sw600dp/kbd_key_styles.xml
+++ b/java/res/xml-sw600dp/kbd_key_styles.xml
@@ -37,7 +37,7 @@
<default>
<key-style
latin:styleName="settingsPopupStyle"
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="\@icon/5|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
@@ -73,7 +73,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
@@ -116,7 +116,7 @@
<key-style
latin:styleName="comKeyStyle"
latin:keyLabel="@string/keylabel_for_popular_domain"
- latin:keyLabelOption="fontNormal|popupHint"
+ latin:keyLabelOption="fontNormal|hasPopupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
latin:popupCharacters="@string/alternates_for_popular_domain" />
<switch>
diff --git a/java/res/xml-sw600dp/kbd_number.xml b/java/res/xml-sw600dp/kbd_number.xml
index 2c7af0ae2..b3a1010d7 100644
--- a/java/res/xml-sw600dp/kbd_number.xml
+++ b/java/res/xml-sw600dp/kbd_number.xml
@@ -91,24 +91,27 @@
<Row>
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="11.00%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="+"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="1"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="38.75%p" />
<Key
- latin:keyLabel="2" />
+ latin:keyLabel="2"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="3" />
+ latin:keyLabel="3"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-11.00%p"
@@ -117,25 +120,27 @@
</Row>
<Row>
<Key
- latin:keyLabel="*"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numStarKeyStyle"
latin:keyXPos="11.00%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="/"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel=","
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="4"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="38.75%p" />
<Key
- latin:keyLabel="5" />
+ latin:keyLabel="5"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="6" />
+ latin:keyLabel="6"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-11.00%p"
@@ -148,24 +153,27 @@
edge key. -->
<Key
latin:keyLabel="("
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="11.00%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel=")"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="="
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="7"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="38.75%p" />
<Key
- latin:keyLabel="8" />
+ latin:keyLabel="8"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="9" />
+ latin:keyLabel="9"
+ latin:keyStyle="numKeyStyle" />
</Row>
<!-- This row is intentionally not marked as a bottom row -->
<Row>
@@ -180,10 +188,11 @@
latin:keyStyle="numStarKeyStyle"
latin:keyXPos="38.75%p" />
<Key
- latin:keyLabel="0" />
+ latin:keyLabel="0"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyLabel="#"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Spacer
latin:keyXPos="-11.00%p"
latin:keyWidth="0%p" />
diff --git a/java/res/xml-sw600dp/kbd_phone.xml b/java/res/xml-sw600dp/kbd_phone.xml
index 4dee882e9..dd53a206a 100644
--- a/java/res/xml-sw600dp/kbd_phone.xml
+++ b/java/res/xml-sw600dp/kbd_phone.xml
@@ -30,12 +30,12 @@
<Row>
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="15.625%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="+"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num1KeyStyle"
@@ -53,12 +53,12 @@
<Row>
<Key
latin:keyLabel=","
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="15.625%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num4KeyStyle"
@@ -82,12 +82,12 @@
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
latin:keyLabel="("
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="15.625%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel=")"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num7KeyStyle"
@@ -114,7 +114,7 @@
latin:keyStyle="num0KeyStyle" />
<Key
latin:keyLabel="#"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Spacer
latin:keyXPos="-11.00%p"
latin:keyWidth="0%p" />
diff --git a/java/res/xml-sw600dp/kbd_phone_symbols.xml b/java/res/xml-sw600dp/kbd_phone_symbols.xml
index 87de880d9..d083ecb60 100644
--- a/java/res/xml-sw600dp/kbd_phone_symbols.xml
+++ b/java/res/xml-sw600dp/kbd_phone_symbols.xml
@@ -30,12 +30,12 @@
<Row>
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="11.00%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="+"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:code="44"
@@ -57,12 +57,12 @@
<Row>
<Key
latin:keyLabel=","
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="11.00%p"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:code="59"
@@ -90,15 +90,15 @@
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
latin:keyLabel="("
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel=")"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyLabel="N"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num7KeyStyle"
@@ -124,7 +124,7 @@
latin:keyStyle="num0KeyStyle" />
<Key
latin:keyLabel="#"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Spacer
latin:keyXPos="-11.00%p"
latin:keyWidth="0%p" />
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row3.xml b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
index 0dbc5cf66..278db13fc 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row3.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
@@ -59,12 +59,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row4.xml b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
index 8fd65fe0e..4f41c17b4 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
@@ -49,7 +49,7 @@
<Key
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\@"
+ latin:keyHintLabel="\@"
latin:popupCharacters="\@" />
</default>
</switch>
@@ -75,7 +75,7 @@
<Key
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter=":"
+ latin:keyHintLabel=":"
latin:popupCharacters=":"
latin:keyWidth="9.750%p" />
</case>
@@ -83,7 +83,7 @@
<Key
latin:keyLabel="\?"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="_"
+ latin:keyHintLabel="_"
latin:popupCharacters="_"
latin:keyWidth="9.750%p" />
</default>
@@ -100,7 +100,7 @@
<Key
latin:keyLabel="!"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\'"
+ latin:keyHintLabel="\'"
latin:popupCharacters="\'"
latin:keyWidth="9.750%p" />
</default>
@@ -122,7 +122,7 @@
<Key
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter=":"
+ latin:keyHintLabel=":"
latin:popupCharacters=":"
latin:keyWidth="9.750%p" />
</case>
@@ -130,7 +130,7 @@
<Key
latin:keyLabel="\'"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="&quot;"
+ latin:keyHintLabel="&quot;"
latin:popupCharacters="&quot;"
latin:keyWidth="9.750%p" />
</default>
@@ -147,7 +147,7 @@
<Key
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="_"
+ latin:keyHintLabel="_"
latin:popupCharacters="_"
latin:keyWidth="9.750%p" />
</default>
diff --git a/java/res/xml-sw600dp/kbd_row3_right.xml b/java/res/xml-sw600dp/kbd_row3_right.xml
index a9c5eb371..5e9584f2d 100644
--- a/java/res/xml-sw600dp/kbd_row3_right.xml
+++ b/java/res/xml-sw600dp/kbd_row3_right.xml
@@ -37,7 +37,7 @@
<Key
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="_"
+ latin:keyHintLabel="_"
latin:popupCharacters="_"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth"
@@ -49,7 +49,7 @@
<Key
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="+"
+ latin:keyHintLabel="+"
latin:popupCharacters="+"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth"
diff --git a/java/res/xml-sw600dp/kbd_rows_azerty.xml b/java/res/xml-sw600dp/kbd_rows_azerty.xml
index b53bbbbf9..7ba716bc5 100644
--- a/java/res/xml-sw600dp/kbd_rows_azerty.xml
+++ b/java/res/xml-sw600dp/kbd_rows_azerty.xml
@@ -139,12 +139,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_rows_qwertz.xml b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
index 7ea9b0f37..7f85fe778 100644
--- a/java/res/xml-sw600dp/kbd_rows_qwertz.xml
+++ b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
@@ -104,12 +104,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_rows_russian.xml b/java/res/xml-sw600dp/kbd_rows_russian.xml
index 43fa665e6..b72324745 100644
--- a/java/res/xml-sw600dp/kbd_rows_russian.xml
+++ b/java/res/xml-sw600dp/kbd_rows_russian.xml
@@ -119,7 +119,7 @@
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter=","
+ latin:keyHintLabel=","
latin:popupCharacters="," />
<include
latin:keyboardLayout="@xml/kbd_row3_right" />
diff --git a/java/res/xml-sw600dp/kbd_rows_scandinavian.xml b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
index 3666ead51..645ef625a 100644
--- a/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
+++ b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
@@ -147,12 +147,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_rows_serbian.xml b/java/res/xml-sw600dp/kbd_rows_serbian.xml
index 80debdadb..4dfe94400 100644
--- a/java/res/xml-sw600dp/kbd_rows_serbian.xml
+++ b/java/res/xml-sw600dp/kbd_rows_serbian.xml
@@ -127,12 +127,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_key_styles.xml b/java/res/xml-sw768dp/kbd_key_styles.xml
index 5d8c081a6..4c1e3b63e 100644
--- a/java/res/xml-sw768dp/kbd_key_styles.xml
+++ b/java/res/xml-sw768dp/kbd_key_styles.xml
@@ -55,7 +55,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
@@ -98,7 +98,7 @@
<key-style
latin:styleName="comKeyStyle"
latin:keyLabel="@string/keylabel_for_popular_domain"
- latin:keyLabelOption="fontNormal|popupHint"
+ latin:keyLabelOption="fontNormal|hasPopupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
latin:popupCharacters="@string/alternates_for_popular_domain" />
<switch>
diff --git a/java/res/xml-sw768dp/kbd_number.xml b/java/res/xml-sw768dp/kbd_number.xml
index 1ae6984a5..a3bed2f3a 100644
--- a/java/res/xml-sw768dp/kbd_number.xml
+++ b/java/res/xml-sw768dp/kbd_number.xml
@@ -98,24 +98,27 @@
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="+"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="1"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="43.125%p" />
<Key
- latin:keyLabel="2" />
+ latin:keyLabel="2"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="3" />
+ latin:keyLabel="3"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-11.172%p"
@@ -124,25 +127,27 @@
</Row>
<Row>
<Key
- latin:keyLabel="*"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numStarKeyStyle"
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="/"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel=","
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="4"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="43.125%p" />
<Key
- latin:keyLabel="5" />
+ latin:keyLabel="5"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="6" />
+ latin:keyLabel="6"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-11.172%p"
@@ -155,24 +160,27 @@
edge key. -->
<Key
latin:keyLabel="("
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel=")"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="="
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="7"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="43.125%p" />
<Key
- latin:keyLabel="8" />
+ latin:keyLabel="8"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="9" />
+ latin:keyLabel="9"
+ latin:keyStyle="numKeyStyle" />
<!-- There is an empty area below the "Enter" key and right of the "9" key. To
ignore the touch event on the area, "9" is intentionally not marked as a right
edge key. -->
@@ -191,14 +199,14 @@
latin:keyXPos="13.829%p"
latin:keyWidth="24.140%p" />
<Key
- latin:keyLabel="*"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numStarKeyStyle"
latin:keyXPos="43.125%p" />
<Key
- latin:keyLabel="0" />
+ latin:keyLabel="0"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyLabel="#"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<switch>
<case
latin:voiceKeyEnabled="true"
diff --git a/java/res/xml-sw768dp/kbd_phone.xml b/java/res/xml-sw768dp/kbd_phone.xml
index 6801ac5cc..0935992fd 100644
--- a/java/res/xml-sw768dp/kbd_phone.xml
+++ b/java/res/xml-sw768dp/kbd_phone.xml
@@ -35,12 +35,12 @@
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="20.400%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="+"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num1KeyStyle"
@@ -62,12 +62,12 @@
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel=","
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="20.400%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num4KeyStyle"
@@ -87,12 +87,12 @@
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
latin:keyLabel="("
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="20.400%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel=")"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num7KeyStyle"
@@ -124,7 +124,7 @@
latin:keyStyle="num0KeyStyle" />
<Key
latin:keyLabel="#"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<switch>
<case
latin:voiceKeyEnabled="true"
diff --git a/java/res/xml-sw768dp/kbd_phone_symbols.xml b/java/res/xml-sw768dp/kbd_phone_symbols.xml
index 22f78b6d3..6ee57d6a5 100644
--- a/java/res/xml-sw768dp/kbd_phone_symbols.xml
+++ b/java/res/xml-sw768dp/kbd_phone_symbols.xml
@@ -35,12 +35,12 @@
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="+"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:code="44"
@@ -66,12 +66,12 @@
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel=","
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:code="59"
@@ -95,16 +95,16 @@
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
latin:keyLabel="("
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel=")"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyLabel="N"
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num7KeyStyle"
@@ -136,7 +136,7 @@
latin:keyStyle="num0KeyStyle" />
<Key
latin:keyLabel="#"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<switch>
<case
latin:voiceKeyEnabled="true"
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row4.xml b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
index 00eabab9e..bdef89dcc 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
@@ -59,7 +59,7 @@
<Key
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="+"
+ latin:keyHintLabel="+"
latin:popupCharacters="+" />
</case>
<default>
@@ -78,7 +78,7 @@
<Key
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\@"
+ latin:keyHintLabel="\@"
latin:popupCharacters="\@" />
</default>
</switch>
@@ -101,14 +101,14 @@
<Key
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter=":"
+ latin:keyHintLabel=":"
latin:popupCharacters=":" />
</case>
<default>
<Key
latin:keyLabel="\'"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="&quot;"
+ latin:keyHintLabel="&quot;"
latin:popupCharacters="&quot;" />
</default>
</switch>
@@ -123,7 +123,7 @@
<Key
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="_"
+ latin:keyHintLabel="_"
latin:popupCharacters="_" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_row3_right2.xml b/java/res/xml-sw768dp/kbd_row3_right2.xml
index e90de8eec..25453160f 100644
--- a/java/res/xml-sw768dp/kbd_row3_right2.xml
+++ b/java/res/xml-sw768dp/kbd_row3_right2.xml
@@ -34,12 +34,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_rows_azerty.xml b/java/res/xml-sw768dp/kbd_rows_azerty.xml
index 3bcba0042..373bda9ce 100644
--- a/java/res/xml-sw768dp/kbd_rows_azerty.xml
+++ b/java/res/xml-sw768dp/kbd_rows_azerty.xml
@@ -134,7 +134,7 @@
<Key
latin:keyLabel="\'"
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter=":"
+ latin:keyHintLabel=":"
latin:popupCharacters=":" />
<switch>
<case
@@ -149,12 +149,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_rows_qwertz.xml b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
index 8d5f1e6d4..6567c3166 100644
--- a/java/res/xml-sw768dp/kbd_rows_qwertz.xml
+++ b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
@@ -107,12 +107,12 @@
<Key
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="!"
+ latin:keyHintLabel="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
- latin:keyHintLetter="\?"
+ latin:keyHintLabel="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index 63d519c4c..3d8600391 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -46,7 +46,7 @@
<default>
<key-style
latin:styleName="settingsPopupStyle"
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="\@icon/5|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
@@ -129,7 +129,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5"
latin:parentStyle="functionalKeyStyle" />
diff --git a/java/res/xml/kbd_number.xml b/java/res/xml/kbd_number.xml
index 429b81846..4d7b6d9a9 100644
--- a/java/res/xml/kbd_number.xml
+++ b/java/res/xml/kbd_number.xml
@@ -83,39 +83,48 @@
>
<Key
latin:keyLabel="1"
+ latin:keyStyle="numKeyStyle"
latin:keyEdgeFlags="left" />
<Key
- latin:keyLabel="2" />
+ latin:keyLabel="2"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="3" />
+ latin:keyLabel="3"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyLabel="-"
- latin:keyStyle="functionalKeyStyle"
+ latin:keyStyle="numFunctionalKeyStyle"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Key
latin:keyLabel="4"
+ latin:keyStyle="numKeyStyle"
latin:keyEdgeFlags="left" />
<Key
- latin:keyLabel="5" />
+ latin:keyLabel="5"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="6" />
+ latin:keyLabel="6"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyLabel=","
- latin:keyStyle="functionalKeyStyle"
+ latin:keyStyle="numFunctionalKeyStyle"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Key
latin:keyLabel="7"
+ latin:keyStyle="numKeyStyle"
latin:keyEdgeFlags="left" />
<Key
- latin:keyLabel="8" />
+ latin:keyLabel="8"
+ latin:keyStyle="numKeyStyle"/>
<Key
- latin:keyLabel="9" />
+ latin:keyLabel="9"
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"
@@ -128,9 +137,11 @@
latin:keyStyle="numSpaceKeyStyle"
latin:keyEdgeFlags="left" />
<Key
- latin:keyLabel="0" />
+ latin:keyLabel="0"
+ latin:keyStyle="numKeyStyle" />
<Key
- latin:keyLabel="." />
+ latin:keyLabel="."
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_numkey_styles.xml b/java/res/xml/kbd_numkey_styles.xml
index 3a26a022b..657bfbcbf 100644
--- a/java/res/xml/kbd_numkey_styles.xml
+++ b/java/res/xml/kbd_numkey_styles.xml
@@ -22,71 +22,83 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<key-style
+ latin:styleName="numKeyStyle"
+ latin:keyLabelOption="largeLetter|followKeyLetterRatio" />
+ <key-style
+ latin:styleName="numModeKeyStyle"
+ latin:keyLabelOption="fontNormal|followKeyLetterRatio" />
+ <key-style
+ latin:styleName="numFunctionalKeyStyle"
+ latin:keyLabelOption="largeLetter|followKeyLetterRatio"
+ latin:parentStyle="functionalKeyStyle" />
+ <key-style
+ latin:styleName="numberKeyStyle"
+ latin:keyLabelOption="alignLeftOfCenter|hasHintLabel"
+ latin:parentStyle="numKeyStyle" />
+ <key-style
latin:styleName="num0KeyStyle"
latin:code="48"
- latin:keyIcon="iconNum0Key" />
+ latin:keyLabel="0 +"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num1KeyStyle"
- latin:code="49"
- latin:keyIcon="iconNum1Key" />
+ latin:keyLabel="1"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num2KeyStyle"
- latin:code="50"
- latin:keyIcon="iconNum2Key" />
+ latin:keyLabel="2"
+ latin:keyHintLabel="ABC"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num3KeyStyle"
- latin:code="51"
- latin:keyIcon="iconNum3Key" />
+ latin:keyLabel="3"
+ latin:keyHintLabel="DEF"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num4KeyStyle"
- latin:code="52"
- latin:keyIcon="iconNum4Key" />
+ latin:keyLabel="4"
+ latin:keyHintLabel="GHI"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num5KeyStyle"
- latin:code="53"
- latin:keyIcon="iconNum5Key" />
+ latin:keyLabel="5"
+ latin:keyHintLabel="JKL"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num6KeyStyle"
- latin:code="54"
- latin:keyIcon="iconNum6Key" />
+ latin:keyLabel="6"
+ latin:keyHintLabel="MNO"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num7KeyStyle"
- latin:code="55"
- latin:keyIcon="iconNum7Key" />
+ latin:keyLabel="7"
+ latin:keyHintLabel="PQRS"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num8KeyStyle"
- latin:code="56"
- latin:keyIcon="iconNum8Key" />
+ latin:keyLabel="8"
+ latin:keyHintLabel="TUV"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="num9KeyStyle"
- latin:code="57"
- latin:keyIcon="iconNum9Key" />
- <key-style
- latin:styleName="numLabelStyle"
- latin:keyLabelOption="fontFixedWidth|followKeyLetterRatio" />
- <key-style
- latin:styleName="numLabelFunctionalStyle"
- latin:keyLabelOption="fontFixedWidth|followKeyLetterRatio"
- latin:parentStyle="functionalKeyStyle" />
+ latin:keyLabel="9"
+ latin:keyHintLabel="WXYZ"
+ latin:parentStyle="numberKeyStyle" />
<key-style
latin:styleName="numStarKeyStyle"
latin:code="42"
latin:keyLabel="\uff0a"
- latin:parentStyle="numLabelStyle" />
- <key-style
- latin:styleName="numPoundKeyStyle"
- latin:keyLabel="#"
- latin:parentStyle="numLabelStyle" />
+ latin:parentStyle="numKeyStyle" />
<key-style
latin:styleName="numSwitchToAltKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyLabel="@string/label_to_phone_symbols_key"
- latin:parentStyle="numLabelStyle" />
+ latin:parentStyle="numModeKeyStyle" />
<key-style
latin:styleName="numSwitchToNumericKeyStyle"
latin:code="@integer/key_switch_alpha_symbol"
latin:keyLabel="@string/label_to_phone_numeric_key"
- latin:parentStyle="numLabelStyle" />
+ latin:parentStyle="numModeKeyStyle" />
<key-style
latin:styleName="numSpaceKeyStyle"
latin:code="@integer/key_space"
diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml
index 794528c2b..c6508fb03 100644
--- a/java/res/xml/kbd_phone.xml
+++ b/java/res/xml/kbd_phone.xml
@@ -38,7 +38,7 @@
latin:keyStyle="num3KeyStyle" />
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelFunctionalStyle"
+ latin:keyStyle="numFunctionalKeyStyle"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
</Row>
@@ -52,7 +52,7 @@
latin:keyStyle="num6KeyStyle" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelFunctionalStyle"
+ latin:keyStyle="numFunctionalKeyStyle"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
</Row>
diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml
index 1405c3c21..5d9912229 100644
--- a/java/res/xml/kbd_phone_symbols.xml
+++ b/java/res/xml/kbd_phone_symbols.xml
@@ -31,36 +31,36 @@
>
<Key
latin:keyLabel="("
- latin:keyStyle="numLabelStyle"
+ latin:keyStyle="numKeyStyle"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="/"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyLabel=")"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyLabel="-"
- latin:keyStyle="numLabelFunctionalStyle"
+ latin:keyStyle="numFunctionalKeyStyle"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
</Row>
<Row>
<Key
latin:keyLabel="N"
- latin:keyStyle="numLabelStyle"
latin:keyEdgeFlags="left" />
<!-- Pause is a comma. Check PhoneNumberUtils.java to see if this
has changed. -->
<Key
latin:code="44"
- latin:keyLabel="Pause" />
+ latin:keyLabel="@string/label_pause_key"
+ latin:keyLabelOption="followKeyHintLabelRatio" />
<Key
latin:keyLabel=","
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyLabel="."
- latin:keyStyle="numLabelFunctionalStyle"
+ latin:keyStyle="numFunctionalKeyStyle"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
</Row>
@@ -71,10 +71,11 @@
<!-- Wait is a semicolon. -->
<Key
latin:code="59"
- latin:keyLabel="Wait" />
+ latin:keyLabel="@string/label_wait_key"
+ latin:keyLabelOption="followKeyHintLabelRatio" />
<Key
latin:keyLabel="#"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"
@@ -88,7 +89,7 @@
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="+"
- latin:keyStyle="numLabelStyle" />
+ latin:keyStyle="numKeyStyle" />
<Key
latin:keyStyle="numSpaceKeyStyle" />
<Key
diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml
index 8c3669de0..cfd2efd2a 100644
--- a/java/res/xml/kbd_qwerty_row1.xml
+++ b/java/res/xml/kbd_qwerty_row1.xml
@@ -27,44 +27,44 @@
>
<Key
latin:keyLabel="q"
- latin:keyHintLetter="1"
+ latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_q"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
- latin:keyHintLetter="2"
+ latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:keyHintLetter="3"
+ latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintLetter="4"
+ latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintLetter="5"
+ latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:keyHintLetter="6"
+ latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:keyHintLetter="7"
+ latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintLetter="8"
+ latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintLetter="9"
+ latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintLetter="0"
+ latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
diff --git a/java/res/xml/kbd_qwerty_row4.xml b/java/res/xml/kbd_qwerty_row4.xml
index 095133929..ff2ef3acd 100644
--- a/java/res/xml/kbd_qwerty_row4.xml
+++ b/java/res/xml/kbd_qwerty_row4.xml
@@ -47,7 +47,7 @@
>
<Key
latin:keyStyle="tabKeyStyle"
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_web_tab_punctuation"
latin:keyWidth="9.2%p"
latin:maxPopupKeyboardColumn="8" />
@@ -55,7 +55,7 @@
<default>
<Key
latin:keyLabel="."
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_punctuation"
latin:keyWidth="9.2%p"
latin:maxPopupKeyboardColumn="7"
@@ -80,14 +80,14 @@
>
<Key
latin:keyStyle="tabKeyStyle"
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_web_tab_punctuation"
latin:maxPopupKeyboardColumn="8" />
</case>
<default>
<Key
latin:keyLabel="."
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_punctuation"
latin:maxPopupKeyboardColumn="7"
latin:keyStyle="functionalKeyStyle" />
diff --git a/java/res/xml/kbd_rows_azerty.xml b/java/res/xml/kbd_rows_azerty.xml
index 9825c4a10..96efb6646 100644
--- a/java/res/xml/kbd_rows_azerty.xml
+++ b/java/res/xml/kbd_rows_azerty.xml
@@ -29,44 +29,44 @@
>
<Key
latin:keyLabel="a"
- latin:keyHintLetter="1"
+ latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_a"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="z"
- latin:keyHintLetter="2"
+ latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
- latin:keyHintLetter="3"
+ latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintLetter="4"
+ latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintLetter="5"
+ latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:keyHintLetter="6"
+ latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:keyHintLetter="7"
+ latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintLetter="8"
+ latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintLetter="9"
+ latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintLetter="0"
+ latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
diff --git a/java/res/xml/kbd_rows_qwertz.xml b/java/res/xml/kbd_rows_qwertz.xml
index 0d70b2637..347ef60ad 100644
--- a/java/res/xml/kbd_rows_qwertz.xml
+++ b/java/res/xml/kbd_rows_qwertz.xml
@@ -29,44 +29,44 @@
>
<Key
latin:keyLabel="q"
- latin:keyHintLetter="1"
+ latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_q"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
- latin:keyHintLetter="2"
+ latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:keyHintLetter="3"
+ latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintLetter="4"
+ latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintLetter="5"
+ latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
- latin:keyHintLetter="6"
+ latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
- latin:keyHintLetter="7"
+ latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintLetter="8"
+ latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintLetter="9"
+ latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintLetter="0"
+ latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
diff --git a/java/res/xml/kbd_rows_russian.xml b/java/res/xml/kbd_rows_russian.xml
index ff9fef409..2c10c3141 100644
--- a/java/res/xml/kbd_rows_russian.xml
+++ b/java/res/xml/kbd_rows_russian.xml
@@ -29,45 +29,45 @@
>
<Key
latin:keyLabel="й"
- latin:keyHintLetter="1"
+ latin:keyHintLabel="1"
latin:popupCharacters="1"
latin:keyWidth="8.75%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="ц"
- latin:keyHintLetter="2"
+ latin:keyHintLabel="2"
latin:popupCharacters="2" />
<Key
latin:keyLabel="у"
- latin:keyHintLetter="3"
+ latin:keyHintLabel="3"
latin:popupCharacters="3" />
<Key
latin:keyLabel="к"
- latin:keyHintLetter="4"
+ latin:keyHintLabel="4"
latin:popupCharacters="4" />
<Key
latin:keyLabel="е"
- latin:keyHintLetter="5"
+ latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н"
- latin:keyHintLetter="6"
+ latin:keyHintLabel="6"
latin:popupCharacters="6" />
<Key
latin:keyLabel="г"
- latin:keyHintLetter="7"
+ latin:keyHintLabel="7"
latin:popupCharacters="7" />
<Key
latin:keyLabel="ш"
- latin:keyHintLetter="8"
+ latin:keyHintLabel="8"
latin:popupCharacters="8" />
<Key
latin:keyLabel="щ"
- latin:keyHintLetter="9"
+ latin:keyHintLabel="9"
latin:popupCharacters="9" />
<Key
latin:keyLabel="з"
- latin:keyHintLetter="0"
+ latin:keyHintLabel="0"
latin:popupCharacters="0" />
<Key
latin:keyLabel="Ñ…"
diff --git a/java/res/xml/kbd_rows_scandinavian.xml b/java/res/xml/kbd_rows_scandinavian.xml
index 2d7dcde7a..3f2560128 100644
--- a/java/res/xml/kbd_rows_scandinavian.xml
+++ b/java/res/xml/kbd_rows_scandinavian.xml
@@ -29,45 +29,45 @@
>
<Key
latin:keyLabel="q"
- latin:keyHintLetter="1"
+ latin:keyHintLabel="1"
latin:popupCharacters="@string/alternates_for_q"
latin:keyWidth="8.75%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
- latin:keyHintLetter="2"
+ latin:keyHintLabel="2"
latin:popupCharacters="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:keyHintLetter="3"
+ latin:keyHintLabel="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintLetter="4"
+ latin:keyHintLabel="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintLetter="5"
+ latin:keyHintLabel="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:keyHintLetter="6"
+ latin:keyHintLabel="6"
latin:popupCharacters="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:keyHintLetter="7"
+ latin:keyHintLabel="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintLetter="8"
+ latin:keyHintLabel="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintLetter="9"
+ latin:keyHintLabel="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintLetter="0"
+ latin:keyHintLabel="0"
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyLabel="Ã¥"
diff --git a/java/res/xml/kbd_rows_serbian.xml b/java/res/xml/kbd_rows_serbian.xml
index 9f4b6a203..2bed276d3 100644
--- a/java/res/xml/kbd_rows_serbian.xml
+++ b/java/res/xml/kbd_rows_serbian.xml
@@ -29,44 +29,44 @@
>
<Key
latin:keyLabel="Ñ™"
- latin:keyHintLetter="1"
+ latin:keyHintLabel="1"
latin:popupCharacters="1"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="Ñš"
- latin:keyHintLetter="2"
+ latin:keyHintLabel="2"
latin:popupCharacters="2" />
<Key
latin:keyLabel="е"
- latin:keyHintLetter="3"
+ latin:keyHintLabel="3"
latin:popupCharacters="3" />
<Key
latin:keyLabel="Ñ€"
- latin:keyHintLetter="4"
+ latin:keyHintLabel="4"
latin:popupCharacters="4" />
<Key
latin:keyLabel="Ñ‚"
- latin:keyHintLetter="5"
+ latin:keyHintLabel="5"
latin:popupCharacters="5" />
<Key
latin:keyLabel="з"
- latin:keyHintLetter="6"
+ latin:keyHintLabel="6"
latin:popupCharacters="6" />
<Key
latin:keyLabel="у"
- latin:keyHintLetter="7"
+ latin:keyHintLabel="7"
latin:popupCharacters="7" />
<Key
latin:keyLabel="и"
- latin:keyHintLetter="8"
+ latin:keyHintLabel="8"
latin:popupCharacters="8" />
<Key
latin:keyLabel="о"
- latin:keyHintLetter="9"
+ latin:keyHintLabel="9"
latin:popupCharacters="9" />
<Key
latin:keyLabel="п"
- latin:keyHintLetter="0"
+ latin:keyHintLabel="0"
latin:popupCharacters="0" />
<Key
latin:keyLabel="ш"
diff --git a/java/res/xml/kbd_symbols_row4.xml b/java/res/xml/kbd_symbols_row4.xml
index 9323d4fd1..68b79e84d 100644
--- a/java/res/xml/kbd_symbols_row4.xml
+++ b/java/res/xml/kbd_symbols_row4.xml
@@ -43,7 +43,7 @@
latin:keyWidth="35.83%p" />
<Key
latin:keyLabel="."
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_punctuation"
latin:keyWidth="9.2%p"
latin:maxPopupKeyboardColumn="7"
@@ -62,7 +62,7 @@
latin:keyWidth="50%p" />
<Key
latin:keyLabel="."
- latin:keyLabelOption="popupHint"
+ latin:keyLabelOption="hasPopupHint"
latin:popupCharacters="@string/alternates_for_punctuation"
latin:maxPopupKeyboardColumn="7"
latin:keyStyle="functionalKeyStyle" />
diff --git a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
index 154f4af91..a31911d60 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
@@ -134,7 +134,7 @@ public class KeyCodeDescriptionMapper {
return context.getString(mKeyLabelMap.get(label));
} else if (label.length() == 1
|| (keyboard.isManualTemporaryUpperCase() && !TextUtils
- .isEmpty(key.mHintLetter))) {
+ .isEmpty(key.mHintLabel))) {
return getDescriptionForKeyCode(context, keyboard, key);
} else {
return label;
@@ -181,8 +181,8 @@ public class KeyCodeDescriptionMapper {
* @return the key code for the specified key
*/
private int getCorrectKeyCode(Keyboard keyboard, Key key) {
- if (keyboard.isManualTemporaryUpperCase() && !TextUtils.isEmpty(key.mHintLetter)) {
- return key.mHintLetter.charAt(0);
+ if (keyboard.isManualTemporaryUpperCase() && !TextUtils.isEmpty(key.mHintLabel)) {
+ return key.mHintLabel.charAt(0);
} else {
return key.mCode;
}
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 2850c95df..872fbf823 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -19,17 +19,18 @@ package com.android.inputmethod.keyboard;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
+import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.Xml;
import com.android.inputmethod.keyboard.internal.KeyStyles;
+import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle;
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
import com.android.inputmethod.keyboard.internal.KeyboardParser;
+import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException;
import com.android.inputmethod.keyboard.internal.PopupCharactersParser;
import com.android.inputmethod.keyboard.internal.Row;
-import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle;
-import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException;
import com.android.inputmethod.latin.R;
import java.util.ArrayList;
@@ -45,18 +46,22 @@ public class Key {
/** Label to display */
public final CharSequence mLabel;
- /** Hint letter to display on the key in conjunction with the label */
- public final CharSequence mHintLetter;
+ /** Hint label to display on the key in conjunction with the label */
+ public final CharSequence mHintLabel;
/** Option of the label */
public final int mLabelOption;
public static final int LABEL_OPTION_ALIGN_LEFT = 0x01;
public static final int LABEL_OPTION_ALIGN_RIGHT = 0x02;
- public static final int LABEL_OPTION_ALIGN_BOTTOM = 0x08;
- public static final int LABEL_OPTION_FONT_NORMAL = 0x10;
- public static final int LABEL_OPTION_FONT_FIXED_WIDTH = 0x20;
- public static final int LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO = 0x40;
- private static final int LABEL_OPTION_POPUP_HINT = 0x80;
- private static final int LABEL_OPTION_HAS_UPPERCASE_LETTER = 0x100;
+ public static final int LABEL_OPTION_ALIGN_BOTTOM = 0x04;
+ public static final int LABEL_OPTION_ALIGN_LEFT_OF_CENTER = 0x08;
+ private static final int LABEL_OPTION_LARGE_LETTER = 0x10;
+ private static final int LABEL_OPTION_FONT_NORMAL = 0x20;
+ private static final int LABEL_OPTION_FONT_MONO_SPACE = 0x40;
+ private static final int LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO = 0x80;
+ private static final int LABEL_OPTION_FOLLOW_KEY_HINT_LABEL_RATIO = 0x100;
+ private static final int LABEL_OPTION_HAS_POPUP_HINT = 0x200;
+ private static final int LABEL_OPTION_HAS_UPPERCASE_LETTER = 0x400;
+ private static final int LABEL_OPTION_HAS_HINT_LABEL = 0x800;
/** Icon to display instead of a label. Icon takes precedence over a label */
private Drawable mIcon;
@@ -160,7 +165,7 @@ public class Key {
mVisualInsetsLeft = mVisualInsetsRight = 0;
mWidth = width - mGap;
mEdgeFlags = edgeFlags;
- mHintLetter = null;
+ mHintLabel = null;
mLabelOption = 0;
mFunctional = false;
mSticky = false;
@@ -282,7 +287,7 @@ public class Key {
keyAttr, R.styleable.Keyboard_Key_keyIcon,
KeyboardIconsSet.ICON_UNDEFINED));
Keyboard.setDefaultBounds(mIcon);
- mHintLetter = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter);
+ mHintLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
mLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
mLabelOption = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption, 0);
@@ -309,14 +314,43 @@ public class Key {
}
}
+ public Typeface selectTypeface(Typeface defaultTypeface) {
+ // TODO: Handle "bold" here too?
+ if ((mLabelOption & LABEL_OPTION_FONT_NORMAL) != 0) {
+ return Typeface.DEFAULT;
+ } else if ((mLabelOption & LABEL_OPTION_FONT_MONO_SPACE) != 0) {
+ return Typeface.MONOSPACE;
+ } else {
+ return defaultTypeface;
+ }
+ }
+
+ public int selectTextSize(int letter, int largeLetter, int label, int hintLabel) {
+ if (mLabel.length() > 1
+ && (mLabelOption & (LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO
+ | LABEL_OPTION_FOLLOW_KEY_HINT_LABEL_RATIO)) == 0) {
+ return label;
+ } else if ((mLabelOption & LABEL_OPTION_FOLLOW_KEY_HINT_LABEL_RATIO) != 0) {
+ return hintLabel;
+ } else if ((mLabelOption & LABEL_OPTION_LARGE_LETTER) != 0) {
+ return largeLetter;
+ } else {
+ return letter;
+ }
+ }
+
public boolean hasPopupHint() {
- return (mLabelOption & LABEL_OPTION_POPUP_HINT) != 0;
+ return (mLabelOption & LABEL_OPTION_HAS_POPUP_HINT) != 0;
}
public boolean hasUppercaseLetter() {
return (mLabelOption & LABEL_OPTION_HAS_UPPERCASE_LETTER) != 0;
}
+ public boolean hasHintLabel() {
+ return (mLabelOption & LABEL_OPTION_HAS_HINT_LABEL) != 0;
+ }
+
private static boolean isDigitPopupCharacter(CharSequence label) {
return label != null && label.length() == 1 && Character.isDigit(label.charAt(0));
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 6a60a9ddf..da738b24c 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -66,16 +66,20 @@ import java.util.WeakHashMap;
* @attr ref R.styleable#KeyboardView_keyBackground
* @attr ref R.styleable#KeyboardView_keyHysteresisDistance
* @attr ref R.styleable#KeyboardView_keyLetterRatio
+ * @attr ref R.styleable#KeyboardView_keyLargeLetterRatio
* @attr ref R.styleable#KeyboardView_keyLabelRatio
* @attr ref R.styleable#KeyboardView_keyHintLetterRatio
* @attr ref R.styleable#KeyboardView_keyUppercaseLetterRatio
+ * @attr ref R.styleable#KeyboardView_keyHintLabelRatio
* @attr ref R.styleable#KeyboardView_keyTextStyle
* @attr ref R.styleable#KeyboardView_keyPreviewLayout
+ * @attr ref R.styleable#KeyboardView_keyPreviewTextRatio
* @attr ref R.styleable#KeyboardView_keyPreviewOffset
* @attr ref R.styleable#KeyboardView_keyPreviewHeight
* @attr ref R.styleable#KeyboardView_keyTextColor
* @attr ref R.styleable#KeyboardView_keyTextColorDisabled
* @attr ref R.styleable#KeyboardView_keyHintLetterColor
+ * @attr ref R.styleable#KeyboardView_keyHintLabelColor
* @attr ref R.styleable#KeyboardView_keyUppercaseLetterInactivatedColor
* @attr ref R.styleable#KeyboardView_keyUppercaseLetterActivatedColor
* @attr ref R.styleable#KeyboardView_verticalCorrection
@@ -96,42 +100,51 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
// Miscellaneous constants
private static final int[] LONG_PRESSABLE_STATE_SET = { android.R.attr.state_long_pressable };
- private static final int HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL = -1;
// XML attribute
- private final float mKeyLetterRatio;
private final int mKeyTextColor;
private final int mKeyTextInactivatedColor;
private final Typeface mKeyTextStyle;
+ private final float mKeyLetterRatio;
+ private final float mKeyLargeLetterRatio;
private final float mKeyLabelRatio;
private final float mKeyHintLetterRatio;
private final float mKeyUppercaseLetterRatio;
+ private final float mKeyHintLabelRatio;
private final int mShadowColor;
private final float mShadowRadius;
private final Drawable mKeyBackground;
private final float mBackgroundDimAmount;
private final float mKeyHysteresisDistance;
private final float mVerticalCorrection;
+ private final Drawable mPreviewBackground;
+ private final Drawable mPreviewLeftBackground;
+ private final Drawable mPreviewRightBackground;
+ private final Drawable mPreviewSpacebarBackground;
+ private final int mPreviewTextColor;
+ private final float mPreviewTextRatio;
private final int mPreviewOffset;
private final int mPreviewHeight;
private final int mPopupLayout;
- private final Drawable mKeyPopupHintIcon;
private final int mKeyHintLetterColor;
+ private final int mKeyHintLabelColor;
private final int mKeyUppercaseLetterInactivatedColor;
private final int mKeyUppercaseLetterActivatedColor;
+ // HORIZONTAL ELLIPSIS "...", character for popup hint.
+ private static final String POPUP_HINT_CHAR = "\u2026";
+
// Main keyboard
private Keyboard mKeyboard;
private int mKeyLetterSize;
+ private int mKeyLargeLetterSize;
private int mKeyLabelSize;
private int mKeyHintLetterSize;
private int mKeyUppercaseLetterSize;
+ private int mKeyHintLabelSize;
// Key preview
- private boolean mInForeground;
- private TextView mPreviewText;
- private Drawable mPreviewBackground;
- private float mPreviewTextRatio;
+ private final TextView mPreviewText;
private int mPreviewTextSize;
private boolean mShowKeyPreviewPopup = true;
private final int mDelayBeforePreview;
@@ -182,7 +195,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
private Canvas mCanvas;
private final Paint mPaint = new Paint();
private final Rect mPadding = new Rect();
- private final Rect mTextBounds = new Rect();
// This map caches key label text height in pixel as value and key label text size as map key.
private final HashMap<Integer, Integer> mTextHeightCache = new HashMap<Integer, Integer>();
// This map caches key label text width in pixel as value and key label text size as map key.
@@ -193,6 +205,9 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
private static final String KEY_LABEL_REFERENCE_CHAR = "M";
private final int mKeyLabelHorizontalPadding;
+ private static final int MEASURESPEC_UNSPECIFIED = MeasureSpec.makeMeasureSpec(
+ 0, MeasureSpec.UNSPECIFIED);
+
private final UIHandler mHandler = new UIHandler(this);
public static class UIHandler extends StaticInnerHandlerWrapper<KeyboardView> {
@@ -334,19 +349,35 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
R.styleable.KeyboardView_keyHysteresisDistance, 0);
mVerticalCorrection = a.getDimensionPixelOffset(
R.styleable.KeyboardView_verticalCorrection, 0);
+ mPreviewTextColor = a.getColor(R.styleable.KeyboardView_keyPreviewTextColor, 0);
final int previewLayout = a.getResourceId(R.styleable.KeyboardView_keyPreviewLayout, 0);
+ if (previewLayout != 0) {
+ mPreviewText = (TextView) LayoutInflater.from(context).inflate(previewLayout, null);
+ mPreviewText.setTextColor(mPreviewTextColor);
+ } else {
+ mPreviewText = null;
+ mShowKeyPreviewPopup = false;
+ }
+ mPreviewBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewBackground);
+ mPreviewLeftBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewLeftBackground);
+ mPreviewRightBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewRightBackground);
+ mPreviewSpacebarBackground = a.getDrawable(
+ R.styleable.KeyboardView_keyPreviewSpacebarBackground);
mPreviewOffset = a.getDimensionPixelOffset(R.styleable.KeyboardView_keyPreviewOffset, 0);
mPreviewHeight = a.getDimensionPixelSize(R.styleable.KeyboardView_keyPreviewHeight, 80);
mKeyLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLetterRatio);
+ mKeyLargeLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLargeLetterRatio);
mKeyLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLabelRatio);
mKeyHintLetterRatio = getRatio(a, R.styleable.KeyboardView_keyHintLetterRatio);
mKeyUppercaseLetterRatio = getRatio(a,
R.styleable.KeyboardView_keyUppercaseLetterRatio);
+ mKeyHintLabelRatio = getRatio(a, R.styleable.KeyboardView_keyHintLabelRatio);
+ mPreviewTextRatio = getRatio(a, R.styleable.KeyboardView_keyPreviewTextRatio);
mKeyTextColor = a.getColor(R.styleable.KeyboardView_keyTextColor, 0xFF000000);
mKeyTextInactivatedColor = a.getColor(
R.styleable.KeyboardView_keyTextInactivatedColor, 0xFF000000);
- mKeyPopupHintIcon = a.getDrawable(R.styleable.KeyboardView_keyPopupHintIcon);
mKeyHintLetterColor = a.getColor(R.styleable.KeyboardView_keyHintLetterColor, 0);
+ mKeyHintLabelColor = a.getColor(R.styleable.KeyboardView_keyHintLabelColor, 0);
mKeyUppercaseLetterInactivatedColor = a.getColor(
R.styleable.KeyboardView_keyUppercaseLetterInactivatedColor, 0);
mKeyUppercaseLetterActivatedColor = a.getColor(
@@ -362,13 +393,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
final Resources res = getResources();
- if (previewLayout != 0) {
- mPreviewText = (TextView) LayoutInflater.from(context).inflate(previewLayout, null);
- mPreviewBackground = mPreviewText.getBackground();
- mPreviewTextRatio = getRatio(res, R.fraction.key_preview_text_ratio);
- } else {
- mShowKeyPreviewPopup = false;
- }
mDelayBeforePreview = res.getInteger(R.integer.config_delay_before_preview);
mDelayAfterPreview = res.getInteger(R.integer.config_delay_after_preview);
mKeyLabelHorizontalPadding = (int)res.getDimension(
@@ -462,11 +486,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
return a.getFraction(index, 1000, 1000, 1) / 1000.0f;
}
- // Read fraction value in resource as float.
- private static float getRatio(Resources res, int id) {
- return res.getFraction(id, 1000, 1000) / 1000.0f;
- }
-
public void startIgnoringDoubleTap() {
if (ENABLE_CAPSLOCK_BY_DOUBLETAP)
mHandler.startIgnoringDoubleTap();
@@ -521,10 +540,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
mPopupPanelCache.clear();
final int keyHeight = keyboard.getRowHeight() - keyboard.getVerticalGap();
mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio);
+ mKeyLargeLetterSize = (int)(keyHeight * mKeyLargeLetterRatio);
mKeyLabelSize = (int)(keyHeight * mKeyLabelRatio);
mKeyHintLetterSize = (int)(keyHeight * mKeyHintLetterRatio);
mKeyUppercaseLetterSize = (int)(
keyHeight * mKeyUppercaseLetterRatio);
+ mKeyHintLabelSize = (int)(keyHeight * mKeyHintLabelRatio);
mPreviewTextSize = (int)(keyHeight * mPreviewTextRatio);
}
@@ -587,7 +608,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
protected CharSequence adjustCase(CharSequence label) {
if (mKeyboard.isShiftedOrShiftLocked() && label != null && label.length() < 3
&& Character.isLowerCase(label.charAt(0))) {
- return label.toString().toUpperCase();
+ return label.toString().toUpperCase(mKeyboard.mId.mLocale);
}
return label;
}
@@ -689,6 +710,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
final int kbdPaddingTop = getPaddingTop();
final int keyDrawX = key.mX + key.mVisualInsetsLeft;
final int keyDrawWidth = key.mWidth - key.mVisualInsetsLeft - key.mVisualInsetsRight;
+ final int centerX = (keyDrawWidth + padding.left - padding.right) / 2;
+ final float centerY = (key.mHeight + padding.top - padding.bottom) / 2;
final int rowHeight = padding.top + key.mHeight;
final boolean isManualTemporaryUpperCase = mKeyboard.isManualTemporaryUpperCase();
@@ -704,47 +727,48 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
keyBackground.draw(canvas);
// Draw key label.
+ int positionX = centerX;
if (key.mLabel != null) {
// Switch the character to uppercase if shift is pressed
- final String label = key.mLabel == null ? null : adjustCase(key.mLabel).toString();
- // For characters, use large font. For labels like "Done", use small font.
- final int labelSize = getLabelSizeAndSetPaint(label, key.mLabelOption, paint);
- final int labelCharHeight = getLabelCharHeight(labelSize, paint);
+ final CharSequence label = key.mLabel == null ? null : adjustCase(key.mLabel);
+ // For characters, use large font. For labels like "Done", use smaller font.
+ paint.setTypeface(key.selectTypeface(mKeyTextStyle));
+ final int labelSize = key.selectTextSize(mKeyLetterSize, mKeyLargeLetterSize,
+ mKeyLabelSize, mKeyHintLabelSize);
+ paint.setTextSize(labelSize);
+ final int labelCharHeight = getLabelCharHeight(paint);
+ final int labelCharWidth = getLabelCharWidth(paint);
// Vertical label text alignment.
final float baseline;
+ // TODO: Generalize the following calculations.
if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_BOTTOM) != 0) {
baseline = key.mHeight - labelCharHeight * KEY_LABEL_VERTICAL_PADDING_FACTOR;
- if (DEBUG_SHOW_ALIGN)
- drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000,
- new Paint());
} else { // Align center
- final float centerY = (key.mHeight + padding.top - padding.bottom) / 2;
baseline = centerY + labelCharHeight * KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER;
- if (DEBUG_SHOW_ALIGN)
- drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000,
- new Paint());
}
+
// Horizontal label text alignment
- final int positionX;
if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) {
- positionX = mKeyLabelHorizontalPadding + padding.left;
+ positionX = padding.left + mKeyLabelHorizontalPadding;
paint.setTextAlign(Align.LEFT);
- if (DEBUG_SHOW_ALIGN)
- drawVerticalLine(canvas, positionX, rowHeight, 0xc0800080, new Paint());
} else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) {
positionX = keyDrawWidth - mKeyLabelHorizontalPadding - padding.right;
paint.setTextAlign(Align.RIGHT);
- if (DEBUG_SHOW_ALIGN)
- drawVerticalLine(canvas, positionX, rowHeight, 0xc0808000, new Paint());
+ } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT_OF_CENTER) != 0) {
+ // TODO: Parameterise this?
+ positionX = centerX - labelCharWidth * 7 / 4;
+ paint.setTextAlign(Align.LEFT);
} else {
- positionX = (keyDrawWidth + padding.left - padding.right) / 2;
+ positionX = centerX;
paint.setTextAlign(Align.CENTER);
- if (DEBUG_SHOW_ALIGN) {
- if (label.length() > 1)
- drawVerticalLine(canvas, positionX, rowHeight, 0xc0008080, new Paint());
- }
}
+ if (DEBUG_SHOW_ALIGN) {
+ final Paint line = new Paint();
+ drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000, line);
+ drawVerticalLine(canvas, positionX, rowHeight, 0xc0800080, line);
+ }
+
if (key.hasUppercaseLetter() && isManualTemporaryUpperCase) {
paint.setColor(mKeyTextInactivatedColor);
} else {
@@ -757,124 +781,128 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
// Make label invisible
paint.setColor(Color.TRANSPARENT);
}
- canvas.drawText(label, positionX, baseline, paint);
+ canvas.drawText(label, 0, label.length(), positionX, baseline, paint);
// Turn off drop shadow
paint.setShadowLayer(0, 0, 0, 0);
+
}
- // Draw hint letter.
- if (key.mHintLetter != null) {
- final String label = key.mHintLetter.toString();
- final int textColor;
- final int textSize;
+ // Draw hint label.
+ if (key.mHintLabel != null) {
+ final CharSequence hint = key.mHintLabel;
+ final int hintColor;
+ final int hintSize;
if (key.hasUppercaseLetter()) {
- textColor = isManualTemporaryUpperCase ? mKeyUppercaseLetterActivatedColor
+ hintColor = isManualTemporaryUpperCase ? mKeyUppercaseLetterActivatedColor
: mKeyUppercaseLetterInactivatedColor;
- textSize = mKeyUppercaseLetterSize;
+ hintSize = mKeyUppercaseLetterSize;
+ } else if (key.hasHintLabel()) {
+ hintColor = mKeyHintLabelColor;
+ hintSize = mKeyHintLabelSize;
+ paint.setTypeface(Typeface.DEFAULT);
} else {
- textColor = mKeyHintLetterColor;
- textSize = mKeyHintLetterSize;
+ hintColor = mKeyHintLetterColor;
+ hintSize = mKeyHintLetterSize;
}
- paint.setColor(textColor);
- paint.setTextSize(textSize);
+ paint.setColor(hintColor);
+ paint.setTextSize(hintSize);
// Note: padding.right for drawX?
- final float drawX = keyDrawWidth - getLabelCharWidth(textSize, paint);
- final float drawY = -paint.ascent() + padding.top;
- canvas.drawText(label, drawX, drawY, paint);
+ final float hintX, hintY;
+ if (key.hasHintLabel()) {
+ // TODO: Generalize the following calculations.
+ hintX = positionX + getLabelCharWidth(paint) * 2;
+ hintY = centerY + getLabelCharHeight(paint) / 2;
+ } else {
+ hintX = keyDrawWidth - getLabelCharWidth(paint);
+ hintY = -paint.ascent() + padding.top;
+ }
+ canvas.drawText(hint, 0, hint.length(), hintX, hintY, paint);
}
// Draw key icon.
final Drawable icon = key.getIcon();
if (key.mLabel == null && icon != null) {
- final int drawableWidth = icon.getIntrinsicWidth();
- final int drawableHeight = icon.getIntrinsicHeight();
- final int drawableX;
- final int drawableY = (key.mHeight + padding.top - padding.bottom - drawableHeight) / 2;
+ final int iconWidth = icon.getIntrinsicWidth();
+ final int iconHeight = icon.getIntrinsicHeight();
+ final int iconX, alignX;
+ final int iconY = (key.mHeight + padding.top - padding.bottom - iconHeight) / 2;
if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) {
- drawableX = padding.left + mKeyLabelHorizontalPadding;
- if (DEBUG_SHOW_ALIGN)
- drawVerticalLine(canvas, drawableX, rowHeight, 0xc0800080, new Paint());
+ iconX = padding.left + mKeyLabelHorizontalPadding;
+ alignX = iconX;
} else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) {
- drawableX = keyDrawWidth - padding.right - mKeyLabelHorizontalPadding
- - drawableWidth;
- if (DEBUG_SHOW_ALIGN)
- drawVerticalLine(canvas, drawableX + drawableWidth, rowHeight,
- 0xc0808000, new Paint());
+ iconX = keyDrawWidth - padding.right - mKeyLabelHorizontalPadding - iconWidth;
+ alignX = iconX + iconWidth;
} else { // Align center
- drawableX = (keyDrawWidth + padding.left - padding.right - drawableWidth) / 2;
- if (DEBUG_SHOW_ALIGN)
- drawVerticalLine(canvas, drawableX + drawableWidth / 2, rowHeight,
- 0xc0008080, new Paint());
+ iconX = (keyDrawWidth + padding.left - padding.right - iconWidth) / 2;
+ alignX = iconX + iconWidth / 2;
+ }
+ drawIcon(canvas, icon, iconX, iconY, iconWidth, iconHeight);
+ if (DEBUG_SHOW_ALIGN) {
+ final Paint line = new Paint();
+ drawVerticalLine(canvas, alignX, rowHeight, 0xc0800080, line);
+ drawRectangle(canvas, iconX, iconY, iconWidth, iconHeight, 0x80c00000, line);
}
- drawIcon(canvas, icon, drawableX, drawableY, drawableWidth, drawableHeight);
- if (DEBUG_SHOW_ALIGN)
- drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight,
- 0x80c00000, new Paint());
}
- // Draw popup hint icon "...".
- // TODO: Draw "..." by text.
+ // Draw popup hint "..." at the bottom right corner of the key.
if (key.hasPopupHint()) {
- final int drawableWidth = keyDrawWidth;
- final int drawableHeight = key.mHeight;
- final int drawableX = 0;
- final int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL;
- final Drawable hintIcon = mKeyPopupHintIcon;
- drawIcon(canvas, hintIcon, drawableX, drawableY, drawableWidth, drawableHeight);
- if (DEBUG_SHOW_ALIGN)
- drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight,
- 0x80c0c000, new Paint());
+ paint.setTextSize(mKeyHintLetterSize);
+ paint.setColor(mKeyHintLabelColor);
+ final int hintX = keyDrawWidth - getLabelCharWidth(paint);
+ // Using y-coordinate "key.mHeight - paint.descent()" draws "..." just on the bottom
+ // edge of the key. So we use slightly higher position by multiply descent length by 2.
+ final int hintY = key.mHeight - (int)paint.descent() * 2;
+ canvas.drawText(POPUP_HINT_CHAR, hintX, hintY, paint);
}
canvas.translate(-keyDrawX - kbdPaddingLeft, -key.mY - kbdPaddingTop);
}
- public int getLabelSizeAndSetPaint(CharSequence label, int keyLabelOption, Paint paint) {
+ // This method is currently being used only by MiniKeyboardBuilder
+ public int getDefaultLabelSizeAndSetPaint(Paint paint) {
// For characters, use large font. For labels like "Done", use small font.
- final int labelSize;
- final Typeface labelStyle;
- if ((keyLabelOption & Key.LABEL_OPTION_FONT_NORMAL) != 0) {
- labelStyle = Typeface.DEFAULT;
- } else if ((keyLabelOption & Key.LABEL_OPTION_FONT_FIXED_WIDTH) != 0) {
- labelStyle = Typeface.MONOSPACE;
- } else {
- labelStyle = mKeyTextStyle;
- }
- if (label.length() > 1) {
- labelSize = (keyLabelOption & Key.LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO) != 0
- ? mKeyLetterSize : mKeyLabelSize;
- } else {
- labelSize = mKeyLetterSize;
- }
+ final int labelSize = mKeyLabelSize;
paint.setTextSize(labelSize);
- paint.setTypeface(labelStyle);
+ paint.setTypeface(mKeyTextStyle);
return labelSize;
}
- private int getLabelCharHeight(int labelSize, Paint paint) {
- Integer labelHeightValue = mTextHeightCache.get(labelSize);
- final int labelCharHeight;
- if (labelHeightValue != null) {
- labelCharHeight = labelHeightValue;
- } else {
- paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds);
- labelCharHeight = mTextBounds.height();
- mTextHeightCache.put(labelSize, labelCharHeight);
- }
- return labelCharHeight;
+ private final Rect mTextBounds = new Rect();
+
+ private int getLabelCharHeight(Paint paint) {
+ final int labelSize = (int)paint.getTextSize();
+ final Integer cachedValue = mTextHeightCache.get(labelSize);
+ if (cachedValue != null)
+ return cachedValue;
+
+ paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds);
+ final int height = mTextBounds.height();
+ mTextHeightCache.put(labelSize, height);
+ return height;
}
- private int getLabelCharWidth(int labelSize, Paint paint) {
- Integer labelWidthValue = mTextWidthCache.get(labelSize);
- final int labelCharWidth;
- if (labelWidthValue != null) {
- labelCharWidth = labelWidthValue;
+ private int getLabelCharWidth(Paint paint) {
+ final int labelSize = (int)paint.getTextSize();
+ final Typeface face = paint.getTypeface();
+ final Integer key;
+ if (face == Typeface.DEFAULT) {
+ key = labelSize;
+ } else if (face == Typeface.DEFAULT_BOLD) {
+ key = labelSize + 1000;
+ } else if (face == Typeface.MONOSPACE) {
+ key = labelSize + 2000;
} else {
- paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds);
- labelCharWidth = mTextBounds.width();
- mTextWidthCache.put(labelSize, labelCharWidth);
+ key = labelSize;
}
- return labelCharWidth;
+
+ final Integer cached = mTextWidthCache.get(key);
+ if (cached != null)
+ return cached;
+
+ paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds);
+ final int width = mTextBounds.width();
+ mTextWidthCache.put(key, width);
+ return width;
}
private static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width,
@@ -909,10 +937,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
canvas.translate(-x, -y);
}
- public void setForeground(boolean foreground) {
- mInForeground = foreground;
- }
-
// TODO: clean up this method.
private void dismissAllKeyPreviews() {
for (PointerTracker tracker : mPointerTrackers) {
@@ -921,6 +945,10 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
}
}
+ public void cancelAllMessage() {
+ mHandler.cancelAllMessages();
+ }
+
@Override
public void showKeyPreview(int keyIndex, PointerTracker tracker) {
if (mShowKeyPreviewPopup) {
@@ -965,7 +993,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
// If keyIndex is invalid or IME is already closed, we must not show key preview.
// Trying to show key preview while root window is closed causes
// WindowManager.BadTokenException.
- if (key == null || !mInForeground)
+ if (key == null)
return;
mHandler.cancelAllDismissKeyPreviews();
@@ -991,25 +1019,29 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
previewText.setText(null);
}
if (key.mCode == Keyboard.CODE_SPACE) {
- previewText.setBackgroundColor(Color.TRANSPARENT);
+ previewText.setBackgroundDrawable(mPreviewSpacebarBackground);
} else {
previewText.setBackgroundDrawable(mPreviewBackground);
}
- // Set the preview background state
- previewText.getBackground().setState(
- key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
- previewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ previewText.measure(MEASURESPEC_UNSPECIFIED, MEASURESPEC_UNSPECIFIED);
final int previewWidth = Math.max(previewText.getMeasuredWidth(), keyDrawWidth
+ previewText.getPaddingLeft() + previewText.getPaddingRight());
final int previewHeight = mPreviewHeight;
getLocationInWindow(mCoordinates);
- final int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0];
+ int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0];
final int previewY = key.mY - previewHeight + mCoordinates[1] + mPreviewOffset;
+ if (previewX < 0 && mPreviewLeftBackground != null) {
+ previewText.setBackgroundDrawable(mPreviewLeftBackground);
+ previewX = 0;
+ } else if (previewX + previewWidth > getWidth() && mPreviewRightBackground != null) {
+ previewText.setBackgroundDrawable(mPreviewRightBackground);
+ previewX = getWidth() - previewWidth;
+ }
- // Place the key preview.
- // TODO: Adjust position of key previews which touch screen edges
+ // Set the preview background state
+ previewText.getBackground().setState(
+ key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
FrameLayoutCompatUtils.placeViewAt(
previewText, previewX, previewY, previewWidth, previewHeight);
previewText.setVisibility(VISIBLE);
@@ -1126,7 +1158,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
miniKeyboardView.setKeyboard(keyboard);
container.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ MEASURESPEC_UNSPECIFIED);
return miniKeyboardView;
}
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
index 00bf348f2..9d58f69ff 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
@@ -23,9 +23,6 @@ import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
-import android.graphics.ColorFilter;
-import android.graphics.ColorMatrix;
-import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.PorterDuff;
@@ -61,8 +58,6 @@ public class LatinKeyboard extends Keyboard {
private final int mSpaceKeyIndex;
private final boolean mAutoCorrectionSpacebarLedEnabled;
private final Drawable mAutoCorrectionSpacebarLedIcon;
- private final Drawable mSpacebarArrowLeftIcon;
- private final Drawable mSpacebarArrowRightIcon;
private final int mSpacebarTextColor;
private final int mSpacebarTextShadowColor;
private float mSpacebarTextFadeFactor = 0.0f;
@@ -77,6 +72,11 @@ public class LatinKeyboard extends Keyboard {
private final Drawable mEnabledShortcutIcon;
private final Drawable mDisabledShortcutIcon;
+ // BLACK LEFT-POINTING TRIANGLE and two spaces.
+ public static final String ARROW_LEFT = "\u25C0 ";
+ // Two spaces and BLACK RIGHT-POINTING TRIANGLE.
+ public static final String ARROW_RIGHT = " \u25B6";
+
// Minimum width of spacebar dragging to trigger the language switch (represented by the number
// of the most common key width of this keyboard).
private static final int SPACEBAR_DRAG_WIDTH = 3;
@@ -131,10 +131,6 @@ public class LatinKeyboard extends Keyboard {
mSpacebarTextColor = a.getColor(R.styleable.LatinKeyboard_spacebarTextColor, 0);
mSpacebarTextShadowColor = a.getColor(
R.styleable.LatinKeyboard_spacebarTextShadowColor, 0);
- mSpacebarArrowLeftIcon = a.getDrawable(
- R.styleable.LatinKeyboard_spacebarArrowLeftIcon);
- mSpacebarArrowRightIcon = a.getDrawable(
- R.styleable.LatinKeyboard_spacebarArrowRightIcon);
a.recycle();
// The threshold is "key width" x 1.25
@@ -165,12 +161,6 @@ public class LatinKeyboard extends Keyboard {
return newColor;
}
- private static ColorFilter getSpacebarDrawableFilter(float fadeFactor) {
- final ColorMatrix colorMatrix = new ColorMatrix();
- colorMatrix.setScale(1, 1, 1, fadeFactor);
- return new ColorMatrixColorFilter(colorMatrix);
- }
-
public void updateShortcutKey(boolean available, LatinKeyboardView view) {
if (mShortcutKey == null)
return;
@@ -214,52 +204,40 @@ public class LatinKeyboard extends Keyboard {
}
// Layout local language name and left and right arrow on spacebar.
- private static String layoutSpacebar(Paint paint, Locale locale, Drawable icon, Drawable lArrow,
- Drawable rArrow, int width, int height, float origTextSize) {
- final float arrowWidth = lArrow.getIntrinsicWidth();
- final float arrowHeight = lArrow.getIntrinsicHeight();
- final float maxTextWidth = width - (arrowWidth + arrowWidth);
+ private static String layoutSpacebar(Paint paint, Locale locale, int width,
+ float origTextSize) {
final Rect bounds = new Rect();
// Estimate appropriate language name text size to fit in maxTextWidth.
- String language = SubtypeSwitcher.getFullDisplayName(locale, true);
+ String language = ARROW_LEFT + SubtypeSwitcher.getFullDisplayName(locale, true)
+ + ARROW_RIGHT;
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);
+ float textSize = origTextSize * Math.min(width / textWidth, 1.0f);
// allow variable text size
textWidth = getTextWidth(paint, language, textSize, bounds);
// If text size goes too small or text does not fit, use middle or short name
final boolean useMiddleName = (textSize / origTextSize < MINIMUM_SCALE_OF_LANGUAGE_NAME)
- || (textWidth > maxTextWidth);
+ || (textWidth > width);
final boolean useShortName;
if (useMiddleName) {
- language = SubtypeSwitcher.getMiddleDisplayLanguage(locale);
+ language = ARROW_LEFT + SubtypeSwitcher.getMiddleDisplayLanguage(locale) + ARROW_RIGHT;
textWidth = getTextWidth(paint, language, origTextSize, bounds);
- textSize = origTextSize * Math.min(maxTextWidth / textWidth, 1.0f);
+ textSize = origTextSize * Math.min(width / textWidth, 1.0f);
useShortName = (textSize / origTextSize < MINIMUM_SCALE_OF_LANGUAGE_NAME)
- || (textWidth > maxTextWidth);
+ || (textWidth > width);
} else {
useShortName = false;
}
if (useShortName) {
- language = SubtypeSwitcher.getShortDisplayLanguage(locale);
+ language = ARROW_LEFT + SubtypeSwitcher.getShortDisplayLanguage(locale) + ARROW_RIGHT;
textWidth = getTextWidth(paint, language, origTextSize, bounds);
- textSize = origTextSize * Math.min(maxTextWidth / textWidth, 1.0f);
+ textSize = origTextSize * Math.min(width / textWidth, 1.0f);
}
paint.setTextSize(textSize);
- // Place left and right arrow just before and after language text.
- final float textHeight = -paint.ascent() + paint.descent();
- final float baseline = (icon != null) ? height * SPACEBAR_LANGUAGE_BASELINE
- : height / 2 + textHeight / 2;
- 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;
}
@@ -304,9 +282,8 @@ public class LatinKeyboard extends Keyboard {
defaultTextSize = 14;
}
- final String language = layoutSpacebar(paint, inputLocale, mSpaceIcon,
- mSpacebarArrowLeftIcon, mSpacebarArrowRightIcon, width, height,
- getTextSizeFromTheme(mTheme, textStyle, defaultTextSize));
+ final String language = layoutSpacebar(paint, inputLocale, width, getTextSizeFromTheme(
+ mTheme, textStyle, defaultTextSize));
// Draw language text with shadow
// In case there is no space icon, we will place the language text at the center of
@@ -319,18 +296,6 @@ public class LatinKeyboard extends Keyboard {
canvas.drawText(language, width / 2, baseline - descent - 1, paint);
paint.setColor(getSpacebarTextColor(mSpacebarTextColor, textFadeFactor));
canvas.drawText(language, width / 2, baseline - descent, paint);
-
- // Put arrows that are already laid out on either side of the text
- // Because language switch is disabled on phone and number layouts, hide arrows.
- // TODO: Sort out how to enable language switch on these layouts.
- if (mSubtypeSwitcher.useSpacebarLanguageSwitcher()
- && mSubtypeSwitcher.getEnabledKeyboardLocaleCount() > 1
- && !(isPhoneKeyboard() || isNumberKeyboard())) {
- mSpacebarArrowLeftIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor));
- mSpacebarArrowRightIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor));
- mSpacebarArrowLeftIcon.draw(canvas);
- mSpacebarArrowRightIcon.draw(canvas);
- }
}
// Draw the spacebar icon at the bottom
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index c7620f946..8b03360bf 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -670,7 +670,7 @@ public class PointerTracker {
// If keyboard is in manual temporary upper case state and key has manual temporary
// uppercase letter as key hint letter, alternate character code should be sent.
if (mKeyboard.isManualTemporaryUpperCase() && key.hasUppercaseLetter()) {
- code = key.mHintLetter.charAt(0);
+ code = key.mHintLabel.charAt(0);
codes[0] = code;
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index 983f0649d..30d9692a8 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
@@ -165,7 +165,7 @@ public class KeyStyles {
readInt(keyAttr, R.styleable.Keyboard_Key_code);
readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
- readText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter);
+ readText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters);
readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
index 37b36825a..1530fed6f 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
@@ -40,25 +40,15 @@ public class KeyboardIconsSet {
private static final int ICON_RETURN_KEY = 8;
private static final int ICON_SEARCH_KEY = 9;
private static final int ICON_TAB_KEY = 10;
- private static final int ICON_NUM1_KEY = 11;
- private static final int ICON_NUM2_KEY = 12;
- private static final int ICON_NUM3_KEY = 13;
- private static final int ICON_NUM4_KEY = 14;
- private static final int ICON_NUM5_KEY = 15;
- private static final int ICON_NUM6_KEY = 16;
- private static final int ICON_NUM7_KEY = 17;
- private static final int ICON_NUM8_KEY = 18;
- private static final int ICON_NUM9_KEY = 19;
- private static final int ICON_NUM0_KEY = 20;
// This should be aligned with Keyboard.keyIconShifted enum.
- private static final int ICON_SHIFTED_SHIFT_KEY = 21;
+ private static final int ICON_SHIFTED_SHIFT_KEY = 11;
// This should be aligned with Keyboard.keyIconPreview enum.
- private static final int ICON_PREVIEW_SPACE_KEY = 22;
- private static final int ICON_PREVIEW_TAB_KEY = 23;
- private static final int ICON_PREVIEW_SETTINGS_KEY = 24;
- private static final int ICON_PREVIEW_SHORTCUT_KEY = 25;
+ private static final int ICON_PREVIEW_SPACE_KEY = 12;
+ private static final int ICON_PREVIEW_TAB_KEY = 13;
+ private static final int ICON_PREVIEW_SETTINGS_KEY = 14;
+ private static final int ICON_PREVIEW_SHORTCUT_KEY = 15;
- private static final int ICON_LAST = 25;
+ private static final int ICON_LAST = 15;
private final Drawable mIcons[] = new Drawable[ICON_LAST + 1];
@@ -84,26 +74,6 @@ public class KeyboardIconsSet {
return ICON_SEARCH_KEY;
case R.styleable.Keyboard_iconTabKey:
return ICON_TAB_KEY;
- case R.styleable.Keyboard_iconNum1Key:
- return ICON_NUM1_KEY;
- case R.styleable.Keyboard_iconNum2Key:
- return ICON_NUM2_KEY;
- case R.styleable.Keyboard_iconNum3Key:
- return ICON_NUM3_KEY;
- case R.styleable.Keyboard_iconNum4Key:
- return ICON_NUM4_KEY;
- case R.styleable.Keyboard_iconNum5Key:
- return ICON_NUM5_KEY;
- case R.styleable.Keyboard_iconNum6Key:
- return ICON_NUM6_KEY;
- case R.styleable.Keyboard_iconNum7Key:
- return ICON_NUM7_KEY;
- case R.styleable.Keyboard_iconNum8Key:
- return ICON_NUM8_KEY;
- case R.styleable.Keyboard_iconNum9Key:
- return ICON_NUM9_KEY;
- case R.styleable.Keyboard_iconNum0Key:
- return ICON_NUM0_KEY;
case R.styleable.Keyboard_iconShiftedShiftKey:
return ICON_SHIFTED_SHIFT_KEY;
case R.styleable.Keyboard_iconPreviewSpaceKey:
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
index 040c16ded..1e67eec70 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
@@ -221,7 +221,7 @@ public class MiniKeyboardBuilder {
paint = new Paint();
paint.setAntiAlias(true);
}
- final int labelSize = view.getLabelSizeAndSetPaint(label, 0, paint);
+ final int labelSize = view.getDefaultLabelSizeAndSetPaint(paint);
paint.setTextSize(labelSize);
if (bounds == null) bounds = new Rect();
paint.getTextBounds(label.toString(), 0, label.length(), bounds);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java b/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java
index f8c81adfb..ef3ea4c12 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java
@@ -46,8 +46,7 @@ public class SlidingLocaleDrawable extends Drawable {
private final int mSpacebarTextColor;
private final TextPaint mTextPaint;
private final int mMiddleX;
- private final Drawable mLeftDrawable;
- private final Drawable mRightDrawable;
+ private final boolean mDrawArrows;
private final int mThreshold;
private int mDiff;
@@ -65,16 +64,17 @@ public class SlidingLocaleDrawable extends Drawable {
textPaint.setTextSize(LatinKeyboard.getTextSizeFromTheme(
context.getTheme(), android.R.style.TextAppearance_Medium, 18));
textPaint.setColor(Color.TRANSPARENT);
- textPaint.setTextAlign(Align.CENTER);
textPaint.setAntiAlias(true);
mTextPaint = textPaint;
mMiddleX = (background != null) ? (mWidth - mBackground.getIntrinsicWidth()) / 2 : 0;
final TypedArray a = context.obtainStyledAttributes(
- null, R.styleable.LatinKeyboard, R.attr.latinKeyboardStyle, R.style.LatinKeyboard);
- mSpacebarTextColor = a.getColor(R.styleable.LatinKeyboard_spacebarTextColor, 0);
- mLeftDrawable = a.getDrawable(R.styleable.LatinKeyboard_spacebarArrowPreviewLeftIcon);
- mRightDrawable = a.getDrawable(R.styleable.LatinKeyboard_spacebarArrowPreviewRightIcon);
+ null, R.styleable.KeyboardView, R.attr.keyboardViewStyle, R.style.KeyboardView);
+ mSpacebarTextColor = a.getColor(R.styleable.KeyboardView_keyPreviewTextColor, 0);
+ final int spacebarPreviewBackrgound = a.getResourceId(
+ R.styleable.KeyboardView_keyPreviewSpacebarBackground, 0);
+ // If spacebar preview background is transparent, we need not draw arrows.
+ mDrawArrows = (spacebarPreviewBackrgound != R.drawable.transparent);
a.recycle();
mThreshold = ViewConfiguration.get(context).getScaledTouchSlop();
@@ -102,8 +102,6 @@ public class SlidingLocaleDrawable extends Drawable {
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) {
SubtypeSwitcher subtypeSwitcher = SubtypeSwitcher.getInstance();
@@ -111,20 +109,19 @@ public class SlidingLocaleDrawable extends Drawable {
mNextLanguage = subtypeSwitcher.getNextInputLanguageName();
mPrevLanguage = subtypeSwitcher.getPreviousInputLanguageName();
}
- // Draw language text with shadow
+ // Draw language text.
final float baseline = mHeight * LatinKeyboard.SPACEBAR_LANGUAGE_BASELINE
- paint.descent();
paint.setColor(mSpacebarTextColor);
+ paint.setTextAlign(Align.CENTER);
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);
-
- if (lArrow != null && rArrow != null) {
- Keyboard.setDefaultBounds(lArrow);
- rArrow.setBounds(width - rArrow.getIntrinsicWidth(), 0, width,
- rArrow.getIntrinsicHeight());
- lArrow.draw(canvas);
- rArrow.draw(canvas);
+ if (mDrawArrows) {
+ paint.setTextAlign(Align.LEFT);
+ canvas.drawText(LatinKeyboard.ARROW_LEFT, 0, baseline, paint);
+ paint.setTextAlign(Align.RIGHT);
+ canvas.drawText(LatinKeyboard.ARROW_RIGHT, width, baseline, paint);
}
}
if (mBackground != null) {
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index 313555daa..a5bfea0f8 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -25,11 +25,11 @@ import android.os.Message;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
+import android.text.TextPaint;
import android.text.TextUtils;
import android.text.style.BackgroundColorSpan;
import android.text.style.CharacterStyle;
import android.text.style.ForegroundColorSpan;
-import android.text.style.StyleSpan;
import android.text.style.UnderlineSpan;
import android.util.AttributeSet;
import android.view.Gravity;
@@ -57,15 +57,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
public void pickSuggestionManually(int index, CharSequence word);
}
- private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD);
private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
// The maximum number of suggestions available. See {@link Suggest#mPrefMaxSuggestions}.
private static final int MAX_SUGGESTIONS = 18;
- private static final int UNSPECIFIED_MEASURESPEC = MeasureSpec.makeMeasureSpec(
- 0, MeasureSpec.UNSPECIFIED);
+ private static final int MATCH_PARENT = MeasureSpec.makeMeasureSpec(
+ -1, MeasureSpec.UNSPECIFIED);
private static final boolean DBG = LatinImeLogger.sDBG;
+ private final View mCandidatesStrip;
private static final int NUM_CANDIDATES_IN_STRIP = 3;
private final ImageView mExpandCandidatesPane;
private final ImageView mCloseCandidatesPane;
@@ -88,11 +88,17 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
private final PopupWindow mPreviewPopup;
private final TextView mPreviewText;
+ private final View mTouchToSave;
+ private final TextView mWordToSave;
+
private Listener mListener;
private SuggestedWords mSuggestions = SuggestedWords.EMPTY;
private boolean mShowingAutoCorrectionInverted;
private boolean mShowingAddToDictionary;
+ private static final float MIN_TEXT_XSCALE = 0.4f;
+ private static final String ELLIPSIS = "\u2026";
+
private final UiHandler mHandler = new UiHandler(this);
private static class UiHandler extends StaticInnerHandlerWrapper<CandidateView> {
@@ -178,13 +184,13 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mPreviewPopup.setContentView(mPreviewText);
mPreviewPopup.setBackgroundDrawable(null);
+ mCandidatesStrip = findViewById(R.id.candidates_strip);
mCandidateStripHeight = res.getDimensionPixelOffset(R.dimen.candidate_strip_height);
for (int i = 0; i < MAX_SUGGESTIONS; i++) {
final TextView word, info;
switch (i) {
case 0:
word = (TextView)findViewById(R.id.word_left);
- word.setPadding(res.getDimensionPixelOffset(R.dimen.candidate_padding), 0, 0, 0);
info = (TextView)findViewById(R.id.info_left);
break;
case 1:
@@ -208,11 +214,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mInfos.add(info);
if (i > 0) {
final View divider = inflater.inflate(R.layout.candidate_divider, null);
- divider.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC);
+ divider.measure(MATCH_PARENT, MATCH_PARENT);
mDividers.add(divider);
}
}
+ mTouchToSave = findViewById(R.id.touch_to_save);
+ mWordToSave = (TextView)findViewById(R.id.word_to_save);
+ mWordToSave.setOnClickListener(this);
+
final TypedArray a = context.obtainStyledAttributes(
attrs, R.styleable.CandidateView, defStyle, R.style.CandidateViewStyle);
mAutoCorrectHighlight = a.getInt(R.styleable.CandidateView_autoCorrectHighlight, 0);
@@ -269,12 +279,14 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
}
}
- private CharSequence getStyledCandidateWord(CharSequence word, boolean isAutoCorrect) {
+ private CharSequence getStyledCandidateWord(CharSequence word, TextView v,
+ boolean isAutoCorrect) {
+ v.setTypeface(Typeface.DEFAULT);
if (!isAutoCorrect)
return word;
final Spannable spannedWord = new SpannableString(word);
if ((mAutoCorrectHighlight & AUTO_CORRECT_BOLD) != 0)
- spannedWord.setSpan(BOLD_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ v.setTypeface(Typeface.DEFAULT_BOLD);
if ((mAutoCorrectHighlight & AUTO_CORRECT_UNDERLINE) != 0)
spannedWord.setSpan(UNDERLINE_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
return spannedWord;
@@ -311,7 +323,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
int fromIndex = NUM_CANDIDATES_IN_STRIP;
final int count = Math.min(mWords.size(), suggestions.size());
closeCandidatesPane();
- mExpandCandidatesPane.setEnabled(count >= NUM_CANDIDATES_IN_STRIP);
+ mExpandCandidatesPane.setVisibility(count > NUM_CANDIDATES_IN_STRIP ? VISIBLE : GONE);
for (int i = 0; i < count; i++) {
final CharSequence suggestion = suggestions.getWord(i);
if (suggestion == null) continue;
@@ -332,11 +344,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
// the word when space is typed (valid typed word or auto corrected word).
word.setTextColor(getCandidateTextColor(isAutoCorrect,
isSuggestedCandidate || isPunctuationSuggestions, suggestionInfo));
- word.setText(getStyledCandidateWord(suggestion, isAutoCorrect));
- // TODO: call TextView.setTextScaleX() to fit the candidate in single line.
- word.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC);
- final int width = word.getMeasuredWidth();
- final int height = word.getMeasuredHeight();
+ final CharSequence text = getStyledCandidateWord(suggestion, word, isAutoCorrect);
+ if (i < NUM_CANDIDATES_IN_STRIP) {
+ final View parent = (View)word.getParent();
+ final int width = parent.getWidth() - word.getPaddingLeft()
+ - word.getPaddingRight();
+ setTextWithAutoScaleAndEllipsis(text, width, word);
+ } else {
+ setTextWithAutoScaleAndEllipsis(text, paneWidth, word);
+ }
final TextView info;
if (DBG && suggestionInfo != null
@@ -344,18 +360,23 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
info = mInfos.get(i);
info.setText(suggestionInfo.getDebugString());
info.setVisibility(View.VISIBLE);
- info.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC);
} else {
info = null;
}
if (i < NUM_CANDIDATES_IN_STRIP) {
if (info != null) {
+ word.measure(MATCH_PARENT, MATCH_PARENT);
+ info.measure(MATCH_PARENT, MATCH_PARENT);
+ final int width = word.getMeasuredWidth();
final int infoWidth = info.getMeasuredWidth();
FrameLayoutCompatUtils.placeViewAt(
info, width - infoWidth, 0, infoWidth, info.getMeasuredHeight());
}
} else {
+ word.measure(MATCH_PARENT, MATCH_PARENT);
+ final int width = word.getMeasuredWidth();
+ final int height = word.getMeasuredHeight();
// TODO: Handle overflow case.
if (dividerWidth + x + width >= paneWidth) {
centeringCandidates(fromIndex, i - 1, x, paneWidth);
@@ -376,6 +397,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
word, x, y + (mCandidateStripHeight - height) / 2, width, height);
if (info != null) {
mCandidatesPane.addView(info);
+ info.measure(MATCH_PARENT, MATCH_PARENT);
final int infoWidth = info.getMeasuredWidth();
FrameLayoutCompatUtils.placeViewAt(
info, x + width - infoWidth, y, infoWidth, info.getMeasuredHeight());
@@ -414,6 +436,60 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
}
}
+ private static void setTextWithAutoScaleAndEllipsis(CharSequence text, int w, TextView v) {
+ // To prevent partially rendered character at the end of text, subtract few extra pixels
+ // from the width.
+ final int width = w - 4;
+
+ final TextPaint paint = v.getPaint();
+ final int textWidth = getTextWidth(text, paint, 1.0f);
+ if (textWidth < width || textWidth == 0 || width <= 0) {
+ v.setTextScaleX(1.0f);
+ v.setText(text);
+ return;
+ }
+
+ final float scaleX = Math.min((float)width / textWidth, 1.0f);
+ if (scaleX >= MIN_TEXT_XSCALE) {
+ v.setTextScaleX(scaleX);
+ v.setText(text);
+ return;
+ }
+
+ final int truncatedWidth = width - getTextWidth(ELLIPSIS, paint, MIN_TEXT_XSCALE);
+ final CharSequence ellipsized = getTextEllipsizedAtStart(text, paint, truncatedWidth);
+ v.setTextScaleX(MIN_TEXT_XSCALE);
+ v.setText(ELLIPSIS);
+ v.append(ellipsized);
+ }
+
+ private static int getTextWidth(CharSequence text, TextPaint paint, float scaleX) {
+ if (TextUtils.isEmpty(text)) return 0;
+ final int len = text.length();
+ final float[] widths = new float[len];
+ paint.setTextScaleX(scaleX);
+ final int count = paint.getTextWidths(text, 0, len, widths);
+ float width = 0;
+ for (int i = 0; i < count; i++) {
+ width += widths[i];
+ }
+ return (int)Math.round(width + 0.5);
+ }
+
+ private static CharSequence getTextEllipsizedAtStart(CharSequence text, TextPaint paint,
+ int maxWidth) {
+ final int len = text.length();
+ final float[] widths = new float[len];
+ final int count = paint.getTextWidths(text, 0, len, widths);
+ float width = 0;
+ for (int i = count - 1; i >= 0; i--) {
+ width += widths[i];
+ if (width > maxWidth)
+ return text.subSequence(i + 1, len);
+ }
+ return text;
+ }
+
private void expandCandidatesPane() {
mExpandCandidatesPane.setVisibility(View.GONE);
mCloseCandidatesPane.setVisibility(View.VISIBLE);
@@ -448,14 +524,10 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
}
public void showAddToDictionaryHint(CharSequence word) {
- SuggestedWords.Builder builder = new SuggestedWords.Builder()
- .addWord(word)
- .addWord(getContext().getText(R.string.hint_add_to_dictionary));
- setSuggestions(builder.build());
+ mWordToSave.setText(word);
mShowingAddToDictionary = true;
- // Disable R.string.hint_add_to_dictionary button
- TextView tv = mWords.get(1);
- tv.setClickable(false);
+ mCandidatesStrip.setVisibility(View.GONE);
+ mTouchToSave.setVisibility(View.VISIBLE);
}
public boolean dismissAddToDictionaryHint() {
@@ -475,6 +547,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mWords.get(i).setText(null);
mInfos.get(i).setVisibility(View.GONE);
}
+ mTouchToSave.setVisibility(View.GONE);
+ mCandidatesStrip.setVisibility(View.VISIBLE);
mCandidatesPane.removeAllViews();
}
@@ -530,6 +604,12 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
@Override
public void onClick(View view) {
+ if (view == mWordToSave) {
+ addToDictionary(((TextView)view).getText());
+ clear();
+ return;
+ }
+
final Object tag = view.getTag();
if (!(tag instanceof Integer))
return;
@@ -538,11 +618,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
return;
final CharSequence word = mSuggestions.getWord(index);
- if (mShowingAddToDictionary && index == 0) {
- addToDictionary(word);
- } else {
- mListener.pickSuggestionManually(index, word);
- }
+ mListener.pickSuggestionManually(index, word);
// Because some punctuation letters are not treated as word separator depending on locale,
// {@link #setSuggestions} might not be called and candidates pane left opened.
closeCandidatesPane();
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 52935ef7d..874d77f19 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -514,7 +514,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
super.setInputView(view);
mCandidateViewContainer = view.findViewById(R.id.candidates_container);
mCandidateView = (CandidateView) view.findViewById(R.id.candidates);
- mCandidateView.setListener(this, view);
+ if (mCandidateView != null)
+ mCandidateView.setListener(this, view);
mCandidateStripHeight = (int)mResources.getDimension(R.dimen.candidate_strip_height);
}
@@ -590,7 +591,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
inputView.setProximityCorrectionEnabled(true);
// If we just entered a text field, maybe it has some old text that requires correction
mRecorrection.checkRecorrectionOnStart();
- inputView.setForeground(true);
voiceIme.onStartInputView(inputView.getWindowToken());
@@ -678,7 +678,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
public void onFinishInputView(boolean finishingInput) {
super.onFinishInputView(finishingInput);
KeyboardView inputView = mKeyboardSwitcher.getKeyboardView();
- if (inputView != null) inputView.setForeground(false);
+ if (inputView != null) inputView.cancelAllMessage();
// Remove pending messages related to update suggestions
mHandler.cancelUpdateSuggestions();
mHandler.cancelUpdateOldSuggestions();
@@ -842,7 +842,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
private void setSuggestionStripShownInternal(boolean shown, boolean needsInputViewShown) {
// TODO: Modify this if we support candidates with hard keyboard
- if (onEvaluateInputViewShown()) {
+ if (onEvaluateInputViewShown() && mCandidateViewContainer != null) {
final boolean shouldShowCandidates = shown
&& (needsInputViewShown ? mKeyboardSwitcher.isInputViewShown() : true);
if (isExtractViewShown()) {
@@ -1869,6 +1869,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// Notify that language or mode have been changed and toggleLanguage will update KeyboardID
// according to new language or mode.
public void onRefreshKeyboard() {
+ if (!CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) {
+ // Before Honeycomb, Voice IME is in LatinIME and it changes the current input view,
+ // so that we need to re-create the keyboard input view here.
+ setInputView(mKeyboardSwitcher.onCreateInputView());
+ }
// Reload keyboard because the current language has been changed.
mKeyboardSwitcher.loadKeyboard(getCurrentInputEditorInfo(),
mSubtypeSwitcher.isShortcutImeEnabled() && mVoiceProxy.isVoiceButtonEnabled(),