diff options
Diffstat (limited to '')
-rwxr-xr-x | java/Android.mk | 22 | ||||
-rwxr-xr-x | java/AndroidManifest.xml (renamed from AndroidManifest.xml) | 6 | ||||
-rw-r--r-- | java/MODULE_LICENSE_APACHE2 | 0 | ||||
-rw-r--r-- | java/NOTICE | 190 | ||||
-rw-r--r-- | java/proguard.flags | 3 | ||||
-rwxr-xr-x | java/res/drawable-en-hdpi/sym_keyboard_delete.png (renamed from res/drawable-en-hdpi/sym_keyboard_delete.png) | bin | 2315 -> 2315 bytes | |||
-rwxr-xr-x | java/res/drawable-en-hdpi/sym_keyboard_feedback_delete.png (renamed from res/drawable-en-hdpi/sym_keyboard_feedback_delete.png) | bin | 1278 -> 1278 bytes | |||
-rw-r--r-- | java/res/drawable-en-mdpi/sym_keyboard_delete.png (renamed from res/drawable-en-mdpi/sym_keyboard_delete.png) | bin | 1366 -> 1366 bytes | |||
-rw-r--r-- | java/res/drawable-en-mdpi/sym_keyboard_feedback_delete.png (renamed from res/drawable-en-mdpi/sym_keyboard_feedback_delete.png) | bin | 524 -> 524 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png) | bin | 1649 -> 1649 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png) | bin | 1696 -> 1696 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_normal.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_normal.9.png) | bin | 715 -> 715 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_normal_off.9.png) | bin | 1001 -> 1001 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_normal_on.9.png) | bin | 1077 -> 1077 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_pressed.9.png) | bin | 745 -> 745 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png) | bin | 1042 -> 1042 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png (renamed from res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png) | bin | 1105 -> 1105 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/cancel.png (renamed from res/drawable-hdpi/cancel.png) | bin | 1811 -> 1811 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/candidate_feedback_background.9.png (renamed from res/drawable-hdpi/candidate_feedback_background.9.png) | bin | 833 -> 833 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/caution.png (renamed from res/drawable-hdpi/caution.png) | bin | 1641 -> 1641 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/dialog_bubble_step02.9.png (renamed from res/drawable-hdpi/dialog_bubble_step02.9.png) | bin | 1475 -> 1475 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/dialog_bubble_step07.9.png (renamed from res/drawable-hdpi/dialog_bubble_step07.9.png) | bin | 6012 -> 6012 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/dialog_top_dark_bottom_medium.png (renamed from res/drawable-hdpi/dialog_top_dark_bottom_medium.png) | bin | 1976 -> 1976 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/highlight_pressed.png (renamed from res/drawable-hdpi/highlight_pressed.png) | bin | 4110 -> 4110 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_alert_large.png (renamed from res/drawable-hdpi/ic_dialog_alert_large.png) | bin | 4918 -> 4918 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_keyboard.png (renamed from res/drawable-hdpi/ic_dialog_keyboard.png) | bin | 807 -> 807 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_voice_input.png (renamed from res/drawable-hdpi/ic_dialog_voice_input.png) | bin | 1931 -> 1931 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_wave_0_0.png (renamed from res/drawable-hdpi/ic_dialog_wave_0_0.png) | bin | 15673 -> 15673 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_wave_1_3.png (renamed from res/drawable-hdpi/ic_dialog_wave_1_3.png) | bin | 15823 -> 15823 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_wave_2_3.png (renamed from res/drawable-hdpi/ic_dialog_wave_2_3.png) | bin | 16009 -> 16009 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_wave_3_3.png (renamed from res/drawable-hdpi/ic_dialog_wave_3_3.png) | bin | 16022 -> 16022 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_dialog_wave_4_3.png (renamed from res/drawable-hdpi/ic_dialog_wave_4_3.png) | bin | 15910 -> 15910 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/ic_mic_dialog.png (renamed from res/drawable-hdpi/ic_mic_dialog.png) | bin | 3634 -> 3634 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/ic_suggest_strip_microphone.png (renamed from res/drawable-hdpi/ic_suggest_strip_microphone.png) | bin | 548 -> 548 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png (renamed from res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png) | bin | 438 -> 438 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png (renamed from res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png) | bin | 619 -> 619 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png (renamed from res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png) | bin | 619 -> 619 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/keyboard_background.9.png (renamed from res/drawable-hdpi/keyboard_background.9.png) | bin | 200 -> 200 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/keyboard_suggest_strip.9.png (renamed from res/drawable-hdpi/keyboard_suggest_strip.9.png) | bin | 1577 -> 1577 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/keyboard_suggest_strip_divider.png (renamed from res/drawable-hdpi/keyboard_suggest_strip_divider.png) | bin | 2852 -> 2852 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/list_selector_background_pressed.9.png (renamed from res/drawable-hdpi/list_selector_background_pressed.9.png) | bin | 4203 -> 4203 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/mic_slash.png (renamed from res/drawable-hdpi/mic_slash.png) | bin | 5615 -> 5615 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/ok_cancel.png (renamed from res/drawable-hdpi/ok_cancel.png) | bin | 442 -> 442 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/speak_now_level0.png (renamed from res/drawable-hdpi/speak_now_level0.png) | bin | 1512 -> 1512 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/speak_now_level1.png (renamed from res/drawable-hdpi/speak_now_level1.png) | bin | 2215 -> 2215 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/speak_now_level2.png (renamed from res/drawable-hdpi/speak_now_level2.png) | bin | 3130 -> 3130 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/speak_now_level3.png (renamed from res/drawable-hdpi/speak_now_level3.png) | bin | 3647 -> 3647 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/speak_now_level4.png (renamed from res/drawable-hdpi/speak_now_level4.png) | bin | 3626 -> 3626 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/speak_now_level5.png (renamed from res/drawable-hdpi/speak_now_level5.png) | bin | 3670 -> 3670 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/speak_now_level6.png (renamed from res/drawable-hdpi/speak_now_level6.png) | bin | 4006 -> 4006 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_123_mic.png (renamed from res/drawable-hdpi/sym_keyboard_123_mic.png) | bin | 2575 -> 2575 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_delete.png (renamed from res/drawable-hdpi/sym_keyboard_delete.png) | bin | 2282 -> 2282 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_done.png (renamed from res/drawable-hdpi/sym_keyboard_done.png) | bin | 1593 -> 1593 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_123_mic.png) | bin | 1046 -> 1046 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_delete.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_delete.png) | bin | 1278 -> 1278 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_done.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_done.png) | bin | 1068 -> 1068 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png) | bin | 322 -> 322 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png) | bin | 328 -> 328 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_feedback_mic.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_mic.png) | bin | 681 -> 681 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_numalt.png) | bin | 1336 -> 1336 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_return.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_return.png) | bin | 838 -> 838 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_search.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_search.png) | bin | 1209 -> 1209 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_shift.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_shift.png) | bin | 885 -> 885 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png) | bin | 700 -> 700 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_feedback_space.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_space.png) | bin | 287 -> 287 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_feedback_tab.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_tab.png) | bin | 462 -> 462 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_feedback_tabprev.png (renamed from res/drawable-hdpi/sym_keyboard_feedback_tabprev.png) | bin | 463 -> 463 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_globe.png (renamed from res/drawable-hdpi/sym_keyboard_globe.png) | bin | 2093 -> 2093 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png (renamed from res/drawable-hdpi/sym_keyboard_language_arrows_left.png) | bin | 314 -> 314 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png (renamed from res/drawable-hdpi/sym_keyboard_language_arrows_right.png) | bin | 316 -> 316 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_mic.png (renamed from res/drawable-hdpi/sym_keyboard_mic.png) | bin | 1440 -> 1440 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num0.png (renamed from res/drawable-hdpi/sym_keyboard_num0.png) | bin | 1931 -> 1931 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num1.png (renamed from res/drawable-hdpi/sym_keyboard_num1.png) | bin | 809 -> 809 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num2.png (renamed from res/drawable-hdpi/sym_keyboard_num2.png) | bin | 3214 -> 3214 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num3.png (renamed from res/drawable-hdpi/sym_keyboard_num3.png) | bin | 2805 -> 2805 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num4.png (renamed from res/drawable-hdpi/sym_keyboard_num4.png) | bin | 2647 -> 2647 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num5.png (renamed from res/drawable-hdpi/sym_keyboard_num5.png) | bin | 2536 -> 2536 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num6.png (renamed from res/drawable-hdpi/sym_keyboard_num6.png) | bin | 3573 -> 3573 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num7.png (renamed from res/drawable-hdpi/sym_keyboard_num7.png) | bin | 3684 -> 3684 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num8.png (renamed from res/drawable-hdpi/sym_keyboard_num8.png) | bin | 2904 -> 2904 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_num9.png (renamed from res/drawable-hdpi/sym_keyboard_num9.png) | bin | 3860 -> 3860 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_numalt.png (renamed from res/drawable-hdpi/sym_keyboard_numalt.png) | bin | 2919 -> 2919 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_numpound.png (renamed from res/drawable-hdpi/sym_keyboard_numpound.png) | bin | 1600 -> 1600 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_numstar.png (renamed from res/drawable-hdpi/sym_keyboard_numstar.png) | bin | 1749 -> 1749 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_return.png (renamed from res/drawable-hdpi/sym_keyboard_return.png) | bin | 1123 -> 1123 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_search.png (renamed from res/drawable-hdpi/sym_keyboard_search.png) | bin | 1623 -> 1623 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_shift.png (renamed from res/drawable-hdpi/sym_keyboard_shift.png) | bin | 1495 -> 1495 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_shift_locked.png (renamed from res/drawable-hdpi/sym_keyboard_shift_locked.png) | bin | 1119 -> 1119 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/sym_keyboard_space.png (renamed from res/drawable-hdpi/sym_keyboard_space.png) | bin | 371 -> 371 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_tab.png (renamed from res/drawable-hdpi/sym_keyboard_tab.png) | bin | 1027 -> 1027 bytes | |||
-rw-r--r-- | java/res/drawable-hdpi/sym_keyboard_tabprev.png (renamed from res/drawable-hdpi/sym_keyboard_tabprev.png) | bin | 1033 -> 1033 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/voice_ime_background.9.png (renamed from res/drawable-hdpi/voice_ime_background.9.png) | bin | 2349 -> 2349 bytes | |||
-rwxr-xr-x | java/res/drawable-hdpi/working.png (renamed from res/drawable-hdpi/working.png) | bin | 8636 -> 8636 bytes | |||
-rwxr-xr-x | java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png (renamed from res/drawable-land-hdpi/btn_keyboard_key_normal.9.png) | bin | 737 -> 737 bytes | |||
-rwxr-xr-x | java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png (renamed from res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png) | bin | 941 -> 941 bytes | |||
-rwxr-xr-x | java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png (renamed from res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png) | bin | 1076 -> 1076 bytes | |||
-rwxr-xr-x | java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png (renamed from res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png) | bin | 733 -> 733 bytes | |||
-rwxr-xr-x | java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png (renamed from res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png) | bin | 964 -> 964 bytes | |||
-rwxr-xr-x | java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png (renamed from res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png) | bin | 1055 -> 1055 bytes | |||
-rwxr-xr-x | java/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png (renamed from res/drawable-land-hdpi/keyboard_suggest_strip_divider.png) | bin | 172 -> 172 bytes | |||
-rw-r--r-- | java/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png (renamed from res/drawable-land-mdpi/btn_keyboard_key_normal.9.png) | bin | 818 -> 818 bytes | |||
-rw-r--r-- | java/res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png (renamed from res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png) | bin | 860 -> 860 bytes | |||
-rw-r--r-- | java/res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png (renamed from res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png) | bin | 926 -> 926 bytes | |||
-rwxr-xr-x | java/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png (renamed from res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png) | bin | 740 -> 740 bytes | |||
-rw-r--r-- | java/res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png (renamed from res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png) | bin | 836 -> 836 bytes | |||
-rw-r--r-- | java/res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png (renamed from res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png) | bin | 886 -> 886 bytes | |||
-rw-r--r-- | java/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png (renamed from res/drawable-land-mdpi/keyboard_suggest_strip_divider.png) | bin | 166 -> 166 bytes | |||
-rw-r--r-- | java/res/drawable-land/btn_keyboard_key.xml (renamed from res/drawable-land/btn_keyboard_key.xml) | 0 | ||||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png) | bin | 1068 -> 1068 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png) | bin | 1021 -> 1021 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_normal.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_normal.9.png) | bin | 726 -> 726 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_normal_off.9.png) | bin | 860 -> 860 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_normal_on.9.png) | bin | 926 -> 926 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_pressed.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_pressed.9.png) | bin | 664 -> 664 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png) | bin | 836 -> 836 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png (renamed from res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png) | bin | 886 -> 886 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/candidate_feedback_background.9.png (renamed from res/drawable-mdpi/candidate_feedback_background.9.png) | bin | 1182 -> 1182 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/dialog_bubble_step02.9.png (renamed from res/drawable-mdpi/dialog_bubble_step02.9.png) | bin | 1036 -> 1036 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/dialog_bubble_step07.9.png (renamed from res/drawable-mdpi/dialog_bubble_step07.9.png) | bin | 4646 -> 4646 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/highlight_pressed.png (renamed from res/drawable-mdpi/highlight_pressed.png) | bin | 593 -> 593 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_dialog_keyboard.png (renamed from res/drawable-mdpi/ic_dialog_keyboard.png) | bin | 528 -> 528 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_mic_dialog.png (renamed from res/drawable-mdpi/ic_mic_dialog.png) | bin | 3312 -> 3312 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_suggest_strip_microphone.png (renamed from res/drawable-mdpi/ic_suggest_strip_microphone.png) | bin | 398 -> 398 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_suggest_strip_microphone_swipe.png (renamed from res/drawable-mdpi/ic_suggest_strip_microphone_swipe.png) | bin | 309 -> 309 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png (renamed from res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png) | bin | 445 -> 445 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png (renamed from res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png) | bin | 440 -> 440 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/keyboard_background.9.png (renamed from res/drawable-mdpi/keyboard_background.9.png) | bin | 214 -> 214 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/keyboard_suggest_strip.9.png (renamed from res/drawable-mdpi/keyboard_suggest_strip.9.png) | bin | 220 -> 220 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/keyboard_suggest_strip_divider.png (renamed from res/drawable-mdpi/keyboard_suggest_strip_divider.png) | bin | 2846 -> 2846 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/list_selector_background_pressed.9.png (renamed from res/drawable-mdpi/list_selector_background_pressed.9.png) | bin | 11006 -> 11006 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_123_mic.png (renamed from res/drawable-mdpi/sym_keyboard_123_mic.png) | bin | 1540 -> 1540 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_delete.png (renamed from res/drawable-mdpi/sym_keyboard_delete.png) | bin | 829 -> 829 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/sym_keyboard_done.png (renamed from res/drawable-mdpi/sym_keyboard_done.png) | bin | 771 -> 771 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_123_mic.png) | bin | 694 -> 694 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_delete.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_delete.png) | bin | 374 -> 374 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/sym_keyboard_feedback_done.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_done.png) | bin | 498 -> 498 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png) | bin | 249 -> 249 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png) | bin | 249 -> 249 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_mic.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_mic.png) | bin | 483 -> 483 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_numalt.png) | bin | 735 -> 735 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_return.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_return.png) | bin | 381 -> 381 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/sym_keyboard_feedback_search.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_search.png) | bin | 501 -> 501 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_shift.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_shift.png) | bin | 437 -> 437 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png) | bin | 333 -> 333 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_space.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_space.png) | bin | 223 -> 223 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_tab.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_tab.png) | bin | 364 -> 364 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_feedback_tabprev.png (renamed from res/drawable-mdpi/sym_keyboard_feedback_tabprev.png) | bin | 365 -> 365 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_globe.png (renamed from res/drawable-mdpi/sym_keyboard_globe.png) | bin | 1290 -> 1290 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png (renamed from res/drawable-mdpi/sym_keyboard_language_arrows_left.png) | bin | 261 -> 261 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png (renamed from res/drawable-mdpi/sym_keyboard_language_arrows_right.png) | bin | 257 -> 257 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_mic.png (renamed from res/drawable-mdpi/sym_keyboard_mic.png) | bin | 859 -> 859 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num0.png (renamed from res/drawable-mdpi/sym_keyboard_num0.png) | bin | 1160 -> 1160 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num1.png (renamed from res/drawable-mdpi/sym_keyboard_num1.png) | bin | 506 -> 506 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num2.png (renamed from res/drawable-mdpi/sym_keyboard_num2.png) | bin | 1778 -> 1778 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num3.png (renamed from res/drawable-mdpi/sym_keyboard_num3.png) | bin | 1676 -> 1676 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num4.png (renamed from res/drawable-mdpi/sym_keyboard_num4.png) | bin | 1540 -> 1540 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num5.png (renamed from res/drawable-mdpi/sym_keyboard_num5.png) | bin | 1417 -> 1417 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num6.png (renamed from res/drawable-mdpi/sym_keyboard_num6.png) | bin | 1952 -> 1952 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num7.png (renamed from res/drawable-mdpi/sym_keyboard_num7.png) | bin | 2051 -> 2051 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num8.png (renamed from res/drawable-mdpi/sym_keyboard_num8.png) | bin | 1605 -> 1605 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_num9.png (renamed from res/drawable-mdpi/sym_keyboard_num9.png) | bin | 2173 -> 2173 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_numalt.png (renamed from res/drawable-mdpi/sym_keyboard_numalt.png) | bin | 1673 -> 1673 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_numpound.png (renamed from res/drawable-mdpi/sym_keyboard_numpound.png) | bin | 963 -> 963 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_numstar.png (renamed from res/drawable-mdpi/sym_keyboard_numstar.png) | bin | 954 -> 954 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_return.png (renamed from res/drawable-mdpi/sym_keyboard_return.png) | bin | 866 -> 866 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/sym_keyboard_search.png (renamed from res/drawable-mdpi/sym_keyboard_search.png) | bin | 1029 -> 1029 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_shift.png (renamed from res/drawable-mdpi/sym_keyboard_shift.png) | bin | 1017 -> 1017 bytes | |||
-rwxr-xr-x | java/res/drawable-mdpi/sym_keyboard_shift_locked.png (renamed from res/drawable-mdpi/sym_keyboard_shift_locked.png) | bin | 799 -> 799 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_space.png (renamed from res/drawable-mdpi/sym_keyboard_space.png) | bin | 424 -> 424 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_tab.png (renamed from res/drawable-mdpi/sym_keyboard_tab.png) | bin | 645 -> 645 bytes | |||
-rw-r--r-- | java/res/drawable-mdpi/sym_keyboard_tabprev.png (renamed from res/drawable-mdpi/sym_keyboard_tabprev.png) | bin | 612 -> 612 bytes | |||
-rw-r--r-- | java/res/drawable/btn_keyboard_key.xml (renamed from res/drawable/btn_keyboard_key.xml) | 0 | ||||
-rw-r--r-- | java/res/drawable/btn_keyboard_key_fulltrans.xml (renamed from res/drawable/btn_keyboard_key_fulltrans.xml) | 0 | ||||
-rw-r--r-- | java/res/drawable/cancel.png (renamed from res/drawable/cancel.png) | bin | 1259 -> 1259 bytes | |||
-rw-r--r-- | java/res/drawable/caution.png (renamed from res/drawable/caution.png) | bin | 1100 -> 1100 bytes | |||
-rw-r--r-- | java/res/drawable/dialog_top_dark_bottom_medium.9.png (renamed from res/drawable/dialog_top_dark_bottom_medium.9.png) | bin | 1574 -> 1574 bytes | |||
-rw-r--r-- | java/res/drawable/ic_dialog_alert_large.png (renamed from res/drawable/ic_dialog_alert_large.png) | bin | 4089 -> 4089 bytes | |||
-rw-r--r-- | java/res/drawable/ic_dialog_voice_input.png (renamed from res/drawable/ic_dialog_voice_input.png) | bin | 1040 -> 1040 bytes | |||
-rw-r--r-- | java/res/drawable/ic_dialog_wave_0_0.png (renamed from res/drawable/ic_dialog_wave_0_0.png) | bin | 8471 -> 8471 bytes | |||
-rw-r--r-- | java/res/drawable/ic_dialog_wave_1_3.png (renamed from res/drawable/ic_dialog_wave_1_3.png) | bin | 9017 -> 9017 bytes | |||
-rw-r--r-- | java/res/drawable/ic_dialog_wave_2_3.png (renamed from res/drawable/ic_dialog_wave_2_3.png) | bin | 9614 -> 9614 bytes | |||
-rw-r--r-- | java/res/drawable/ic_dialog_wave_3_3.png (renamed from res/drawable/ic_dialog_wave_3_3.png) | bin | 10089 -> 10089 bytes | |||
-rw-r--r-- | java/res/drawable/ic_dialog_wave_4_3.png (renamed from res/drawable/ic_dialog_wave_4_3.png) | bin | 10514 -> 10514 bytes | |||
-rw-r--r-- | java/res/drawable/ic_suggest_scroll_background.xml (renamed from res/drawable/ic_suggest_scroll_background.xml) | 0 | ||||
-rw-r--r-- | java/res/drawable/mic_slash.png (renamed from res/drawable/mic_slash.png) | bin | 3098 -> 3098 bytes | |||
-rw-r--r-- | java/res/drawable/ok_cancel.png (renamed from res/drawable/ok_cancel.png) | bin | 8453 -> 8453 bytes | |||
-rw-r--r-- | java/res/drawable/speak_now_level0.png (renamed from res/drawable/speak_now_level0.png) | bin | 3263 -> 3263 bytes | |||
-rw-r--r-- | java/res/drawable/speak_now_level1.png (renamed from res/drawable/speak_now_level1.png) | bin | 3572 -> 3572 bytes | |||
-rw-r--r-- | java/res/drawable/speak_now_level2.png (renamed from res/drawable/speak_now_level2.png) | bin | 3974 -> 3974 bytes | |||
-rw-r--r-- | java/res/drawable/speak_now_level3.png (renamed from res/drawable/speak_now_level3.png) | bin | 4270 -> 4270 bytes | |||
-rw-r--r-- | java/res/drawable/speak_now_level4.png (renamed from res/drawable/speak_now_level4.png) | bin | 4241 -> 4241 bytes | |||
-rw-r--r-- | java/res/drawable/speak_now_level5.png (renamed from res/drawable/speak_now_level5.png) | bin | 4252 -> 4252 bytes | |||
-rw-r--r-- | java/res/drawable/speak_now_level6.png (renamed from res/drawable/speak_now_level6.png) | bin | 2201 -> 2201 bytes | |||
-rw-r--r-- | java/res/drawable/voice_ime_background.9.png (renamed from res/drawable/voice_ime_background.9.png) | bin | 20661 -> 20661 bytes | |||
-rw-r--r-- | java/res/drawable/voice_swipe_hint.png (renamed from res/drawable/voice_swipe_hint.png) | bin | 3111 -> 3111 bytes | |||
-rw-r--r-- | java/res/drawable/working.png (renamed from res/drawable/working.png) | bin | 33111 -> 33111 bytes | |||
-rw-r--r-- | java/res/layout/bubble_text.xml (renamed from res/layout/bubble_text.xml) | 0 | ||||
-rwxr-xr-x | java/res/layout/candidate_preview.xml (renamed from res/layout/candidate_preview.xml) | 0 | ||||
-rwxr-xr-x | java/res/layout/candidates.xml (renamed from res/layout/candidates.xml) | 0 | ||||
-rwxr-xr-x | java/res/layout/input.xml (renamed from res/layout/input.xml) | 0 | ||||
-rwxr-xr-x | java/res/layout/input_trans.xml (renamed from res/layout/input_trans.xml) | 1 | ||||
-rw-r--r-- | java/res/layout/recognition_status.xml (renamed from res/layout/recognition_status.xml) | 4 | ||||
-rw-r--r-- | java/res/layout/voice_punctuation_hint.xml (renamed from res/layout/voice_punctuation_hint.xml) | 0 | ||||
-rw-r--r-- | java/res/layout/voice_swipe_hint.xml (renamed from res/layout/voice_swipe_hint.xml) | 0 | ||||
-rwxr-xr-x | java/res/raw/main.dict (renamed from res/raw/main.dict) | bin | 34 -> 34 bytes | |||
-rwxr-xr-x | java/res/raw/type3.ogg (renamed from res/raw/type3.ogg) | bin | 4126 -> 4126 bytes | |||
-rw-r--r-- | java/res/values-cs/bools.xml (renamed from res/values-cs/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-cs/donottranslate.xml (renamed from res/values-cs/donottranslate.xml) | 0 | ||||
-rw-r--r-- | java/res/values-cs/strings.xml (renamed from res/values-cs/strings.xml) | 72 | ||||
-rw-r--r-- | java/res/values-da/strings.xml (renamed from res/values-da/strings.xml) | 48 | ||||
-rw-r--r-- | java/res/values-de/bools.xml (renamed from res/values-de/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-de/strings.xml (renamed from res/values-de/strings.xml) | 50 | ||||
-rw-r--r-- | java/res/values-el/strings.xml (renamed from res/values-el/strings.xml) | 34 | ||||
-rw-r--r-- | java/res/values-en/bools.xml (renamed from res/values-en/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-es-rUS/strings.xml (renamed from res/values-es-rUS/strings.xml) | 34 | ||||
-rw-r--r-- | java/res/values-es/bools.xml (renamed from res/values-es/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-es/strings.xml (renamed from res/values-es/strings.xml) | 54 | ||||
-rw-r--r-- | java/res/values-fr-rCA/strings.xml (renamed from res/values-fr-rCA/strings.xml) | 0 | ||||
-rw-r--r-- | java/res/values-fr/bools.xml (renamed from res/values-fr/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-fr/donottranslate.xml (renamed from res/values-fr/donottranslate.xml) | 0 | ||||
-rw-r--r-- | java/res/values-fr/strings.xml (renamed from res/values-fr/strings.xml) | 38 | ||||
-rw-r--r-- | java/res/values-it/bools.xml (renamed from res/values-it/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-it/donottranslate.xml (renamed from res/values-it/donottranslate.xml) | 0 | ||||
-rw-r--r-- | java/res/values-it/strings.xml (renamed from res/values-it/strings.xml) | 50 | ||||
-rw-r--r-- | java/res/values-ja/strings.xml (renamed from res/values-ja/strings.xml) | 32 | ||||
-rw-r--r-- | java/res/values-ko/strings.xml (renamed from res/values-ko/strings.xml) | 56 | ||||
-rw-r--r-- | java/res/values-land/dimens.xml (renamed from res/values-land/dimens.xml) | 0 | ||||
-rw-r--r-- | java/res/values-nb/strings.xml (renamed from res/values-nb/strings.xml) | 38 | ||||
-rw-r--r-- | java/res/values-nl/bools.xml (renamed from res/values-nl/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-nl/strings.xml (renamed from res/values-nl/strings.xml) | 40 | ||||
-rw-r--r-- | java/res/values-pl/bools.xml (renamed from res/values-pl/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values-pl/donottranslate.xml (renamed from res/values-pl/donottranslate.xml) | 0 | ||||
-rw-r--r-- | java/res/values-pl/strings.xml (renamed from res/values-pl/strings.xml) | 42 | ||||
-rw-r--r-- | java/res/values-pt-rPT/strings.xml (renamed from res/values-pt-rPT/strings.xml) | 42 | ||||
-rw-r--r-- | java/res/values-pt/strings.xml (renamed from res/values-pt/strings.xml) | 38 | ||||
-rw-r--r-- | java/res/values-ru/strings.xml (renamed from res/values-ru/strings.xml) | 50 | ||||
-rw-r--r-- | java/res/values-sv/strings.xml (renamed from res/values-sv/strings.xml) | 36 | ||||
-rw-r--r-- | java/res/values-tr/donottranslate.xml (renamed from res/values-tr/donottranslate.xml) | 0 | ||||
-rw-r--r-- | java/res/values-tr/strings.xml (renamed from res/values-tr/strings.xml) | 32 | ||||
-rw-r--r-- | java/res/values-zh-rCN/strings.xml (renamed from res/values-zh-rCN/strings.xml) | 58 | ||||
-rw-r--r-- | java/res/values-zh-rTW/strings.xml (renamed from res/values-zh-rTW/strings.xml) | 62 | ||||
-rw-r--r-- | java/res/values/bools.xml (renamed from res/values/bools.xml) | 0 | ||||
-rw-r--r-- | java/res/values/colors.xml (renamed from res/values/colors.xml) | 0 | ||||
-rw-r--r-- | java/res/values/dimens.xml (renamed from res/values/dimens.xml) | 0 | ||||
-rw-r--r-- | java/res/values/donottranslate.xml (renamed from res/values/donottranslate.xml) | 2 | ||||
-rw-r--r-- | java/res/values/durations.xml (renamed from res/values/durations.xml) | 0 | ||||
-rw-r--r-- | java/res/values/keycodes.xml (renamed from res/values/keycodes.xml) | 0 | ||||
-rw-r--r-- | java/res/values/strings.xml (renamed from res/values/strings.xml) | 3 | ||||
-rwxr-xr-x | java/res/xml-de/kbd_qwerty.xml (renamed from res/xml-de/kbd_qwerty.xml) | 12 | ||||
-rw-r--r-- | java/res/xml-fr/kbd_qwerty.xml (renamed from res/xml-fr/kbd_qwerty.xml) | 12 | ||||
-rwxr-xr-x | java/res/xml-iw/kbd_qwerty.xml | 164 | ||||
-rwxr-xr-x | java/res/xml-ru/kbd_qwerty.xml (renamed from res/xml-ru/kbd_qwerty.xml) | 20 | ||||
-rw-r--r-- | java/res/xml-sv/kbd_qwerty.xml | 215 | ||||
-rw-r--r-- | java/res/xml/azerty.xml (renamed from res/xml/azerty.xml) | 0 | ||||
-rw-r--r-- | java/res/xml/kbd_alpha.xml (renamed from res/xml/kbd_alpha.xml) | 0 | ||||
-rwxr-xr-x | java/res/xml/kbd_extension.xml (renamed from res/xml/kbd_extension.xml) | 0 | ||||
-rwxr-xr-x | java/res/xml/kbd_phone.xml (renamed from res/xml/kbd_phone.xml) | 0 | ||||
-rwxr-xr-x | java/res/xml/kbd_phone_symbols.xml (renamed from res/xml/kbd_phone_symbols.xml) | 0 | ||||
-rw-r--r-- | java/res/xml/kbd_popup_template.xml (renamed from res/xml/kbd_popup_template.xml) | 0 | ||||
-rwxr-xr-x | java/res/xml/kbd_qwerty.xml (renamed from res/xml/kbd_qwerty.xml) | 17 | ||||
-rwxr-xr-x | java/res/xml/kbd_symbols.xml (renamed from res/xml/kbd_symbols.xml) | 6 | ||||
-rwxr-xr-x | java/res/xml/kbd_symbols_shift.xml (renamed from res/xml/kbd_symbols_shift.xml) | 0 | ||||
-rw-r--r-- | java/res/xml/language_prefs.xml (renamed from res/xml/language_prefs.xml) | 0 | ||||
-rw-r--r-- | java/res/xml/method.xml (renamed from res/xml/method.xml) | 0 | ||||
-rw-r--r-- | java/res/xml/popup_domains.xml (renamed from res/xml/popup_domains.xml) | 0 | ||||
-rw-r--r-- | java/res/xml/popup_punctuation.xml (renamed from res/xml/popup_punctuation.xml) | 18 | ||||
-rw-r--r-- | java/res/xml/popup_smileys.xml (renamed from res/xml/popup_smileys.xml) | 0 | ||||
-rw-r--r-- | java/res/xml/prefs.xml (renamed from res/xml/prefs.xml) | 4 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/AutoDictionary.java (renamed from src/com/android/inputmethod/latin/AutoDictionary.java) | 142 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/BinaryDictionary.java (renamed from src/com/android/inputmethod/latin/BinaryDictionary.java) | 42 | ||||
-rwxr-xr-x | java/src/com/android/inputmethod/latin/CandidateView.java (renamed from src/com/android/inputmethod/latin/CandidateView.java) | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/CandidateViewContainer.java (renamed from src/com/android/inputmethod/latin/CandidateViewContainer.java) | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/ContactsDictionary.java (renamed from src/com/android/inputmethod/latin/ContactsDictionary.java) | 73 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/Dictionary.java (renamed from src/com/android/inputmethod/latin/Dictionary.java) | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/ExpandableDictionary.java (renamed from src/com/android/inputmethod/latin/ExpandableDictionary.java) | 71 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/Hints.java (renamed from src/com/android/inputmethod/latin/Hints.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/InputLanguageSelection.java (renamed from src/com/android/inputmethod/latin/InputLanguageSelection.java) | 37 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/KeyboardSwitcher.java (renamed from src/com/android/inputmethod/latin/KeyboardSwitcher.java) | 5 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LanguageSwitcher.java (renamed from src/com/android/inputmethod/latin/LanguageSwitcher.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java (renamed from src/com/android/inputmethod/latin/LatinIME.java) | 193 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIMEBackupAgent.java (renamed from src/com/android/inputmethod/latin/LatinIMEBackupAgent.java) | 8 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIMESettings.java (renamed from src/com/android/inputmethod/latin/LatinIMESettings.java) | 10 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinKeyboard.java (renamed from src/com/android/inputmethod/latin/LatinKeyboard.java) | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinKeyboardView.java (renamed from src/com/android/inputmethod/latin/LatinKeyboardView.java) | 170 | ||||
-rwxr-xr-x | java/src/com/android/inputmethod/latin/Suggest.java (renamed from src/com/android/inputmethod/latin/Suggest.java) | 13 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/TextEntryState.java (renamed from src/com/android/inputmethod/latin/TextEntryState.java) | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/Tutorial.java (renamed from src/com/android/inputmethod/latin/Tutorial.java) | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/UserDictionary.java (renamed from src/com/android/inputmethod/latin/UserDictionary.java) | 25 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/WordComposer.java (renamed from src/com/android/inputmethod/latin/WordComposer.java) | 18 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/EditingUtil.java (renamed from src/com/android/inputmethod/voice/EditingUtil.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/FieldContext.java (renamed from src/com/android/inputmethod/voice/FieldContext.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/LatinIMEWithVoice.java (renamed from src/com/android/inputmethod/voice/LatinIMEWithVoice.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/LatinIMEWithVoiceSettings.java (renamed from src/com/android/inputmethod/voice/LatinIMEWithVoiceSettings.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/RecognitionView.java (renamed from src/com/android/inputmethod/voice/RecognitionView.java) | 35 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/SettingsUtil.java (renamed from src/com/android/inputmethod/voice/SettingsUtil.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/VoiceInput.java (renamed from src/com/android/inputmethod/voice/VoiceInput.java) | 145 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/VoiceInputLogger.java (renamed from src/com/android/inputmethod/voice/VoiceInputLogger.java) | 39 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/WaveformImage.java (renamed from src/com/android/inputmethod/voice/WaveformImage.java) | 0 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/voice/Whitelist.java (renamed from src/com/android/inputmethod/voice/Whitelist.java) | 0 | ||||
-rw-r--r-- | java/src/com/google/android/voicesearch/LatinIMEWithVoice.java (renamed from src/com/google/android/voicesearch/LatinIMEWithVoice.java) | 0 | ||||
-rw-r--r-- | java/src/com/google/android/voicesearch/LatinIMEWithVoiceSettings.java (renamed from src/com/google/android/voicesearch/LatinIMEWithVoiceSettings.java) | 0 |
301 files changed, 1934 insertions, 709 deletions
diff --git a/java/Android.mk b/java/Android.mk new file mode 100755 index 000000000..4bb8986ee --- /dev/null +++ b/java/Android.mk @@ -0,0 +1,22 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-subdir-java-files) + +LOCAL_PACKAGE_NAME := LatinIME + +LOCAL_CERTIFICATE := shared + +LOCAL_JNI_SHARED_LIBRARIES := libjni_latinime + +LOCAL_STATIC_JAVA_LIBRARIES := android-common + +#LOCAL_AAPT_FLAGS := -0 .dict + +LOCAL_SDK_VERSION := current + +LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags + +include $(BUILD_PACKAGE) diff --git a/AndroidManifest.xml b/java/AndroidManifest.xml index c42ad42ef..e229bc76a 100755 --- a/AndroidManifest.xml +++ b/java/AndroidManifest.xml @@ -1,6 +1,5 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.inputmethod.latin" - android:sharedUserId="android.uid.shared"> + package="com.android.inputmethod.latin"> <original-package android:name="com.android.inputmethod.latin" /> @@ -8,6 +7,7 @@ <uses-permission android:name="android.permission.READ_USER_DICTIONARY" /> <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> + <uses-permission android:name="android.permission.READ_CONTACTS" /> <application android:label="@string/english_ime_name" android:backupAgent="LatinIMEBackupAgent" @@ -32,6 +32,8 @@ android:label="@string/language_selection_title"> <intent-filter> <action android:name="android.intent.action.MAIN"/> + <action android:name="com.android.inputmethod.latin.INPUT_LANGUAGE_SELECTION"/> + <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> diff --git a/java/MODULE_LICENSE_APACHE2 b/java/MODULE_LICENSE_APACHE2 new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/java/MODULE_LICENSE_APACHE2 diff --git a/java/NOTICE b/java/NOTICE new file mode 100644 index 000000000..7340b9e35 --- /dev/null +++ b/java/NOTICE @@ -0,0 +1,190 @@ + + 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. + + 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. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/java/proguard.flags b/java/proguard.flags new file mode 100644 index 000000000..0a5d2dda9 --- /dev/null +++ b/java/proguard.flags @@ -0,0 +1,3 @@ +-keep class com.android.inputmethod.latin.BinaryDictionary { + int mDictLength; +} diff --git a/res/drawable-en-hdpi/sym_keyboard_delete.png b/java/res/drawable-en-hdpi/sym_keyboard_delete.png Binary files differindex 569369e79..569369e79 100755 --- a/res/drawable-en-hdpi/sym_keyboard_delete.png +++ b/java/res/drawable-en-hdpi/sym_keyboard_delete.png diff --git a/res/drawable-en-hdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-en-hdpi/sym_keyboard_feedback_delete.png Binary files differindex ca7637552..ca7637552 100755 --- a/res/drawable-en-hdpi/sym_keyboard_feedback_delete.png +++ b/java/res/drawable-en-hdpi/sym_keyboard_feedback_delete.png diff --git a/res/drawable-en-mdpi/sym_keyboard_delete.png b/java/res/drawable-en-mdpi/sym_keyboard_delete.png Binary files differindex f1f7c58cf..f1f7c58cf 100644 --- a/res/drawable-en-mdpi/sym_keyboard_delete.png +++ b/java/res/drawable-en-mdpi/sym_keyboard_delete.png diff --git a/res/drawable-en-mdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-en-mdpi/sym_keyboard_feedback_delete.png Binary files differindex 3c9083972..3c9083972 100644 --- a/res/drawable-en-mdpi/sym_keyboard_feedback_delete.png +++ b/java/res/drawable-en-mdpi/sym_keyboard_feedback_delete.png diff --git a/res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png Binary files differindex b6c234c04..b6c234c04 100644 --- a/res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_normal.9.png diff --git a/res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png Binary files differindex 73a8cd1c3..73a8cd1c3 100644 --- a/res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_fulltrans_pressed.9.png diff --git a/res/drawable-hdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png Binary files differindex 42c7c146d..42c7c146d 100644 --- a/res/drawable-hdpi/btn_keyboard_key_normal.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png Binary files differindex 01e2506b0..01e2506b0 100644 --- a/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png Binary files differindex 83c6eb3fc..83c6eb3fc 100644 --- a/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png Binary files differindex e047eaff1..e047eaff1 100644 --- a/res/drawable-hdpi/btn_keyboard_key_pressed.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png Binary files differindex 218a2d29e..218a2d29e 100644 --- a/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png Binary files differindex afe49512e..afe49512e 100644 --- a/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png diff --git a/res/drawable-hdpi/cancel.png b/java/res/drawable-hdpi/cancel.png Binary files differindex 6585bde17..6585bde17 100755 --- a/res/drawable-hdpi/cancel.png +++ b/java/res/drawable-hdpi/cancel.png diff --git a/res/drawable-hdpi/candidate_feedback_background.9.png b/java/res/drawable-hdpi/candidate_feedback_background.9.png Binary files differindex 203c4e640..203c4e640 100755 --- a/res/drawable-hdpi/candidate_feedback_background.9.png +++ b/java/res/drawable-hdpi/candidate_feedback_background.9.png diff --git a/res/drawable-hdpi/caution.png b/java/res/drawable-hdpi/caution.png Binary files differindex 5cb6c54b9..5cb6c54b9 100755 --- a/res/drawable-hdpi/caution.png +++ b/java/res/drawable-hdpi/caution.png diff --git a/res/drawable-hdpi/dialog_bubble_step02.9.png b/java/res/drawable-hdpi/dialog_bubble_step02.9.png Binary files differindex b338364c5..b338364c5 100755 --- a/res/drawable-hdpi/dialog_bubble_step02.9.png +++ b/java/res/drawable-hdpi/dialog_bubble_step02.9.png diff --git a/res/drawable-hdpi/dialog_bubble_step07.9.png b/java/res/drawable-hdpi/dialog_bubble_step07.9.png Binary files differindex 94b915432..94b915432 100755 --- a/res/drawable-hdpi/dialog_bubble_step07.9.png +++ b/java/res/drawable-hdpi/dialog_bubble_step07.9.png diff --git a/res/drawable-hdpi/dialog_top_dark_bottom_medium.png b/java/res/drawable-hdpi/dialog_top_dark_bottom_medium.png Binary files differindex 7c79a4f90..7c79a4f90 100755 --- a/res/drawable-hdpi/dialog_top_dark_bottom_medium.png +++ b/java/res/drawable-hdpi/dialog_top_dark_bottom_medium.png diff --git a/res/drawable-hdpi/highlight_pressed.png b/java/res/drawable-hdpi/highlight_pressed.png Binary files differindex ae04901a0..ae04901a0 100644 --- a/res/drawable-hdpi/highlight_pressed.png +++ b/java/res/drawable-hdpi/highlight_pressed.png diff --git a/res/drawable-hdpi/ic_dialog_alert_large.png b/java/res/drawable-hdpi/ic_dialog_alert_large.png Binary files differindex 7e2646d65..7e2646d65 100755 --- a/res/drawable-hdpi/ic_dialog_alert_large.png +++ b/java/res/drawable-hdpi/ic_dialog_alert_large.png diff --git a/res/drawable-hdpi/ic_dialog_keyboard.png b/java/res/drawable-hdpi/ic_dialog_keyboard.png Binary files differindex c7729566c..c7729566c 100755 --- a/res/drawable-hdpi/ic_dialog_keyboard.png +++ b/java/res/drawable-hdpi/ic_dialog_keyboard.png diff --git a/res/drawable-hdpi/ic_dialog_voice_input.png b/java/res/drawable-hdpi/ic_dialog_voice_input.png Binary files differindex 11a3cfe77..11a3cfe77 100755 --- a/res/drawable-hdpi/ic_dialog_voice_input.png +++ b/java/res/drawable-hdpi/ic_dialog_voice_input.png diff --git a/res/drawable-hdpi/ic_dialog_wave_0_0.png b/java/res/drawable-hdpi/ic_dialog_wave_0_0.png Binary files differindex 33023c3f7..33023c3f7 100755 --- a/res/drawable-hdpi/ic_dialog_wave_0_0.png +++ b/java/res/drawable-hdpi/ic_dialog_wave_0_0.png diff --git a/res/drawable-hdpi/ic_dialog_wave_1_3.png b/java/res/drawable-hdpi/ic_dialog_wave_1_3.png Binary files differindex 662686c0f..662686c0f 100755 --- a/res/drawable-hdpi/ic_dialog_wave_1_3.png +++ b/java/res/drawable-hdpi/ic_dialog_wave_1_3.png diff --git a/res/drawable-hdpi/ic_dialog_wave_2_3.png b/java/res/drawable-hdpi/ic_dialog_wave_2_3.png Binary files differindex e23ada57e..e23ada57e 100755 --- a/res/drawable-hdpi/ic_dialog_wave_2_3.png +++ b/java/res/drawable-hdpi/ic_dialog_wave_2_3.png diff --git a/res/drawable-hdpi/ic_dialog_wave_3_3.png b/java/res/drawable-hdpi/ic_dialog_wave_3_3.png Binary files differindex 5fe5492ad..5fe5492ad 100755 --- a/res/drawable-hdpi/ic_dialog_wave_3_3.png +++ b/java/res/drawable-hdpi/ic_dialog_wave_3_3.png diff --git a/res/drawable-hdpi/ic_dialog_wave_4_3.png b/java/res/drawable-hdpi/ic_dialog_wave_4_3.png Binary files differindex 81b803fd0..81b803fd0 100755 --- a/res/drawable-hdpi/ic_dialog_wave_4_3.png +++ b/java/res/drawable-hdpi/ic_dialog_wave_4_3.png diff --git a/res/drawable-hdpi/ic_mic_dialog.png b/java/res/drawable-hdpi/ic_mic_dialog.png Binary files differindex 349dc4b37..349dc4b37 100644 --- a/res/drawable-hdpi/ic_mic_dialog.png +++ b/java/res/drawable-hdpi/ic_mic_dialog.png diff --git a/res/drawable-hdpi/ic_suggest_strip_microphone.png b/java/res/drawable-hdpi/ic_suggest_strip_microphone.png Binary files differindex c00b4aaa6..c00b4aaa6 100644 --- a/res/drawable-hdpi/ic_suggest_strip_microphone.png +++ b/java/res/drawable-hdpi/ic_suggest_strip_microphone.png diff --git a/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png b/java/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png Binary files differindex 256dc3d61..256dc3d61 100644 --- a/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png +++ b/java/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png diff --git a/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png b/java/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png Binary files differindex e375f262f..e375f262f 100755 --- a/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png +++ b/java/res/drawable-hdpi/ic_suggest_strip_scroll_left_arrow.png diff --git a/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png b/java/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png Binary files differindex d38ae7562..d38ae7562 100755 --- a/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png +++ b/java/res/drawable-hdpi/ic_suggest_strip_scroll_right_arrow.png diff --git a/res/drawable-hdpi/keyboard_background.9.png b/java/res/drawable-hdpi/keyboard_background.9.png Binary files differindex edffac5b8..edffac5b8 100755 --- a/res/drawable-hdpi/keyboard_background.9.png +++ b/java/res/drawable-hdpi/keyboard_background.9.png diff --git a/res/drawable-hdpi/keyboard_suggest_strip.9.png b/java/res/drawable-hdpi/keyboard_suggest_strip.9.png Binary files differindex 0cbb3ed86..0cbb3ed86 100755 --- a/res/drawable-hdpi/keyboard_suggest_strip.9.png +++ b/java/res/drawable-hdpi/keyboard_suggest_strip.9.png diff --git a/res/drawable-hdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png Binary files differindex a5980388a..a5980388a 100644 --- a/res/drawable-hdpi/keyboard_suggest_strip_divider.png +++ b/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png diff --git a/res/drawable-hdpi/list_selector_background_pressed.9.png b/java/res/drawable-hdpi/list_selector_background_pressed.9.png Binary files differindex ba79cf7f8..ba79cf7f8 100644 --- a/res/drawable-hdpi/list_selector_background_pressed.9.png +++ b/java/res/drawable-hdpi/list_selector_background_pressed.9.png diff --git a/res/drawable-hdpi/mic_slash.png b/java/res/drawable-hdpi/mic_slash.png Binary files differindex a7b734c71..a7b734c71 100644 --- a/res/drawable-hdpi/mic_slash.png +++ b/java/res/drawable-hdpi/mic_slash.png diff --git a/res/drawable-hdpi/ok_cancel.png b/java/res/drawable-hdpi/ok_cancel.png Binary files differindex 6a99528ef..6a99528ef 100755 --- a/res/drawable-hdpi/ok_cancel.png +++ b/java/res/drawable-hdpi/ok_cancel.png diff --git a/res/drawable-hdpi/speak_now_level0.png b/java/res/drawable-hdpi/speak_now_level0.png Binary files differindex a681da606..a681da606 100755 --- a/res/drawable-hdpi/speak_now_level0.png +++ b/java/res/drawable-hdpi/speak_now_level0.png diff --git a/res/drawable-hdpi/speak_now_level1.png b/java/res/drawable-hdpi/speak_now_level1.png Binary files differindex 0dbec69a7..0dbec69a7 100755 --- a/res/drawable-hdpi/speak_now_level1.png +++ b/java/res/drawable-hdpi/speak_now_level1.png diff --git a/res/drawable-hdpi/speak_now_level2.png b/java/res/drawable-hdpi/speak_now_level2.png Binary files differindex 45cbff2b7..45cbff2b7 100755 --- a/res/drawable-hdpi/speak_now_level2.png +++ b/java/res/drawable-hdpi/speak_now_level2.png diff --git a/res/drawable-hdpi/speak_now_level3.png b/java/res/drawable-hdpi/speak_now_level3.png Binary files differindex abda8f683..abda8f683 100755 --- a/res/drawable-hdpi/speak_now_level3.png +++ b/java/res/drawable-hdpi/speak_now_level3.png diff --git a/res/drawable-hdpi/speak_now_level4.png b/java/res/drawable-hdpi/speak_now_level4.png Binary files differindex 18356351a..18356351a 100755 --- a/res/drawable-hdpi/speak_now_level4.png +++ b/java/res/drawable-hdpi/speak_now_level4.png diff --git a/res/drawable-hdpi/speak_now_level5.png b/java/res/drawable-hdpi/speak_now_level5.png Binary files differindex 7d4fd5f20..7d4fd5f20 100755 --- a/res/drawable-hdpi/speak_now_level5.png +++ b/java/res/drawable-hdpi/speak_now_level5.png diff --git a/res/drawable-hdpi/speak_now_level6.png b/java/res/drawable-hdpi/speak_now_level6.png Binary files differindex e06990faa..e06990faa 100755 --- a/res/drawable-hdpi/speak_now_level6.png +++ b/java/res/drawable-hdpi/speak_now_level6.png diff --git a/res/drawable-hdpi/sym_keyboard_123_mic.png b/java/res/drawable-hdpi/sym_keyboard_123_mic.png Binary files differindex 62669803d..62669803d 100644 --- a/res/drawable-hdpi/sym_keyboard_123_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_123_mic.png diff --git a/res/drawable-hdpi/sym_keyboard_delete.png b/java/res/drawable-hdpi/sym_keyboard_delete.png Binary files differindex 59d78bec0..59d78bec0 100755 --- a/res/drawable-hdpi/sym_keyboard_delete.png +++ b/java/res/drawable-hdpi/sym_keyboard_delete.png diff --git a/res/drawable-hdpi/sym_keyboard_done.png b/java/res/drawable-hdpi/sym_keyboard_done.png Binary files differindex 471c5021b..471c5021b 100755 --- a/res/drawable-hdpi/sym_keyboard_done.png +++ b/java/res/drawable-hdpi/sym_keyboard_done.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png b/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png Binary files differindex f57e581d5..f57e581d5 100644 --- a/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png Binary files differindex ca7637552..ca7637552 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_delete.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_done.png b/java/res/drawable-hdpi/sym_keyboard_feedback_done.png Binary files differindex 7015e266a..7015e266a 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_done.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_done.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png Binary files differindex c7638bff1..c7638bff1 100644 --- a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png Binary files differindex 7acb07c86..7acb07c86 100644 --- a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_mic.png b/java/res/drawable-hdpi/sym_keyboard_feedback_mic.png Binary files differindex cb86a5598..cb86a5598 100644 --- a/res/drawable-hdpi/sym_keyboard_feedback_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_mic.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_numalt.png b/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png Binary files differindex 728c6f7d4..728c6f7d4 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_numalt.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_return.png b/java/res/drawable-hdpi/sym_keyboard_feedback_return.png Binary files differindex ae57299e4..ae57299e4 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_return.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_return.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_search.png b/java/res/drawable-hdpi/sym_keyboard_feedback_search.png Binary files differindex d931b39e2..d931b39e2 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_search.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_search.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_shift.png b/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png Binary files differindex 4db31c849..4db31c849 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_shift.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png b/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png Binary files differindex 3fd5659fd..3fd5659fd 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_space.png b/java/res/drawable-hdpi/sym_keyboard_feedback_space.png Binary files differindex 98266ee52..98266ee52 100755 --- a/res/drawable-hdpi/sym_keyboard_feedback_space.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_space.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_tab.png b/java/res/drawable-hdpi/sym_keyboard_feedback_tab.png Binary files differindex 7754752f3..7754752f3 100644 --- a/res/drawable-hdpi/sym_keyboard_feedback_tab.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_tab.png diff --git a/res/drawable-hdpi/sym_keyboard_feedback_tabprev.png b/java/res/drawable-hdpi/sym_keyboard_feedback_tabprev.png Binary files differindex 36f6b5364..36f6b5364 100644 --- a/res/drawable-hdpi/sym_keyboard_feedback_tabprev.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_tabprev.png diff --git a/res/drawable-hdpi/sym_keyboard_globe.png b/java/res/drawable-hdpi/sym_keyboard_globe.png Binary files differindex fa747642d..fa747642d 100644 --- a/res/drawable-hdpi/sym_keyboard_globe.png +++ b/java/res/drawable-hdpi/sym_keyboard_globe.png diff --git a/res/drawable-hdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png Binary files differindex 65ccfda87..65ccfda87 100644 --- a/res/drawable-hdpi/sym_keyboard_language_arrows_left.png +++ b/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png diff --git a/res/drawable-hdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png Binary files differindex 0d01bc224..0d01bc224 100644 --- a/res/drawable-hdpi/sym_keyboard_language_arrows_right.png +++ b/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png diff --git a/res/drawable-hdpi/sym_keyboard_mic.png b/java/res/drawable-hdpi/sym_keyboard_mic.png Binary files differindex 0a0a68a96..0a0a68a96 100644 --- a/res/drawable-hdpi/sym_keyboard_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_mic.png diff --git a/res/drawable-hdpi/sym_keyboard_num0.png b/java/res/drawable-hdpi/sym_keyboard_num0.png Binary files differindex 10ac70b9d..10ac70b9d 100755 --- a/res/drawable-hdpi/sym_keyboard_num0.png +++ b/java/res/drawable-hdpi/sym_keyboard_num0.png diff --git a/res/drawable-hdpi/sym_keyboard_num1.png b/java/res/drawable-hdpi/sym_keyboard_num1.png Binary files differindex 0fc03efa5..0fc03efa5 100755 --- a/res/drawable-hdpi/sym_keyboard_num1.png +++ b/java/res/drawable-hdpi/sym_keyboard_num1.png diff --git a/res/drawable-hdpi/sym_keyboard_num2.png b/java/res/drawable-hdpi/sym_keyboard_num2.png Binary files differindex 283560b35..283560b35 100755 --- a/res/drawable-hdpi/sym_keyboard_num2.png +++ b/java/res/drawable-hdpi/sym_keyboard_num2.png diff --git a/res/drawable-hdpi/sym_keyboard_num3.png b/java/res/drawable-hdpi/sym_keyboard_num3.png Binary files differindex 9a3b3294b..9a3b3294b 100755 --- a/res/drawable-hdpi/sym_keyboard_num3.png +++ b/java/res/drawable-hdpi/sym_keyboard_num3.png diff --git a/res/drawable-hdpi/sym_keyboard_num4.png b/java/res/drawable-hdpi/sym_keyboard_num4.png Binary files differindex f13ff1ae9..f13ff1ae9 100755 --- a/res/drawable-hdpi/sym_keyboard_num4.png +++ b/java/res/drawable-hdpi/sym_keyboard_num4.png diff --git a/res/drawable-hdpi/sym_keyboard_num5.png b/java/res/drawable-hdpi/sym_keyboard_num5.png Binary files differindex c251329fa..c251329fa 100755 --- a/res/drawable-hdpi/sym_keyboard_num5.png +++ b/java/res/drawable-hdpi/sym_keyboard_num5.png diff --git a/res/drawable-hdpi/sym_keyboard_num6.png b/java/res/drawable-hdpi/sym_keyboard_num6.png Binary files differindex 4acba4c91..4acba4c91 100755 --- a/res/drawable-hdpi/sym_keyboard_num6.png +++ b/java/res/drawable-hdpi/sym_keyboard_num6.png diff --git a/res/drawable-hdpi/sym_keyboard_num7.png b/java/res/drawable-hdpi/sym_keyboard_num7.png Binary files differindex 14931c18c..14931c18c 100755 --- a/res/drawable-hdpi/sym_keyboard_num7.png +++ b/java/res/drawable-hdpi/sym_keyboard_num7.png diff --git a/res/drawable-hdpi/sym_keyboard_num8.png b/java/res/drawable-hdpi/sym_keyboard_num8.png Binary files differindex d4973fdc9..d4973fdc9 100755 --- a/res/drawable-hdpi/sym_keyboard_num8.png +++ b/java/res/drawable-hdpi/sym_keyboard_num8.png diff --git a/res/drawable-hdpi/sym_keyboard_num9.png b/java/res/drawable-hdpi/sym_keyboard_num9.png Binary files differindex 49cec66f4..49cec66f4 100755 --- a/res/drawable-hdpi/sym_keyboard_num9.png +++ b/java/res/drawable-hdpi/sym_keyboard_num9.png diff --git a/res/drawable-hdpi/sym_keyboard_numalt.png b/java/res/drawable-hdpi/sym_keyboard_numalt.png Binary files differindex 3cc5311cd..3cc5311cd 100755 --- a/res/drawable-hdpi/sym_keyboard_numalt.png +++ b/java/res/drawable-hdpi/sym_keyboard_numalt.png diff --git a/res/drawable-hdpi/sym_keyboard_numpound.png b/java/res/drawable-hdpi/sym_keyboard_numpound.png Binary files differindex d09133929..d09133929 100755 --- a/res/drawable-hdpi/sym_keyboard_numpound.png +++ b/java/res/drawable-hdpi/sym_keyboard_numpound.png diff --git a/res/drawable-hdpi/sym_keyboard_numstar.png b/java/res/drawable-hdpi/sym_keyboard_numstar.png Binary files differindex e838e169f..e838e169f 100755 --- a/res/drawable-hdpi/sym_keyboard_numstar.png +++ b/java/res/drawable-hdpi/sym_keyboard_numstar.png diff --git a/res/drawable-hdpi/sym_keyboard_return.png b/java/res/drawable-hdpi/sym_keyboard_return.png Binary files differindex 58505c5e0..58505c5e0 100755 --- a/res/drawable-hdpi/sym_keyboard_return.png +++ b/java/res/drawable-hdpi/sym_keyboard_return.png diff --git a/res/drawable-hdpi/sym_keyboard_search.png b/java/res/drawable-hdpi/sym_keyboard_search.png Binary files differindex e72cde3bb..e72cde3bb 100755 --- a/res/drawable-hdpi/sym_keyboard_search.png +++ b/java/res/drawable-hdpi/sym_keyboard_search.png diff --git a/res/drawable-hdpi/sym_keyboard_shift.png b/java/res/drawable-hdpi/sym_keyboard_shift.png Binary files differindex 814908178..814908178 100755 --- a/res/drawable-hdpi/sym_keyboard_shift.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift.png diff --git a/res/drawable-hdpi/sym_keyboard_shift_locked.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked.png Binary files differindex 31ca27718..31ca27718 100755 --- a/res/drawable-hdpi/sym_keyboard_shift_locked.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift_locked.png diff --git a/res/drawable-hdpi/sym_keyboard_space.png b/java/res/drawable-hdpi/sym_keyboard_space.png Binary files differindex 3e98b3014..3e98b3014 100755 --- a/res/drawable-hdpi/sym_keyboard_space.png +++ b/java/res/drawable-hdpi/sym_keyboard_space.png diff --git a/res/drawable-hdpi/sym_keyboard_tab.png b/java/res/drawable-hdpi/sym_keyboard_tab.png Binary files differindex 1d4d92bd1..1d4d92bd1 100644 --- a/res/drawable-hdpi/sym_keyboard_tab.png +++ b/java/res/drawable-hdpi/sym_keyboard_tab.png diff --git a/res/drawable-hdpi/sym_keyboard_tabprev.png b/java/res/drawable-hdpi/sym_keyboard_tabprev.png Binary files differindex 51bff1bcd..51bff1bcd 100644 --- a/res/drawable-hdpi/sym_keyboard_tabprev.png +++ b/java/res/drawable-hdpi/sym_keyboard_tabprev.png diff --git a/res/drawable-hdpi/voice_ime_background.9.png b/java/res/drawable-hdpi/voice_ime_background.9.png Binary files differindex 73fb0901e..73fb0901e 100755 --- a/res/drawable-hdpi/voice_ime_background.9.png +++ b/java/res/drawable-hdpi/voice_ime_background.9.png diff --git a/res/drawable-hdpi/working.png b/java/res/drawable-hdpi/working.png Binary files differindex 8b51ed116..8b51ed116 100755 --- a/res/drawable-hdpi/working.png +++ b/java/res/drawable-hdpi/working.png diff --git a/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png Binary files differindex 603bf0e15..603bf0e15 100755 --- a/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png diff --git a/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png Binary files differindex 6ddd516e7..6ddd516e7 100755 --- a/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png diff --git a/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png Binary files differindex 65fdeb353..65fdeb353 100755 --- a/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png diff --git a/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png Binary files differindex 7ec915fe8..7ec915fe8 100755 --- a/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png diff --git a/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png Binary files differindex 439271723..439271723 100755 --- a/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png diff --git a/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png Binary files differindex c2cc32044..c2cc32044 100755 --- a/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png diff --git a/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png Binary files differindex 1a03c52e6..1a03c52e6 100755 --- a/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png +++ b/java/res/drawable-land-hdpi/keyboard_suggest_strip_divider.png diff --git a/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png Binary files differindex ea2506c6d..ea2506c6d 100644 --- a/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png +++ b/java/res/drawable-land-mdpi/btn_keyboard_key_normal.9.png diff --git a/res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png Binary files differindex bda9b8394..bda9b8394 100644 --- a/res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png +++ b/java/res/drawable-land-mdpi/btn_keyboard_key_normal_off.9.png diff --git a/res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png Binary files differindex 0c16ed509..0c16ed509 100644 --- a/res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png +++ b/java/res/drawable-land-mdpi/btn_keyboard_key_normal_on.9.png diff --git a/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png Binary files differindex 6b5c718c7..6b5c718c7 100755 --- a/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png +++ b/java/res/drawable-land-mdpi/btn_keyboard_key_pressed.9.png diff --git a/res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png Binary files differindex bdcf06e1b..bdcf06e1b 100644 --- a/res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png +++ b/java/res/drawable-land-mdpi/btn_keyboard_key_pressed_off.9.png diff --git a/res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png Binary files differindex 79621a9e6..79621a9e6 100644 --- a/res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png +++ b/java/res/drawable-land-mdpi/btn_keyboard_key_pressed_on.9.png diff --git a/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png Binary files differindex e54c5b099..e54c5b099 100644 --- a/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png +++ b/java/res/drawable-land-mdpi/keyboard_suggest_strip_divider.png diff --git a/res/drawable-land/btn_keyboard_key.xml b/java/res/drawable-land/btn_keyboard_key.xml index 45578e582..45578e582 100644 --- a/res/drawable-land/btn_keyboard_key.xml +++ b/java/res/drawable-land/btn_keyboard_key.xml diff --git a/res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png Binary files differindex 20f3d5087..20f3d5087 100644 --- a/res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_normal.9.png diff --git a/res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png Binary files differindex 1ed3065c5..1ed3065c5 100644 --- a/res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_fulltrans_pressed.9.png diff --git a/res/drawable-mdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal.9.png Binary files differindex 7ba18dd25..7ba18dd25 100644 --- a/res/drawable-mdpi/btn_keyboard_key_normal.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_normal.9.png diff --git a/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png Binary files differindex bda9b8394..bda9b8394 100644 --- a/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_normal_off.9.png diff --git a/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png Binary files differindex 0c16ed509..0c16ed509 100644 --- a/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_normal_on.9.png diff --git a/res/drawable-mdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed.9.png Binary files differindex 39b9314a1..39b9314a1 100644 --- a/res/drawable-mdpi/btn_keyboard_key_pressed.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_pressed.9.png diff --git a/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png Binary files differindex bdcf06e1b..bdcf06e1b 100644 --- a/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_pressed_off.9.png diff --git a/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png Binary files differindex 79621a9e6..79621a9e6 100644 --- a/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_pressed_on.9.png diff --git a/res/drawable-mdpi/candidate_feedback_background.9.png b/java/res/drawable-mdpi/candidate_feedback_background.9.png Binary files differindex 2a80f096d..2a80f096d 100644 --- a/res/drawable-mdpi/candidate_feedback_background.9.png +++ b/java/res/drawable-mdpi/candidate_feedback_background.9.png diff --git a/res/drawable-mdpi/dialog_bubble_step02.9.png b/java/res/drawable-mdpi/dialog_bubble_step02.9.png Binary files differindex d77f85fe2..d77f85fe2 100755 --- a/res/drawable-mdpi/dialog_bubble_step02.9.png +++ b/java/res/drawable-mdpi/dialog_bubble_step02.9.png diff --git a/res/drawable-mdpi/dialog_bubble_step07.9.png b/java/res/drawable-mdpi/dialog_bubble_step07.9.png Binary files differindex 80f4a0eaa..80f4a0eaa 100755 --- a/res/drawable-mdpi/dialog_bubble_step07.9.png +++ b/java/res/drawable-mdpi/dialog_bubble_step07.9.png diff --git a/res/drawable-mdpi/highlight_pressed.png b/java/res/drawable-mdpi/highlight_pressed.png Binary files differindex d27f1061a..d27f1061a 100644 --- a/res/drawable-mdpi/highlight_pressed.png +++ b/java/res/drawable-mdpi/highlight_pressed.png diff --git a/res/drawable-mdpi/ic_dialog_keyboard.png b/java/res/drawable-mdpi/ic_dialog_keyboard.png Binary files differindex 9a5aada8b..9a5aada8b 100644 --- a/res/drawable-mdpi/ic_dialog_keyboard.png +++ b/java/res/drawable-mdpi/ic_dialog_keyboard.png diff --git a/res/drawable-mdpi/ic_mic_dialog.png b/java/res/drawable-mdpi/ic_mic_dialog.png Binary files differindex 77613ca05..77613ca05 100644 --- a/res/drawable-mdpi/ic_mic_dialog.png +++ b/java/res/drawable-mdpi/ic_mic_dialog.png diff --git a/res/drawable-mdpi/ic_suggest_strip_microphone.png b/java/res/drawable-mdpi/ic_suggest_strip_microphone.png Binary files differindex 18f314a61..18f314a61 100644 --- a/res/drawable-mdpi/ic_suggest_strip_microphone.png +++ b/java/res/drawable-mdpi/ic_suggest_strip_microphone.png diff --git a/res/drawable-mdpi/ic_suggest_strip_microphone_swipe.png b/java/res/drawable-mdpi/ic_suggest_strip_microphone_swipe.png Binary files differindex ff629b674..ff629b674 100644 --- a/res/drawable-mdpi/ic_suggest_strip_microphone_swipe.png +++ b/java/res/drawable-mdpi/ic_suggest_strip_microphone_swipe.png diff --git a/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png b/java/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png Binary files differindex a9adef2ba..a9adef2ba 100644 --- a/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png +++ b/java/res/drawable-mdpi/ic_suggest_strip_scroll_left_arrow.png diff --git a/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png b/java/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png Binary files differindex 639a28711..639a28711 100644 --- a/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png +++ b/java/res/drawable-mdpi/ic_suggest_strip_scroll_right_arrow.png diff --git a/res/drawable-mdpi/keyboard_background.9.png b/java/res/drawable-mdpi/keyboard_background.9.png Binary files differindex 2bd4b628d..2bd4b628d 100644 --- a/res/drawable-mdpi/keyboard_background.9.png +++ b/java/res/drawable-mdpi/keyboard_background.9.png diff --git a/res/drawable-mdpi/keyboard_suggest_strip.9.png b/java/res/drawable-mdpi/keyboard_suggest_strip.9.png Binary files differindex 71bf5e8f4..71bf5e8f4 100644 --- a/res/drawable-mdpi/keyboard_suggest_strip.9.png +++ b/java/res/drawable-mdpi/keyboard_suggest_strip.9.png diff --git a/res/drawable-mdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-mdpi/keyboard_suggest_strip_divider.png Binary files differindex c9413d7c1..c9413d7c1 100644 --- a/res/drawable-mdpi/keyboard_suggest_strip_divider.png +++ b/java/res/drawable-mdpi/keyboard_suggest_strip_divider.png diff --git a/res/drawable-mdpi/list_selector_background_pressed.9.png b/java/res/drawable-mdpi/list_selector_background_pressed.9.png Binary files differindex 02b4e9a53..02b4e9a53 100644 --- a/res/drawable-mdpi/list_selector_background_pressed.9.png +++ b/java/res/drawable-mdpi/list_selector_background_pressed.9.png diff --git a/res/drawable-mdpi/sym_keyboard_123_mic.png b/java/res/drawable-mdpi/sym_keyboard_123_mic.png Binary files differindex 35afe0821..35afe0821 100644 --- a/res/drawable-mdpi/sym_keyboard_123_mic.png +++ b/java/res/drawable-mdpi/sym_keyboard_123_mic.png diff --git a/res/drawable-mdpi/sym_keyboard_delete.png b/java/res/drawable-mdpi/sym_keyboard_delete.png Binary files differindex 43a033ead..43a033ead 100644 --- a/res/drawable-mdpi/sym_keyboard_delete.png +++ b/java/res/drawable-mdpi/sym_keyboard_delete.png diff --git a/res/drawable-mdpi/sym_keyboard_done.png b/java/res/drawable-mdpi/sym_keyboard_done.png Binary files differindex c0d6d1394..c0d6d1394 100755 --- a/res/drawable-mdpi/sym_keyboard_done.png +++ b/java/res/drawable-mdpi/sym_keyboard_done.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png b/java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png Binary files differindex bc11cf31a..bc11cf31a 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-mdpi/sym_keyboard_feedback_delete.png Binary files differindex 1edb10b4e..1edb10b4e 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_delete.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_delete.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_done.png b/java/res/drawable-mdpi/sym_keyboard_feedback_done.png Binary files differindex 0d7ebd4e5..0d7ebd4e5 100755 --- a/res/drawable-mdpi/sym_keyboard_feedback_done.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_done.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png Binary files differindex e3f80fada..e3f80fada 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png Binary files differindex 3cb0d9913..3cb0d9913 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_mic.png b/java/res/drawable-mdpi/sym_keyboard_feedback_mic.png Binary files differindex 247d5b3a9..247d5b3a9 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_mic.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_mic.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_numalt.png b/java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png Binary files differindex aac737615..aac737615 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_numalt.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_numalt.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_return.png b/java/res/drawable-mdpi/sym_keyboard_feedback_return.png Binary files differindex 03d9c9b2d..03d9c9b2d 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_return.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_return.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_search.png b/java/res/drawable-mdpi/sym_keyboard_feedback_search.png Binary files differindex f4af341eb..f4af341eb 100755 --- a/res/drawable-mdpi/sym_keyboard_feedback_search.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_search.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_shift.png b/java/res/drawable-mdpi/sym_keyboard_feedback_shift.png Binary files differindex 97f4661f8..97f4661f8 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_shift.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_shift.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png b/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png Binary files differindex 7194b30b0..7194b30b0 100755 --- a/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_space.png b/java/res/drawable-mdpi/sym_keyboard_feedback_space.png Binary files differindex 739db6879..739db6879 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_space.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_space.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_tab.png b/java/res/drawable-mdpi/sym_keyboard_feedback_tab.png Binary files differindex 593fa6703..593fa6703 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_tab.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_tab.png diff --git a/res/drawable-mdpi/sym_keyboard_feedback_tabprev.png b/java/res/drawable-mdpi/sym_keyboard_feedback_tabprev.png Binary files differindex d4b3e7db3..d4b3e7db3 100644 --- a/res/drawable-mdpi/sym_keyboard_feedback_tabprev.png +++ b/java/res/drawable-mdpi/sym_keyboard_feedback_tabprev.png diff --git a/res/drawable-mdpi/sym_keyboard_globe.png b/java/res/drawable-mdpi/sym_keyboard_globe.png Binary files differindex f30c1b640..f30c1b640 100644 --- a/res/drawable-mdpi/sym_keyboard_globe.png +++ b/java/res/drawable-mdpi/sym_keyboard_globe.png diff --git a/res/drawable-mdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png Binary files differindex 91eda5f2d..91eda5f2d 100644 --- a/res/drawable-mdpi/sym_keyboard_language_arrows_left.png +++ b/java/res/drawable-mdpi/sym_keyboard_language_arrows_left.png diff --git a/res/drawable-mdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png Binary files differindex 62a5beba4..62a5beba4 100644 --- a/res/drawable-mdpi/sym_keyboard_language_arrows_right.png +++ b/java/res/drawable-mdpi/sym_keyboard_language_arrows_right.png diff --git a/res/drawable-mdpi/sym_keyboard_mic.png b/java/res/drawable-mdpi/sym_keyboard_mic.png Binary files differindex a75809549..a75809549 100644 --- a/res/drawable-mdpi/sym_keyboard_mic.png +++ b/java/res/drawable-mdpi/sym_keyboard_mic.png diff --git a/res/drawable-mdpi/sym_keyboard_num0.png b/java/res/drawable-mdpi/sym_keyboard_num0.png Binary files differindex e7007c871..e7007c871 100644 --- a/res/drawable-mdpi/sym_keyboard_num0.png +++ b/java/res/drawable-mdpi/sym_keyboard_num0.png diff --git a/res/drawable-mdpi/sym_keyboard_num1.png b/java/res/drawable-mdpi/sym_keyboard_num1.png Binary files differindex aaac11b0c..aaac11b0c 100644 --- a/res/drawable-mdpi/sym_keyboard_num1.png +++ b/java/res/drawable-mdpi/sym_keyboard_num1.png diff --git a/res/drawable-mdpi/sym_keyboard_num2.png b/java/res/drawable-mdpi/sym_keyboard_num2.png Binary files differindex 4372eb8f0..4372eb8f0 100644 --- a/res/drawable-mdpi/sym_keyboard_num2.png +++ b/java/res/drawable-mdpi/sym_keyboard_num2.png diff --git a/res/drawable-mdpi/sym_keyboard_num3.png b/java/res/drawable-mdpi/sym_keyboard_num3.png Binary files differindex 6f54c850f..6f54c850f 100644 --- a/res/drawable-mdpi/sym_keyboard_num3.png +++ b/java/res/drawable-mdpi/sym_keyboard_num3.png diff --git a/res/drawable-mdpi/sym_keyboard_num4.png b/java/res/drawable-mdpi/sym_keyboard_num4.png Binary files differindex 3e50bb957..3e50bb957 100644 --- a/res/drawable-mdpi/sym_keyboard_num4.png +++ b/java/res/drawable-mdpi/sym_keyboard_num4.png diff --git a/res/drawable-mdpi/sym_keyboard_num5.png b/java/res/drawable-mdpi/sym_keyboard_num5.png Binary files differindex c39ef4404..c39ef4404 100644 --- a/res/drawable-mdpi/sym_keyboard_num5.png +++ b/java/res/drawable-mdpi/sym_keyboard_num5.png diff --git a/res/drawable-mdpi/sym_keyboard_num6.png b/java/res/drawable-mdpi/sym_keyboard_num6.png Binary files differindex ea88ceb94..ea88ceb94 100644 --- a/res/drawable-mdpi/sym_keyboard_num6.png +++ b/java/res/drawable-mdpi/sym_keyboard_num6.png diff --git a/res/drawable-mdpi/sym_keyboard_num7.png b/java/res/drawable-mdpi/sym_keyboard_num7.png Binary files differindex ce800ba42..ce800ba42 100644 --- a/res/drawable-mdpi/sym_keyboard_num7.png +++ b/java/res/drawable-mdpi/sym_keyboard_num7.png diff --git a/res/drawable-mdpi/sym_keyboard_num8.png b/java/res/drawable-mdpi/sym_keyboard_num8.png Binary files differindex 1a8ff94bf..1a8ff94bf 100644 --- a/res/drawable-mdpi/sym_keyboard_num8.png +++ b/java/res/drawable-mdpi/sym_keyboard_num8.png diff --git a/res/drawable-mdpi/sym_keyboard_num9.png b/java/res/drawable-mdpi/sym_keyboard_num9.png Binary files differindex 8b344c0a6..8b344c0a6 100644 --- a/res/drawable-mdpi/sym_keyboard_num9.png +++ b/java/res/drawable-mdpi/sym_keyboard_num9.png diff --git a/res/drawable-mdpi/sym_keyboard_numalt.png b/java/res/drawable-mdpi/sym_keyboard_numalt.png Binary files differindex 32a2cf3ca..32a2cf3ca 100644 --- a/res/drawable-mdpi/sym_keyboard_numalt.png +++ b/java/res/drawable-mdpi/sym_keyboard_numalt.png diff --git a/res/drawable-mdpi/sym_keyboard_numpound.png b/java/res/drawable-mdpi/sym_keyboard_numpound.png Binary files differindex b2419d9ab..b2419d9ab 100644 --- a/res/drawable-mdpi/sym_keyboard_numpound.png +++ b/java/res/drawable-mdpi/sym_keyboard_numpound.png diff --git a/res/drawable-mdpi/sym_keyboard_numstar.png b/java/res/drawable-mdpi/sym_keyboard_numstar.png Binary files differindex cb66f968f..cb66f968f 100644 --- a/res/drawable-mdpi/sym_keyboard_numstar.png +++ b/java/res/drawable-mdpi/sym_keyboard_numstar.png diff --git a/res/drawable-mdpi/sym_keyboard_return.png b/java/res/drawable-mdpi/sym_keyboard_return.png Binary files differindex 17f257439..17f257439 100644 --- a/res/drawable-mdpi/sym_keyboard_return.png +++ b/java/res/drawable-mdpi/sym_keyboard_return.png diff --git a/res/drawable-mdpi/sym_keyboard_search.png b/java/res/drawable-mdpi/sym_keyboard_search.png Binary files differindex 127755d6b..127755d6b 100755 --- a/res/drawable-mdpi/sym_keyboard_search.png +++ b/java/res/drawable-mdpi/sym_keyboard_search.png diff --git a/res/drawable-mdpi/sym_keyboard_shift.png b/java/res/drawable-mdpi/sym_keyboard_shift.png Binary files differindex 0566e5a88..0566e5a88 100644 --- a/res/drawable-mdpi/sym_keyboard_shift.png +++ b/java/res/drawable-mdpi/sym_keyboard_shift.png diff --git a/res/drawable-mdpi/sym_keyboard_shift_locked.png b/java/res/drawable-mdpi/sym_keyboard_shift_locked.png Binary files differindex ccaf05d3b..ccaf05d3b 100755 --- a/res/drawable-mdpi/sym_keyboard_shift_locked.png +++ b/java/res/drawable-mdpi/sym_keyboard_shift_locked.png diff --git a/res/drawable-mdpi/sym_keyboard_space.png b/java/res/drawable-mdpi/sym_keyboard_space.png Binary files differindex 4e6273b89..4e6273b89 100644 --- a/res/drawable-mdpi/sym_keyboard_space.png +++ b/java/res/drawable-mdpi/sym_keyboard_space.png diff --git a/res/drawable-mdpi/sym_keyboard_tab.png b/java/res/drawable-mdpi/sym_keyboard_tab.png Binary files differindex cd9daff08..cd9daff08 100644 --- a/res/drawable-mdpi/sym_keyboard_tab.png +++ b/java/res/drawable-mdpi/sym_keyboard_tab.png diff --git a/res/drawable-mdpi/sym_keyboard_tabprev.png b/java/res/drawable-mdpi/sym_keyboard_tabprev.png Binary files differindex eb90872fc..eb90872fc 100644 --- a/res/drawable-mdpi/sym_keyboard_tabprev.png +++ b/java/res/drawable-mdpi/sym_keyboard_tabprev.png diff --git a/res/drawable/btn_keyboard_key.xml b/java/res/drawable/btn_keyboard_key.xml index 45578e582..45578e582 100644 --- a/res/drawable/btn_keyboard_key.xml +++ b/java/res/drawable/btn_keyboard_key.xml diff --git a/res/drawable/btn_keyboard_key_fulltrans.xml b/java/res/drawable/btn_keyboard_key_fulltrans.xml index bad2a931d..bad2a931d 100644 --- a/res/drawable/btn_keyboard_key_fulltrans.xml +++ b/java/res/drawable/btn_keyboard_key_fulltrans.xml diff --git a/res/drawable/cancel.png b/java/res/drawable/cancel.png Binary files differindex 081532bec..081532bec 100644 --- a/res/drawable/cancel.png +++ b/java/res/drawable/cancel.png diff --git a/res/drawable/caution.png b/java/res/drawable/caution.png Binary files differindex eaef53425..eaef53425 100644 --- a/res/drawable/caution.png +++ b/java/res/drawable/caution.png diff --git a/res/drawable/dialog_top_dark_bottom_medium.9.png b/java/res/drawable/dialog_top_dark_bottom_medium.9.png Binary files differindex cf7ecaf1e..cf7ecaf1e 100644 --- a/res/drawable/dialog_top_dark_bottom_medium.9.png +++ b/java/res/drawable/dialog_top_dark_bottom_medium.9.png diff --git a/res/drawable/ic_dialog_alert_large.png b/java/res/drawable/ic_dialog_alert_large.png Binary files differindex 2d4a164a7..2d4a164a7 100644 --- a/res/drawable/ic_dialog_alert_large.png +++ b/java/res/drawable/ic_dialog_alert_large.png diff --git a/res/drawable/ic_dialog_voice_input.png b/java/res/drawable/ic_dialog_voice_input.png Binary files differindex d28914132..d28914132 100644 --- a/res/drawable/ic_dialog_voice_input.png +++ b/java/res/drawable/ic_dialog_voice_input.png diff --git a/res/drawable/ic_dialog_wave_0_0.png b/java/res/drawable/ic_dialog_wave_0_0.png Binary files differindex 9c3c28f37..9c3c28f37 100644 --- a/res/drawable/ic_dialog_wave_0_0.png +++ b/java/res/drawable/ic_dialog_wave_0_0.png diff --git a/res/drawable/ic_dialog_wave_1_3.png b/java/res/drawable/ic_dialog_wave_1_3.png Binary files differindex d33bd0d9b..d33bd0d9b 100644 --- a/res/drawable/ic_dialog_wave_1_3.png +++ b/java/res/drawable/ic_dialog_wave_1_3.png diff --git a/res/drawable/ic_dialog_wave_2_3.png b/java/res/drawable/ic_dialog_wave_2_3.png Binary files differindex 5094a6e6c..5094a6e6c 100644 --- a/res/drawable/ic_dialog_wave_2_3.png +++ b/java/res/drawable/ic_dialog_wave_2_3.png diff --git a/res/drawable/ic_dialog_wave_3_3.png b/java/res/drawable/ic_dialog_wave_3_3.png Binary files differindex 69917564d..69917564d 100644 --- a/res/drawable/ic_dialog_wave_3_3.png +++ b/java/res/drawable/ic_dialog_wave_3_3.png diff --git a/res/drawable/ic_dialog_wave_4_3.png b/java/res/drawable/ic_dialog_wave_4_3.png Binary files differindex af5a84c31..af5a84c31 100644 --- a/res/drawable/ic_dialog_wave_4_3.png +++ b/java/res/drawable/ic_dialog_wave_4_3.png diff --git a/res/drawable/ic_suggest_scroll_background.xml b/java/res/drawable/ic_suggest_scroll_background.xml index 9d246e40e..9d246e40e 100644 --- a/res/drawable/ic_suggest_scroll_background.xml +++ b/java/res/drawable/ic_suggest_scroll_background.xml diff --git a/res/drawable/mic_slash.png b/java/res/drawable/mic_slash.png Binary files differindex 0b0fb5803..0b0fb5803 100644 --- a/res/drawable/mic_slash.png +++ b/java/res/drawable/mic_slash.png diff --git a/res/drawable/ok_cancel.png b/java/res/drawable/ok_cancel.png Binary files differindex 0601d3231..0601d3231 100644 --- a/res/drawable/ok_cancel.png +++ b/java/res/drawable/ok_cancel.png diff --git a/res/drawable/speak_now_level0.png b/java/res/drawable/speak_now_level0.png Binary files differindex abc845466..abc845466 100644 --- a/res/drawable/speak_now_level0.png +++ b/java/res/drawable/speak_now_level0.png diff --git a/res/drawable/speak_now_level1.png b/java/res/drawable/speak_now_level1.png Binary files differindex 67cb235bf..67cb235bf 100644 --- a/res/drawable/speak_now_level1.png +++ b/java/res/drawable/speak_now_level1.png diff --git a/res/drawable/speak_now_level2.png b/java/res/drawable/speak_now_level2.png Binary files differindex 1e07f26c6..1e07f26c6 100644 --- a/res/drawable/speak_now_level2.png +++ b/java/res/drawable/speak_now_level2.png diff --git a/res/drawable/speak_now_level3.png b/java/res/drawable/speak_now_level3.png Binary files differindex 31991daee..31991daee 100644 --- a/res/drawable/speak_now_level3.png +++ b/java/res/drawable/speak_now_level3.png diff --git a/res/drawable/speak_now_level4.png b/java/res/drawable/speak_now_level4.png Binary files differindex 7363ca892..7363ca892 100644 --- a/res/drawable/speak_now_level4.png +++ b/java/res/drawable/speak_now_level4.png diff --git a/res/drawable/speak_now_level5.png b/java/res/drawable/speak_now_level5.png Binary files differindex 9034908f4..9034908f4 100644 --- a/res/drawable/speak_now_level5.png +++ b/java/res/drawable/speak_now_level5.png diff --git a/res/drawable/speak_now_level6.png b/java/res/drawable/speak_now_level6.png Binary files differindex 3eaa9bdad..3eaa9bdad 100644 --- a/res/drawable/speak_now_level6.png +++ b/java/res/drawable/speak_now_level6.png diff --git a/res/drawable/voice_ime_background.9.png b/java/res/drawable/voice_ime_background.9.png Binary files differindex 67802492a..67802492a 100644 --- a/res/drawable/voice_ime_background.9.png +++ b/java/res/drawable/voice_ime_background.9.png diff --git a/res/drawable/voice_swipe_hint.png b/java/res/drawable/voice_swipe_hint.png Binary files differindex bb8873251..bb8873251 100644 --- a/res/drawable/voice_swipe_hint.png +++ b/java/res/drawable/voice_swipe_hint.png diff --git a/res/drawable/working.png b/java/res/drawable/working.png Binary files differindex 6246a6d1c..6246a6d1c 100644 --- a/res/drawable/working.png +++ b/java/res/drawable/working.png diff --git a/res/layout/bubble_text.xml b/java/res/layout/bubble_text.xml index c3957b65e..c3957b65e 100644 --- a/res/layout/bubble_text.xml +++ b/java/res/layout/bubble_text.xml diff --git a/res/layout/candidate_preview.xml b/java/res/layout/candidate_preview.xml index fe2002d46..fe2002d46 100755 --- a/res/layout/candidate_preview.xml +++ b/java/res/layout/candidate_preview.xml diff --git a/res/layout/candidates.xml b/java/res/layout/candidates.xml index 068c17e56..068c17e56 100755 --- a/res/layout/candidates.xml +++ b/java/res/layout/candidates.xml diff --git a/res/layout/input.xml b/java/res/layout/input.xml index 1d7c6f746..1d7c6f746 100755 --- a/res/layout/input.xml +++ b/java/res/layout/input.xml diff --git a/res/layout/input_trans.xml b/java/res/layout/input_trans.xml index a988bcc68..94806f7e3 100755 --- a/res/layout/input_trans.xml +++ b/java/res/layout/input_trans.xml @@ -25,5 +25,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#A0000000" + android:verticalCorrection="0dip" android:keyBackground="@drawable/btn_keyboard_key_fulltrans" /> diff --git a/res/layout/recognition_status.xml b/java/res/layout/recognition_status.xml index ea23824a1..49af77360 100644 --- a/res/layout/recognition_status.xml +++ b/java/res/layout/recognition_status.xml @@ -63,10 +63,10 @@ <ProgressBar android:id="@+id/progress" android:layout_height="60dip" android:layout_width="60dip" - android:layout_marginTop="20dip" - android:layout_gravity="center_horizontal" + android:layout_gravity="center" android:visibility="gone" android:indeterminate="true" + android:indeterminateOnly="false" /> diff --git a/res/layout/voice_punctuation_hint.xml b/java/res/layout/voice_punctuation_hint.xml index 629a7f2b5..629a7f2b5 100644 --- a/res/layout/voice_punctuation_hint.xml +++ b/java/res/layout/voice_punctuation_hint.xml diff --git a/res/layout/voice_swipe_hint.xml b/java/res/layout/voice_swipe_hint.xml index 4e8859a71..4e8859a71 100644 --- a/res/layout/voice_swipe_hint.xml +++ b/java/res/layout/voice_swipe_hint.xml diff --git a/res/raw/main.dict b/java/res/raw/main.dict Binary files differindex a456cf3d3..a456cf3d3 100755 --- a/res/raw/main.dict +++ b/java/res/raw/main.dict diff --git a/res/raw/type3.ogg b/java/res/raw/type3.ogg Binary files differindex 20e670807..20e670807 100755 --- a/res/raw/type3.ogg +++ b/java/res/raw/type3.ogg diff --git a/res/values-cs/bools.xml b/java/res/values-cs/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-cs/bools.xml +++ b/java/res/values-cs/bools.xml diff --git a/res/values-cs/donottranslate.xml b/java/res/values-cs/donottranslate.xml index 9c2a476a6..9c2a476a6 100644 --- a/res/values-cs/donottranslate.xml +++ b/java/res/values-cs/donottranslate.xml diff --git a/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index 02361e1c1..4bc1f5543 100644 --- a/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Klávesnice Android"</string> @@ -37,17 +42,17 @@ <!-- no translation found for auto_punctuate_summary (6589441565817502132) --> <skip /> <string name="quick_fixes" msgid="5353213327680897927">"Rychlé opravy"</string> - <string name="quick_fixes_summary" msgid="3405028402510332373">"Opravuje běžné překlepy"</string> - <string name="show_suggestions" msgid="507074425254289133">"Zobrazovat návrhy"</string> - <string name="show_suggestions_summary" msgid="1989672863935759654">"Při psaní zobrazovat návrhy slov"</string> + <string name="quick_fixes_summary" msgid="3405028402510332373">"Opravuje nejčastější chyby při psaní"</string> + <string name="show_suggestions" msgid="507074425254289133">"Zobrazit návrhy"</string> + <string name="show_suggestions_summary" msgid="1989672863935759654">"Zobrazovat navržená slova během psaní"</string> <string name="auto_complete" msgid="1103196318775486023">"Automatické dokončování"</string> - <string name="auto_complete_summary" msgid="6113149638718274624">"Stisknutí mezerníku nebo interpunkce automaticky vloží zvýrazněné slovo"</string> + <string name="auto_complete_summary" msgid="6113149638718274624">"Stisknutím mezerníku nebo interpunkčního znaménka automaticky vložíte zvýrazněné slovo."</string> <string-array name="prediction_modes"> - <item msgid="4870266572388153286">"Není"</item> + <item msgid="4870266572388153286">"Žádný"</item> <item msgid="1669461741568287396">"Základní"</item> <item msgid="4894328801530136615">"Pokročilé"</item> </string-array> - <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Uloženo"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Uloženo"</string> <string name="alternates_for_a" msgid="2566516493365324765">"áàâãäåæ"</string> <string name="alternates_for_e" msgid="3900510936875547555">"éěèêë"</string> <string name="alternates_for_i" msgid="7097915268629342242">"íìîï"</string> @@ -57,18 +62,18 @@ <string name="alternates_for_n" msgid="6257322556221886400">"ňñ"</string> <string name="alternates_for_c" msgid="151699780720639892">"čç"</string> <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string> - <string name="tip_long_press" msgid="6101270866284343344">"Podržením klávesy zobrazíte diakritiku (ž, á atd.)"</string> - <string name="tip_dismiss" msgid="7585579046862204381">"Stisknutím klávesy Zpět ↶ můžete klávesnici kdykoli zavřít"</string> + <string name="tip_long_press" msgid="6101270866284343344">"Podržením klávesy zobrazíte diakritiku (á, ž apod.)"</string> + <string name="tip_dismiss" msgid="7585579046862204381">"Stisknutím klávesy Zpět ↶ můžete klávesnici kdykoli zavřít."</string> <string name="tip_access_symbols" msgid="6344098517525531652">"Přístup k číslům a symbolům"</string> - <string name="tip_add_to_dictionary" msgid="1487293888469227817">"Stisknutím a podržením slova zcela vlevo toto slovo přidáte do slovníku"</string> - <string name="touch_to_continue" msgid="7869803257948414531">"Chcete-li pokračovat, dotkněte se této rady »"</string> - <string name="touch_to_finish" msgid="7990196086480585789">"Chcete-li tuto radu zavřít a začít psát, dotkněte se zde."</string> - <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Klávesnice se zobrazí, kdykoli se dotknete textového pole."</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Stisknutím a podržením klávesy zobrazíte diakritiku"\n"(ó, ø, ö, ô atd.)"</b></string> - <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Stisknutím této klávesy přejdete do režimu číslic a symbolů"</b></string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Opětovným stisknutím této klávesy se vrátíte zpět do režimu písmen"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Chcete-li změnit nastavení klávesnice, jako například automatické dokončování, stiskněte tuto klávesu a podržte ji."</b></string> - <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Zkuste to."</b></string> + <string name="tip_add_to_dictionary" msgid="1487293888469227817">"Stisknutím a podržením slova zcela vlevo toto slovo přidáte do slovníku."</string> + <string name="touch_to_continue" msgid="7869803257948414531">"Chcete-li pokračovat, dotkněte se tohoto tipu »"</string> + <string name="touch_to_finish" msgid="7990196086480585789">"Chcete-li tento tip zavřít a začít psát, dotkněte se zde."</string> + <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Klávesnice se otevře vždy, když se dotknete textového pole."</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Přidržením klávesy zobrazíte diakritiku"\n"(ó, ø, ö, ô apod.)"</b></string> + <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Chcete-li přepnout na režim zadávání číslic a symbolů, dotkněte se této klávesy."</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Chcete-li přejít zpět k zadávání písmen, dotkněte se této klávesy znovu."</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Přidržením této klávesy změníte nastavení klávesnice (např. automatické dokončování)."</b></string> + <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Vyzkoušejte si to."</b></string> <string name="label_go_key" msgid="1635148082137219148">"Přejít"</string> <string name="label_next_key" msgid="362972844525672568">"Další"</string> <string name="label_done_key" msgid="2441578748772529288">"Hotovo"</string> @@ -111,9 +116,9 @@ </string-array> <string name="auto_submit" msgid="9151008027068358518">"Po hlasovém vstupu automaticky odeslat"</string> <string name="auto_submit_summary" msgid="4961875269610384226">"Při vyhledávání nebo přechodu na další pole automaticky stisknout Enter."</string> - <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Otevřete klávesnici"\n</b></font><font size="3">\n</font>"Dotkněte se jakéhokoli textového pole."</string> - <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Zavřete klávesnici"\n</b></font><font size="3">\n</font>"Stiskněte klávesu Zpět."</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Přidržením klávesy zobrazte možnosti"\n</b></font><font size="3">\n</font>"Použijte interpunkční znaménka a diakritiku."</string> + <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Otevřete klávesnici"\n</b></font><font size="3">\n</font>"Dotkněte se libovolného textového pole."</string> + <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Zavřete klávesnici"\n</b></font><font size="3">\n</font>"Stiskněte tlačítko Zpět."</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Přidržením klávesy zobrazte možnosti"\n</b></font><font size="3">\n</font>"Přístup k interpunkčním znaménkům a diakritice."</string> <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Nastavení klávesnice"\n</b></font><font size="3">\n</font>"Dotkněte se klávesy "<b>"?123"</b>" a přidržte ji."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".cz"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Vstupní jazyky"</string> <string name="language_selection_summary" msgid="187110938289512256">"Jazyk můžete změnit posunutím prstu po mezerníku."</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Uložte slovo opětovným klepnutím"</string> + <string name="has_dictionary" msgid="6071847973466625007">"K dispozici je slovník"</string> </resources> diff --git a/res/values-da/strings.xml b/java/res/values-da/strings.xml index 15f6b1c6b..750d67b20 100644 --- a/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Android-tastatur"</string> @@ -58,16 +63,16 @@ <string name="alternates_for_c" msgid="151699780720639892">"ç"</string> <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string> <string name="tip_long_press" msgid="6101270866284343344">"Hold en tast nede for at se accenter (ø, ö osv.)"</string> - <string name="tip_dismiss" msgid="7585579046862204381">"Tryk på tilbagetasten ↶ for når som helst at lukke for tastaturet"</string> + <string name="tip_dismiss" msgid="7585579046862204381">"Tryk på knappen Tilbage ↶ for når som helst at lukke for tastaturet"</string> <string name="tip_access_symbols" msgid="6344098517525531652">"Få adgang til tal og symboler"</string> <string name="tip_add_to_dictionary" msgid="1487293888469227817">"Tryk og hold på ordet længst til venstre for at føje det til ordbogen"</string> <string name="touch_to_continue" msgid="7869803257948414531">"Berør dette tip for at fortsætte »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Berør her for at lukke dette tip og begynde at indtaste!"</string> - <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Tastaturet åbnes, når du berører et tekstfelt"</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Berør og hold en tast nede for at vise accenter"\n"(ø, ö, ô, ó osv.)"</b></string> + <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Tastaturet åbner når som helst, du berører et tekstfelt"</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Tryk på en tast, og hold den nede for a vise accenter"\n"(ø, ö, ô, ó osv.)"</b></string> <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Skift til tal og symboler ved at røre denne tast"</b></string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Gå tilbage til bogstaverne ved at berøre denne tast igen"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Berør og hold denne tast nede for at ændre indstillingerne for tastaturet, som f.eks. automatisk udfyldelse"</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Gå tilbage til bogstaver ved at berøre denne tast igen"</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Tryk på denne tast, og hold den nede for at ændre tastaturindstillingerne, som f.eks. automatisk udfyldelse"</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Prøv det!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"Gå"</string> <string name="label_next_key" msgid="362972844525672568">"Næste"</string> @@ -112,9 +117,9 @@ <string name="auto_submit" msgid="9151008027068358518">"Send automatisk efter stemme"</string> <string name="auto_submit_summary" msgid="4961875269610384226">"Tryk automatisk på enter, når du søger eller går til det næste felt."</string> <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Åbn tastaturet"\n</b></font><font size="3">\n</font>"Tryk på et hvilket som helst tekstfelt."</string> - <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Luk tastaturet"\n</b></font><font size="3">\n</font>"Tryk på Tilbagetasten."</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tryk på og hold en tast nede for valgmuligheder"\n</b></font><font size="3">\n</font>"Få adgang til tegnsætning og accenter."</string> - <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Indstillinger for tastatur"\n</b></font><font size="3">\n</font>"Tryk på og hold tasten "<b>"?123"</b>" nede."</string> + <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Luk tastaturet"\n</b></font><font size="3">\n</font>"Tryk på knappen Tilbage."</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tryk på en tast, og hold den nede for valgmuligheder"\n</b></font><font size="3">\n</font>"Få adgang til tegnsætning og accenter."</string> + <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tastaturindstillinger"\n</b></font><font size="3">\n</font>"Tryk på tasten "<b>"?123"</b>", og hold den nede."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> <string name="popular_domain_2" msgid="3036812463748402878">".org"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Inputsprog"</string> <string name="language_selection_summary" msgid="187110938289512256">"Træk fingeren på mellemrumstasten for at skifte sprog"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Tast igen for at gemme"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Ordbog er tilgængelig"</string> </resources> diff --git a/res/values-de/bools.xml b/java/res/values-de/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-de/bools.xml +++ b/java/res/values-de/bools.xml diff --git a/res/values-de/strings.xml b/java/res/values-de/strings.xml index e203fb394..7d3d53c3c 100644 --- a/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Android-Tastatur"</string> @@ -31,7 +36,7 @@ <string name="auto_complete_dialog_title" msgid="2172048590607201920">"Autom. vervollständigen"</string> <string name="prediction_landscape" msgid="4874601565593216183">"Textfeld vergrößern"</string> <string name="prediction_landscape_summary" msgid="6736551095997839472">"Wortvorschläge in Querformat ausblenden"</string> - <string name="auto_cap" msgid="1719746674854628252">"Autom. Groß-/Kleinschreibung"</string> + <string name="auto_cap" msgid="1719746674854628252">"Autom. Groß-/Kleinschr."</string> <string name="auto_cap_summary" msgid="3260681697600786825">"Sätze mit Großbuchstaben beginnen"</string> <string name="auto_punctuate" msgid="7276672334264521751">"Autom. Zeichensetzung"</string> <!-- no translation found for auto_punctuate_summary (6589441565817502132) --> @@ -43,11 +48,11 @@ <string name="auto_complete" msgid="1103196318775486023">"Autom. vervollständigen"</string> <string name="auto_complete_summary" msgid="6113149638718274624">"Leertaste und Interpunktion fügen autom. ein markiertes Wort ein"</string> <string-array name="prediction_modes"> - <item msgid="4870266572388153286">"Keine"</item> + <item msgid="4870266572388153286">"Kein"</item> <item msgid="1669461741568287396">"Standard"</item> <item msgid="4894328801530136615">"Erweitert"</item> </string-array> - <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Gespeichert"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: gespeichert"</string> <string name="alternates_for_a" msgid="2566516493365324765">"ä"</string> <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string> <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string> @@ -64,11 +69,11 @@ <string name="touch_to_continue" msgid="7869803257948414531">"Diesen Hinweis berühren, um fortzufahren »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Hier berühren, um diesen Hinweis zu schließen und mit dem Tippen zu beginnen!"</string> <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Die Tastatur wird immer dann geöffnet, wenn Sie ein Textfeld berühren."</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Halten Sie eine Taste gedrückt, um Sonderzeichen anzuzeigen"\n"(ø, ö, ô, ó usw.)."</b></string> - <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Wechseln Sie zu Nummern und Symbolen, indem Sie diese Taste berühren."</b></string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Gehen Sie zurück zu Buchstaben, indem Sie diese Taste erneut drücken."</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Halten Sie eine Taste gedrückt, um Akzente anzuzeigen"\n"(ø, ö, ô, ó usw.)."</b></string> + <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Wechseln Sie zu Ziffern und Symbolen, indem Sie diese Taste berühren."</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Durch erneutes Drücken dieser Taste gelangen Sie zurück zu den Buchstaben."</b></string> <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Halten Sie diese Taste gedrückt, um die Tastatureinstellungen, wie beispielsweise die automatische Vervollständigung, zu ändern."</b></string> - <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Probieren Sie es!"</b></string> + <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Probieren Sie es aus!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"Los"</string> <string name="label_next_key" msgid="362972844525672568">"Weiter"</string> <string name="label_done_key" msgid="2441578748772529288">"Fertig"</string> @@ -112,8 +117,8 @@ <string name="auto_submit" msgid="9151008027068358518">"Nach Sprachaufnahme automatisch senden"</string> <string name="auto_submit_summary" msgid="4961875269610384226">"Drücken Sie auf die Eingabetaste, wenn Sie einen Suchvorgang durchführen oder zum nächsten Feld wechseln."</string> <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Tastatur öffnen"\n</b></font><font size="3">\n</font>"Berühren Sie ein beliebiges Textfeld."</string> - <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Tastatur schließen"\n</b></font><font size="3">\n</font>"Drücken Sie die Taste \"Zurück\"."</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Eine Taste für Optionen berühren und gedrückt halten"\n</b></font><font size="3">\n</font>"Greifen Sie auf Satzzeichen und Akzente zu."</string> + <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Tastatur schließen"\n</b></font><font size="3">\n</font>"Drücken Sie die Zurück-Taste."</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Für Optionen eine Taste berühren und gedrückt halten"\n</b></font><font size="3">\n</font>"Greifen Sie auf Satzzeichen und Akzente zu."</string> <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tastatureinstellungen"\n</b></font><font size="3">\n</font>"Berühren und halten Sie die Taste "<b>"?123"</b>" gedrückt."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Eingabesprachen"</string> <string name="language_selection_summary" msgid="187110938289512256">"Finger über die Leertaste bewegen, um die Sprache zu ändern"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Zum Speichern erneut tippen"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Wörterbuch verfügbar"</string> </resources> diff --git a/res/values-el/strings.xml b/java/res/values-el/strings.xml index 85c18dff4..c4a50771a 100644 --- a/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Πληκτρολόγιο Android"</string> @@ -67,7 +72,7 @@ <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Αγγίξτε και κρατήστε κάποιο πλήκτρο για να προβάλετε τους τονισμένους χαρακτήρες"\n"(ø, ö, ô, ó κ.τ.λ.)"</b></string> <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Αλλαγή σε αριθμούς και σύμβολα με το πάτημα αυτού του πλήκτρου"</b></string> <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Επιστρέψτε στα γράμματα αγγίζοντας ξανά αυτό το πλήκτρο"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Αγγίξτε & κρατήστε πατημένο αυτό το πλήκτρο για να αλλάξετε τις ρυθμίσεις πληκτρολογίου, όπως η αυτόματη συμπλήρωση"</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Αγγίξτε και κρατήστε πατημένο αυτό το πληκτρολόγιο για να αλλάξετε τις ρυθμίσεις πληκτρολογίου, όπως η αυτόματη συμπλήρωση"</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Δοκιμάστε το!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"Μετάβαση"</string> <string name="label_next_key" msgid="362972844525672568">"Επόμενο"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Γλώσσες εισόδου"</string> <string name="language_selection_summary" msgid="187110938289512256">"Σύρετε το δάχτυλο στο πλήκτρο διαστήματος για να αλλάξετε γλώσσα"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Πατήστε ξανά για αποθήκευση"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Λεξικό διαθέσιμο"</string> </resources> diff --git a/res/values-en/bools.xml b/java/res/values-en/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-en/bools.xml +++ b/java/res/values-en/bools.xml diff --git a/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index 541e153b3..cd17dba31 100644 --- a/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Teclado de Android"</string> @@ -67,7 +72,7 @@ <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Toca y mantén presionada una tecla para ver los acentos"\n"(ø, ö, ô, ó, y así sucesivamente)."</b></string> <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Cambia de números a símbolos tocando esta tecla."</b></string> <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Vuelve a letras tocando esta tecla nuevamente."</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Toca &amp y mantén presionada esta tecla para cambiar la configuración del teclado, como completar automáticamente."</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Toca y mantén presionada esta tecla para cambiar la configuración del teclado, como completar automáticamente."</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"¡Pruébalo!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"Ir"</string> <string name="label_next_key" msgid="362972844525672568">"Siguiente"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> <string name="language_selection_summary" msgid="187110938289512256">"Deslizarse manualmente por la barra espaciadora para cambiar el idioma"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Presionar nuevamente para guardar"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Diccionario disponible"</string> </resources> diff --git a/res/values-es/bools.xml b/java/res/values-es/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-es/bools.xml +++ b/java/res/values-es/bools.xml diff --git a/res/values-es/strings.xml b/java/res/values-es/strings.xml index fbc597ed2..fbe3ad347 100644 --- a/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -1,22 +1,27 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Teclado de Android"</string> - <string name="english_ime_settings" msgid="6661589557206947774">"Configuración del teclado de Android"</string> + <string name="english_ime_settings" msgid="6661589557206947774">"Ajustes del teclado de Android"</string> <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar tecla"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Sonido al pulsar tecla"</string> <string name="hit_correction" msgid="4855351009261318389">"Corregir errores de escritura"</string> @@ -26,7 +31,7 @@ <string name="auto_correction" msgid="7911639788808958255">"Sugerencias de palabras"</string> <string name="auto_correction_summary" msgid="6881047311475758267">"Corregir automáticamente la palabra anterior"</string> <string name="prediction" msgid="466220283138359837">"Sugerencias de palabras"</string> - <string name="prediction_category" msgid="7027100625580696660">"Configuración de sugerencia de palabras"</string> + <string name="prediction_category" msgid="7027100625580696660">"Ajustes de sugerencia de palabras"</string> <string name="prediction_summary" msgid="459788228830873110">"Habilitar Autocompletar al escribir"</string> <string name="auto_complete_dialog_title" msgid="2172048590607201920">"Autocompletar"</string> <string name="prediction_landscape" msgid="4874601565593216183">"Aumentar el tamaño del campo de texto"</string> @@ -47,7 +52,7 @@ <item msgid="1669461741568287396">"Básico"</item> <item msgid="4894328801530136615">"Avanzado"</item> </string-array> - <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Guardada"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string> <string name="alternates_for_a" msgid="2566516493365324765">"á"</string> <string name="alternates_for_e" msgid="3900510936875547555">"é"</string> <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string> @@ -64,14 +69,14 @@ <string name="touch_to_continue" msgid="7869803257948414531">"Toca esta sugerencia para continuar »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Toca aquí para cerrar la sugerencia y comenzar a escribir."</string> <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"El teclado se abre cada vez que tocas un campo de texto"</b>"."</string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Mantén pulsada una tecla para ver los caracteres acentuados "\n"(ø, ö, ô, ó, etc.)"</b></string> - <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Toca esta tecla para cambiar al teclado de números y símbolos"</b>"."</string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Toca esta tecla de nuevo para volver a las letras"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Mantén pulsada esta tecla para cambiar la configuración del teclado como, por ejemplo, la opción de autocompletar"</b>"."</string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Mantén pulsada una tecla para ver los caracteres acentuados"\n"(ø, ö, ô, ó, etc.)."</b></string> + <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Cambiar a números y a símbolos tocando esta tecla"</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Volver a las letras tocando esta tecla de nuevo"</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Mantén pulsada esta tecla para cambiar la configuración de teclado a, por ejemplo, autocompletar"</b>"."</string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"¡Pruébalo!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"Ir"</string> <string name="label_next_key" msgid="362972844525672568">"Sig."</string> - <string name="label_done_key" msgid="2441578748772529288">"Hecho"</string> + <string name="label_done_key" msgid="2441578748772529288">"Listo"</string> <string name="label_send_key" msgid="2815056534433717444">"Enviar"</string> <string name="label_symbol_key" msgid="6175820506864489453">"?123"</string> <string name="label_phone_key" msgid="4275497665515080551">"123"</string> @@ -111,17 +116,18 @@ </string-array> <string name="auto_submit" msgid="9151008027068358518">"Enviar automáticamente después de la introducción de voz"</string> <string name="auto_submit_summary" msgid="4961875269610384226">"Pulsar Intro automáticamente al buscar o al pasar al siguiente campo"</string> - <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Abrir el teclado"\n</b></font><font size="3">\n</font>"Pulsa cualquier campo de texto."</string> + <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Abrir el teclado"\n</b></font><font size="3">\n</font>"Toca cualquier campo de texto."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Cerrar el teclado"\n</b></font><font size="3">\n</font>"Pulsa la tecla \"Atrás\"."</string> <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Mantén pulsada una tecla para acceder a las opciones."\n</b></font><font size="3">\n</font>"Accede a los signos de puntuación y a los acentos."</string> - <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Configuración del teclado"\n</b></font><font size="3">\n</font>"Mantén pulsada la tecla "<b>"?123"</b>"."</string> + <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Ajustes del teclado"\n</b></font><font size="3">\n</font>"Mantén pulsada la tecla "<b>"?123"</b>"."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> <string name="popular_domain_2" msgid="3036812463748402878">".org"</string> <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string> <string name="popular_domain_4" msgid="35359437471311470">".edu"</string> <string name="inputMethod" msgid="7854532062009028116">"Método de introducción de texto"</string> - <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> + <string name="language_selection_title" msgid="1651299598555326750">"Idiomas"</string> <string name="language_selection_summary" msgid="187110938289512256">"Deslizar el dedo por la barra espaciadora para cambiar el idioma"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Volver a tocar para guardar"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Hay un diccionario disponible."</string> </resources> diff --git a/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml index b56463ed9..b56463ed9 100644 --- a/res/values-fr-rCA/strings.xml +++ b/java/res/values-fr-rCA/strings.xml diff --git a/res/values-fr/bools.xml b/java/res/values-fr/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-fr/bools.xml +++ b/java/res/values-fr/bools.xml diff --git a/res/values-fr/donottranslate.xml b/java/res/values-fr/donottranslate.xml index b79df7b37..b79df7b37 100644 --- a/res/values-fr/donottranslate.xml +++ b/java/res/values-fr/donottranslate.xml diff --git a/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index 085941415..2cabe40d9 100644 --- a/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Clavier Android"</string> @@ -64,9 +69,9 @@ <string name="touch_to_continue" msgid="7869803257948414531">"Touchez ce conseil pour continuer »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Touchez ici pour fermer ce conseil et commencer à saisir votre texte."</string> <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Le clavier s\'affiche à chaque fois que vous touchez une zone de texte."</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Maintenez une touche enfoncée pour afficher les accents"\n"(ø, ö, ô, ó, etc.)"</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Maintenez une touche enfoncée pour afficher les accents"\n"(ø, ö, ô, ó, etc.)"</b>"."</string> <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Appuyez sur cette touche pour basculer vers les chiffres et les symboles."</b></string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Retourner au clavier en appuyant de nouveau sur cette touche"</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Appuyez de nouveau sur cette touche pour retourner aux lettres."</b></string> <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Maintenez cette touche enfoncée afin de modifier les paramètres du clavier, tels que la saisie semi-automatique."</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Essayez !"</b></string> <string name="label_go_key" msgid="1635148082137219148">"OK"</string> @@ -113,7 +118,7 @@ <string name="auto_submit_summary" msgid="4961875269610384226">"Appuyez automatiquement sur Entrée pour effectuer une recherche ou accéder au champ suivant."</string> <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Ouvrir le clavier"\n</b></font><font size="3">\n</font>"Appuyez sur un champ de texte."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Fermer le clavier"\n</b></font><font size="3">\n</font>"Appuyez sur la touche Retour."</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Appuyer sur une touche de manière prolongée pour accéder aux options"\n</b></font><font size="3">\n</font>"Accédez aux signes de ponctuation et aux accents."</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Appuyez sur une touche de manière prolongée pour accéder aux options"\n</b></font><font size="3">\n</font>"Accédez aux signes de ponctuation et aux accents."</string> <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Paramètres du clavier"\n</b></font><font size="3">\n</font>"Appuyez sur la touche "<b>"?123"</b>" de manière prolongée."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Langues de saisie"</string> <string name="language_selection_summary" msgid="187110938289512256">"Faites glisser votre doigt sur la barre d\'espacement pour changer la langue."</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Appuyer de nouveau pour enregistrer"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Dictionnaire disponible"</string> </resources> diff --git a/res/values-it/bools.xml b/java/res/values-it/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-it/bools.xml +++ b/java/res/values-it/bools.xml diff --git a/res/values-it/donottranslate.xml b/java/res/values-it/donottranslate.xml index 3e3f3ef2a..3e3f3ef2a 100644 --- a/res/values-it/donottranslate.xml +++ b/java/res/values-it/donottranslate.xml diff --git a/res/values-it/strings.xml b/java/res/values-it/strings.xml index 1135dd00a..3844aea8f 100644 --- a/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -1,24 +1,29 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Tastiera Android"</string> <string name="english_ime_settings" msgid="6661589557206947774">"Impostazioni tastiera Android"</string> - <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibra se premi un tasto"</string> - <string name="sound_on_keypress" msgid="6093592297198243644">"Suona se premi un tasto"</string> + <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibra alla pressione di un tasto"</string> + <string name="sound_on_keypress" msgid="6093592297198243644">"Suona alla pressione di un tasto"</string> <string name="hit_correction" msgid="4855351009261318389">"Correggi errori di digitazione"</string> <string name="hit_correction_summary" msgid="8761701873008070796">"Attiva la correzione degli errori di inserimento"</string> <string name="hit_correction_land" msgid="2567691684825205448">"Errori di inserimento in visualizzazione orizzontale"</string> @@ -64,11 +69,11 @@ <string name="touch_to_continue" msgid="7869803257948414531">"Tocca questo suggerimento per continuare »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Tocca qui per chiudere questo suggerimento e iniziare a digitare."</string> <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"La tastiera si apre ogni volta che tocchi un campo di testo"</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Tocca e tieni premuto un tasto per visualizzare le lettere con segni diacritici"\n"(ø, ö, ô, ó e così via)"</b></string> - <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Passa a numeri e simboli toccando questo tasto"</b></string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Torna all\'alfabeto toccando di nuovo questo tasto"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Tocca e tieni premuto questo tasto per modificare le impostazioni della tastiera, come il completamento automatico"</b></string> - <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Prova."</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Tocca e tieni premuto un pulsante per visualizzare le lettere con segni diacritici"\n"(ø, ö, ô, ó e così via)"</b></string> + <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Passa a numeri e simboli toccando questo pulsante"</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Torna alle lettere toccando di nuovo questo pulsante"</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Tocca e tieni premuto questo pulsante per modificare le impostazioni della tastiera, come il completamento automatico"</b></string> + <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Prova!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"Vai"</string> <string name="label_next_key" msgid="362972844525672568">"Avanti"</string> <string name="label_done_key" msgid="2441578748772529288">"Fine"</string> @@ -113,8 +118,8 @@ <string name="auto_submit_summary" msgid="4961875269610384226">"Premi automaticamente \"Invio\" durante una ricerca o un passaggio al campo successivo."</string> <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Apertura tastiera"\n</b></font><font size="3">\n</font>"Tocca qualsiasi campo di testo."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Chiusura tastiera"\n</b></font><font size="3">\n</font>"Premi il tasto Indietro."</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tocca e tieni premuto un tasto per le opzioni"\n</b></font><font size="3">\n</font>"Accesso a punteggiatura e accenti."</string> - <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Impostazioni tastiera"\n</b></font><font size="3">\n</font>"Tocca e tieni premuto il tasto "<b>"?123"</b>"."</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tocca e tieni premuto un pulsante per le opzioni"\n</b></font><font size="3">\n</font>"Accesso a punteggiatura e accenti."</string> + <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Impostazioni tastiera"\n</b></font><font size="3">\n</font>"Tocca e tieni premuto il pulsante "<b>"?123"</b>"."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> <string name="popular_domain_2" msgid="3036812463748402878">".org"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Lingue comandi"</string> <string name="language_selection_summary" msgid="187110938289512256">"Scorri il dito sulla barra spaziatrice per cambiare la lingua"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Tocca di nuovo per salvare"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Dizionario disponibile"</string> </resources> diff --git a/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 9097bd936..7867684cb 100644 --- a/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Androidキーボード"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"入力言語"</string> <string name="language_selection_summary" msgid="187110938289512256">"スペースバーで指をスライドさせて言語を変更する"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"←保存するにはもう一度タップ"</string> + <string name="has_dictionary" msgid="6071847973466625007">"辞書を利用できます"</string> </resources> diff --git a/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index 15000e655..350957939 100644 --- a/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Android 키보드"</string> @@ -30,7 +35,7 @@ <string name="prediction_summary" msgid="459788228830873110">"입력할 때 자동 완성 사용"</string> <string name="auto_complete_dialog_title" msgid="2172048590607201920">"자동 완성"</string> <string name="prediction_landscape" msgid="4874601565593216183">"입력란 크기 늘리기"</string> - <string name="prediction_landscape_summary" msgid="6736551095997839472">"가로 보기에서 단어 추천 숨기기"</string> + <string name="prediction_landscape_summary" msgid="6736551095997839472">"가로 보기에서 추천 단어 숨기기"</string> <string name="auto_cap" msgid="1719746674854628252">"자동 대문자화"</string> <string name="auto_cap_summary" msgid="3260681697600786825">"문장의 첫 글자를 대문자로 표시"</string> <string name="auto_punctuate" msgid="7276672334264521751">"자동 구두점 입력"</string> @@ -47,7 +52,7 @@ <item msgid="1669461741568287396">"기본"</item> <item msgid="4894328801530136615">"고급"</item> </string-array> - <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : 저장됨"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: 저장됨"</string> <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string> <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string> <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string> @@ -59,16 +64,16 @@ <string name="alternates_for_y" msgid="1722776806607271199">"ýÿ"</string> <string name="tip_long_press" msgid="6101270866284343344">"키를 길게 누르면 악센트(ø, ö 등)가 표시됩니다."</string> <string name="tip_dismiss" msgid="7585579046862204381">"키보드를 닫으려면 언제든지 뒤로 키(↶)를 누르세요."</string> - <string name="tip_access_symbols" msgid="6344098517525531652">"숫자 및 기호 액세스"</string> + <string name="tip_access_symbols" msgid="6344098517525531652">"숫자 및 기호 사용"</string> <string name="tip_add_to_dictionary" msgid="1487293888469227817">"맨 왼쪽에 있는 단어를 길게 누르면 사전에 추가됩니다."</string> <string name="touch_to_continue" msgid="7869803257948414531">"계속하려면 힌트를 터치하세요. »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"힌트를 닫고 입력을 시작하려면 여기를 터치하세요."</string> - <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"입력란을 터치하면 키보드가 열립니다."</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"키를 길게 누르면 악센트"\n"(ø, ö, ô, ó 등)를 볼 수 있습니다."</b></string> - <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"이 키를 터치하면 숫자 및 기호 자판으로 변경됩니다."</b></string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"이 키를 다시 터치하면 키보드가 표시됩니다."</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"자동 완성과 같은 키보드 설정을 변경하려면 이 키를 길게 누르세요."</b></string> - <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"이제 직접 사용해 보세요!"</b></string> + <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"언제든지 입력란을 터치하면 키보드가 열립니다."</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"키를 길게 터치하면 악센트"\n"(ø, ö, ô, ó 등)가 표시됩니다."</b></string> + <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"이 키를 터치하면 숫자 및 기호 키보드로 전환됩니다."</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"이 키를 다시 터치하면 문자 키보드로 돌아갑니다."</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"자동 완성과 같은 키보드 설정을 변경하려면 이 키를 길게 터치하세요."</b></string> + <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"이제 사용해 보세요."</b></string> <string name="label_go_key" msgid="1635148082137219148">"이동"</string> <string name="label_next_key" msgid="362972844525672568">"다음"</string> <string name="label_done_key" msgid="2441578748772529288">"완료"</string> @@ -94,7 +99,7 @@ <string name="voice_speech_timeout" msgid="8461817525075498795">"음성이 인식되지 않았습니다."</string> <string name="voice_no_match" msgid="4285117547030179174">"일치하는 항목 없음"</string> <string name="voice_not_installed" msgid="5552450909753842415">"음성 검색이 설치되지 않았습니다."</string> - <string name="voice_swipe_hint" msgid="6943546180310682021"><b>"도움말:"</b>" 키보드를 스와이프하고 말하세요."</string> + <string name="voice_swipe_hint" msgid="6943546180310682021"><b>"도움말:"</b>" 키보드 위로 손가락을 미끄러지듯 움직이고 나서 말하세요."</string> <string name="voice_punctuation_hint" msgid="1611389463237317754"><b>"도움말:"</b>" 다음 번에는 \'마침표\', \'쉼표\', \'물음표\'와 같은 구두점을 말해 보세요."</string> <string name="cancel" msgid="6830980399865683324">"취소"</string> <string name="ok" msgid="7898366843681727667">"확인"</string> @@ -113,8 +118,8 @@ <string name="auto_submit_summary" msgid="4961875269610384226">"검색하거나 다음 입력란으로 이동할 때 자동으로 Enter 키를 누릅니다."</string> <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"키보드 열기"\n</b></font><font size="3">\n</font>"아무 텍스트 입력란이나 터치하세요."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"키보드 닫기"\n</b></font><font size="3">\n</font>"\'뒤로\' 키를 누르세요."</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"키를 길게 터치하여 옵션 보기"\n</b></font><font size="3">\n</font>"문장 부호 및 악센트 기호에 액세스하세요."</string> - <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"키보드 설정"\n</b></font><font size="3">\n</font><b>"?123"</b>" 키를 길게 터치하세요."</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"키를 길게 눌러 옵션 보기"\n</b></font><font size="3">\n</font>"문장 부호 및 악센트 기호 입력창이 열립니다."</string> + <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"키보드 설정"\n</b></font><font size="3">\n</font><b>"?123"</b>" 키를 길게 누르세요."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> <string name="popular_domain_2" msgid="3036812463748402878">".org"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"입력 언어"</string> <string name="language_selection_summary" msgid="187110938289512256">"손가락을 스페이스바에서 미끄러지듯 움직여 언어 변경"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← 저장하려면 다시 누르세요."</string> + <string name="has_dictionary" msgid="6071847973466625007">"사전 사용 가능"</string> </resources> diff --git a/res/values-land/dimens.xml b/java/res/values-land/dimens.xml index 43951552e..43951552e 100644 --- a/res/values-land/dimens.xml +++ b/java/res/values-land/dimens.xml diff --git a/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index a7ddc7533..041d07eb3 100644 --- a/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Skjermtastatur"</string> @@ -40,7 +45,7 @@ <string name="quick_fixes_summary" msgid="3405028402510332373">"Retter vanlige stavefeil"</string> <string name="show_suggestions" msgid="507074425254289133">"Vis forslag"</string> <string name="show_suggestions_summary" msgid="1989672863935759654">"Vis foreslåtte ord under skriving"</string> - <string name="auto_complete" msgid="1103196318775486023">"Autokomplettering"</string> + <string name="auto_complete" msgid="1103196318775486023">"Autofullføring"</string> <string name="auto_complete_summary" msgid="6113149638718274624">"Mellomrom og punktum setter automatisk inn valgt ord"</string> <string-array name="prediction_modes"> <item msgid="4870266572388153286">"Ingen"</item> @@ -105,8 +110,8 @@ <item msgid="7283103513488381103">"Av"</item> </string-array> <string-array name="voice_input_modes_summary"> - <item msgid="554248625705084903">"Mikronfon på hovedtastatur"</item> - <item msgid="6907837061058876770">"Mikronfon på talltastatur"</item> + <item msgid="554248625705084903">"Mikrofon på hovedtastatur"</item> + <item msgid="6907837061058876770">"Mikrofon på talltastatur"</item> <item msgid="3664304608587798036">"Talekommando er deaktivert"</item> </string-array> <string name="auto_submit" msgid="9151008027068358518">"Send inn automatisk etter tale"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Inndataspråk"</string> <string name="language_selection_summary" msgid="187110938289512256">"Dra fingeren på mellomromstasten for å endre språk"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Trykk på nytt for å lagre"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Ordbok tilgjengelig"</string> </resources> diff --git a/res/values-nl/bools.xml b/java/res/values-nl/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-nl/bools.xml +++ b/java/res/values-nl/bools.xml diff --git a/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index 9a69c128e..00b197bf1 100644 --- a/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -1,23 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Android-toetsenbord"</string> <string name="english_ime_settings" msgid="6661589557206947774">"Instellingen voor Android-toetsenbord"</string> - <string name="vibrate_on_keypress" msgid="5258079494276955460">"Trillen bij druk op een toets"</string> + <string name="vibrate_on_keypress" msgid="5258079494276955460">"Trillen bij druk op toets"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"Geluid bij druk op een toets"</string> <string name="hit_correction" msgid="4855351009261318389">"Typefouten corrigeren"</string> <string name="hit_correction_summary" msgid="8761701873008070796">"Foutcorrectie tijdens invoer inschakelen"</string> @@ -31,7 +36,7 @@ <string name="auto_complete_dialog_title" msgid="2172048590607201920">"Automatisch voltooien"</string> <string name="prediction_landscape" msgid="4874601565593216183">"Tekstveld vergroten"</string> <string name="prediction_landscape_summary" msgid="6736551095997839472">"Woordsuggesties verbergen in liggende weergave"</string> - <string name="auto_cap" msgid="1719746674854628252">"Automatisch hoofdlettergebruik"</string> + <string name="auto_cap" msgid="1719746674854628252">"Auto-hoofdlettergebruik"</string> <string name="auto_cap_summary" msgid="3260681697600786825">"Hoofdletter gebruiken aan het begin van een zin"</string> <string name="auto_punctuate" msgid="7276672334264521751">"Automatische interpunctie"</string> <!-- no translation found for auto_punctuate_summary (6589441565817502132) --> @@ -47,7 +52,7 @@ <item msgid="1669461741568287396">"Basis"</item> <item msgid="4894328801530136615">"Geavanceerd"</item> </string-array> - <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Opgeslagen"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: opgeslagen"</string> <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string> <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string> <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string> @@ -114,7 +119,7 @@ <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Het toetsenbord openen"\n</b></font><font size="3">\n</font>"Raak een tekstveld aan."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Het toetsenbord sluiten"\n</b></font><font size="3">\n</font>"Druk op de terugtoets."</string> <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Een toets blijven aanraken voor opties"\n</b></font><font size="3">\n</font>"Toegang tot interpunctie en diakritische tekens."</string> - <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Toetsenbordinstellingen"\n</b></font><font size="3">\n</font>"Blijf de toets "<b>"?123"</b>" aanraken."</string> + <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Toetsenbordinstellingen"\n</b></font><font size="3">\n</font>"Blijf de toets \'"<b>"?123"</b>"\' aanraken."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> <string name="popular_domain_2" msgid="3036812463748402878">".org"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Invoertalen"</string> <string name="language_selection_summary" msgid="187110938289512256">"Schuif uw vinger over de spatiebalk om de taal te wijzigen"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Tik nogmaals om op te slaan"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Woordenboek beschikbaar"</string> </resources> diff --git a/res/values-pl/bools.xml b/java/res/values-pl/bools.xml index 897f4b3db..897f4b3db 100644 --- a/res/values-pl/bools.xml +++ b/java/res/values-pl/bools.xml diff --git a/res/values-pl/donottranslate.xml b/java/res/values-pl/donottranslate.xml index 196e73c1d..196e73c1d 100644 --- a/res/values-pl/donottranslate.xml +++ b/java/res/values-pl/donottranslate.xml diff --git a/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index a411cc213..0c72727ce 100644 --- a/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Klawiatura Android"</string> @@ -23,14 +28,14 @@ <string name="hit_correction_summary" msgid="8761701873008070796">"Włącz poprawianie błędów wprowadzania"</string> <string name="hit_correction_land" msgid="2567691684825205448">"Błędy wprowadzania w orientacji poziomej"</string> <string name="hit_correction_land_summary" msgid="4076803842198368328">"Włącz poprawianie błędów wprowadzania"</string> - <string name="auto_correction" msgid="7911639788808958255">"Propozycje słów"</string> + <string name="auto_correction" msgid="7911639788808958255">"Sugestie słów"</string> <string name="auto_correction_summary" msgid="6881047311475758267">"Automatycznie poprawiaj poprzednie słowo"</string> - <string name="prediction" msgid="466220283138359837">"Propozycje słów"</string> + <string name="prediction" msgid="466220283138359837">"Sugestie słów"</string> <string name="prediction_category" msgid="7027100625580696660">"Ustawienia propozycji słów"</string> <string name="prediction_summary" msgid="459788228830873110">"Włącz autouzupełnianie podczas wpisywania"</string> <string name="auto_complete_dialog_title" msgid="2172048590607201920">"Autouzupełnianie"</string> <string name="prediction_landscape" msgid="4874601565593216183">"Zwiększ rozmiar pola tekstowego"</string> - <string name="prediction_landscape_summary" msgid="6736551095997839472">"Wyłącz propozycje słów w orientacji poziomej"</string> + <string name="prediction_landscape_summary" msgid="6736551095997839472">"Wyłącz sugestie słów w orientacji poziomej"</string> <string name="auto_cap" msgid="1719746674854628252">"Wstawiaj wielkie litery"</string> <string name="auto_cap_summary" msgid="3260681697600786825">"Zamieniaj na wielką pierwszą literę zdania"</string> <string name="auto_punctuate" msgid="7276672334264521751">"Automatyczna interpunkcja"</string> @@ -69,7 +74,7 @@ <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Wróć do trybu liter, dotykając ponownie tego klawisza."</b></string> <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Dotknij i przytrzymaj ten klawisz, aby zmienić ustawienia klawiatury, takie jak autouzupełnianie."</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Wypróbuj!"</b></string> - <string name="label_go_key" msgid="1635148082137219148">"Przejdź"</string> + <string name="label_go_key" msgid="1635148082137219148">"OK"</string> <string name="label_next_key" msgid="362972844525672568">"Dalej"</string> <string name="label_done_key" msgid="2441578748772529288">"Gotowe"</string> <string name="label_send_key" msgid="2815056534433717444">"Wyślij"</string> @@ -83,7 +88,7 @@ <string name="voice_warning_how_to_turn_off" msgid="5652369578498701761">"Aby wyłączyć wprowadzanie głosowe, przejdź do ustawień klawiatury."</string> <string name="voice_hint_dialog_message" msgid="6892342981545727994">"Aby skorzystać z wprowadzania głosowego, naciśnij przycisk mikrofonu lub przesuń palcem po klawiaturze ekranowej."</string> <string name="voice_listening" msgid="467518160751321844">"Mów teraz"</string> - <string name="voice_working" msgid="6666937792815731889">"Działa"</string> + <string name="voice_working" msgid="6666937792815731889">"W toku"</string> <!-- no translation found for voice_initializing (661962047129906646) --> <skip /> <string name="voice_error" msgid="5140896300312186162">"Błąd. Spróbuj ponownie."</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Języki wprowadzania"</string> <string name="language_selection_summary" msgid="187110938289512256">"Przesuń palcem po spacji, aby zmienić język"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Dotknij ponownie, aby zapisać"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Słownik dostępny"</string> </resources> diff --git a/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index 399975d88..35a9cb715 100644 --- a/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Teclado do Android"</string> @@ -31,7 +36,7 @@ <string name="auto_complete_dialog_title" msgid="2172048590607201920">"Conclusão automática"</string> <string name="prediction_landscape" msgid="4874601565593216183">"Aumentar o tamanho do campo de texto"</string> <string name="prediction_landscape_summary" msgid="6736551095997839472">"Ocultar sugestões de palavras na vista horizontal"</string> - <string name="auto_cap" msgid="1719746674854628252">"Maiúsculas automáticas"</string> + <string name="auto_cap" msgid="1719746674854628252">"Letras maiúsculas automáticas"</string> <string name="auto_cap_summary" msgid="3260681697600786825">"Colocar inicial maiúscula no início de uma frase"</string> <string name="auto_punctuate" msgid="7276672334264521751">"Pontuação automática"</string> <!-- no translation found for auto_punctuate_summary (6589441565817502132) --> @@ -39,7 +44,7 @@ <string name="quick_fixes" msgid="5353213327680897927">"Correcções rápidas"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corrige os erros de escrita comuns"</string> <string name="show_suggestions" msgid="507074425254289133">"Mostrar sugestões"</string> - <string name="show_suggestions_summary" msgid="1989672863935759654">"Apresentar palavras sugeridas durante a escrita"</string> + <string name="show_suggestions_summary" msgid="1989672863935759654">"Apresentar sugestões de palavras ao escrever"</string> <string name="auto_complete" msgid="1103196318775486023">"Conclusão automática"</string> <string name="auto_complete_summary" msgid="6113149638718274624">"A barra de espaços e a pontuação inserem automaticamente uma palavra realçada"</string> <string-array name="prediction_modes"> @@ -47,7 +52,7 @@ <item msgid="1669461741568287396">"Básico"</item> <item msgid="4894328801530136615">"Avançados"</item> </string-array> - <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Guardada"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string> <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string> <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string> <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string> @@ -64,10 +69,10 @@ <string name="touch_to_continue" msgid="7869803257948414531">"Toque nesta sugestão para continuar »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Toque aqui para fechar esta sugestão e começar a escrever!"</string> <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"O teclado abre quando tocar num campo de texto"</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Toque e mantenha premida uma tecla para ver os acentos"\n"(ø, ö, ô, ó, etc.)"</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Mantenha premida uma tecla para ver os acentos"\n"(ø, ö, ô, ó, etc.)"</b></string> <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Mude para números e símbolos tocando nesta tecla"</b></string> <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Regresse às letras tocando novamente nesta tecla"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Toque e mantenha premida esta tecla para alterar definições do teclado, como a conclusão automática."</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Mantenha premida esta tecla para alterar definições do teclado, tais como a conclusão automática"</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Experimente!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"Ir"</string> <string name="label_next_key" msgid="362972844525672568">"Seguinte"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> <string name="language_selection_summary" msgid="187110938289512256">"Deslize o dedo pela barra de espaço para alterar o idioma"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Toque novamente para guardar"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string> </resources> diff --git a/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index 18ffdf011..235fd65ac 100644 --- a/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Teclado Android"</string> @@ -63,8 +68,8 @@ <string name="tip_add_to_dictionary" msgid="1487293888469227817">"Pressione e segure a palavra mais à esquerda para adicioná-la ao dicionário"</string> <string name="touch_to_continue" msgid="7869803257948414531">"Toque nesta dica para continuar »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Toque aqui para fechar esta dica e começar a digitar!"</string> - <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"O teclado abre toda vez que você tocar em um arquivo de texto"</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Tocar e segurar a tecla para visualizar acentos"\n"(ø, ö, ô, ó e assim por diante)"</b></string> + <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"O teclado abre toda vez que você tocar em um campo de texto"</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Tocar e segurar uma tecla para visualizar acentos"\n"(ø, ö, ô, ó e assim por diante)"</b></string> <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Alternar para números e símbolos tocando nessa tecla"</b></string> <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Voltar às letras tocando novamente nessa tecla"</b></string> <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Tocar e segurar esta tecla para alterar as configurações do teclado, como a conclusão automática"</b></string> @@ -113,7 +118,7 @@ <string name="auto_submit_summary" msgid="4961875269610384226">"Pressione Enter automaticamente ao pesquisar ou ir para o próximo campo."</string> <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Abra o teclado"\n</b></font><font size="3">\n</font>"Toque em qualquer campo de texto."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Feche o teclado"\n</b></font><font size="3">\n</font>"Pressione a tecla Voltar."</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Toque e mantenha pressionada uma tecla para ver as opções"\n</b></font><font size="3">\n</font>"Acesse a pontuação e os acentos."</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Toque e mantenha pressionada uma tecla para ver as opções"\n</b></font><font size="3">\n</font>"Acesse a pontuação e as pronúncias."</string> <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Configurações de teclado"\n</b></font><font size="3">\n</font>"Toque e mantenha pressionada a tecla "<b>"?123"</b>"."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string> <string name="language_selection_summary" msgid="187110938289512256">"Deslize o dedo na barra de espaços para alterar o idioma"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Toque novamente para salvar"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string> </resources> diff --git a/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index d4ebc6d60..e27402c7f 100644 --- a/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Клавиатура Android"</string> @@ -33,7 +38,7 @@ <string name="prediction_landscape_summary" msgid="6736551095997839472">"Скрывать предложение слов в горизонтальной ориентации"</string> <string name="auto_cap" msgid="1719746674854628252">"Автоподст. заглавных"</string> <string name="auto_cap_summary" msgid="3260681697600786825">"Делать заглавной первую букву предложения"</string> - <string name="auto_punctuate" msgid="7276672334264521751">"Автоматическая пунктуация"</string> + <string name="auto_punctuate" msgid="7276672334264521751">"Автопунктуация"</string> <!-- no translation found for auto_punctuate_summary (6589441565817502132) --> <skip /> <string name="quick_fixes" msgid="5353213327680897927">"Быстрое исправление"</string> @@ -41,13 +46,13 @@ <string name="show_suggestions" msgid="507074425254289133">"Предлагать варианты"</string> <string name="show_suggestions_summary" msgid="1989672863935759654">"Предлагать варианты слов во время ввода"</string> <string name="auto_complete" msgid="1103196318775486023">"Автозавершение"</string> - <string name="auto_complete_summary" msgid="6113149638718274624">"При нажатии пробела или знака препинания вставлять предложенное слово"</string> + <string name="auto_complete_summary" msgid="6113149638718274624">"При нажатии пробела вставлять предложенное слово"</string> <string-array name="prediction_modes"> <item msgid="4870266572388153286">"Нет"</item> <item msgid="1669461741568287396">"Основной"</item> - <item msgid="4894328801530136615">"Расширенный"</item> + <item msgid="4894328801530136615">"Дополнительно"</item> </string-array> - <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : сохранено"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: сохранено"</string> <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string> <string name="alternates_for_e" msgid="3900510936875547555">"èéêë"</string> <string name="alternates_for_i" msgid="7097915268629342242">"ìíîï"</string> @@ -64,12 +69,12 @@ <string name="touch_to_continue" msgid="7869803257948414531">"Чтобы продолжить, нажмите на эту подсказку »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Нажмите здесь, чтобы закрыть подсказку и начать вводить текст."</string> <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Клавиатура появляется автоматически при касании текстового поля"</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Нажмите и удерживайте клавишу, чтобы появились спецсимволы "\n"(ø, ö, ô, ó и т. п.)"</b></string> - <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Чтобы переключаться между вводом цифр и символов, используйте эту клавишу"</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Нажмите и удерживайте клавишу для отображения вариантов с диакритическими знаками "\n"(ø, ö, ô, ó и т. п.)"</b></string> + <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Для переключения между вводом цифр и символов используйте эту клавишу"</b></string> <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Чтобы вернуться к буквенной клавиатуре, снова нажмите на эту клавишу"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Чтобы сменить настройки клавиатуры (такие как автозавершение), нажмите и удерживайте эту клавишу"</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Чтобы изменить настройки клавиатуры (такие как автозавершение), нажмите и удерживайте эту клавишу"</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"Попробуйте!"</b></string> - <string name="label_go_key" msgid="1635148082137219148">"Перейти"</string> + <string name="label_go_key" msgid="1635148082137219148">"Поиск"</string> <string name="label_next_key" msgid="362972844525672568">"Далее"</string> <string name="label_done_key" msgid="2441578748772529288">"Готово"</string> <string name="label_send_key" msgid="2815056534433717444">"Отправить"</string> @@ -111,7 +116,7 @@ </string-array> <string name="auto_submit" msgid="9151008027068358518">"Автоматически отправлять по окончании голосового ввода"</string> <string name="auto_submit_summary" msgid="4961875269610384226">"Автоматически нажимать \"Ввод\" при поиске или переходе к следующему полю."</string> - <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Откройте клавиатуру"\n</b></font><font size="3">\n</font>"Нажмите на любое текстовое поле."</string> + <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Открытие клавиатуры"\n</b></font><font size="3">\n</font>"Нажмите на любое текстовое поле."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Закрытие клавиатуры"\n</b></font><font size="3">\n</font>"Нажмите клавишу \"Назад\"."</string> <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Нажмите и удерживайте клавишу для вызова параметров"\n</b></font><font size="3">\n</font>"Доступ к пунктуационным и диакритическим знакам."</string> <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Настройки клавиатуры"\n</b></font><font size="3">\n</font>"Нажмите и удерживайте клавишу "<b>"?123"</b>"."</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Языки ввода"</string> <string name="language_selection_summary" msgid="187110938289512256">"Для изменения языка проведите пальцем по пробелу"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Нажмите повторно, чтобы сохранить"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Доступен словарь"</string> </resources> diff --git a/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index 2d07a076a..9c6c22159 100644 --- a/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Androids tangentbord"</string> @@ -64,7 +69,7 @@ <string name="touch_to_continue" msgid="7869803257948414531">"Tryck på tipset för att fortsätta »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"Tryck här om du vill stänga tipset och börja skriva!"</string> <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"Tangentbordet öppnas när du trycker på ett textfält"</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Tryck och håll ned en tangent om du vill visa accenter"\n"(ø, ö, ô, ó och så vidare)"</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"Tryck och håll nere en tangent om du vill visa accenter"\n"(ø, ö, ô, ó och så vidare)"</b></string> <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"Växla till siffror och symboler med den här tangenten"</b></string> <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"Återgå till bokstäver genom att trycka på tangenten en gång till"</b></string> <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"Tryck och håll ned tangenten om du vill ändra inställningarna för tangentbordet, till exempel Komplettera automatiskt"</b></string> @@ -114,7 +119,7 @@ <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"Öppna tangentbordet"\n</b></font><font size="3">\n</font>"Tryck på ett textfält."</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"Stäng tangentbordet"\n</b></font><font size="3">\n</font>"Tryck på Tillbaka."</string> <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"Tryck länge på en tangent om du vill se alternativ"\n</b></font><font size="3">\n</font>"Använda skiljetecken och accenter."</string> - <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tangentbordsinställningar"\n</b></font><font size="3">\n</font>"Tryck länge på tangenten "<b>"?123"</b>"."</string> + <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"Tangentbordsinställningar"\n</b></font><font size="3">\n</font>"Tryck länge på tangenten"<b>"?123"</b>"."</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> <string name="popular_domain_2" msgid="3036812463748402878">".org"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Inmatningsspråk"</string> <string name="language_selection_summary" msgid="187110938289512256">"Dra med fingret på blanksteg om du vill ändra språk"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Peka igen för att spara"</string> + <string name="has_dictionary" msgid="6071847973466625007">"En ordlista är tillgänglig"</string> </resources> diff --git a/res/values-tr/donottranslate.xml b/java/res/values-tr/donottranslate.xml index 2154c16bb..2154c16bb 100644 --- a/res/values-tr/donottranslate.xml +++ b/java/res/values-tr/donottranslate.xml diff --git a/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index e150a5ee7..0fbdc7da3 100644 --- a/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Android klavyesi"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"Giriş dilleri"</string> <string name="language_selection_summary" msgid="187110938289512256">"Dili değiştirmek için parmağınızı boşluk çubuğu üzerinde kaydırın"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← Kaydetmek için tekrar dokunun"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Sözlük kullanılabilir"</string> </resources> diff --git a/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index f3729914b..9c9b25708 100644 --- a/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Android 键盘"</string> @@ -20,16 +25,16 @@ <string name="vibrate_on_keypress" msgid="5258079494276955460">"按键时振动"</string> <string name="sound_on_keypress" msgid="6093592297198243644">"按键时播放音效"</string> <string name="hit_correction" msgid="4855351009261318389">"纠正输入错误"</string> - <string name="hit_correction_summary" msgid="8761701873008070796">"启用输入错误纠正"</string> + <string name="hit_correction_summary" msgid="8761701873008070796">"启用输入错误纠正功能"</string> <string name="hit_correction_land" msgid="2567691684825205448">"横向输入错误"</string> - <string name="hit_correction_land_summary" msgid="4076803842198368328">"启用输入错误纠正"</string> + <string name="hit_correction_land_summary" msgid="4076803842198368328">"启用输入错误纠正功能"</string> <string name="auto_correction" msgid="7911639788808958255">"字词建议"</string> - <string name="auto_correction_summary" msgid="6881047311475758267">"自动纠正之前的字词"</string> + <string name="auto_correction_summary" msgid="6881047311475758267">"自动纠正前面的字词"</string> <string name="prediction" msgid="466220283138359837">"字词建议"</string> <string name="prediction_category" msgid="7027100625580696660">"字词建议设置"</string> <string name="prediction_summary" msgid="459788228830873110">"输入时启用自动填写功能"</string> <string name="auto_complete_dialog_title" msgid="2172048590607201920">"自动完成"</string> - <string name="prediction_landscape" msgid="4874601565593216183">"增加文本域的大小"</string> + <string name="prediction_landscape" msgid="4874601565593216183">"扩大文字字段"</string> <string name="prediction_landscape_summary" msgid="6736551095997839472">"在横向视图中隐藏字词建议"</string> <string name="auto_cap" msgid="1719746674854628252">"自动大写"</string> <string name="auto_cap_summary" msgid="3260681697600786825">"句首字母大写"</string> @@ -45,7 +50,7 @@ <string-array name="prediction_modes"> <item msgid="4870266572388153286">"无"</item> <item msgid="1669461741568287396">"基本模式"</item> - <item msgid="4894328801530136615">"高级模式"</item> + <item msgid="4894328801530136615">"高级"</item> </string-array> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:已保存"</string> <string name="alternates_for_a" msgid="2566516493365324765">"àáâãäåæ"</string> @@ -63,11 +68,11 @@ <string name="tip_add_to_dictionary" msgid="1487293888469227817">"长按最左侧的字可将其添加到词典中"</string> <string name="touch_to_continue" msgid="7869803257948414531">"轻触此提示继续 »"</string> <string name="touch_to_finish" msgid="7990196086480585789">"轻触此处可关闭该提示,然后便可开始输入内容!"</string> - <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"轻触文本字段即可打开键盘"</b></string> - <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"按住某个键可看到重音符号"\n"(例如 ø、ö、ô、ó 等)"</b></string> - <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"轻触该键可切换到数字和符号输入模式"</b></string> - <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"再次轻触该键可返回字母输入模式"</b></string> - <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"长按该键可更改键盘设置,例如自动填写"</b></string> + <string name="tip_to_open_keyboard" msgid="6821200275486950452"><b>"您可以随时通过触摸文字字段打开键盘"</b></string> + <string name="tip_to_view_accents" msgid="5433158573693308501"><b>"轻触并按住某个键可以查看重音符号"\n"(ø、ö、ô、ó 等)"</b></string> + <string name="tip_to_open_symbols" msgid="7345139325622444880"><b>"轻触该键即可切换到数字和符号键盘"</b></string> + <string name="tip_to_close_symbols" msgid="5227724217206927185"><b>"再次轻触该键即可返回字母键盘"</b></string> + <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"触摸并按住该键可更改键盘设置,例如自动完成"</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"试试吧!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"开始"</string> <string name="label_next_key" msgid="362972844525672568">"下一步"</string> @@ -111,10 +116,10 @@ </string-array> <string name="auto_submit" msgid="9151008027068358518">"语音结束后自动提交"</string> <string name="auto_submit_summary" msgid="4961875269610384226">"搜索或转到下一字段时自动按 Enter。"</string> - <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"打开键盘"\n</b></font><font size="3">\n</font>"轻触任意文本字段。"</string> + <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"打开键盘"\n</b></font><font size="3">\n</font>"触摸任意文本字段。"</string> <string name="close_the_keyboard" msgid="6251022259044940103"><font size="17"><b>"关闭键盘"\n</b></font><font size="3">\n</font>"按“返回”键。"</string> - <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"按住某个键可开启其他字符选项"\n</b></font><font size="3">\n</font>"访问标点和重音符号。"</string> - <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"键盘设置"\n</b></font><font size="3">\n</font>"长按 "<b>"?123"</b>" 键。"</string> + <string name="touch_and_hold" msgid="6154166367273010534"><font size="17"><b>"触摸并按住选项键"\n</b></font><font size="3">\n</font>"进入标点/重音符号界面。"</string> + <string name="keyboard_settings" msgid="4585753477617374032"><font size="17"><b>"键盘设置"\n</b></font><font size="3">\n</font>"触摸并按住 "<b>"?123"</b>" 键。"</string> <string name="popular_domain_0" msgid="3745279225122472969">".com"</string> <string name="popular_domain_1" msgid="1370572248164278467">".net"</string> <string name="popular_domain_2" msgid="3036812463748402878">".org"</string> @@ -124,4 +129,5 @@ <string name="language_selection_title" msgid="1651299598555326750">"输入语言"</string> <string name="language_selection_summary" msgid="187110938289512256">"在空格键上滑动手指可更改语言"</string> <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← 再次点按即可保存"</string> + <string name="has_dictionary" msgid="6071847973466625007">"提供字典"</string> </resources> diff --git a/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml index c4efd00a6..4f83be405 100644 --- a/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2009 The Android Open Source Project +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + --> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="english_ime_name" msgid="7252517407088836577">"Android 鍵盤"</string> @@ -70,7 +75,7 @@ <string name="tip_to_launch_settings" msgid="8402961128983196128"><b>"輕觸並按住此鍵即可變更鍵盤設定,例如自動完成"</b></string> <string name="tip_to_start_typing" msgid="7213843601369174313"><b>"試試看!"</b></string> <string name="label_go_key" msgid="1635148082137219148">"開始"</string> - <string name="label_next_key" msgid="362972844525672568">"下一步"</string> + <string name="label_next_key" msgid="362972844525672568">"繼續"</string> <string name="label_done_key" msgid="2441578748772529288">"完成"</string> <string name="label_send_key" msgid="2815056534433717444">"傳送"</string> <string name="label_symbol_key" msgid="6175820506864489453">"?123"</string> @@ -98,14 +103,17 @@ <string name="voice_punctuation_hint" msgid="1611389463237317754"><b>"提示:"</b>"下次可嘗試說出標點符號,例如「句號」、「逗號」或「問號」。"</string> <string name="cancel" msgid="6830980399865683324">"取消"</string> <string name="ok" msgid="7898366843681727667">"確定"</string> - <!-- no translation found for voice_input (2466640768843347841) --> - <skip /> - <!-- no translation found for voice_input_modes:0 (1349082139076086774) --> - <!-- no translation found for voice_input_modes:1 (8529385602829095903) --> - <!-- no translation found for voice_input_modes:2 (7283103513488381103) --> - <!-- no translation found for voice_input_modes_summary:0 (554248625705084903) --> - <!-- no translation found for voice_input_modes_summary:1 (6907837061058876770) --> - <!-- no translation found for voice_input_modes_summary:2 (3664304608587798036) --> + <string name="voice_input" msgid="2466640768843347841">"語音輸入"</string> + <string-array name="voice_input_modes"> + <item msgid="1349082139076086774">"於主鍵盤"</item> + <item msgid="8529385602829095903">"於符號鍵盤"</item> + <item msgid="7283103513488381103">"關閉"</item> + </string-array> + <string-array name="voice_input_modes_summary"> + <item msgid="554248625705084903">"主鍵盤上的麥克風"</item> + <item msgid="6907837061058876770">"符號鍵盤上的麥克風"</item> + <item msgid="3664304608587798036">"已停用語音輸入"</item> + </string-array> <string name="auto_submit" msgid="9151008027068358518">"說話後自動提交"</string> <string name="auto_submit_summary" msgid="4961875269610384226">"搜尋或前往下一個欄位時自動按下輸入。"</string> <string name="open_the_keyboard" msgid="2215920976029260466"><font size="17"><b>"開啟鍵盤"\n</b></font><font size="3">\n</font>"輕觸任何文字欄位。"</string> @@ -118,10 +126,8 @@ <string name="popular_domain_3" msgid="8718639560809452028">".gov"</string> <string name="popular_domain_4" msgid="35359437471311470">".edu"</string> <string name="inputMethod" msgid="7854532062009028116">"輸入方式"</string> - <!-- no translation found for language_selection_title (1651299598555326750) --> - <skip /> - <!-- no translation found for language_selection_summary (187110938289512256) --> - <skip /> - <!-- no translation found for hint_add_to_dictionary (8058519710062071085) --> - <skip /> + <string name="language_selection_title" msgid="1651299598555326750">"輸入語言"</string> + <string name="language_selection_summary" msgid="187110938289512256">"以手指在空白鍵上滑動可變更語言"</string> + <string name="hint_add_to_dictionary" msgid="8058519710062071085">"← 再次輕按可儲存"</string> + <string name="has_dictionary" msgid="6071847973466625007">"可使用字典"</string> </resources> diff --git a/res/values/bools.xml b/java/res/values/bools.xml index ebe2f04e5..ebe2f04e5 100644 --- a/res/values/bools.xml +++ b/java/res/values/bools.xml diff --git a/res/values/colors.xml b/java/res/values/colors.xml index c90d9f6af..c90d9f6af 100644 --- a/res/values/colors.xml +++ b/java/res/values/colors.xml diff --git a/res/values/dimens.xml b/java/res/values/dimens.xml index 5b2095c0e..5b2095c0e 100644 --- a/res/values/dimens.xml +++ b/java/res/values/dimens.xml diff --git a/res/values/donottranslate.xml b/java/res/values/donottranslate.xml index 87c28aeba..d5017353d 100644 --- a/res/values/donottranslate.xml +++ b/java/res/values/donottranslate.xml @@ -34,4 +34,6 @@ <string name="alternates_for_z"></string> <!-- Accented characters related to "l" --> <string name="alternates_for_l"></string> + <!-- Accented characters related to "g" --> + <string name="alternates_for_g"></string> </resources> diff --git a/res/values/durations.xml b/java/res/values/durations.xml index 92af68e39..92af68e39 100644 --- a/res/values/durations.xml +++ b/java/res/values/durations.xml diff --git a/res/values/keycodes.xml b/java/res/values/keycodes.xml index 8156c0e07..8156c0e07 100644 --- a/res/values/keycodes.xml +++ b/java/res/values/keycodes.xml diff --git a/res/values/strings.xml b/java/res/values/strings.xml index 9025ca0f6..35dd3e089 100644 --- a/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -319,4 +319,7 @@ <!-- Add to dictionary hint --> <string name="hint_add_to_dictionary">\u2190 Tap again to save</string> + + <!-- Inform the user that a particular language has an available dictionary --> + <string name="has_dictionary">Dictionary available</string> </resources> diff --git a/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml index 4e57c6067..da833b2c4 100755 --- a/res/xml-de/kbd_qwerty.xml +++ b/java/res/xml-de/kbd_qwerty.xml @@ -120,11 +120,11 @@ <Key android:keyLabel="/" android:keyWidth="10%p"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:keyWidth="10%p"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" @@ -140,11 +140,11 @@ <Key android:keyLabel="\@"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:iconPreview="@drawable/sym_keyboard_feedback_return" diff --git a/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml index 1b20c0438..77076fd2f 100644 --- a/res/xml-fr/kbd_qwerty.xml +++ b/java/res/xml-fr/kbd_qwerty.xml @@ -122,11 +122,11 @@ <Key android:keyLabel="/" android:keyWidth="10%p"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:keyWidth="10%p"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" @@ -142,11 +142,11 @@ <Key android:keyLabel="\@"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:iconPreview="@drawable/sym_keyboard_feedback_return" diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml new file mode 100755 index 000000000..3cec7cda4 --- /dev/null +++ b/java/res/xml-iw/kbd_qwerty.xml @@ -0,0 +1,164 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" + android:keyWidth="10%p" + android:horizontalGap="0px" + android:verticalGap="0px" + android:keyHeight="@dimen/key_height" + > + + <Row> + <Key android:keyLabel="ק" + android:horizontalGap="5%p" + android:keyEdgeFlags="left"/> + <Key android:keyLabel="ר"/> + <Key android:keyLabel="א"/> + <Key android:keyLabel="ט"/> + <Key android:keyLabel="ו"/> + <Key android:keyLabel="ן"/> + <Key android:keyLabel="ם"/> + <Key android:keyLabel="פ"/> + <Key android:codes="-5" + android:horizontalGap="1.25%p" + android:keyIcon="@drawable/sym_keyboard_delete" + android:keyWidth="13.75%p" android:keyEdgeFlags="right" + android:iconPreview="@drawable/sym_keyboard_feedback_delete" + android:isRepeatable="true"/> + </Row> + + <Row> + <Key android:keyLabel="ש" android:keyEdgeFlags="left"/> + <Key android:keyLabel="ד"/> + <Key android:keyLabel="ג"/> + <Key android:keyLabel="כ"/> + <Key android:keyLabel="ע"/> + <Key android:keyLabel="י"/> + <Key android:keyLabel="ח"/> + <Key android:keyLabel="ל"/> + <Key android:keyLabel="ך"/> + <Key android:keyLabel="ף" android:keyEdgeFlags="right"/> + </Row> + + <Row> + <Key android:keyLabel="ז" android:horizontalGap="5%p" android:keyEdgeFlags="left"/> + <Key android:keyLabel="ס"/> + <Key android:keyLabel="ב"/> + <Key android:keyLabel="ה"/> + <Key android:keyLabel="נ"/> + <Key android:keyLabel="מ"/> + <Key android:keyLabel="צ"/> + <Key android:keyLabel="ת"/> + <Key android:keyLabel="ץ" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe" + android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="40%p" android:isRepeatable="true"/> + <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" + android:keyWidth="10%p"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:keyLabel="/" android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="20%p" android:isRepeatable="true"/> + <Key android:keyLabel="@string/popular_domain_0" + android:keyOutputText="@string/popular_domain_0" + android:popupKeyboard="@xml/popup_domains" + android:keyWidth="20%p"/> + <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" + android:keyWidth="10%p"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:keyLabel="\@" android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="20%p" android:isRepeatable="true"/> + <Key android:keyLabel="@string/popular_domain_0" + android:keyOutputText="@string/popular_domain_0" + android:popupKeyboard="@xml/popup_domains" + android:keyWidth="20%p"/> + <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe" + android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="40%p" android:isRepeatable="true"/> + <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" + android:keyWidth="10%p"/> + <Key android:keyLabel=":-)" android:keyOutputText=":-) " + android:popupKeyboard="@xml/popup_smileys" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe" + android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="20%p" android:isRepeatable="true"/> + <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab" + android:iconPreview="@drawable/sym_keyboard_feedback_tab" + android:keyWidth="20%p"/> + <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> +</Keyboard> + diff --git a/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml index 45d355b0f..cbb518f24 100755 --- a/res/xml-ru/kbd_qwerty.xml +++ b/java/res/xml-ru/kbd_qwerty.xml @@ -26,7 +26,7 @@ > <Row> - <Key android:keyLabel="й" + <Key android:keyLabel="й" android:keyWidth="8.75%p" android:keyEdgeFlags="left"/> <Key android:keyLabel="ц"/> <Key android:keyLabel="у"/> @@ -39,12 +39,12 @@ <Key android:keyLabel="ш"/> <Key android:keyLabel="щ"/> <Key android:keyLabel="з"/> - <Key android:keyLabel="х" + <Key android:keyLabel="х" android:keyWidth="8.75%p" android:keyEdgeFlags="right"/> </Row> <Row> - <Key android:keyLabel="ф" + <Key android:keyLabel="ф" android:keyWidth="8.75%p" android:keyEdgeFlags="left"/> <Key android:keyLabel="ы"/> <Key android:keyLabel="в"/> @@ -55,7 +55,7 @@ <Key android:keyLabel="л"/> <Key android:keyLabel="д"/> <Key android:keyLabel="ж"/> - <Key android:keyLabel="э" + <Key android:keyLabel="э" android:keyWidth="8.75%p" android:keyEdgeFlags="right"/> </Row> @@ -104,11 +104,11 @@ <Key android:keyLabel="/" android:keyWidth="10%p"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:keyWidth="10%p"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" @@ -124,11 +124,11 @@ <Key android:keyLabel="\@" android:keyWidth="10%p"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:iconPreview="@drawable/sym_keyboard_feedback_return" diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml new file mode 100644 index 000000000..d4ffa4d52 --- /dev/null +++ b/java/res/xml-sv/kbd_qwerty.xml @@ -0,0 +1,215 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2008, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<!-- + Swedish Keyboard Layout + + Key positioning: Svensk standard SS 66 22 41 + Foreign letters: Svenska skrivregler (2:a uppl.) §302 + Local additions: €ß +--> + +<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" + android:keyWidth="9.09%p" + android:horizontalGap="0px" + android:verticalGap="0px" + android:keyHeight="@dimen/key_height" + > + + <Row> + <Key android:codes="113" android:keyLabel="q" + android:keyWidth="8.75%p" android:keyEdgeFlags="left"/> + <Key android:codes="119" android:keyLabel="w"/> + <Key android:codes="101" android:keyLabel="e" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="éèêëę€"/> + <Key android:codes="114" android:keyLabel="r" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="ř"/> + <Key android:codes="116" android:keyLabel="t" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="ťþ"/> + <Key android:codes="121" android:keyLabel="y" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="ýÿü"/> + <Key android:codes="117" android:keyLabel="u" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="úùûū"/> + <Key android:codes="105" android:keyLabel="i" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="íìîï"/> + <Key android:codes="111" android:keyLabel="o" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="óòôõ"/> + <Key android:codes="112" android:keyLabel="p"/> + <Key android:keyLabel="å" + android:keyWidth="8.75%p" android:keyEdgeFlags="right"/> + </Row> + + <Row> + <Key android:codes="97" android:keyLabel="a" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="áàâąã" + android:keyWidth="8.75%p" android:keyEdgeFlags="left"/> + <Key android:codes="115" android:keyLabel="s" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="śšşß"/> + <Key android:codes="100" android:keyLabel="d" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="ðď"/> + <Key android:codes="102" android:keyLabel="f"/> + <Key android:codes="103" android:keyLabel="g"/> + <Key android:codes="104" android:keyLabel="h"/> + <Key android:codes="106" android:keyLabel="j"/> + <Key android:codes="107" android:keyLabel="k"/> + <Key android:codes="108" android:keyLabel="l" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="ł"/> + <Key android:keyLabel="ö" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="øœ"/> + <Key android:keyLabel="ä" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="æ" + android:keyWidth="8.75%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyWidth="10%p"> + <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift" + android:keyWidth="15%p" android:isModifier="true" + android:iconPreview="@drawable/sym_keyboard_feedback_shift" + android:isSticky="true" android:keyEdgeFlags="left"/> + <Key android:codes="122" android:keyLabel="z" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="źžż"/> + <Key android:codes="120" android:keyLabel="x"/> + <Key android:codes="99" android:keyLabel="c" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="çćč"/> + <Key android:codes="118" android:keyLabel="v" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="w"/> + <Key android:codes="98" android:keyLabel="b"/> + <Key android:codes="110" android:keyLabel="n" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="ńñň"/> + <Key android:codes="109" android:keyLabel="m"/> + <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" + android:keyWidth="15%p" android:keyEdgeFlags="right" + android:iconPreview="@drawable/sym_keyboard_feedback_delete" + android:isRepeatable="true"/> + </Row> + + <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic" + android:iconPreview="@drawable/sym_keyboard_feedback_mic" + android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="40%p" android:isRepeatable="true"/> + <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" + android:keyWidth="10%p"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:keyLabel="/" android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" + android:keyOutputText="@string/popular_domain_0" + android:popupKeyboard="@xml/popup_domains" + android:keyWidth="20%p"/--> + <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" + android:keyWidth="10%p"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:keyLabel="\@"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" + android:keyOutputText="@string/popular_domain_0" + android:popupKeyboard="@xml/popup_domains" + android:keyWidth="20%p"/--> + <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic" + android:iconPreview="@drawable/sym_keyboard_feedback_mic" + android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="40%p" android:isRepeatable="true"/> + <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" + android:keyWidth="10%p"/> + <Key android:keyLabel=":-)" android:keyOutputText=":-) " + android:popupKeyboard="@xml/popup_smileys" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + + <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom"> + <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="_" + android:keyWidth="20%p" android:keyEdgeFlags="left"/> + <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic" + android:iconPreview="@drawable/sym_keyboard_feedback_mic" + android:keyWidth="10%p"/> + <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" + android:iconPreview="@drawable/sym_keyboard_feedback_space" + android:keyWidth="20%p" android:isRepeatable="true"/> + <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab" + android:iconPreview="@drawable/sym_keyboard_feedback_tab" + android:keyWidth="20%p"/> + <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> + <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" + android:iconPreview="@drawable/sym_keyboard_feedback_return" + android:keyWidth="20%p" android:keyEdgeFlags="right"/> + </Row> + +</Keyboard> diff --git a/res/xml/azerty.xml b/java/res/xml/azerty.xml index 614aa4936..614aa4936 100644 --- a/res/xml/azerty.xml +++ b/java/res/xml/azerty.xml diff --git a/res/xml/kbd_alpha.xml b/java/res/xml/kbd_alpha.xml index 4e8af3399..4e8af3399 100644 --- a/res/xml/kbd_alpha.xml +++ b/java/res/xml/kbd_alpha.xml diff --git a/res/xml/kbd_extension.xml b/java/res/xml/kbd_extension.xml index c64f666d0..c64f666d0 100755 --- a/res/xml/kbd_extension.xml +++ b/java/res/xml/kbd_extension.xml diff --git a/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml index d2bcdac52..d2bcdac52 100755 --- a/res/xml/kbd_phone.xml +++ b/java/res/xml/kbd_phone.xml diff --git a/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml index 9604664fa..9604664fa 100755 --- a/res/xml/kbd_phone_symbols.xml +++ b/java/res/xml/kbd_phone_symbols.xml diff --git a/res/xml/kbd_popup_template.xml b/java/res/xml/kbd_popup_template.xml index aca46930f..aca46930f 100644 --- a/res/xml/kbd_popup_template.xml +++ b/java/res/xml/kbd_popup_template.xml diff --git a/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml index 4aa476136..7cb18b04e 100755 --- a/res/xml/kbd_qwerty.xml +++ b/java/res/xml/kbd_qwerty.xml @@ -70,7 +70,10 @@ android:popupKeyboard="@xml/kbd_popup_template" android:popupCharacters="@string/alternates_for_d"/> <Key android:codes="102" android:keyLabel="f"/> - <Key android:codes="103" android:keyLabel="g"/> + <Key android:codes="103" android:keyLabel="g" + android:popupKeyboard="@xml/kbd_popup_template" + android:popupCharacters="@string/alternates_for_g" + /> <Key android:codes="104" android:keyLabel="h"/> <Key android:codes="106" android:keyLabel="j"/> <Key android:codes="107" android:keyLabel="k"/> @@ -132,11 +135,11 @@ <Key android:keyLabel="/" android:keyWidth="10%p"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" android:keyWidth="10%p"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" @@ -152,11 +155,11 @@ <Key android:keyLabel="\@"/> <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space" android:iconPreview="@drawable/sym_keyboard_feedback_space" - android:keyWidth="20%p" android:isRepeatable="true"/> - <Key android:keyLabel="@string/popular_domain_0" + android:keyWidth="40%p" android:isRepeatable="true"/> + <!--Key android:keyLabel="@string/popular_domain_0" android:keyOutputText="@string/popular_domain_0" android:popupKeyboard="@xml/popup_domains" - android:keyWidth="20%p"/> + android:keyWidth="20%p"/--> <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:iconPreview="@drawable/sym_keyboard_feedback_return" diff --git a/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml index 067932b3f..ab5792fd1 100755 --- a/res/xml/kbd_symbols.xml +++ b/java/res/xml/kbd_symbols.xml @@ -77,7 +77,7 @@ /> <Key android:codes="45" android:keyLabel="-" android:popupKeyboard="@xml/kbd_popup_template" - android:popupCharacters="–—" + android:popupCharacters="_–—" /> <Key android:keyLabel="+" android:popupKeyboard="@xml/kbd_popup_template" @@ -131,7 +131,9 @@ android:keyWidth="40%p" android:iconPreview="@drawable/sym_keyboard_feedback_space" android:isRepeatable="true"/> - <Key android:keyLabel="." android:keyWidth="10%p" /> + <Key android:codes="46" android:keyLabel="." + android:popupKeyboard="@xml/popup_punctuation" + android:keyWidth="10%p"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="20%p" android:keyEdgeFlags="right" android:iconPreview="@drawable/sym_keyboard_feedback_return" /> diff --git a/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml index 09b5c3f9d..09b5c3f9d 100755 --- a/res/xml/kbd_symbols_shift.xml +++ b/java/res/xml/kbd_symbols_shift.xml diff --git a/res/xml/language_prefs.xml b/java/res/xml/language_prefs.xml index b7a4c07db..b7a4c07db 100644 --- a/res/xml/language_prefs.xml +++ b/java/res/xml/language_prefs.xml diff --git a/res/xml/method.xml b/java/res/xml/method.xml index 195691b7b..195691b7b 100644 --- a/res/xml/method.xml +++ b/java/res/xml/method.xml diff --git a/res/xml/popup_domains.xml b/java/res/xml/popup_domains.xml index b733fe24f..b733fe24f 100644 --- a/res/xml/popup_domains.xml +++ b/java/res/xml/popup_domains.xml diff --git a/res/xml/popup_punctuation.xml b/java/res/xml/popup_punctuation.xml index 518e3f1f2..a29fb520d 100644 --- a/res/xml/popup_punctuation.xml +++ b/java/res/xml/popup_punctuation.xml @@ -26,8 +26,8 @@ > <Row android:rowEdgeFlags="top"> - <Key android:keyLabel=";" android:keyEdgeFlags="left" /> - <Key android:keyLabel="," /> + <Key android:keyLabel=":" android:keyEdgeFlags="left" /> + <Key android:keyLabel="/" /> <Key android:keyLabel="&" /> <Key android:keyLabel="(" /> <Key android:keyLabel=")" /> @@ -35,12 +35,12 @@ <Key android:keyLabel="+" android:keyEdgeFlags="right" /> </Row> <Row android:rowEdgeFlags="bottom"> - <Key android:codes="58" android:keyLabel=":" android:keyEdgeFlags="left" /> - <Key android:codes="47" android:keyLabel="/" /> - <Key android:codes="64" android:keyLabel="\@" /> - <Key android:codes="39" android:keyLabel="\'" /> - <Key android:codes="34" android:keyLabel=""" /> - <Key android:codes="63" android:keyLabel="\?" /> - <Key android:codes="33" android:keyLabel="!" android:keyEdgeFlags="right" /> + <Key android:keyLabel=";" android:keyEdgeFlags="left" /> + <Key android:keyLabel="," /> + <Key android:keyLabel="\@" /> + <Key android:keyLabel="\'" /> + <Key android:keyLabel=""" /> + <Key android:keyLabel="\?" /> + <Key android:keyLabel="!" android:keyEdgeFlags="right" /> </Row> </Keyboard> diff --git a/res/xml/popup_smileys.xml b/java/res/xml/popup_smileys.xml index 5663fefc8..5663fefc8 100644 --- a/res/xml/popup_smileys.xml +++ b/java/res/xml/popup_smileys.xml diff --git a/res/xml/prefs.xml b/java/res/xml/prefs.xml index 29c43cba5..535b63f3b 100644 --- a/res/xml/prefs.xml +++ b/java/res/xml/prefs.xml @@ -50,9 +50,7 @@ android:title="@string/language_selection_title" android:summary="@string/language_selection_summary"> <intent - android:action="android.intent.action.MAIN" - android:targetPackage="com.android.inputmethod.latin" - android:targetClass="com.android.inputmethod.latin.InputLanguageSelection" /> + android:action="com.android.inputmethod.latin.INPUT_LANGUAGE_SELECTION"/> </PreferenceScreen> <PreferenceCategory diff --git a/src/com/android/inputmethod/latin/AutoDictionary.java b/java/src/com/android/inputmethod/latin/AutoDictionary.java index 3d76dc301..93f1985ca 100644 --- a/src/com/android/inputmethod/latin/AutoDictionary.java +++ b/java/src/com/android/inputmethod/latin/AutoDictionary.java @@ -17,6 +17,8 @@ package com.android.inputmethod.latin; import java.util.HashMap; +import java.util.Set; +import java.util.Map.Entry; import android.content.ContentValues; import android.content.Context; @@ -24,8 +26,8 @@ import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteQueryBuilder; +import android.os.AsyncTask; import android.provider.BaseColumns; -import android.provider.UserDictionary.Words; import android.util.Log; /** @@ -51,6 +53,9 @@ public class AutoDictionary extends ExpandableDictionary { // Locale for which this auto dictionary is storing words private String mLocale; + private HashMap<String,Integer> mPendingWrites = new HashMap<String,Integer>(); + private final Object mPendingWritesLock = new Object(); + private static final String DATABASE_NAME = "auto_dict.db"; private static final int DATABASE_VERSION = 1; @@ -78,13 +83,15 @@ public class AutoDictionary extends ExpandableDictionary { sDictProjectionMap.put(COLUMN_LOCALE, COLUMN_LOCALE); } - private DatabaseHelper mOpenHelper; + private static DatabaseHelper mOpenHelper = null; public AutoDictionary(Context context, LatinIME ime, String locale) { super(context); mIme = ime; mLocale = locale; - mOpenHelper = new DatabaseHelper(getContext()); + if (mOpenHelper == null) { + mOpenHelper = new DatabaseHelper(getContext()); + } if (mLocale != null && mLocale.length() > 1) { loadDictionary(); } @@ -96,28 +103,38 @@ public class AutoDictionary extends ExpandableDictionary { return frequency >= VALIDITY_THRESHOLD; } + @Override public void close() { - mOpenHelper.close(); + flushPendingWrites(); + // Don't close the database as locale changes will require it to be reopened anyway + // Also, the database is written to somewhat frequently, so it needs to be kept alive + // throughout the life of the process. + // mOpenHelper.close(); + super.close(); } - private void loadDictionary() { + @Override + public void loadDictionaryAsync() { // Load the words that correspond to the current input locale Cursor cursor = query(COLUMN_LOCALE + "=?", new String[] { mLocale }); - if (cursor.moveToFirst()) { - int wordIndex = cursor.getColumnIndex(COLUMN_WORD); - int frequencyIndex = cursor.getColumnIndex(COLUMN_FREQUENCY); - while (!cursor.isAfterLast()) { - String word = cursor.getString(wordIndex); - int frequency = cursor.getInt(frequencyIndex); - // Safeguard against adding really long words. Stack may overflow due - // to recursive lookup - if (word.length() < getMaxWordLength()) { - super.addWord(word, frequency); + try { + if (cursor.moveToFirst()) { + int wordIndex = cursor.getColumnIndex(COLUMN_WORD); + int frequencyIndex = cursor.getColumnIndex(COLUMN_FREQUENCY); + while (!cursor.isAfterLast()) { + String word = cursor.getString(wordIndex); + int frequency = cursor.getInt(frequencyIndex); + // Safeguard against adding really long words. Stack may overflow due + // to recursive lookup + if (word.length() < getMaxWordLength()) { + super.addWord(word, frequency); + } + cursor.moveToNext(); } - cursor.moveToNext(); } + } finally { + cursor.close(); } - cursor.close(); } @Override @@ -132,14 +149,29 @@ public class AutoDictionary extends ExpandableDictionary { int freq = getWordFrequency(word); freq = freq < 0 ? addFrequency : freq + addFrequency; super.addWord(word, freq); + if (freq >= PROMOTION_THRESHOLD) { mIme.promoteToUserDictionary(word, FREQUENCY_FOR_AUTO_ADD); - // Delete the word (for input locale) from the auto dictionary db, as it - // is now in the user dictionary provider. - delete(COLUMN_WORD + "=? AND " + COLUMN_LOCALE + "=?", - new String[] { word, mLocale }); - } else { - update(word, freq, mLocale); + freq = 0; + } + + synchronized (mPendingWritesLock) { + // Write a null frequency if it is to be deleted from the db + mPendingWrites.put(word, freq == 0 ? null : new Integer(freq)); + } + } + + /** + * Schedules a background thread to write any pending words to the database. + */ + public void flushPendingWrites() { + synchronized (mPendingWritesLock) { + // Nothing pending? Return + if (mPendingWrites.isEmpty()) return; + // Create a background thread to write the pending entries + new UpdateDbTask(getContext(), mOpenHelper, mPendingWrites, mLocale).execute(); + // Create a new map for writing new entries into while the old one is written to db + mPendingWrites = new HashMap<String, Integer>(); } } @@ -183,35 +215,45 @@ public class AutoDictionary extends ExpandableDictionary { return c; } - private boolean insert(ContentValues values) { - SQLiteDatabase db = mOpenHelper.getWritableDatabase(); - long rowId = db.insert(AUTODICT_TABLE_NAME, Words.WORD, values); - if (rowId > 0) { - return true; - } - return false; - } + /** + * Async task to write pending words to the database so that it stays in sync with + * the in-memory trie. + */ + private static class UpdateDbTask extends AsyncTask<Void, Void, Void> { + private final HashMap<String, Integer> mMap; + private final DatabaseHelper mDbHelper; + private final String mLocale; - private int delete(String where, String[] whereArgs) { - SQLiteDatabase db = mOpenHelper.getWritableDatabase(); - int count = db.delete(AUTODICT_TABLE_NAME, where, whereArgs); - return count; - } + public UpdateDbTask(Context context, DatabaseHelper openHelper, + HashMap<String, Integer> pendingWrites, String locale) { + mMap = pendingWrites; + mLocale = locale; + mDbHelper = openHelper; + } - private int update(String word, int frequency, String locale) { - SQLiteDatabase db = mOpenHelper.getWritableDatabase(); - long count = db.delete(AUTODICT_TABLE_NAME, COLUMN_WORD + "=? AND " + COLUMN_LOCALE + "=?", - new String[] { word, locale }); - count = db.insert(AUTODICT_TABLE_NAME, null, - getContentValues(word, frequency, locale)); - return (int) count; - } + @Override + protected Void doInBackground(Void... v) { + SQLiteDatabase db = mDbHelper.getWritableDatabase(); + // Write all the entries to the db + Set<Entry<String,Integer>> mEntries = mMap.entrySet(); + for (Entry<String,Integer> entry : mEntries) { + Integer freq = entry.getValue(); + db.delete(AUTODICT_TABLE_NAME, COLUMN_WORD + "=? AND " + COLUMN_LOCALE + "=?", + new String[] { entry.getKey(), mLocale }); + if (freq != null) { + db.insert(AUTODICT_TABLE_NAME, null, + getContentValues(entry.getKey(), freq, mLocale)); + } + } + return null; + } - private ContentValues getContentValues(String word, int frequency, String locale) { - ContentValues values = new ContentValues(4); - values.put(COLUMN_WORD, word); - values.put(COLUMN_FREQUENCY, frequency); - values.put(COLUMN_LOCALE, locale); - return values; + private ContentValues getContentValues(String word, int frequency, String locale) { + ContentValues values = new ContentValues(4); + values.put(COLUMN_WORD, word); + values.put(COLUMN_FREQUENCY, frequency); + values.put(COLUMN_LOCALE, locale); + return values; + } } } diff --git a/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index ec467c88d..4901b210b 100644 --- a/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -16,6 +16,11 @@ package com.android.inputmethod.latin; +import java.io.InputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.channels.Channels; import java.util.Arrays; import android.content.Context; @@ -27,6 +32,7 @@ import android.util.Log; */ public class BinaryDictionary extends Dictionary { + private static final String TAG = "BinaryDictionary"; public static final int MAX_WORD_LENGTH = 48; private static final int MAX_ALTERNATIVES = 16; private static final int MAX_WORDS = 16; @@ -35,10 +41,13 @@ public class BinaryDictionary extends Dictionary { private static final boolean ENABLE_MISSED_CHARACTERS = true; private int mNativeDict; - private int mDictLength; // This value is set from native code, don't change the name!!!! + private int mDictLength; private int[] mInputCodes = new int[MAX_WORD_LENGTH * MAX_ALTERNATIVES]; private char[] mOutputChars = new char[MAX_WORD_LENGTH * MAX_WORDS]; private int[] mFrequencies = new int[MAX_WORDS]; + // Keep a reference to the native dict direct buffer in Java to avoid + // unexpected deallocation of the direct buffer. + private ByteBuffer mNativeDictDirectBuffer; static { try { @@ -59,8 +68,7 @@ public class BinaryDictionary extends Dictionary { } } - private native int openNative(AssetManager am, String resourcePath, int typedLetterMultiplier, - int fullWordMultiplier); + private native int openNative(ByteBuffer bb, int typedLetterMultiplier, int fullWordMultiplier); private native void closeNative(int dict); private native boolean isValidWordNative(int nativeData, char[] word, int wordLength); private native int getSuggestionsNative(int dict, int[] inputCodes, int codesSize, @@ -69,9 +77,28 @@ public class BinaryDictionary extends Dictionary { int[] nextLettersFrequencies, int nextLettersSize); private final void loadDictionary(Context context, int resId) { - AssetManager am = context.getResources().getAssets(); - String assetName = context.getResources().getString(resId); - mNativeDict = openNative(am, assetName, TYPED_LETTER_MULTIPLIER, FULL_WORD_FREQ_MULTIPLIER); + InputStream is = context.getResources().openRawResource(resId); + try { + int avail = is.available(); + mNativeDictDirectBuffer = + ByteBuffer.allocateDirect(avail).order(ByteOrder.nativeOrder()); + int got = Channels.newChannel(is).read(mNativeDictDirectBuffer); + if (got != avail) { + Log.e(TAG, "Read " + got + " bytes, expected " + avail); + } else { + mNativeDict = openNative(mNativeDictDirectBuffer, + TYPED_LETTER_MULTIPLIER, FULL_WORD_FREQ_MULTIPLIER); + mDictLength = avail; + } + } catch (IOException e) { + Log.w(TAG, "No available size for binary dictionary"); + } finally { + try { + is.close(); + } catch (IOException e) { + Log.w(TAG, "Failed to close input stream"); + } + } } @Override @@ -138,7 +165,6 @@ public class BinaryDictionary extends Dictionary { @Override public synchronized void close() { if (mNativeDict != 0) { - System.err.println("Closing BinaryDictionary"); closeNative(mNativeDict); mNativeDict = 0; } diff --git a/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java index 0c0373b3b..3a199bbaf 100755 --- a/src/com/android/inputmethod/latin/CandidateView.java +++ b/java/src/com/android/inputmethod/latin/CandidateView.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/src/com/android/inputmethod/latin/CandidateViewContainer.java b/java/src/com/android/inputmethod/latin/CandidateViewContainer.java index e13f2738c..e0cb8c3b0 100644 --- a/src/com/android/inputmethod/latin/CandidateViewContainer.java +++ b/java/src/com/android/inputmethod/latin/CandidateViewContainer.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/src/com/android/inputmethod/latin/ContactsDictionary.java b/java/src/com/android/inputmethod/latin/ContactsDictionary.java index f53ebf3f5..15edb706a 100644 --- a/src/com/android/inputmethod/latin/ContactsDictionary.java +++ b/java/src/com/android/inputmethod/latin/ContactsDictionary.java @@ -35,15 +35,8 @@ public class ContactsDictionary extends ExpandableDictionary { private ContentObserver mObserver; - private boolean mRequiresReload; - private long mLastLoadedContacts; - private boolean mUpdatingContacts; - - // Use this lock before touching mUpdatingContacts & mRequiresDownload - private Object mUpdatingLock = new Object(); - public ContactsDictionary(Context context) { super(context); // Perform a managed query. The Activity will handle closing and requerying the cursor @@ -53,15 +46,10 @@ public class ContactsDictionary extends ExpandableDictionary { cres.registerContentObserver(Contacts.CONTENT_URI, true, mObserver = new ContentObserver(null) { @Override public void onChange(boolean self) { - synchronized (mUpdatingLock) { - mRequiresReload = true; - } + setRequiresReload(true); } }); - - synchronized (mUpdatingLock) { - loadDictionaryAsyncLocked(); - } + loadDictionary(); } public synchronized void close() { @@ -69,41 +57,26 @@ public class ContactsDictionary extends ExpandableDictionary { getContext().getContentResolver().unregisterContentObserver(mObserver); mObserver = null; } + super.close(); } - private synchronized void loadDictionaryAsyncLocked() { + @Override + public void startDictionaryLoadingTaskLocked() { long now = SystemClock.uptimeMillis(); if (mLastLoadedContacts == 0 || now - mLastLoadedContacts > 30 * 60 * 1000 /* 30 minutes */) { - if (!mUpdatingContacts) { - mUpdatingContacts = true; - mRequiresReload = false; - new LoadContactsTask().execute(); - } - } - } - - @Override - public synchronized void getWords(final WordComposer codes, final WordCallback callback, - int[] nextLettersFrequencies) { - synchronized (mUpdatingLock) { - // If we need to update, start off a background task - if (mRequiresReload) loadDictionaryAsyncLocked(); - // Currently updating contacts, don't return any results. - if (mUpdatingContacts) return; + super.startDictionaryLoadingTaskLocked(); } - super.getWords(codes, callback, nextLettersFrequencies); } @Override - public synchronized boolean isValidWord(CharSequence word) { - synchronized (mUpdatingLock) { - // If we need to update, start off a background task - if (mRequiresReload) loadDictionaryAsyncLocked(); - if (mUpdatingContacts) return false; + public void loadDictionaryAsync() { + Cursor cursor = getContext().getContentResolver() + .query(Contacts.CONTENT_URI, PROJECTION, null, null, null); + if (cursor != null) { + addWords(cursor); } - - return super.isValidWord(word); + mLastLoadedContacts = SystemClock.uptimeMillis(); } private void addWords(Cursor cursor) { @@ -150,27 +123,5 @@ public class ContactsDictionary extends ExpandableDictionary { } cursor.close(); } - - private class LoadContactsTask extends AsyncTask<Void, Void, Void> { - @Override - protected Void doInBackground(Void... v) { - Cursor cursor = getContext().getContentResolver() - .query(Contacts.CONTENT_URI, PROJECTION, null, null, null); - if (cursor != null) { - addWords(cursor); - } - mLastLoadedContacts = SystemClock.uptimeMillis(); - return null; - } - @Override - protected void onPostExecute(Void result) { - // TODO Auto-generated method stub - synchronized (mUpdatingLock) { - mUpdatingContacts = false; - } - super.onPostExecute(result); - } - - } } diff --git a/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java index b656d04dc..e7b526663 100644 --- a/src/com/android/inputmethod/latin/Dictionary.java +++ b/java/src/com/android/inputmethod/latin/Dictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/src/com/android/inputmethod/latin/ExpandableDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java index 648f577ca..46bc41c42 100644 --- a/src/com/android/inputmethod/latin/ExpandableDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java @@ -16,7 +16,11 @@ package com.android.inputmethod.latin; +import com.android.inputmethod.latin.Dictionary.WordCallback; + import android.content.Context; +import android.os.AsyncTask; +import android.os.SystemClock; /** * Base class for an in-memory dictionary that can grow dynamically and can @@ -32,6 +36,13 @@ public class ExpandableDictionary extends Dictionary { public static final int MAX_WORD_LENGTH = 32; private static final char QUOTE = '\''; + private boolean mRequiresReload; + + private boolean mUpdatingDictionary; + + // Use this lock before touching mUpdatingDictionary & mRequiresDownload + private Object mUpdatingLock = new Object(); + static class Node { char code; int frequency; @@ -70,6 +81,34 @@ public class ExpandableDictionary extends Dictionary { mCodes = new int[MAX_WORD_LENGTH][]; } + public void loadDictionary() { + synchronized (mUpdatingLock) { + startDictionaryLoadingTaskLocked(); + } + } + + public void startDictionaryLoadingTaskLocked() { + if (!mUpdatingDictionary) { + mUpdatingDictionary = true; + mRequiresReload = false; + new LoadDictionaryTask().execute(); + } + } + + public void setRequiresReload(boolean reload) { + synchronized (mUpdatingLock) { + mRequiresReload = reload; + } + } + + public boolean getRequiresReload() { + return mRequiresReload; + } + + /** Override to load your dictionary here, on a background thread. */ + public void loadDictionaryAsync() { + } + Context getContext() { return mContext; } @@ -119,6 +158,13 @@ public class ExpandableDictionary extends Dictionary { @Override public void getWords(final WordComposer codes, final WordCallback callback, int[] nextLettersFrequencies) { + synchronized (mUpdatingLock) { + // If we need to update, start off a background task + if (mRequiresReload) startDictionaryLoadingTaskLocked(); + // Currently updating contacts, don't return any results. + if (mUpdatingDictionary) return; + } + mInputLength = codes.size(); mNextLettersFrequencies = nextLettersFrequencies; if (mCodes.length < mInputLength) mCodes = new int[mInputLength][]; @@ -135,6 +181,11 @@ public class ExpandableDictionary extends Dictionary { @Override public synchronized boolean isValidWord(CharSequence word) { + synchronized (mUpdatingLock) { + // If we need to update, start off a background task + if (mRequiresReload) startDictionaryLoadingTaskLocked(); + if (mUpdatingDictionary) return false; + } final int freq = getWordFrequencyRec(mRoots, word, 0, word.length()); return freq > -1; } @@ -248,7 +299,7 @@ public class ExpandableDictionary extends Dictionary { if (currentChar == lowerC || currentChar == c) { word[depth] = c; - if (codeSize == depth + 1) { + if (codeSize == inputIndex + 1) { if (terminal) { if (INCLUDE_TYPED_WORD_IF_VALID || !same(word, depth + 1, codes.getTypedWord())) { @@ -277,6 +328,24 @@ public class ExpandableDictionary extends Dictionary { mRoots = new NodeArray(); } + private class LoadDictionaryTask extends AsyncTask<Void, Void, Void> { + @Override + protected Void doInBackground(Void... v) { + loadDictionaryAsync(); + return null; + } + + @Override + protected void onPostExecute(Void result) { + // TODO Auto-generated method stub + synchronized (mUpdatingLock) { + mUpdatingDictionary = false; + } + super.onPostExecute(result); + } + + } + static char toLowerCase(char c) { if (c < BASE_CHARS.length) { c = BASE_CHARS[c]; diff --git a/src/com/android/inputmethod/latin/Hints.java b/java/src/com/android/inputmethod/latin/Hints.java index 689c8d852..689c8d852 100644 --- a/src/com/android/inputmethod/latin/Hints.java +++ b/java/src/com/android/inputmethod/latin/Hints.java diff --git a/src/com/android/inputmethod/latin/InputLanguageSelection.java b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java index 73298e33c..b5a11010b 100644 --- a/src/com/android/inputmethod/latin/InputLanguageSelection.java +++ b/java/src/com/android/inputmethod/latin/InputLanguageSelection.java @@ -23,6 +23,8 @@ import java.util.Locale; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; +import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.PreferenceActivity; @@ -34,6 +36,9 @@ public class InputLanguageSelection extends PreferenceActivity { private String mSelectedLanguages; private ArrayList<Loc> mAvailableLanguages = new ArrayList<Loc>(); + private static final String[] BLACKLIST_LANGUAGES = { + "ko", "ja", "zh", "el" + }; private static class Loc implements Comparable { static Collator sCollator = Collator.getInstance(); @@ -72,6 +77,9 @@ public class InputLanguageSelection extends PreferenceActivity { pref.setTitle(LanguageSwitcher.toTitleCase(locale.getDisplayName(locale))); boolean checked = isLocaleIn(locale, languageList); pref.setChecked(checked); + if (hasDictionary(locale)) { + pref.setSummary(R.string.has_dictionary); + } parent.addPreference(pref); } } @@ -89,6 +97,25 @@ public class InputLanguageSelection extends PreferenceActivity { return false; } + private boolean hasDictionary(Locale locale) { + Resources res = getResources(); + Configuration conf = res.getConfiguration(); + Locale saveLocale = conf.locale; + boolean haveDictionary = false; + conf.locale = locale; + res.updateConfiguration(conf, res.getDisplayMetrics()); + BinaryDictionary bd = new BinaryDictionary(this, R.raw.main); + // Is the dictionary larger than a placeholder? Arbitrarily chose a lower limit of + // 4000-5000 words, whereas the LARGE_DICTIONARY is about 20000+ words. + if (bd.getSize() > Suggest.LARGE_DICTIONARY_THRESHOLD / 4) { + haveDictionary = true; + } + bd.close(); + conf.locale = saveLocale; + res.updateConfiguration(conf, res.getDisplayMetrics()); + return haveDictionary; + } + private String get5Code(Locale locale) { String country = locale.getCountry(); return locale.getLanguage() @@ -137,6 +164,9 @@ public class InputLanguageSelection extends PreferenceActivity { String country = s.substring(3, 5); Locale l = new Locale(language, country); + // Exclude languages that are not relevant to LatinIME + if (arrayContains(BLACKLIST_LANGUAGES, language)) continue; + if (finalSize == 0) { preprocess[finalSize++] = new Loc(LanguageSwitcher.toTitleCase(l.getDisplayName(l)), l); @@ -167,4 +197,11 @@ public class InputLanguageSelection extends PreferenceActivity { } return uniqueLocales; } + + private boolean arrayContains(String[] array, String value) { + for (int i = 0; i < array.length; i++) { + if (array[i].equalsIgnoreCase(value)) return true; + } + return false; + } } diff --git a/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java index 4322997e8..1a196448f 100644 --- a/src/com/android/inputmethod/latin/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -147,8 +147,7 @@ public class KeyboardSwitcher { public boolean equals(KeyboardId other) { return other.mXml == this.mXml && other.mKeyboardMode == this.mKeyboardMode - && other.mEnableShiftLock == this.mEnableShiftLock - && other.mHasVoice == this.mHasVoice; + && other.mEnableShiftLock == this.mEnableShiftLock; } public int hashCode() { diff --git a/src/com/android/inputmethod/latin/LanguageSwitcher.java b/java/src/com/android/inputmethod/latin/LanguageSwitcher.java index 12045125f..12045125f 100644 --- a/src/com/android/inputmethod/latin/LanguageSwitcher.java +++ b/java/src/com/android/inputmethod/latin/LanguageSwitcher.java diff --git a/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 4c81b33b1..d0baed52a 100644 --- a/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1,6 +1,6 @@ /* - * Copyright (C) 2008-2009 Google Inc. - * + * Copyright (C) 2008 The Android Open Source Project + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at @@ -39,7 +39,7 @@ import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.preference.PreferenceManager; -import android.speech.RecognitionManager; +import android.speech.SpeechRecognizer; import android.text.AutoText; import android.text.ClipboardManager; import android.text.TextUtils; @@ -50,6 +50,8 @@ import android.view.HapticFeedbackConstants; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewParent; +import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.view.inputmethod.CompletionInfo; @@ -156,13 +158,14 @@ public class LatinIME extends InputMethodService private UserDictionary mUserDictionary; private ContactsDictionary mContactsDictionary; - private ExpandableDictionary mAutoDictionary; + private AutoDictionary mAutoDictionary; private Hints mHints; Resources mResources; - private String mLocale; + private String mInputLocale; + private String mSystemLocale; private LanguageSwitcher mLanguageSwitcher; private StringBuilder mComposing = new StringBuilder(); @@ -221,6 +224,10 @@ public class LatinIME extends InputMethodService private VoiceInput mVoiceInput; private VoiceResults mVoiceResults = new VoiceResults(); private long mSwipeTriggerTimeMillis; + private boolean mConfigurationChanging; + + // Keeps track of most recently inserted text (multi-character key) for reverting + private CharSequence mEnteredText; // For each word, a list of potential replacements, usually from voice. private Map<String, List<CharSequence>> mWordToSuggestions = @@ -230,6 +237,7 @@ public class LatinIME extends InputMethodService List<String> candidates; Map<String, List<CharSequence>> alternatives; } + private boolean mRefreshKeyboardRequired; Handler mHandler = new Handler() { @@ -274,7 +282,7 @@ public class LatinIME extends InputMethodService mLanguageSwitcher.loadLocales(prefs); mKeyboardSwitcher = new KeyboardSwitcher(this, this); mKeyboardSwitcher.setLanguageSwitcher(mLanguageSwitcher); - boolean enableMultipleLanguages = mLanguageSwitcher.getLocaleCount() > 0; + mSystemLocale = conf.locale.toString(); String inputLanguage = mLanguageSwitcher.getInputLanguage(); if (inputLanguage == null) { inputLanguage = conf.locale.toString(); @@ -303,7 +311,7 @@ public class LatinIME extends InputMethodService } private void initSuggest(String locale) { - mLocale = locale; + mInputLocale = locale; Resources orig = getResources(); Configuration conf = orig.getConfiguration(); @@ -318,14 +326,14 @@ public class LatinIME extends InputMethodService mSuggest = new Suggest(this, R.raw.main); updateAutoTextEnabled(saveLocale); if (mUserDictionary != null) mUserDictionary.close(); - mUserDictionary = new UserDictionary(this, mLocale); + mUserDictionary = new UserDictionary(this, mInputLocale); if (mContactsDictionary == null) { mContactsDictionary = new ContactsDictionary(this); } if (mAutoDictionary != null) { mAutoDictionary.close(); } - mAutoDictionary = new AutoDictionary(this, this, mLocale); + mAutoDictionary = new AutoDictionary(this, this, mInputLocale); mSuggest.setUserDictionary(mUserDictionary); mSuggest.setContactsDictionary(mContactsDictionary); mSuggest.setAutoDictionary(mAutoDictionary); @@ -351,10 +359,12 @@ public class LatinIME extends InputMethodService @Override public void onConfigurationChanged(Configuration conf) { // If the system locale changes and is different from the saved - // locale (mLocale), then reload the input locale list from the + // locale (mSystemLocale), then reload the input locale list from the // latin ime settings (shared prefs) and reset the input locale // to the first one. - if (!TextUtils.equals(conf.locale.toString(), mLocale)) { + final String systemLocale = conf.locale.toString(); + if (!TextUtils.equals(systemLocale, mSystemLocale)) { + mSystemLocale = systemLocale; if (mLanguageSwitcher != null) { mLanguageSwitcher.loadLocales( PreferenceManager.getDefaultSharedPreferences(this)); @@ -371,7 +381,12 @@ public class LatinIME extends InputMethodService mOrientation = conf.orientation; reloadKeyboards(); } + mConfigurationChanging = true; super.onConfigurationChanged(conf); + if (mRecognizing) { + switchToRecognitionStatusView(); + } + mConfigurationChanging = false; } @Override @@ -388,21 +403,6 @@ public class LatinIME extends InputMethodService } @Override - public void onInitializeInterface() { - // Create a new view associated with voice input if the old - // view is stuck in another layout (e.g. if switching from - // portrait to landscape while speaking) - // NOTE: This must be done here because for some reason - // onCreateInputView isn't called after an orientation change while - // speech rec is in progress. - if (mVoiceInput != null && mVoiceInput.getView().getParent() != null) { - mVoiceInput.newView(); - } - - super.onInitializeInterface(); - } - - @Override public View onCreateCandidatesView() { mKeyboardSwitcher.makeKeyboards(true); mCandidateViewContainer = (CandidateViewContainer) getLayoutInflater().inflate( @@ -455,6 +455,8 @@ public class LatinIME extends InputMethodService mCompletions = null; mCapsLock = false; mEmailText = false; + mEnteredText = null; + switch (attribute.inputType & EditorInfo.TYPE_MASK_CLASS) { case EditorInfo.TYPE_CLASS_NUMBER: case EditorInfo.TYPE_CLASS_DATETIME: @@ -534,6 +536,7 @@ public class LatinIME extends InputMethodService mDeleteCount = 0; mJustAddedAutoSpace = false; loadSettings(); + updateShiftKeyState(attribute); setCandidatesViewShown(false); setSuggestions(null, false, false, false); @@ -553,20 +556,18 @@ public class LatinIME extends InputMethodService public void onFinishInput() { super.onFinishInput(); - if (VOICE_INSTALLED && mAfterVoiceInput) { - mVoiceInput.logInputEnded(); - } - - if (VOICE_INSTALLED) { + if (VOICE_INSTALLED && !mConfigurationChanging) { + if (mAfterVoiceInput) { + mVoiceInput.flushAllTextModificationCounters(); + mVoiceInput.logInputEnded(); + } mVoiceInput.flushLogs(); + mVoiceInput.cancel(); } - if (mInputView != null) { mInputView.closing(); } - if (VOICE_INSTALLED && mRecognizing) { - mVoiceInput.cancel(); - } + if (mAutoDictionary != null) mAutoDictionary.flushPendingWrites(); } @Override @@ -574,8 +575,6 @@ public class LatinIME extends InputMethodService super.onUpdateExtractedText(token, text); InputConnection ic = getCurrentInputConnection(); if (!mImmediatelyAfterVoiceInput && mAfterVoiceInput && ic != null) { - mVoiceInput.logTextModified(); - if (mHints.showPunctuationHintIfNecessary(ic)) { mVoiceInput.logPunctuationHintDisplayed(); } @@ -599,6 +598,11 @@ public class LatinIME extends InputMethodService + ", ce=" + candidatesEnd); } + if (mAfterVoiceInput) { + mVoiceInput.setCursorPos(newSelEnd); + mVoiceInput.setSelectionSpan(newSelEnd - newSelStart); + } + mSuggestionShouldReplaceCurrentWord = false; // If the current selection in the text view changes, we should // clear whatever candidate text we have. @@ -653,23 +657,21 @@ public class LatinIME extends InputMethodService @Override public void hideWindow() { - if (mAfterVoiceInput) mVoiceInput.logInputEnded(); if (TRACE) Debug.stopMethodTracing(); if (mOptionsDialog != null && mOptionsDialog.isShowing()) { mOptionsDialog.dismiss(); mOptionsDialog = null; } - if (mVoiceWarningDialog != null && mVoiceWarningDialog.isShowing()) { - mVoiceInput.logKeyboardWarningDialogDismissed(); - mVoiceWarningDialog.dismiss(); - mVoiceWarningDialog = null; - } - if (mTutorial != null) { - mTutorial.close(); - mTutorial = null; - } - if (VOICE_INSTALLED & mRecognizing) { - mVoiceInput.cancel(); + if (!mConfigurationChanging) { + if (mAfterVoiceInput) mVoiceInput.logInputEnded(); + if (mVoiceWarningDialog != null && mVoiceWarningDialog.isShowing()) { + mVoiceInput.logKeyboardWarningDialogDismissed(); + mVoiceWarningDialog.dismiss(); + mVoiceWarningDialog = null; + } + if (VOICE_INSTALLED & mRecognizing) { + mVoiceInput.cancel(); + } } super.hideWindow(); TextEntryState.endSession(); @@ -706,7 +708,8 @@ public class LatinIME extends InputMethodService public void setCandidatesViewShown(boolean shown) { // TODO: Remove this if we support candidates with hard keyboard if (onEvaluateInputViewShown()) { - super.setCandidatesViewShown(shown); + // Show the candidates view only if input view is showing + super.setCandidatesViewShown(shown && mInputView != null && mInputView.isShown()); } } @@ -983,6 +986,8 @@ public class LatinIME extends InputMethodService if (mKeyboardSwitcher.onKey(primaryCode)) { changeKeyboardMode(); } + // Reset after any single keystroke + mEnteredText = null; } public void onText(CharSequence text) { @@ -1001,16 +1006,32 @@ public class LatinIME extends InputMethodService updateShiftKeyState(getCurrentInputEditorInfo()); mJustRevertedSeparator = null; mJustAddedAutoSpace = false; + mEnteredText = text; } private void handleBackspace() { if (VOICE_INSTALLED && mVoiceInputHighlighted) { + mVoiceInput.incrementTextModificationDeleteCount( + mVoiceResults.candidates.get(0).toString().length()); revertVoiceInput(); return; } boolean deleteChar = false; InputConnection ic = getCurrentInputConnection(); if (ic == null) return; + + if (mAfterVoiceInput) { + // Don't log delete if the user is pressing delete at + // the beginning of the text box (hence not deleting anything) + if (mVoiceInput.getCursorPos() > 0) { + // If anything was selected before the delete was pressed, increment the + // delete count by the length of the selection + int deleteLen = mVoiceInput.getSelectionSpan() > 0 ? + mVoiceInput.getSelectionSpan() : 1; + mVoiceInput.incrementTextModificationDeleteCount(deleteLen); + } + } + if (mPredicting) { final int length = mComposing.length(); if (length > 0) { @@ -1032,6 +1053,8 @@ public class LatinIME extends InputMethodService if (TextEntryState.getState() == TextEntryState.STATE_UNDO_COMMIT) { revertLastWord(deleteChar); return; + } else if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) { + ic.deleteSurroundingText(mEnteredText.length(), 0); } else if (deleteChar) { sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL); if (mDeleteCount > DELETE_ACCELERATE_AT) { @@ -1056,6 +1079,12 @@ public class LatinIME extends InputMethodService if (VOICE_INSTALLED && mVoiceInputHighlighted) { commitVoiceInput(); } + + if (mAfterVoiceInput) { + // Assume input length is 1. This assumption fails for smiley face insertions. + mVoiceInput.incrementTextModificationInsertCount(1); + } + if (isAlphabet(primaryCode) && isPredictionOn() && !isCursorTouchingWord()) { if (!mPredicting) { mPredicting = true; @@ -1099,6 +1128,12 @@ public class LatinIME extends InputMethodService if (VOICE_INSTALLED && mVoiceInputHighlighted) { commitVoiceInput(); } + + if (mAfterVoiceInput){ + // Assume input length is 1. This assumption fails for smiley face insertions. + mVoiceInput.incrementTextModificationInsertPunctuationCount(1); + } + boolean pickedDefault = false; // Handle separator InputConnection ic = getCurrentInputConnection(); @@ -1210,12 +1245,21 @@ public class LatinIME extends InputMethodService } private void switchToRecognitionStatusView() { - mHandler.post(new Runnable() { - public void run() { - mRecognizing = true; - setInputView(mVoiceInput.getView()); - updateInputViewShown(); - }}); + final boolean configChanged = mConfigurationChanging; + mHandler.post(new Runnable() { + public void run() { + mRecognizing = true; + View v = mVoiceInput.getView(); + ViewParent p = v.getParent(); + if (p != null && p instanceof ViewGroup) { + ((ViewGroup)v.getParent()).removeView(v); + } + setInputView(v); + updateInputViewShown(); + if (configChanged) { + mVoiceInput.onConfigurationChanged(); + } + }}); } private void startListening(boolean swipe) { @@ -1343,7 +1387,7 @@ public class LatinIME extends InputMethodService String bestResult = nBest.get(0).toString(); - mVoiceInput.logVoiceInputDelivered(); + mVoiceInput.logVoiceInputDelivered(bestResult.length()); mHints.registerVoiceResult(bestResult); @@ -1404,7 +1448,7 @@ public class LatinIME extends InputMethodService ((LatinKeyboard) mInputView.getKeyboard()).setPreferredLetters(nextLettersFrequencies); - boolean correctionAvailable = mSuggest.hasMinimalCorrection(); + boolean correctionAvailable = !mInputTypeNoAutoCorrect && mSuggest.hasMinimalCorrection(); //|| mCorrectionMode == mSuggest.CORRECTION_FULL; CharSequence typedWord = mWord.getTypedWord(); // If we're in basic correct @@ -1435,7 +1479,7 @@ public class LatinIME extends InputMethodService mHandler.removeMessages(MSG_UPDATE_SUGGESTIONS); updateSuggestions(); } - if (mBestWord != null) { + if (mBestWord != null && mBestWord.length() > 0) { TextEntryState.acceptedDefault(mWord.getTypedWord(), mBestWord); mJustAccepted = true; pickSuggestion(mBestWord); @@ -1447,6 +1491,12 @@ public class LatinIME extends InputMethodService public void pickSuggestionManually(int index, CharSequence suggestion) { if (mAfterVoiceInput && mShowingVoiceSuggestions) mVoiceInput.logNBestChoose(index); + if (mAfterVoiceInput && !mShowingVoiceSuggestions) { + mVoiceInput.flushAllTextModificationCounters(); + // send this intent AFTER logging any prior aggregated edits. + mVoiceInput.logTextModifiedByChooseSuggestion(suggestion.length()); + } + InputConnection ic = getCurrentInputConnection(); if (ic != null) { ic.beginBatchEdit(); @@ -1479,7 +1529,9 @@ public class LatinIME extends InputMethodService mJustAccepted = true; pickSuggestion(suggestion); // Add the word to the auto dictionary if it's not a known word - checkAddToDictionary(suggestion, AutoDictionary.FREQUENCY_FOR_PICKED); + if (index == 0) { + checkAddToDictionary(suggestion, AutoDictionary.FREQUENCY_FOR_PICKED); + } TextEntryState.acceptedSuggestion(mComposing.toString(), suggestion); // Follow it with a space if (mAutoSpace) { @@ -1525,8 +1577,13 @@ public class LatinIME extends InputMethodService } private void checkAddToDictionary(CharSequence suggestion, int frequencyDelta) { + // Only auto-add to dictionary if auto-correct is ON. Otherwise we'll be + // adding words in situations where the user or application really didn't + // want corrections enabled or learned. + if (!(mCorrectionMode == Suggest.CORRECTION_FULL)) return; if (mAutoDictionary.isValidWord(suggestion) - || !mSuggest.isValidWord(suggestion.toString().toLowerCase())) { + || (!mSuggest.isValidWord(suggestion.toString()) + && !mSuggest.isValidWord(suggestion.toString().toLowerCase()))) { mAutoDictionary.addWord(suggestion.toString(), frequencyDelta); } } @@ -1547,6 +1604,11 @@ public class LatinIME extends InputMethodService return false; } + private boolean sameAsTextBeforeCursor(InputConnection ic, CharSequence text) { + CharSequence beforeText = ic.getTextBeforeCursor(text.length(), 0); + return TextUtils.equals(text, beforeText); + } + public void revertLastWord(boolean deleteChar) { final int length = mComposing.length(); if (!mPredicting && length > 0) { @@ -1678,7 +1740,7 @@ public class LatinIME extends InputMethodService return ENABLE_VOICE_BUTTON && fieldCanDoVoice(fieldContext) && !(attribute != null && attribute.privateImeOptions != null && attribute.privateImeOptions.equals(IME_OPTION_NO_MICROPHONE)) - && RecognitionManager.isRecognitionAvailable(this); + && SpeechRecognizer.isRecognitionAvailable(this); } // receive ringer mode changes to detect silent mode @@ -1736,7 +1798,7 @@ public class LatinIME extends InputMethodService return; } if (mInputView != null) { - mInputView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, + mInputView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); } } @@ -1785,7 +1847,8 @@ public class LatinIME extends InputMethodService private void updateAutoTextEnabled(Locale systemLocale) { if (mSuggest == null) return; - boolean different = !systemLocale.getLanguage().equalsIgnoreCase(mLocale.substring(0, 2)); + boolean different = + !systemLocale.getLanguage().equalsIgnoreCase(mInputLocale.substring(0, 2)); mSuggest.setAutoTextEnabled(!different && mQuickFixes); } @@ -1824,7 +1887,7 @@ public class LatinIME extends InputMethodService ArrayList<String> voiceInputSupportedLocales = newArrayList(supportedLocalesString.split("\\s+")); - mLocaleSupportedForVoiceInput = voiceInputSupportedLocales.contains(mLocale); + mLocaleSupportedForVoiceInput = voiceInputSupportedLocales.contains(mInputLocale); mShowSuggestions = sp.getBoolean(PREF_SHOW_SUGGESTIONS, true); diff --git a/src/com/android/inputmethod/latin/LatinIMEBackupAgent.java b/java/src/com/android/inputmethod/latin/LatinIMEBackupAgent.java index b6a800ebd..568b31d04 100644 --- a/src/com/android/inputmethod/latin/LatinIMEBackupAgent.java +++ b/java/src/com/android/inputmethod/latin/LatinIMEBackupAgent.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -16,13 +16,13 @@ package com.android.inputmethod.latin; -import android.backup.BackupHelperAgent; -import android.backup.SharedPreferencesBackupHelper; +import android.app.backup.BackupAgentHelper; +import android.app.backup.SharedPreferencesBackupHelper; /** * Backs up the Latin IME shared preferences. */ -public class LatinIMEBackupAgent extends BackupHelperAgent { +public class LatinIMEBackupAgent extends BackupAgentHelper { public void onCreate() { addHelper("shared_pref", new SharedPreferencesBackupHelper(this, diff --git a/src/com/android/inputmethod/latin/LatinIMESettings.java b/java/src/com/android/inputmethod/latin/LatinIMESettings.java index 82f5d54b3..21b967420 100644 --- a/src/com/android/inputmethod/latin/LatinIMESettings.java +++ b/java/src/com/android/inputmethod/latin/LatinIMESettings.java @@ -1,6 +1,6 @@ /* - * Copyright (C) 2008-2009 Google Inc. - * + * Copyright (C) 2008 The Android Open Source Project + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at @@ -21,7 +21,7 @@ import java.util.Locale; import android.app.AlertDialog; import android.app.Dialog; -import android.backup.BackupManager; +import android.app.backup.BackupManager; import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; @@ -31,7 +31,7 @@ import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceGroup; import android.preference.Preference.OnPreferenceClickListener; -import android.speech.RecognitionManager; +import android.speech.SpeechRecognizer; import android.text.AutoText; import android.util.Log; @@ -88,7 +88,7 @@ public class LatinIMESettings extends PreferenceActivity .removePreference(mQuickFixes); } if (!LatinIME.VOICE_INSTALLED - || !RecognitionManager.isRecognitionAvailable(this)) { + || !SpeechRecognizer.isRecognitionAvailable(this)) { getPreferenceScreen().removePreference(mVoicePreference); } else { updateVoiceModeSummary(); diff --git a/src/com/android/inputmethod/latin/LatinKeyboard.java b/java/src/com/android/inputmethod/latin/LatinKeyboard.java index 58e1dc767..32cd8a45f 100644 --- a/src/com/android/inputmethod/latin/LatinKeyboard.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboard.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/src/com/android/inputmethod/latin/LatinKeyboardView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java index 2686a93c6..74fc475e6 100644 --- a/src/com/android/inputmethod/latin/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboardView.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -23,6 +23,7 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.inputmethodservice.Keyboard; import android.inputmethodservice.KeyboardView; +import android.inputmethodservice.KeyboardView.OnKeyboardActionListener; import android.inputmethodservice.Keyboard.Key; import android.os.Handler; import android.os.Message; @@ -43,10 +44,27 @@ public class LatinKeyboardView extends KeyboardView { private Keyboard mPhoneKeyboard; + /** Whether the extension of this keyboard is visible */ private boolean mExtensionVisible; + /** The view that is shown as an extension of this keyboard view */ private LatinKeyboardView mExtension; + /** The popup window that contains the extension of this keyboard */ private PopupWindow mExtensionPopup; + /** Whether this view is an extension of another keyboard */ + private boolean mIsExtensionType; private boolean mFirstEvent; + /** Whether we've started dropping move events because we found a big jump */ + private boolean mDroppingEvents; + /** + * Whether multi-touch disambiguation needs to be disabled for any reason. There are 2 reasons + * for this to happen - (1) if a real multi-touch event has occured and (2) we've opened an + * extension keyboard. + */ + private boolean mDisableDisambiguation; + /** The distance threshold at which we start treating the touch session as a multi-touch */ + private int mJumpThresholdSquare = Integer.MAX_VALUE; + /** The y coordinate of the last row */ + private int mLastRowY; public LatinKeyboardView(Context context, AttributeSet attrs) { super(context, attrs); @@ -61,6 +79,17 @@ public class LatinKeyboardView extends KeyboardView { } @Override + public void setKeyboard(Keyboard k) { + super.setKeyboard(k); + // One-seventh of the keyboard width seems like a reasonable threshold + mJumpThresholdSquare = k.getMinWidth() / 7; + mJumpThresholdSquare *= mJumpThresholdSquare; + // Assuming there are 4 rows, this is the coordinate of the last row + mLastRowY = (k.getHeight() * 3) / 4; + setKeyboardLocal(k); + } + + @Override protected boolean onLongPress(Key key) { if (key.codes[0] == Keyboard.KEYCODE_MODE_CHANGE) { getOnKeyboardActionListener().onKey(KEYCODE_OPTIONS, null); @@ -78,6 +107,83 @@ public class LatinKeyboardView extends KeyboardView { } } + /** + * This function checks to see if we need to handle any sudden jumps in the pointer location + * that could be due to a multi-touch being treated as a move by the firmware or hardware. + * Once a sudden jump is detected, all subsequent move events are discarded + * until an UP is received.<P> + * When a sudden jump is detected, an UP event is simulated at the last position and when + * the sudden moves subside, a DOWN event is simulated for the second key. + * @param me the motion event + * @return true if the event was consumed, so that it doesn't continue to be handled by + * KeyboardView. + */ + private boolean handleSuddenJump(MotionEvent me) { + final int action = me.getAction(); + final int x = (int) me.getX(); + final int y = (int) me.getY(); + boolean result = false; + + // Real multi-touch event? Stop looking for sudden jumps + if (me.getPointerCount() > 1) { + mDisableDisambiguation = true; + } + if (mDisableDisambiguation) { + // If UP, reset the multi-touch flag + if (action == MotionEvent.ACTION_UP) mDisableDisambiguation = false; + return false; + } + + switch (action) { + case MotionEvent.ACTION_DOWN: + // Reset the "session" + mDroppingEvents = false; + mDisableDisambiguation = false; + break; + case MotionEvent.ACTION_MOVE: + // Is this a big jump? + final int distanceSquare = (mLastX - x) * (mLastX - x) + (mLastY - y) * (mLastY - y); + // Check the distance and also if the move is not entirely within the bottom row + // If it's only in the bottom row, it might be an intentional slide gesture + // for language switching + if (distanceSquare > mJumpThresholdSquare + && (mLastY < mLastRowY || y < mLastRowY)) { + // If we're not yet dropping events, start dropping and send an UP event + if (!mDroppingEvents) { + mDroppingEvents = true; + // Send an up event + MotionEvent translated = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), + MotionEvent.ACTION_UP, + mLastX, mLastY, me.getMetaState()); + super.onTouchEvent(translated); + translated.recycle(); + } + result = true; + } else if (mDroppingEvents) { + // If moves are small and we're already dropping events, continue dropping + result = true; + } + break; + case MotionEvent.ACTION_UP: + if (mDroppingEvents) { + // Send a down event first, as we dropped a bunch of sudden jumps and assume that + // the user is releasing the touch on the second key. + MotionEvent translated = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), + MotionEvent.ACTION_DOWN, + x, y, me.getMetaState()); + super.onTouchEvent(translated); + translated.recycle(); + mDroppingEvents = false; + // Let the up event get processed as well, result = false + } + break; + } + // Track the previous coordinate + mLastX = x; + mLastY = y; + return result; + } + @Override public boolean onTouchEvent(MotionEvent me) { LatinKeyboard keyboard = (LatinKeyboard) getKeyboard(); @@ -86,6 +192,12 @@ public class LatinKeyboardView extends KeyboardView { mLastY = (int) me.getY(); invalidate(); } + + // If an extension keyboard is visible or this is an extension keyboard, don't look + // for sudden jumps. Otherwise, if there was a sudden jump, return without processing the + // actual motion event. + if (!mExtensionVisible && !mIsExtensionType + && handleSuddenJump(me)) return true; // Reset any bounding box controls in the keyboard if (me.getAction() == MotionEvent.ACTION_DOWN) { keyboard.keyReleased(); @@ -107,7 +219,9 @@ public class LatinKeyboardView extends KeyboardView { if (keyboard.getExtension() == 0) { return super.onTouchEvent(me); } - if (me.getY() < 0) { + // If the motion event is above the keyboard and it's not an UP event coming + // even before the first MOVE event into the extension area + if (me.getY() < 0 && (mExtensionVisible || me.getAction() != MotionEvent.ACTION_UP)) { if (mExtensionVisible) { int action = me.getAction(); if (mFirstEvent) action = MotionEvent.ACTION_DOWN; @@ -139,6 +253,8 @@ public class LatinKeyboardView extends KeyboardView { } else { mFirstEvent = true; } + // Stop processing multi-touch errors + mDisableDisambiguation = true; } return true; } @@ -157,7 +273,15 @@ public class LatinKeyboardView extends KeyboardView { } } + private void setExtensionType(boolean isExtensionType) { + mIsExtensionType = isExtensionType; + } + private boolean openExtension() { + // If the current keyboard is not visible, don't show the popup + if (!isShown()) { + return false; + } if (((LatinKeyboard) getKeyboard()).getExtension() == 0) return false; makePopupWindow(); mExtensionVisible = true; @@ -172,7 +296,9 @@ public class LatinKeyboardView extends KeyboardView { LayoutInflater li = (LayoutInflater) getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); mExtension = (LatinKeyboardView) li.inflate(R.layout.input_trans, null); - mExtension.setOnKeyboardActionListener((LatinIME) getContext()); + mExtension.setExtensionType(true); + mExtension.setOnKeyboardActionListener( + new ExtensionKeyboardListener(getOnKeyboardActionListener())); mExtension.setPopupParent(this); mExtension.setPopupOffset(0, -windowLocation[1]); Keyboard keyboard; @@ -181,6 +307,7 @@ public class LatinKeyboardView extends KeyboardView { mExtensionPopup.setContentView(mExtension); mExtensionPopup.setWidth(getWidth()); mExtensionPopup.setHeight(keyboard.getHeight()); + mExtensionPopup.setAnimationStyle(-1); getLocationInWindow(windowLocation); // TODO: Fix the "- 30". mExtension.setPopupOffset(0, -windowLocation[1] - 30); @@ -201,11 +328,42 @@ public class LatinKeyboardView extends KeyboardView { } private void closeExtension() { - mExtension.setVisibility(INVISIBLE); mExtension.closing(); + mExtension.setVisibility(INVISIBLE); mExtensionVisible = false; } + private static class ExtensionKeyboardListener implements OnKeyboardActionListener { + private OnKeyboardActionListener mTarget; + ExtensionKeyboardListener(OnKeyboardActionListener target) { + mTarget = target; + } + public void onKey(int primaryCode, int[] keyCodes) { + mTarget.onKey(primaryCode, keyCodes); + } + public void onPress(int primaryCode) { + mTarget.onPress(primaryCode); + } + public void onRelease(int primaryCode) { + mTarget.onRelease(primaryCode); + } + public void onText(CharSequence text) { + mTarget.onText(text); + } + public void swipeDown() { + // Don't pass through + } + public void swipeLeft() { + // Don't pass through + } + public void swipeRight() { + // Don't pass through + } + public void swipeUp() { + // Don't pass through + } + } + /**************************** INSTRUMENTATION *******************************/ static final boolean DEBUG_AUTO_PLAY = false; @@ -224,9 +382,7 @@ public class LatinKeyboardView extends KeyboardView { private int mLastY; private Paint mPaint; - @Override - public void setKeyboard(Keyboard k) { - super.setKeyboard(k); + private void setKeyboardLocal(Keyboard k) { if (DEBUG_AUTO_PLAY) { findKeys(); if (mHandler2 == null) { diff --git a/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index 712b9cf37..a70bea003 100755 --- a/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -39,7 +39,7 @@ public class Suggest implements Dictionary.WordCallback { public static final int CORRECTION_BASIC = 1; public static final int CORRECTION_FULL = 2; - private static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000; + static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000; private BinaryDictionary mMainDict; @@ -346,11 +346,10 @@ public class Suggest implements Dictionary.WordCallback { if (word == null || word.length() == 0) { return false; } - return (mCorrectionMode == CORRECTION_FULL && mMainDict.isValidWord(word)) - || (mCorrectionMode > CORRECTION_NONE && - ((mUserDictionary != null && mUserDictionary.isValidWord(word))) - || (mAutoDictionary != null && mAutoDictionary.isValidWord(word)) - || (mContactsDictionary != null && mContactsDictionary.isValidWord(word))); + return mMainDict.isValidWord(word) + || (mUserDictionary != null && mUserDictionary.isValidWord(word)) + || (mAutoDictionary != null && mAutoDictionary.isValidWord(word)) + || (mContactsDictionary != null && mContactsDictionary.isValidWord(word)); } private void collectGarbage() { diff --git a/src/com/android/inputmethod/latin/TextEntryState.java b/java/src/com/android/inputmethod/latin/TextEntryState.java index c5e8ad9a1..d056ceb16 100644 --- a/src/com/android/inputmethod/latin/TextEntryState.java +++ b/java/src/com/android/inputmethod/latin/TextEntryState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/src/com/android/inputmethod/latin/Tutorial.java b/java/src/com/android/inputmethod/latin/Tutorial.java index 03d4858c4..a8123317b 100644 --- a/src/com/android/inputmethod/latin/Tutorial.java +++ b/java/src/com/android/inputmethod/latin/Tutorial.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/src/com/android/inputmethod/latin/UserDictionary.java b/java/src/com/android/inputmethod/latin/UserDictionary.java index 4b98eacce..e8ca33af3 100644 --- a/src/com/android/inputmethod/latin/UserDictionary.java +++ b/java/src/com/android/inputmethod/latin/UserDictionary.java @@ -16,16 +16,11 @@ package com.android.inputmethod.latin; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; import android.database.ContentObserver; import android.database.Cursor; -import android.net.Uri; import android.provider.UserDictionary.Words; public class UserDictionary extends ExpandableDictionary { @@ -40,8 +35,6 @@ public class UserDictionary extends ExpandableDictionary { private static final int INDEX_FREQUENCY = 2; private ContentObserver mObserver; - - private boolean mRequiresReload; private String mLocale; public UserDictionary(Context context, String locale) { @@ -54,26 +47,27 @@ public class UserDictionary extends ExpandableDictionary { cres.registerContentObserver(Words.CONTENT_URI, true, mObserver = new ContentObserver(null) { @Override public void onChange(boolean self) { - mRequiresReload = true; + setRequiresReload(true); } }); loadDictionary(); } - + public synchronized void close() { if (mObserver != null) { getContext().getContentResolver().unregisterContentObserver(mObserver); mObserver = null; } + super.close(); } - - private synchronized void loadDictionary() { + + @Override + public void loadDictionaryAsync() { Cursor cursor = getContext().getContentResolver() .query(Words.CONTENT_URI, PROJECTION, "(locale IS NULL) or (locale=?)", new String[] { mLocale }, null); addWords(cursor); - mRequiresReload = false; } /** @@ -86,7 +80,8 @@ public class UserDictionary extends ExpandableDictionary { */ @Override public synchronized void addWord(String word, int frequency) { - if (mRequiresReload) loadDictionary(); + // Force load the dictionary here synchronously + if (getRequiresReload()) loadDictionaryAsync(); // Safeguard against adding long words. Can cause stack overflow. if (word.length() >= getMaxWordLength()) return; @@ -101,19 +96,17 @@ public class UserDictionary extends ExpandableDictionary { getContext().getContentResolver().insert(Words.CONTENT_URI, values); // In case the above does a synchronous callback of the change observer - mRequiresReload = false; + setRequiresReload(false); } @Override public synchronized void getWords(final WordComposer codes, final WordCallback callback, int[] nextLettersFrequencies) { - if (mRequiresReload) loadDictionary(); super.getWords(codes, callback, nextLettersFrequencies); } @Override public synchronized boolean isValidWord(CharSequence word) { - if (mRequiresReload) loadDictionary(); return super.isValidWord(word); } diff --git a/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java index e97cb24ba..19f714ae7 100644 --- a/src/com/android/inputmethod/latin/WordComposer.java +++ b/java/src/com/android/inputmethod/latin/WordComposer.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -84,11 +84,27 @@ public class WordComposer { */ public void add(int primaryCode, int[] codes) { mTypedWord.append((char) primaryCode); + correctPrimaryJuxtapos(primaryCode, codes); mCodes.add(codes); if (Character.isUpperCase((char) primaryCode)) mCapsCount++; } /** + * Swaps the first and second values in the codes array if the primary code is not the first + * value in the array but the second. This happens when the preferred key is not the key that + * the user released the finger on. + * @param primaryCode the preferred character + * @param codes array of codes based on distance from touch point + */ + private void correctPrimaryJuxtapos(int primaryCode, int[] codes) { + if (codes.length < 2) return; + if (codes[0] > 0 && codes[1] > 0 && codes[0] != primaryCode && codes[1] == primaryCode) { + codes[1] = codes[0]; + codes[0] = primaryCode; + } + } + + /** * Delete the last keystroke as a result of hitting backspace. */ public void deleteLast() { diff --git a/src/com/android/inputmethod/voice/EditingUtil.java b/java/src/com/android/inputmethod/voice/EditingUtil.java index 6316d8ccf..6316d8ccf 100644 --- a/src/com/android/inputmethod/voice/EditingUtil.java +++ b/java/src/com/android/inputmethod/voice/EditingUtil.java diff --git a/src/com/android/inputmethod/voice/FieldContext.java b/java/src/com/android/inputmethod/voice/FieldContext.java index 5fbacfb6c..5fbacfb6c 100644 --- a/src/com/android/inputmethod/voice/FieldContext.java +++ b/java/src/com/android/inputmethod/voice/FieldContext.java diff --git a/src/com/android/inputmethod/voice/LatinIMEWithVoice.java b/java/src/com/android/inputmethod/voice/LatinIMEWithVoice.java index ccbf5b6bc..ccbf5b6bc 100644 --- a/src/com/android/inputmethod/voice/LatinIMEWithVoice.java +++ b/java/src/com/android/inputmethod/voice/LatinIMEWithVoice.java diff --git a/src/com/android/inputmethod/voice/LatinIMEWithVoiceSettings.java b/java/src/com/android/inputmethod/voice/LatinIMEWithVoiceSettings.java index 13a58e14d..13a58e14d 100644 --- a/src/com/android/inputmethod/voice/LatinIMEWithVoiceSettings.java +++ b/java/src/com/android/inputmethod/voice/LatinIMEWithVoiceSettings.java diff --git a/src/com/android/inputmethod/voice/RecognitionView.java b/java/src/com/android/inputmethod/voice/RecognitionView.java index 5d4a0e0e1..7cec0b04a 100644 --- a/src/com/android/inputmethod/voice/RecognitionView.java +++ b/java/src/com/android/inputmethod/voice/RecognitionView.java @@ -16,7 +16,12 @@ package com.android.inputmethod.voice; -import com.android.inputmethod.latin.R; +import java.io.ByteArrayOutputStream; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.ShortBuffer; +import java.util.ArrayList; +import java.util.List; import android.content.ContentResolver; import android.content.Context; @@ -35,14 +40,10 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.MarginLayoutParams; import android.widget.ImageView; +import android.widget.ProgressBar; import android.widget.TextView; -import java.io.ByteArrayOutputStream; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.ShortBuffer; -import java.util.ArrayList; -import java.util.List; +import com.android.inputmethod.latin.R; /** * The user interface for the "Speak now" and "working" states. @@ -103,7 +104,6 @@ public class RecognitionView { LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); mView = inflater.inflate(R.layout.recognition_status, null); - ContentResolver cr = context.getContentResolver(); mMinMicrophoneLevel = SettingsUtil.getSettingsFloat( cr, SettingsUtil.LATIN_IME_MIN_MICROPHONE_LEVEL, 15.f); @@ -139,6 +139,18 @@ public class RecognitionView { return mView; } + public void restoreState() { + mUiHandler.post(new Runnable() { + public void run() { + // Restart the spinner + if (mState == State.WORKING) { + ((ProgressBar)mProgress).setIndeterminate(false); + ((ProgressBar)mProgress).setIndeterminate(true); + } + } + }); + } + public void showInitializing() { mUiHandler.post(new Runnable() { public void run() { @@ -262,12 +274,11 @@ public class RecognitionView { final int count = (endIndex - startIndex) / numSamplePerWave; final float deltaX = 1.0f * w / count; - int yMax = h / 2 - 10; + int yMax = h / 2 - 8; Path path = new Path(); c.translate(0, yMax); float x = 0; path.moveTo(x, 0); - yMax -= 10; for (int i = 0; i < count; i++) { final int avabs = getAverageAbs(waveBuffer, startIndex, i , numSamplePerWave); int sign = ( (i & 01) == 0) ? -1 : 1; @@ -285,8 +296,8 @@ public class RecognitionView { mImage.setImageBitmap(b); mImage.setVisibility(View.VISIBLE); MarginLayoutParams mProgressParams = (MarginLayoutParams)mProgress.getLayoutParams(); - mProgressParams.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, - -h / 2 - 18, mContext.getResources().getDisplayMetrics()); + mProgressParams.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, + -h , mContext.getResources().getDisplayMetrics()); // Tweak the padding manually to fill out the whole view horizontally. // TODO: Do this in the xml layout instead. diff --git a/src/com/android/inputmethod/voice/SettingsUtil.java b/java/src/com/android/inputmethod/voice/SettingsUtil.java index abf52047f..abf52047f 100644 --- a/src/com/android/inputmethod/voice/SettingsUtil.java +++ b/java/src/com/android/inputmethod/voice/SettingsUtil.java diff --git a/src/com/android/inputmethod/voice/VoiceInput.java b/java/src/com/android/inputmethod/voice/VoiceInput.java index a2e210536..ac06ab50d 100644 --- a/src/com/android/inputmethod/voice/VoiceInput.java +++ b/java/src/com/android/inputmethod/voice/VoiceInput.java @@ -26,7 +26,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.speech.RecognitionListener; -import android.speech.RecognitionManager; +import android.speech.SpeechRecognizer; import android.speech.RecognizerIntent; import android.util.Log; import android.view.View; @@ -94,6 +94,12 @@ public class VoiceInput implements OnClickListener { public static final int WORKING = 2; public static final int ERROR = 3; + private int mAfterVoiceInputDeleteCount = 0; + private int mAfterVoiceInputInsertCount = 0; + private int mAfterVoiceInputInsertPunctuationCount = 0; + private int mAfterVoiceInputCursorPos = 0; + private int mAfterVoiceInputSelectionSpan = 0; + private int mState = DEFAULT; private final static int MSG_CLOSE_ERROR_DIALOG = 1; @@ -128,7 +134,7 @@ public class VoiceInput implements OnClickListener { public void onCancelVoice(); } - private RecognitionManager mRecognitionManager; + private SpeechRecognizer mSpeechRecognizer; private RecognitionListener mRecognitionListener; private RecognitionView mRecognitionView; private UiListener mUiListener; @@ -141,8 +147,8 @@ public class VoiceInput implements OnClickListener { public VoiceInput(Context context, UiListener uiHandler) { mLogger = VoiceInputLogger.getLogger(context); mRecognitionListener = new ImeRecognitionListener(); - mRecognitionManager = RecognitionManager.createRecognitionManager(context); - mRecognitionManager.setRecognitionListener(mRecognitionListener); + mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(context); + mSpeechRecognizer.setRecognitionListener(mRecognitionListener); mUiListener = uiHandler; mContext = context; newView(); @@ -161,6 +167,95 @@ public class VoiceInput implements OnClickListener { mBlacklist.addApp("com.android.setupwizard"); } + public void setCursorPos(int pos) { + mAfterVoiceInputCursorPos = pos; + } + + public int getCursorPos() { + return mAfterVoiceInputCursorPos; + } + + public void setSelectionSpan(int span) { + mAfterVoiceInputSelectionSpan = span; + } + + public int getSelectionSpan() { + return mAfterVoiceInputSelectionSpan; + } + + public void incrementTextModificationDeleteCount(int count){ + mAfterVoiceInputDeleteCount += count; + // Send up intents for other text modification types + if (mAfterVoiceInputInsertCount > 0) { + logTextModifiedByTypingInsertion(mAfterVoiceInputInsertCount); + mAfterVoiceInputInsertCount = 0; + } + if (mAfterVoiceInputInsertPunctuationCount > 0) { + logTextModifiedByTypingInsertionPunctuation(mAfterVoiceInputInsertPunctuationCount); + mAfterVoiceInputInsertPunctuationCount = 0; + } + + } + + public void incrementTextModificationInsertCount(int count){ + mAfterVoiceInputInsertCount += count; + if (mAfterVoiceInputSelectionSpan > 0) { + // If text was highlighted before inserting the char, count this as + // a delete. + mAfterVoiceInputDeleteCount += mAfterVoiceInputSelectionSpan; + } + // Send up intents for other text modification types + if (mAfterVoiceInputDeleteCount > 0) { + logTextModifiedByTypingDeletion(mAfterVoiceInputDeleteCount); + mAfterVoiceInputDeleteCount = 0; + } + if (mAfterVoiceInputInsertPunctuationCount > 0) { + logTextModifiedByTypingInsertionPunctuation(mAfterVoiceInputInsertPunctuationCount); + mAfterVoiceInputInsertPunctuationCount = 0; + } + } + + public void incrementTextModificationInsertPunctuationCount(int count){ + mAfterVoiceInputInsertPunctuationCount += 1; + if (mAfterVoiceInputSelectionSpan > 0) { + // If text was highlighted before inserting the char, count this as + // a delete. + mAfterVoiceInputDeleteCount += mAfterVoiceInputSelectionSpan; + } + // Send up intents for aggregated non-punctuation insertions + if (mAfterVoiceInputDeleteCount > 0) { + logTextModifiedByTypingDeletion(mAfterVoiceInputDeleteCount); + mAfterVoiceInputDeleteCount = 0; + } + if (mAfterVoiceInputInsertCount > 0) { + logTextModifiedByTypingInsertion(mAfterVoiceInputInsertCount); + mAfterVoiceInputInsertCount = 0; + } + } + + public void flushAllTextModificationCounters() { + if (mAfterVoiceInputInsertCount > 0) { + logTextModifiedByTypingInsertion(mAfterVoiceInputInsertCount); + mAfterVoiceInputInsertCount = 0; + } + if (mAfterVoiceInputDeleteCount > 0) { + logTextModifiedByTypingDeletion(mAfterVoiceInputDeleteCount); + mAfterVoiceInputDeleteCount = 0; + } + if (mAfterVoiceInputInsertPunctuationCount > 0) { + logTextModifiedByTypingInsertionPunctuation(mAfterVoiceInputInsertPunctuationCount); + mAfterVoiceInputInsertPunctuationCount = 0; + } + } + + /** + * The configuration of the IME changed and may have caused the views to be layed out + * again. Restore the state of the recognition view. + */ + public void onConfigurationChanged() { + mRecognitionView.restoreState(); + } + /** * @return true if field is blacklisted for voice */ @@ -239,7 +334,7 @@ public class VoiceInput implements OnClickListener { EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, null /* rely on endpointer default */); - mRecognitionManager.startListening(intent); + mSpeechRecognizer.startListening(intent); } /** @@ -262,7 +357,7 @@ public class VoiceInput implements OnClickListener { } public void destroy() { - mRecognitionManager.destroy(); + mSpeechRecognizer.destroy(); } /** @@ -294,8 +389,20 @@ public class VoiceInput implements OnClickListener { } } - public void logTextModified() { - mLogger.textModified(); + public void logTextModifiedByTypingInsertion(int length) { + mLogger.textModifiedByTypingInsertion(length); + } + + public void logTextModifiedByTypingInsertionPunctuation(int length) { + mLogger.textModifiedByTypingInsertionPunctuation(length); + } + + public void logTextModifiedByTypingDeletion(int length) { + mLogger.textModifiedByTypingDeletion(length); + } + + public void logTextModifiedByChooseSuggestion(int length) { + mLogger.textModifiedByChooseSuggestion(length); } public void logKeyboardWarningDialogShown() { @@ -322,8 +429,8 @@ public class VoiceInput implements OnClickListener { mLogger.punctuationHintDisplayed(); } - public void logVoiceInputDelivered() { - mLogger.voiceInputDelivered(); + public void logVoiceInputDelivered(int length) { + mLogger.voiceInputDelivered(length); } public void logNBestChoose(int index) { @@ -377,7 +484,7 @@ public class VoiceInput implements OnClickListener { // Remove all pending tasks (e.g., timers to cancel voice input) mHandler.removeMessages(MSG_CLOSE_ERROR_DIALOG); - mRecognitionManager.cancel(); + mSpeechRecognizer.cancel(); mUiListener.onCancelVoice(); mRecognitionView.finish(); } @@ -385,20 +492,20 @@ public class VoiceInput implements OnClickListener { private int getErrorStringId(int errorType, boolean endpointed) { switch (errorType) { // We use CLIENT_ERROR to signify that voice search is not available on the device. - case RecognitionManager.ERROR_CLIENT: + case SpeechRecognizer.ERROR_CLIENT: return R.string.voice_not_installed; - case RecognitionManager.ERROR_NETWORK: + case SpeechRecognizer.ERROR_NETWORK: return R.string.voice_network_error; - case RecognitionManager.ERROR_NETWORK_TIMEOUT: + case SpeechRecognizer.ERROR_NETWORK_TIMEOUT: return endpointed ? R.string.voice_network_error : R.string.voice_too_much_speech; - case RecognitionManager.ERROR_AUDIO: + case SpeechRecognizer.ERROR_AUDIO: return R.string.voice_audio_error; - case RecognitionManager.ERROR_SERVER: + case SpeechRecognizer.ERROR_SERVER: return R.string.voice_server_error; - case RecognitionManager.ERROR_SPEECH_TIMEOUT: + case SpeechRecognizer.ERROR_SPEECH_TIMEOUT: return R.string.voice_speech_timeout; - case RecognitionManager.ERROR_NO_MATCH: + case SpeechRecognizer.ERROR_NO_MATCH: return R.string.voice_no_match; default: return R.string.voice_error; } @@ -455,7 +562,7 @@ public class VoiceInput implements OnClickListener { public void onResults(Bundle resultsBundle) { List<String> results = resultsBundle - .getStringArrayList(RecognitionManager.RESULTS_RECOGNITION); + .getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); mState = DEFAULT; final Map<String, List<CharSequence>> alternatives = diff --git a/src/com/android/inputmethod/voice/VoiceInputLogger.java b/java/src/com/android/inputmethod/voice/VoiceInputLogger.java index 659033340..9d3a92037 100644 --- a/src/com/android/inputmethod/voice/VoiceInputLogger.java +++ b/java/src/com/android/inputmethod/voice/VoiceInputLogger.java @@ -147,12 +147,43 @@ public class VoiceInputLogger { mContext.sendBroadcast(i); } - public void voiceInputDelivered() { - mContext.sendBroadcast(newLoggingBroadcast(LoggingEvents.VoiceIme.VOICE_INPUT_DELIVERED)); + public void voiceInputDelivered(int length) { + Intent i = newLoggingBroadcast(LoggingEvents.VoiceIme.VOICE_INPUT_DELIVERED); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_LENGTH, length); + mContext.sendBroadcast(i); + } + + public void textModifiedByTypingInsertion(int length) { + Intent i = newLoggingBroadcast(LoggingEvents.VoiceIme.TEXT_MODIFIED); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_LENGTH, length); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_TYPE, + LoggingEvents.VoiceIme.TEXT_MODIFIED_TYPE_TYPING_INSERTION); + mContext.sendBroadcast(i); + } + + public void textModifiedByTypingInsertionPunctuation(int length) { + Intent i = newLoggingBroadcast(LoggingEvents.VoiceIme.TEXT_MODIFIED); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_LENGTH, length); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_TYPE, + LoggingEvents.VoiceIme.TEXT_MODIFIED_TYPE_TYPING_INSERTION_PUNCTUATION); + mContext.sendBroadcast(i); + } + + public void textModifiedByTypingDeletion(int length) { + Intent i = newLoggingBroadcast(LoggingEvents.VoiceIme.TEXT_MODIFIED); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_LENGTH, length); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_TYPE, + LoggingEvents.VoiceIme.TEXT_MODIFIED_TYPE_TYPING_DELETION); + + mContext.sendBroadcast(i); } - public void textModified() { - mContext.sendBroadcast(newLoggingBroadcast(LoggingEvents.VoiceIme.TEXT_MODIFIED)); + public void textModifiedByChooseSuggestion(int length) { + Intent i = newLoggingBroadcast(LoggingEvents.VoiceIme.TEXT_MODIFIED); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_LENGTH, length); + i.putExtra(LoggingEvents.VoiceIme.EXTRA_TEXT_MODIFIED_TYPE, + LoggingEvents.VoiceIme.TEXT_MODIFIED_TYPE_CHOOSE_SUGGESTION); + mContext.sendBroadcast(i); } public void nBestChoose(int index) { diff --git a/src/com/android/inputmethod/voice/WaveformImage.java b/java/src/com/android/inputmethod/voice/WaveformImage.java index 08d87c8f3..08d87c8f3 100644 --- a/src/com/android/inputmethod/voice/WaveformImage.java +++ b/java/src/com/android/inputmethod/voice/WaveformImage.java diff --git a/src/com/android/inputmethod/voice/Whitelist.java b/java/src/com/android/inputmethod/voice/Whitelist.java index 167b688ca..167b688ca 100644 --- a/src/com/android/inputmethod/voice/Whitelist.java +++ b/java/src/com/android/inputmethod/voice/Whitelist.java diff --git a/src/com/google/android/voicesearch/LatinIMEWithVoice.java b/java/src/com/google/android/voicesearch/LatinIMEWithVoice.java index 8a339d14a..8a339d14a 100644 --- a/src/com/google/android/voicesearch/LatinIMEWithVoice.java +++ b/java/src/com/google/android/voicesearch/LatinIMEWithVoice.java diff --git a/src/com/google/android/voicesearch/LatinIMEWithVoiceSettings.java b/java/src/com/google/android/voicesearch/LatinIMEWithVoiceSettings.java index a53cebfd9..a53cebfd9 100644 --- a/src/com/google/android/voicesearch/LatinIMEWithVoiceSettings.java +++ b/java/src/com/google/android/voicesearch/LatinIMEWithVoiceSettings.java |