diff options
Diffstat (limited to 'java')
965 files changed, 10211 insertions, 4142 deletions
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml index 2fbf4c2be..cb0a9a2e1 100644 --- a/java/AndroidManifest.xml +++ b/java/AndroidManifest.xml @@ -41,5 +41,11 @@ <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> + + <receiver android:name="SuggestionSpanPickedNotificationReceiver" android:enabled="true"> + <intent-filter> + <action android:name="android.text.style.SUGGESTION_PICKED" /> + </intent-filter> + </receiver> </application> </manifest> diff --git a/java/proguard.flags b/java/proguard.flags index 914bd7595..9094be401 100644 --- a/java/proguard.flags +++ b/java/proguard.flags @@ -22,3 +22,7 @@ -keep class com.android.inputmethod.latin.Utils { boolean equalsIgnoreCase(...); } + +-keep class com.android.inputmethod.latin.spellcheck.SpellChecker { + *; +} diff --git a/java/res/drawable-hdpi/btn_center_default.9.png b/java/res/drawable-hdpi/btn_center_default.9.png Binary files differnew file mode 100644 index 000000000..4f5f01cb8 --- /dev/null +++ b/java/res/drawable-hdpi/btn_center_default.9.png diff --git a/java/res/drawable-hdpi/btn_center_pressed.9.png b/java/res/drawable-hdpi/btn_center_pressed.9.png Binary files differnew file mode 100644 index 000000000..213b482d4 --- /dev/null +++ b/java/res/drawable-hdpi/btn_center_pressed.9.png diff --git a/java/res/drawable-hdpi/btn_center_selected.9.png b/java/res/drawable-hdpi/btn_center_selected.9.png Binary files differnew file mode 100644 index 000000000..213b482d4 --- /dev/null +++ b/java/res/drawable-hdpi/btn_center_selected.9.png diff --git a/java/res/drawable-hdpi/btn_close_candidates_pane.9.png b/java/res/drawable-hdpi/btn_close_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..bdd949577 --- /dev/null +++ b/java/res/drawable-hdpi/btn_close_candidates_pane.9.png diff --git a/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png b/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..63015ec5b --- /dev/null +++ b/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png Binary files differindex 01fc8ca78..50cc49fdb 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png Binary files differindex a8c1688f7..2dc1bed5d 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png Binary files differindex af4017e2c..dabf77ec6 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png Binary files differindex 829647663..575781f07 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png Binary files differindex 4c35aca95..6e7d74c88 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png Binary files differindex 020a65d6e..6c5b42e5c 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png Binary files differindex 174f3452c..ddb77c224 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png Binary files differindex 88b27c07b..8c999f655 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png Binary files differindex 1fcbd9a88..1e9227e1c 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png Binary files differindex 87497bc1f..8c7c2f3bc 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png Binary files differindex 072753f37..7207b2ece 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png Binary files differindex f0d76dfa2..02497b472 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on_holo.9.png diff --git a/java/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..a524168c9 100644 --- a/java/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/java/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..4395e978a 100644 --- a/java/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/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png Binary files differindex 1ad746053..9d85c7b74 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png Binary files differindex 3115fa436..a13b2003f 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png Binary files differindex e3a77d61b..2ed1b3447 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png Binary files differindex 431c44967..77e17dbae 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png Binary files differindex ccd59d5fa..a409639e7 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png Binary files differindex dc08102a7..0b76855e6 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png Binary files differindex 42c7c146d..6ec7e6592 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_normal.9.png diff --git a/java/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..995780cbf 100644 --- a/java/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/java/res/drawable-hdpi/btn_keyboard_key_normal_off_stone.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_off_stone.9.png Binary files differindex fad0ec458..1388b6694 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_normal_off_stone.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_normal_off_stone.9.png diff --git a/java/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..7215782eb 100644 --- a/java/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/java/res/drawable-hdpi/btn_keyboard_key_normal_on_stone.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_on_stone.9.png Binary files differindex 215f8157c..5a94cb6ac 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_normal_on_stone.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_normal_on_stone.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_normal_stone.9.png b/java/res/drawable-hdpi/btn_keyboard_key_normal_stone.9.png Binary files differindex 88acdd748..c6373a8af 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_normal_stone.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_normal_stone.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.png Binary files differnew file mode 100644 index 000000000..0b2758925 --- /dev/null +++ b/java/res/drawable-hdpi/btn_keyboard_key_popup_background_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differindex 5ecdaf428..166de2a03 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_holo.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png Binary files differindex e047eaff1..0bd49a0e7 100644 --- a/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png +++ b/java/res/drawable-hdpi/btn_keyboard_key_pressed.9.png diff --git a/java/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..634419f1b 100644 --- a/java/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/java/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..8474f9f42 100644 --- a/java/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/java/res/drawable-hdpi/cancel.png b/java/res/drawable-hdpi/cancel.png Binary files differdeleted file mode 100644 index 506cf99d0..000000000 --- a/java/res/drawable-hdpi/cancel.png +++ /dev/null diff --git a/java/res/drawable-hdpi/cancel_holo.9.png b/java/res/drawable-hdpi/cancel_holo.9.png Binary files differdeleted file mode 100644 index 33548d606..000000000 --- a/java/res/drawable-hdpi/cancel_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/candidate_feedback_background.9.png b/java/res/drawable-hdpi/candidate_feedback_background.9.png Binary files differindex 203c4e640..16499002e 100644 --- a/java/res/drawable-hdpi/candidate_feedback_background.9.png +++ b/java/res/drawable-hdpi/candidate_feedback_background.9.png diff --git a/java/res/drawable-hdpi/caution.png b/java/res/drawable-hdpi/caution.png Binary files differindex 5cb6c54b9..61eb4dd62 100644 --- a/java/res/drawable-hdpi/caution.png +++ b/java/res/drawable-hdpi/caution.png diff --git a/java/res/drawable-hdpi/dialog_bubble_step02.9.png b/java/res/drawable-hdpi/dialog_bubble_step02.9.png Binary files differdeleted file mode 100644 index b338364c5..000000000 --- a/java/res/drawable-hdpi/dialog_bubble_step02.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/dialog_bubble_step07.9.png b/java/res/drawable-hdpi/dialog_bubble_step07.9.png Binary files differdeleted file mode 100644 index 94b915432..000000000 --- a/java/res/drawable-hdpi/dialog_bubble_step07.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/hint_popup.9.png b/java/res/drawable-hdpi/hint_popup.9.png Binary files differindex b5ec003e6..5b2ad5388 100644 --- a/java/res/drawable-hdpi/hint_popup.9.png +++ b/java/res/drawable-hdpi/hint_popup.9.png diff --git a/java/res/drawable-hdpi/hint_popup_holo.9.png b/java/res/drawable-hdpi/hint_popup_holo.9.png Binary files differindex 2ffc6ea2b..c44af8883 100644 --- a/java/res/drawable-hdpi/hint_popup_holo.9.png +++ b/java/res/drawable-hdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-hdpi/ic_dialog_keyboard.png b/java/res/drawable-hdpi/ic_dialog_keyboard.png Binary files differindex c7729566c..305441633 100644 --- a/java/res/drawable-hdpi/ic_dialog_keyboard.png +++ b/java/res/drawable-hdpi/ic_dialog_keyboard.png diff --git a/java/res/drawable-hdpi/ic_mic_dialog.png b/java/res/drawable-hdpi/ic_mic_dialog.png Binary files differindex 349dc4b37..6107f876e 100644 --- a/java/res/drawable-hdpi/ic_mic_dialog.png +++ b/java/res/drawable-hdpi/ic_mic_dialog.png diff --git a/java/res/drawable-hdpi/ic_subtype_keyboard.png b/java/res/drawable-hdpi/ic_subtype_keyboard.png Binary files differindex 7015e266a..484305655 100644 --- a/java/res/drawable-hdpi/ic_subtype_keyboard.png +++ b/java/res/drawable-hdpi/ic_subtype_keyboard.png diff --git a/java/res/drawable-hdpi/ic_subtype_mic.png b/java/res/drawable-hdpi/ic_subtype_mic.png Binary files differindex cb86a5598..25c9ee2ab 100644 --- a/java/res/drawable-hdpi/ic_subtype_mic.png +++ b/java/res/drawable-hdpi/ic_subtype_mic.png diff --git a/java/res/drawable-hdpi/ic_suggest_strip_microphone.png b/java/res/drawable-hdpi/ic_suggest_strip_microphone.png Binary files differindex c00b4aaa6..189a861fb 100644 --- a/java/res/drawable-hdpi/ic_suggest_strip_microphone.png +++ b/java/res/drawable-hdpi/ic_suggest_strip_microphone.png diff --git a/java/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png b/java/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png Binary files differindex 256dc3d61..b4a6e373b 100644 --- a/java/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png +++ b/java/res/drawable-hdpi/ic_suggest_strip_microphone_swipe.png diff --git a/java/res/drawable-hdpi/key_hint_at_holo.9.png b/java/res/drawable-hdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index 129e19853..000000000 --- a/java/res/drawable-hdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_at_large_holo.9.png b/java/res/drawable-hdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index d90bc31ab..000000000 --- a/java/res/drawable-hdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_colon_holo.9.png b/java/res/drawable-hdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index e82e41c94..000000000 --- a/java/res/drawable-hdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index e46845dbd..000000000 --- a/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_comma_holo.9.png b/java/res/drawable-hdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index da0d6fdd6..000000000 --- a/java/res/drawable-hdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 1f2f70762..000000000 --- a/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_dash_holo.9.png b/java/res/drawable-hdpi/key_hint_dash_holo.9.png Binary files differdeleted file mode 100644 index a2b2fceeb..000000000 --- a/java/res/drawable-hdpi/key_hint_dash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_doublecross_holo.9.png b/java/res/drawable-hdpi/key_hint_doublecross_holo.9.png Binary files differdeleted file mode 100644 index d5af9f8c7..000000000 --- a/java/res/drawable-hdpi/key_hint_doublecross_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_equal_holo.9.png b/java/res/drawable-hdpi/key_hint_equal_holo.9.png Binary files differdeleted file mode 100644 index 4acc3c3be..000000000 --- a/java/res/drawable-hdpi/key_hint_equal_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index 8d99a27d2..000000000 --- a/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index e93e49187..000000000 --- a/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_larger_holo.9.png b/java/res/drawable-hdpi/key_hint_larger_holo.9.png Binary files differdeleted file mode 100644 index 10614d9fe..000000000 --- a/java/res/drawable-hdpi/key_hint_larger_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_minus_holo.9.png b/java/res/drawable-hdpi/key_hint_minus_holo.9.png Binary files differdeleted file mode 100644 index 2c34ef90b..000000000 --- a/java/res/drawable-hdpi/key_hint_minus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_minus_large_holo.9.png b/java/res/drawable-hdpi/key_hint_minus_large_holo.9.png Binary files differdeleted file mode 100644 index 0df056ee1..000000000 --- a/java/res/drawable-hdpi/key_hint_minus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_parenclose_holo.9.png b/java/res/drawable-hdpi/key_hint_parenclose_holo.9.png Binary files differdeleted file mode 100644 index 9096362e0..000000000 --- a/java/res/drawable-hdpi/key_hint_parenclose_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_parenopen_holo.9.png b/java/res/drawable-hdpi/key_hint_parenopen_holo.9.png Binary files differdeleted file mode 100644 index bb4cbd40d..000000000 --- a/java/res/drawable-hdpi/key_hint_parenopen_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_period_holo.9.png b/java/res/drawable-hdpi/key_hint_period_holo.9.png Binary files differdeleted file mode 100644 index 68f789b95..000000000 --- a/java/res/drawable-hdpi/key_hint_period_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_plus_holo.9.png b/java/res/drawable-hdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index 3dd85065a..000000000 --- a/java/res/drawable-hdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index b0d75f433..000000000 --- a/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_question_holo.9.png b/java/res/drawable-hdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 4fe6a5b80..000000000 --- a/java/res/drawable-hdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_question_large_holo.9.png b/java/res/drawable-hdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index 44dfdc4ea..000000000 --- a/java/res/drawable-hdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_quote_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index 8308aa647..000000000 --- a/java/res/drawable-hdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index e73b9e0c6..000000000 --- a/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_semicolon_holo.9.png b/java/res/drawable-hdpi/key_hint_semicolon_holo.9.png Binary files differdeleted file mode 100644 index ac3de374c..000000000 --- a/java/res/drawable-hdpi/key_hint_semicolon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_simplequote_holo.9.png b/java/res/drawable-hdpi/key_hint_simplequote_holo.9.png Binary files differdeleted file mode 100644 index 20d56c549..000000000 --- a/java/res/drawable-hdpi/key_hint_simplequote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_slash_holo.9.png b/java/res/drawable-hdpi/key_hint_slash_holo.9.png Binary files differdeleted file mode 100644 index 3fe2c4271..000000000 --- a/java/res/drawable-hdpi/key_hint_slash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_slash_large_holo.9.png b/java/res/drawable-hdpi/key_hint_slash_large_holo.9.png Binary files differdeleted file mode 100644 index 47e767557..000000000 --- a/java/res/drawable-hdpi/key_hint_slash_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_smaller_holo.9.png b/java/res/drawable-hdpi/key_hint_smaller_holo.9.png Binary files differdeleted file mode 100644 index 19a7d937e..000000000 --- a/java/res/drawable-hdpi/key_hint_smaller_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_star_holo.9.png b/java/res/drawable-hdpi/key_hint_star_holo.9.png Binary files differdeleted file mode 100644 index 4e4340d63..000000000 --- a/java/res/drawable-hdpi/key_hint_star_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_underline_holo.9.png b/java/res/drawable-hdpi/key_hint_underline_holo.9.png Binary files differdeleted file mode 100644 index e4f271918..000000000 --- a/java/res/drawable-hdpi/key_hint_underline_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png Binary files differdeleted file mode 100644 index dad34fc72..000000000 --- a/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_underscore_holo.9.png b/java/res/drawable-hdpi/key_hint_underscore_holo.9.png Binary files differdeleted file mode 100644 index e4f271918..000000000 --- a/java/res/drawable-hdpi/key_hint_underscore_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_underscore_large_holo.9.png b/java/res/drawable-hdpi/key_hint_underscore_large_holo.9.png Binary files differdeleted file mode 100644 index dad34fc72..000000000 --- a/java/res/drawable-hdpi/key_hint_underscore_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_background.9.png b/java/res/drawable-hdpi/keyboard_background.9.png Binary files differindex edffac5b8..d57463fb6 100644 --- a/java/res/drawable-hdpi/keyboard_background.9.png +++ b/java/res/drawable-hdpi/keyboard_background.9.png diff --git a/java/res/drawable-hdpi/keyboard_background_holo.9.png b/java/res/drawable-hdpi/keyboard_background_holo.9.png Binary files differindex 76fe2c8b8..39746ffd2 100644 --- a/java/res/drawable-hdpi/keyboard_background_holo.9.png +++ b/java/res/drawable-hdpi/keyboard_background_holo.9.png diff --git a/java/res/drawable-hdpi/keyboard_dark_background.9.png b/java/res/drawable-hdpi/keyboard_dark_background.9.png Binary files differindex f315cbdd4..fa3d449f7 100644 --- a/java/res/drawable-hdpi/keyboard_dark_background.9.png +++ b/java/res/drawable-hdpi/keyboard_dark_background.9.png diff --git a/java/res/drawable-hdpi/keyboard_hint_0.9.png b/java/res/drawable-hdpi/keyboard_hint_0.9.png Binary files differdeleted file mode 100644 index 271264e92..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_0.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_1.9.png b/java/res/drawable-hdpi/keyboard_hint_1.9.png Binary files differdeleted file mode 100644 index eaf374262..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_1.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_2.9.png b/java/res/drawable-hdpi/keyboard_hint_2.9.png Binary files differdeleted file mode 100644 index 8a1657117..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_2.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_3.9.png b/java/res/drawable-hdpi/keyboard_hint_3.9.png Binary files differdeleted file mode 100644 index 34b501109..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_3.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_4.9.png b/java/res/drawable-hdpi/keyboard_hint_4.9.png Binary files differdeleted file mode 100644 index d4cc250dd..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_4.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_5.9.png b/java/res/drawable-hdpi/keyboard_hint_5.9.png Binary files differdeleted file mode 100644 index 6a054b42f..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_5.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_6.9.png b/java/res/drawable-hdpi/keyboard_hint_6.9.png Binary files differdeleted file mode 100644 index 66e91400a..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_6.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_7.9.png b/java/res/drawable-hdpi/keyboard_hint_7.9.png Binary files differdeleted file mode 100644 index 5eae24f4f..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_7.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_8.9.png b/java/res/drawable-hdpi/keyboard_hint_8.9.png Binary files differdeleted file mode 100644 index ea7f512fd..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_8.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_9.9.png b/java/res/drawable-hdpi/keyboard_hint_9.9.png Binary files differdeleted file mode 100644 index 0bf85de93..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_9.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_at.9.png b/java/res/drawable-hdpi/keyboard_hint_at.9.png Binary files differdeleted file mode 100644 index 4b49c0dd9..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_at.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_colon.9.png b/java/res/drawable-hdpi/keyboard_hint_colon.9.png Binary files differdeleted file mode 100644 index a91dc47f1..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_colon.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_doublecross.9.png b/java/res/drawable-hdpi/keyboard_hint_doublecross.9.png Binary files differdeleted file mode 100644 index c0917c200..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_doublecross.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_exclamation.9.png b/java/res/drawable-hdpi/keyboard_hint_exclamation.9.png Binary files differdeleted file mode 100644 index 98c07d94a..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_exclamation.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_greater.9.png b/java/res/drawable-hdpi/keyboard_hint_greater.9.png Binary files differdeleted file mode 100644 index f2bf37dc2..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_greater.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_plus.9.png b/java/res/drawable-hdpi/keyboard_hint_plus.9.png Binary files differdeleted file mode 100644 index 586e9c158..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_plus.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_question.9.png b/java/res/drawable-hdpi/keyboard_hint_question.9.png Binary files differdeleted file mode 100644 index 6c7d4310a..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_question.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_quote.9.png b/java/res/drawable-hdpi/keyboard_hint_quote.9.png Binary files differdeleted file mode 100644 index 57f44e4a2..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_quote.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_smaller.9.png b/java/res/drawable-hdpi/keyboard_hint_smaller.9.png Binary files differdeleted file mode 100644 index 438b95ea8..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_smaller.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_hint_star.9.png b/java/res/drawable-hdpi/keyboard_hint_star.9.png Binary files differdeleted file mode 100644 index 33f8281b2..000000000 --- a/java/res/drawable-hdpi/keyboard_hint_star.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png Binary files differindex 762a25704..27d992375 100644 --- a/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png +++ b/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png Binary files differindex 8d6acacfb..fd7a56e17 100644 --- a/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png +++ b/java/res/drawable-hdpi/keyboard_key_feedback_background_holo.9.png diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.png Binary files differnew file mode 100644 index 000000000..60d920315 --- /dev/null +++ b/java/res/drawable-hdpi/keyboard_key_feedback_left_background_holo.9.png diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.png Binary files differnew file mode 100644 index 000000000..f694b796c --- /dev/null +++ b/java/res/drawable-hdpi/keyboard_key_feedback_left_more_background_holo.9.png diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png Binary files differindex 141d2d6be..33263b9d7 100644 --- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png +++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png Binary files differindex c21240f17..3165d08aa 100644 --- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png +++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background_holo.9.png diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.png Binary files differnew file mode 100644 index 000000000..3136073a2 --- /dev/null +++ b/java/res/drawable-hdpi/keyboard_key_feedback_right_background_holo.9.png diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.png Binary files differnew file mode 100644 index 000000000..13d5af9cb --- /dev/null +++ b/java/res/drawable-hdpi/keyboard_key_feedback_right_more_background_holo.9.png diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png Binary files differindex d6b2c7936..baff80950 100644 --- a/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png +++ b/java/res/drawable-hdpi/keyboard_popup_panel_background.9.png diff --git a/java/res/drawable-hdpi/keyboard_suggest_strip.9.png b/java/res/drawable-hdpi/keyboard_suggest_strip.9.png Binary files differindex 0ccdb6ab2..7cab5a899 100644 --- a/java/res/drawable-hdpi/keyboard_suggest_strip.9.png +++ b/java/res/drawable-hdpi/keyboard_suggest_strip.9.png diff --git a/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png Binary files differindex 7ca3e6131..a62daf90c 100644 --- a/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png +++ b/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png diff --git a/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png Binary files differindex f55bcc933..f25003405 100644 --- a/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png +++ b/java/res/drawable-hdpi/keyboard_suggest_strip_holo.9.png diff --git a/java/res/drawable-hdpi/mic_base.png b/java/res/drawable-hdpi/mic_base.png Binary files differnew file mode 100644 index 000000000..504a1aa2a --- /dev/null +++ b/java/res/drawable-hdpi/mic_base.png diff --git a/java/res/drawable-hdpi/mic_full.png b/java/res/drawable-hdpi/mic_full.png Binary files differnew file mode 100644 index 000000000..3f4a67657 --- /dev/null +++ b/java/res/drawable-hdpi/mic_full.png diff --git a/java/res/drawable-hdpi/mic_slash.png b/java/res/drawable-hdpi/mic_slash.png Binary files differindex dc8da6252..c3b10929b 100644 --- a/java/res/drawable-hdpi/mic_slash.png +++ b/java/res/drawable-hdpi/mic_slash.png diff --git a/java/res/drawable-hdpi/mic_slash_holo.png b/java/res/drawable-hdpi/mic_slash_holo.png Binary files differdeleted file mode 100644 index 27a05dec3..000000000 --- a/java/res/drawable-hdpi/mic_slash_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/ok_cancel.png b/java/res/drawable-hdpi/ok_cancel.png Binary files differdeleted file mode 100644 index f11e57a38..000000000 --- a/java/res/drawable-hdpi/ok_cancel.png +++ /dev/null diff --git a/java/res/drawable-hdpi/ok_cancel_holo.9.png b/java/res/drawable-hdpi/ok_cancel_holo.9.png Binary files differdeleted file mode 100644 index 5be81c35a..000000000 --- a/java/res/drawable-hdpi/ok_cancel_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level0.png b/java/res/drawable-hdpi/speak_now_level0.png Binary files differdeleted file mode 100644 index 342849cfe..000000000 --- a/java/res/drawable-hdpi/speak_now_level0.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level0_holo.png b/java/res/drawable-hdpi/speak_now_level0_holo.png Binary files differdeleted file mode 100644 index 29eef926b..000000000 --- a/java/res/drawable-hdpi/speak_now_level0_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level1.png b/java/res/drawable-hdpi/speak_now_level1.png Binary files differdeleted file mode 100644 index 8947a4306..000000000 --- a/java/res/drawable-hdpi/speak_now_level1.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level1_holo.png b/java/res/drawable-hdpi/speak_now_level1_holo.png Binary files differdeleted file mode 100644 index a76e990b7..000000000 --- a/java/res/drawable-hdpi/speak_now_level1_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level2.png b/java/res/drawable-hdpi/speak_now_level2.png Binary files differdeleted file mode 100644 index 44fc58c4e..000000000 --- a/java/res/drawable-hdpi/speak_now_level2.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level2_holo.png b/java/res/drawable-hdpi/speak_now_level2_holo.png Binary files differdeleted file mode 100644 index 8cd462d20..000000000 --- a/java/res/drawable-hdpi/speak_now_level2_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level3.png b/java/res/drawable-hdpi/speak_now_level3.png Binary files differdeleted file mode 100644 index cfa5c1b87..000000000 --- a/java/res/drawable-hdpi/speak_now_level3.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level3_holo.png b/java/res/drawable-hdpi/speak_now_level3_holo.png Binary files differdeleted file mode 100644 index b7371dc88..000000000 --- a/java/res/drawable-hdpi/speak_now_level3_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level4.png b/java/res/drawable-hdpi/speak_now_level4.png Binary files differdeleted file mode 100644 index a050d8836..000000000 --- a/java/res/drawable-hdpi/speak_now_level4.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level4_holo.png b/java/res/drawable-hdpi/speak_now_level4_holo.png Binary files differdeleted file mode 100644 index 74befc8c3..000000000 --- a/java/res/drawable-hdpi/speak_now_level4_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level5.png b/java/res/drawable-hdpi/speak_now_level5.png Binary files differdeleted file mode 100644 index 8cd5ae7ad..000000000 --- a/java/res/drawable-hdpi/speak_now_level5.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level5_holo.png b/java/res/drawable-hdpi/speak_now_level5_holo.png Binary files differdeleted file mode 100644 index b027e8343..000000000 --- a/java/res/drawable-hdpi/speak_now_level5_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level6.png b/java/res/drawable-hdpi/speak_now_level6.png Binary files differdeleted file mode 100644 index 9f4481eb4..000000000 --- a/java/res/drawable-hdpi/speak_now_level6.png +++ /dev/null diff --git a/java/res/drawable-hdpi/speak_now_level6_holo.png b/java/res/drawable-hdpi/speak_now_level6_holo.png Binary files differdeleted file mode 100644 index 17bb03452..000000000 --- a/java/res/drawable-hdpi/speak_now_level6_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_123_mic.png b/java/res/drawable-hdpi/sym_bkeyboard_123_mic.png Binary files differindex 3e4eff698..af6082d04 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_123_mic.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_123_mic.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_delete.png b/java/res/drawable-hdpi/sym_bkeyboard_delete.png Binary files differindex 1d24cc85c..999a182f4 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_delete.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_delete.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_done.png b/java/res/drawable-hdpi/sym_bkeyboard_done.png Binary files differdeleted file mode 100644 index b77803d21..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_done.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_mic.png b/java/res/drawable-hdpi/sym_bkeyboard_mic.png Binary files differindex 512f46080..5c73600d9 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_mic.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_mic.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num0.png b/java/res/drawable-hdpi/sym_bkeyboard_num0.png Binary files differindex 678a790de..02f281166 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num0.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num0.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num1.png b/java/res/drawable-hdpi/sym_bkeyboard_num1.png Binary files differindex 4e68e35b3..304acfd31 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num1.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num1.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num2.png b/java/res/drawable-hdpi/sym_bkeyboard_num2.png Binary files differindex 546663fda..295eba1e4 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num2.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num2.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num3.png b/java/res/drawable-hdpi/sym_bkeyboard_num3.png Binary files differindex 57f9a8d8e..9ee6e4437 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num3.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num3.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num4.png b/java/res/drawable-hdpi/sym_bkeyboard_num4.png Binary files differindex de504388f..ab4392dcb 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num4.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num4.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num5.png b/java/res/drawable-hdpi/sym_bkeyboard_num5.png Binary files differindex 1d2e1ef89..004ecd72e 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num5.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num5.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num6.png b/java/res/drawable-hdpi/sym_bkeyboard_num6.png Binary files differindex 39788b727..2aa317d77 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num6.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num6.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num7.png b/java/res/drawable-hdpi/sym_bkeyboard_num7.png Binary files differindex fff6f27bf..721361c29 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num7.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num7.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num8.png b/java/res/drawable-hdpi/sym_bkeyboard_num8.png Binary files differindex 8cc1a955e..941359f6b 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num8.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num8.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num9.png b/java/res/drawable-hdpi/sym_bkeyboard_num9.png Binary files differindex 021742509..74e08a087 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_num9.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_num9.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_numalt.png b/java/res/drawable-hdpi/sym_bkeyboard_numalt.png Binary files differdeleted file mode 100644 index 200714f66..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_numalt.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_numpound.png b/java/res/drawable-hdpi/sym_bkeyboard_numpound.png Binary files differdeleted file mode 100644 index 0a46122b2..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_numpound.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_numstar.png b/java/res/drawable-hdpi/sym_bkeyboard_numstar.png Binary files differdeleted file mode 100644 index ca22bd535..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_numstar.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_return.png b/java/res/drawable-hdpi/sym_bkeyboard_return.png Binary files differindex 426e1599e..91bb397ff 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_return.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_return.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_search.png b/java/res/drawable-hdpi/sym_bkeyboard_search.png Binary files differindex 1b6f884fa..0ac08145b 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_search.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_search.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_settings.png b/java/res/drawable-hdpi/sym_bkeyboard_settings.png Binary files differindex 08ba18f28..5b6217aa0 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_settings.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_settings.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_shift.png b/java/res/drawable-hdpi/sym_bkeyboard_shift.png Binary files differindex 5a22dd309..5ef01b8bd 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_shift.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_shift.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_shift_locked.png b/java/res/drawable-hdpi/sym_bkeyboard_shift_locked.png Binary files differindex 566449126..7d36dcb34 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_shift_locked.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_shift_locked.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_space.png b/java/res/drawable-hdpi/sym_bkeyboard_space.png Binary files differindex cd0ebe2f4..77518cc93 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_space.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_space.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_tab.png b/java/res/drawable-hdpi/sym_bkeyboard_tab.png Binary files differindex 3466e1271..5db4cef2b 100644 --- a/java/res/drawable-hdpi/sym_bkeyboard_tab.png +++ b/java/res/drawable-hdpi/sym_bkeyboard_tab.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_voice_off.png b/java/res/drawable-hdpi/sym_bkeyboard_voice_off.png Binary files differnew file mode 100644 index 000000000..081a13096 --- /dev/null +++ b/java/res/drawable-hdpi/sym_bkeyboard_voice_off.png diff --git a/java/res/drawable-hdpi/sym_keyboard_123_mic.png b/java/res/drawable-hdpi/sym_keyboard_123_mic.png Binary files differindex 62669803d..6f0aec24c 100644 --- a/java/res/drawable-hdpi/sym_keyboard_123_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_123_mic.png diff --git a/java/res/drawable-hdpi/sym_keyboard_delete.png b/java/res/drawable-hdpi/sym_keyboard_delete.png Binary files differindex 459ebcff8..0591b82cd 100644 --- a/java/res/drawable-hdpi/sym_keyboard_delete.png +++ b/java/res/drawable-hdpi/sym_keyboard_delete.png diff --git a/java/res/drawable-hdpi/sym_keyboard_delete_holo.png b/java/res/drawable-hdpi/sym_keyboard_delete_holo.png Binary files differindex ff2a4acbb..9d87ba619 100644 --- a/java/res/drawable-hdpi/sym_keyboard_delete_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_delete_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_done.png b/java/res/drawable-hdpi/sym_keyboard_done.png Binary files differdeleted file mode 100644 index 471c5021b..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_done.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png b/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png Binary files differindex eef789680..e56799cdb 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png Binary files differindex 8322e8e1d..960bb4e8e 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_delete.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_done.png b/java/res/drawable-hdpi/sym_keyboard_feedback_done.png Binary files differdeleted file mode 100644 index 7015e266a..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_done.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png Binary files differindex 889477cfb..5d1cb7833 100644 --- a/java/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/java/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 b0f6d7feb..3a56d4745 100644 --- a/java/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/java/res/drawable-hdpi/sym_keyboard_feedback_mic.png b/java/res/drawable-hdpi/sym_keyboard_feedback_mic.png Binary files differindex f82c33ae3..a88a19d0d 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_mic.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png b/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png Binary files differindex 819236c8e..7d418d91d 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_numalt.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_return.png b/java/res/drawable-hdpi/sym_keyboard_feedback_return.png Binary files differindex f038d3abe..f73ff3cd9 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_return.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_return.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_search.png b/java/res/drawable-hdpi/sym_keyboard_feedback_search.png Binary files differindex 337f9e4fe..0e69157d6 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_search.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_search.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png b/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png Binary files differindex 8a02be07e..6304b00ed 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_settings.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png b/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png Binary files differindex abf15f8f9..fc858f220 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_shift.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png b/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png Binary files differdeleted file mode 100644 index 1fd822ea6..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_space.png b/java/res/drawable-hdpi/sym_keyboard_feedback_space.png Binary files differindex 70debca9b..67311fc8f 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_space.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_space.png diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_tab.png b/java/res/drawable-hdpi/sym_keyboard_feedback_tab.png Binary files differindex d2efb1619..d75fcacd5 100644 --- a/java/res/drawable-hdpi/sym_keyboard_feedback_tab.png +++ b/java/res/drawable-hdpi/sym_keyboard_feedback_tab.png diff --git a/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png Binary files differindex dcc4bd59b..79f235f25 100644 --- a/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png +++ b/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png diff --git a/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png Binary files differindex ecf61a98e..e1444e85b 100644 --- a/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png +++ b/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png diff --git a/java/res/drawable-hdpi/sym_keyboard_mic.png b/java/res/drawable-hdpi/sym_keyboard_mic.png Binary files differindex c8dca62a0..520a40f09 100644 --- a/java/res/drawable-hdpi/sym_keyboard_mic.png +++ b/java/res/drawable-hdpi/sym_keyboard_mic.png diff --git a/java/res/drawable-hdpi/sym_keyboard_mic_disabled.png b/java/res/drawable-hdpi/sym_keyboard_mic_disabled.png Binary files differdeleted file mode 100644 index c8dca62a0..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_mic_disabled.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num0.png b/java/res/drawable-hdpi/sym_keyboard_num0.png Binary files differindex 10ac70b9d..2024f416b 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num0.png +++ b/java/res/drawable-hdpi/sym_keyboard_num0.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num0_holo.png b/java/res/drawable-hdpi/sym_keyboard_num0_holo.png Binary files differindex ec8b5a8d2..fbd55d68d 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num0_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num0_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num1.png b/java/res/drawable-hdpi/sym_keyboard_num1.png Binary files differindex 0fc03efa5..5e66b9a31 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num1.png +++ b/java/res/drawable-hdpi/sym_keyboard_num1.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num1_holo.png b/java/res/drawable-hdpi/sym_keyboard_num1_holo.png Binary files differindex 60c8ab8a8..e651c3e85 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num1_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num1_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num2.png b/java/res/drawable-hdpi/sym_keyboard_num2.png Binary files differindex 283560b35..3933270dc 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num2.png +++ b/java/res/drawable-hdpi/sym_keyboard_num2.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num2_holo.png b/java/res/drawable-hdpi/sym_keyboard_num2_holo.png Binary files differindex 578e37d6e..8458f5313 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num2_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num2_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num3.png b/java/res/drawable-hdpi/sym_keyboard_num3.png Binary files differindex 9a3b3294b..c69548345 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num3.png +++ b/java/res/drawable-hdpi/sym_keyboard_num3.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num3_holo.png b/java/res/drawable-hdpi/sym_keyboard_num3_holo.png Binary files differindex fb6250699..81025c635 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num3_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num3_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num4.png b/java/res/drawable-hdpi/sym_keyboard_num4.png Binary files differindex f13ff1ae9..ef20add54 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num4.png +++ b/java/res/drawable-hdpi/sym_keyboard_num4.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num4_holo.png b/java/res/drawable-hdpi/sym_keyboard_num4_holo.png Binary files differindex c0e54a523..30a0c77c7 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num4_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num4_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num5.png b/java/res/drawable-hdpi/sym_keyboard_num5.png Binary files differindex c251329fa..9a2f51f8d 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num5.png +++ b/java/res/drawable-hdpi/sym_keyboard_num5.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num5_holo.png b/java/res/drawable-hdpi/sym_keyboard_num5_holo.png Binary files differindex b581a4657..147f056fc 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num5_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num5_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num6.png b/java/res/drawable-hdpi/sym_keyboard_num6.png Binary files differindex 4acba4c91..6829f81d1 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num6.png +++ b/java/res/drawable-hdpi/sym_keyboard_num6.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num6_holo.png b/java/res/drawable-hdpi/sym_keyboard_num6_holo.png Binary files differindex 0791802ba..b96830844 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num6_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num6_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num7.png b/java/res/drawable-hdpi/sym_keyboard_num7.png Binary files differindex 14931c18c..dc608d4e1 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num7.png +++ b/java/res/drawable-hdpi/sym_keyboard_num7.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num7_holo.png b/java/res/drawable-hdpi/sym_keyboard_num7_holo.png Binary files differindex 7b3d3a825..7d44bfb45 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num7_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num7_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num8.png b/java/res/drawable-hdpi/sym_keyboard_num8.png Binary files differindex d4973fdc9..f0978c611 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num8.png +++ b/java/res/drawable-hdpi/sym_keyboard_num8.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num8_holo.png b/java/res/drawable-hdpi/sym_keyboard_num8_holo.png Binary files differindex e076aedbe..093cd743a 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num8_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num8_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num9.png b/java/res/drawable-hdpi/sym_keyboard_num9.png Binary files differindex 49cec66f4..4b8328d1f 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num9.png +++ b/java/res/drawable-hdpi/sym_keyboard_num9.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num9_holo.png b/java/res/drawable-hdpi/sym_keyboard_num9_holo.png Binary files differindex 4189cda79..f35e80dab 100644 --- a/java/res/drawable-hdpi/sym_keyboard_num9_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_num9_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_numalt.png b/java/res/drawable-hdpi/sym_keyboard_numalt.png Binary files differdeleted file mode 100644 index 3cc5311cd..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_numalt.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_numbpound_holo.png b/java/res/drawable-hdpi/sym_keyboard_numbpound_holo.png Binary files differdeleted file mode 100644 index 73f8be054..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_numbpound_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_numbstar_holo.png b/java/res/drawable-hdpi/sym_keyboard_numbstar_holo.png Binary files differdeleted file mode 100644 index fcb891b93..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_numbstar_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_numpound.png b/java/res/drawable-hdpi/sym_keyboard_numpound.png Binary files differdeleted file mode 100644 index d09133929..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_numpound.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_numstar.png b/java/res/drawable-hdpi/sym_keyboard_numstar.png Binary files differdeleted file mode 100644 index e838e169f..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_numstar.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_return.png b/java/res/drawable-hdpi/sym_keyboard_return.png Binary files differindex 9d97e1efd..9743c7f2f 100644 --- a/java/res/drawable-hdpi/sym_keyboard_return.png +++ b/java/res/drawable-hdpi/sym_keyboard_return.png diff --git a/java/res/drawable-hdpi/sym_keyboard_return_holo.png b/java/res/drawable-hdpi/sym_keyboard_return_holo.png Binary files differindex ca3c02dbe..ef04d6767 100644 --- a/java/res/drawable-hdpi/sym_keyboard_return_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_return_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_search.png b/java/res/drawable-hdpi/sym_keyboard_search.png Binary files differindex 1aa22d7e2..8cd28c64a 100644 --- a/java/res/drawable-hdpi/sym_keyboard_search.png +++ b/java/res/drawable-hdpi/sym_keyboard_search.png diff --git a/java/res/drawable-hdpi/sym_keyboard_settings.png b/java/res/drawable-hdpi/sym_keyboard_settings.png Binary files differindex 35d1ed6e6..1e5bf939e 100644 --- a/java/res/drawable-hdpi/sym_keyboard_settings.png +++ b/java/res/drawable-hdpi/sym_keyboard_settings.png diff --git a/java/res/drawable-hdpi/sym_keyboard_settings_holo.png b/java/res/drawable-hdpi/sym_keyboard_settings_holo.png Binary files differindex 471bd0b86..29085e5ea 100644 --- a/java/res/drawable-hdpi/sym_keyboard_settings_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_settings_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_shift.png b/java/res/drawable-hdpi/sym_keyboard_shift.png Binary files differindex bf217d147..8e3d0320c 100644 --- a/java/res/drawable-hdpi/sym_keyboard_shift.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift.png diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_holo.png b/java/res/drawable-hdpi/sym_keyboard_shift_holo.png Binary files differindex 375c1b4ca..1e074a716 100644 --- a/java/res/drawable-hdpi/sym_keyboard_shift_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_locked.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked.png Binary files differindex d11b39712..d345634a6 100644 --- a/java/res/drawable-hdpi/sym_keyboard_shift_locked.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift_locked.png diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png Binary files differindex 57362eaf4..ab77b9542 100644 --- a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_smiley_holo.png b/java/res/drawable-hdpi/sym_keyboard_smiley_holo.png Binary files differdeleted file mode 100644 index a3f5e840d..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_smiley_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_space.png b/java/res/drawable-hdpi/sym_keyboard_space.png Binary files differindex fcd20de7d..780733ec5 100644 --- a/java/res/drawable-hdpi/sym_keyboard_space.png +++ b/java/res/drawable-hdpi/sym_keyboard_space.png diff --git a/java/res/drawable-hdpi/sym_keyboard_space_holo.png b/java/res/drawable-hdpi/sym_keyboard_space_holo.png Binary files differindex a8e5f7d5e..143a89964 100644 --- a/java/res/drawable-hdpi/sym_keyboard_space_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_space_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_space_led.9.png b/java/res/drawable-hdpi/sym_keyboard_space_led.9.png Binary files differindex 2c6f4a925..c76f64b94 100644 --- a/java/res/drawable-hdpi/sym_keyboard_space_led.9.png +++ b/java/res/drawable-hdpi/sym_keyboard_space_led.9.png diff --git a/java/res/drawable-hdpi/sym_keyboard_tab.png b/java/res/drawable-hdpi/sym_keyboard_tab.png Binary files differindex 51d17d989..3d1c5c0ea 100644 --- a/java/res/drawable-hdpi/sym_keyboard_tab.png +++ b/java/res/drawable-hdpi/sym_keyboard_tab.png diff --git a/java/res/drawable-hdpi/sym_keyboard_tab_holo.png b/java/res/drawable-hdpi/sym_keyboard_tab_holo.png Binary files differnew file mode 100644 index 000000000..321c541cc --- /dev/null +++ b/java/res/drawable-hdpi/sym_keyboard_tab_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_voice_holo.png b/java/res/drawable-hdpi/sym_keyboard_voice_holo.png Binary files differindex 5ea2edc53..d3cb46e0d 100644 --- a/java/res/drawable-hdpi/sym_keyboard_voice_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_voice_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.png Binary files differindex 6e6279a8a..45e3e79c5 100644 --- a/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_voice_off_holo.png diff --git a/java/res/drawable-hdpi/top_suggest_line_holo.9.png b/java/res/drawable-hdpi/top_suggest_line_holo.9.png Binary files differdeleted file mode 100644 index dcce3015f..000000000 --- a/java/res/drawable-hdpi/top_suggest_line_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/voice_ime_background.9.png b/java/res/drawable-hdpi/voice_ime_background.9.png Binary files differdeleted file mode 100644 index 42868522f..000000000 --- a/java/res/drawable-hdpi/voice_ime_background.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/voice_swipe_hint.png b/java/res/drawable-hdpi/voice_swipe_hint.png Binary files differdeleted file mode 100644 index 130f83a9c..000000000 --- a/java/res/drawable-hdpi/voice_swipe_hint.png +++ /dev/null diff --git a/java/res/drawable-hdpi/vs_dialog_blue.9.png b/java/res/drawable-hdpi/vs_dialog_blue.9.png Binary files differnew file mode 100644 index 000000000..4f813ead3 --- /dev/null +++ b/java/res/drawable-hdpi/vs_dialog_blue.9.png diff --git a/java/res/drawable-hdpi/vs_dialog_red.9.png b/java/res/drawable-hdpi/vs_dialog_red.9.png Binary files differnew file mode 100644 index 000000000..a2055600e --- /dev/null +++ b/java/res/drawable-hdpi/vs_dialog_red.9.png diff --git a/java/res/drawable-hdpi/vs_dialog_yellow.9.png b/java/res/drawable-hdpi/vs_dialog_yellow.9.png Binary files differnew file mode 100644 index 000000000..ce664b676 --- /dev/null +++ b/java/res/drawable-hdpi/vs_dialog_yellow.9.png diff --git a/java/res/drawable-xlarge/vs_popup_mic_edge.png b/java/res/drawable-hdpi/vs_popup_mic_edge.png Binary files differindex 4ff6337a2..4ff6337a2 100644 --- a/java/res/drawable-xlarge/vs_popup_mic_edge.png +++ b/java/res/drawable-hdpi/vs_popup_mic_edge.png diff --git a/java/res/drawable-hdpi/working.png b/java/res/drawable-hdpi/working.png Binary files differdeleted file mode 100755 index 5ea702307..000000000 --- a/java/res/drawable-hdpi/working.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal.9.png Binary files differindex 603bf0e15..603bf0e15 100755..100644 --- a/java/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/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png Binary files differindex 6ddd516e7..6ddd516e7 100755..100644 --- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_off.9.png diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png Binary files differindex 65fdeb353..65fdeb353 100755..100644 --- a/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_normal_on.9.png diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed.9.png Binary files differindex 7ec915fe8..7ec915fe8 100755..100644 --- a/java/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/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png Binary files differindex 439271723..439271723 100755..100644 --- a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_off.9.png diff --git a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png Binary files differindex c2cc32044..c2cc32044 100755..100644 --- a/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png +++ b/java/res/drawable-land-hdpi/btn_keyboard_key_pressed_on.9.png diff --git a/java/res/drawable-land-hdpi/key_hint_at_holo.9.png b/java/res/drawable-land-hdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index 874802fcb..000000000 --- a/java/res/drawable-land-hdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index d90bc31ab..000000000 --- a/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png b/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index e82e41c94..000000000 --- a/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index e46845dbd..000000000 --- a/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png b/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index da0d6fdd6..000000000 --- a/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 1f2f70762..000000000 --- a/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_dash_holo.9.png b/java/res/drawable-land-hdpi/key_hint_dash_holo.9.png Binary files differdeleted file mode 100644 index c045b8c54..000000000 --- a/java/res/drawable-land-hdpi/key_hint_dash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_doublecross_holo.9.png b/java/res/drawable-land-hdpi/key_hint_doublecross_holo.9.png Binary files differdeleted file mode 100644 index 6975ab71f..000000000 --- a/java/res/drawable-land-hdpi/key_hint_doublecross_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_equal_holo.9.png b/java/res/drawable-land-hdpi/key_hint_equal_holo.9.png Binary files differdeleted file mode 100644 index a619fb29f..000000000 --- a/java/res/drawable-land-hdpi/key_hint_equal_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index 570a1b87d..000000000 --- a/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index e93e49187..000000000 --- a/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_larger_holo.9.png b/java/res/drawable-land-hdpi/key_hint_larger_holo.9.png Binary files differdeleted file mode 100644 index f8d960f17..000000000 --- a/java/res/drawable-land-hdpi/key_hint_larger_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_minus_holo.9.png b/java/res/drawable-land-hdpi/key_hint_minus_holo.9.png Binary files differdeleted file mode 100644 index 2c34ef90b..000000000 --- a/java/res/drawable-land-hdpi/key_hint_minus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_minus_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_minus_large_holo.9.png Binary files differdeleted file mode 100644 index 0df056ee1..000000000 --- a/java/res/drawable-land-hdpi/key_hint_minus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_parenclose_holo.9.png b/java/res/drawable-land-hdpi/key_hint_parenclose_holo.9.png Binary files differdeleted file mode 100644 index 9d8b05761..000000000 --- a/java/res/drawable-land-hdpi/key_hint_parenclose_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_parenopen_holo.9.png b/java/res/drawable-land-hdpi/key_hint_parenopen_holo.9.png Binary files differdeleted file mode 100644 index 8e2d8f2ad..000000000 --- a/java/res/drawable-land-hdpi/key_hint_parenopen_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_period_holo.9.png b/java/res/drawable-land-hdpi/key_hint_period_holo.9.png Binary files differdeleted file mode 100644 index bf8c6d722..000000000 --- a/java/res/drawable-land-hdpi/key_hint_period_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png b/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index 3dd85065a..000000000 --- a/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index b0d75f433..000000000 --- a/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_question_holo.9.png b/java/res/drawable-land-hdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 1a0db31ec..000000000 --- a/java/res/drawable-land-hdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index 44dfdc4ea..000000000 --- a/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png b/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index bfb612f59..000000000 --- a/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index e73b9e0c6..000000000 --- a/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_semicolon_holo.9.png b/java/res/drawable-land-hdpi/key_hint_semicolon_holo.9.png Binary files differdeleted file mode 100644 index f35275857..000000000 --- a/java/res/drawable-land-hdpi/key_hint_semicolon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_simplequote_holo.9.png b/java/res/drawable-land-hdpi/key_hint_simplequote_holo.9.png Binary files differdeleted file mode 100644 index e69a9696e..000000000 --- a/java/res/drawable-land-hdpi/key_hint_simplequote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_slash_holo.9.png b/java/res/drawable-land-hdpi/key_hint_slash_holo.9.png Binary files differdeleted file mode 100644 index 592ea4434..000000000 --- a/java/res/drawable-land-hdpi/key_hint_slash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_slash_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_slash_large_holo.9.png Binary files differdeleted file mode 100644 index b18be7bb5..000000000 --- a/java/res/drawable-land-hdpi/key_hint_slash_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_smaller_holo.9.png b/java/res/drawable-land-hdpi/key_hint_smaller_holo.9.png Binary files differdeleted file mode 100644 index 145320dab..000000000 --- a/java/res/drawable-land-hdpi/key_hint_smaller_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_star_holo.9.png b/java/res/drawable-land-hdpi/key_hint_star_holo.9.png Binary files differdeleted file mode 100644 index 9bde78a21..000000000 --- a/java/res/drawable-land-hdpi/key_hint_star_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png Binary files differdeleted file mode 100644 index b2ab17d41..000000000 --- a/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png Binary files differdeleted file mode 100644 index dad34fc72..000000000 --- a/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_underscore_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underscore_holo.9.png Binary files differdeleted file mode 100644 index e4f271918..000000000 --- a/java/res/drawable-land-hdpi/key_hint_underscore_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_underscore_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underscore_large_holo.9.png Binary files differdeleted file mode 100644 index dad34fc72..000000000 --- a/java/res/drawable-land-hdpi/key_hint_underscore_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_at_holo.9.png b/java/res/drawable-land-mdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index 5b946ff9b..000000000 --- a/java/res/drawable-land-mdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index 852f899ed..000000000 --- a/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index 1d9346e6f..000000000 --- a/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index 17e9091b4..000000000 --- a/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index c2a913c04..000000000 --- a/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 846f213f1..000000000 --- a/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_dash_holo.9.png b/java/res/drawable-land-mdpi/key_hint_dash_holo.9.png Binary files differdeleted file mode 100644 index 1cb0bdfaa..000000000 --- a/java/res/drawable-land-mdpi/key_hint_dash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_doublecross_holo.9.png b/java/res/drawable-land-mdpi/key_hint_doublecross_holo.9.png Binary files differdeleted file mode 100644 index 7e7ceb3fc..000000000 --- a/java/res/drawable-land-mdpi/key_hint_doublecross_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_equal_holo.9.png b/java/res/drawable-land-mdpi/key_hint_equal_holo.9.png Binary files differdeleted file mode 100644 index 8e570595c..000000000 --- a/java/res/drawable-land-mdpi/key_hint_equal_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index ce8e8de43..000000000 --- a/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index 035dcf85d..000000000 --- a/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_larger_holo.9.png b/java/res/drawable-land-mdpi/key_hint_larger_holo.9.png Binary files differdeleted file mode 100644 index 37c05275e..000000000 --- a/java/res/drawable-land-mdpi/key_hint_larger_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_parenclose_holo.9.png b/java/res/drawable-land-mdpi/key_hint_parenclose_holo.9.png Binary files differdeleted file mode 100644 index 97e1f1449..000000000 --- a/java/res/drawable-land-mdpi/key_hint_parenclose_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_parenopen_holo.9.png b/java/res/drawable-land-mdpi/key_hint_parenopen_holo.9.png Binary files differdeleted file mode 100644 index 36add5d51..000000000 --- a/java/res/drawable-land-mdpi/key_hint_parenopen_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_period_holo.9.png b/java/res/drawable-land-mdpi/key_hint_period_holo.9.png Binary files differdeleted file mode 100644 index 4a70f07dc..000000000 --- a/java/res/drawable-land-mdpi/key_hint_period_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index 931390b45..000000000 --- a/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index e6f9f8a9c..000000000 --- a/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_question_holo.9.png b/java/res/drawable-land-mdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 6cbeb5993..000000000 --- a/java/res/drawable-land-mdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index bfd58de09..000000000 --- a/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index 3b361b71c..000000000 --- a/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index 2a08aa12e..000000000 --- a/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_semicolon_holo.9.png b/java/res/drawable-land-mdpi/key_hint_semicolon_holo.9.png Binary files differdeleted file mode 100644 index 63a3875b5..000000000 --- a/java/res/drawable-land-mdpi/key_hint_semicolon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_simplequote_holo.9.png b/java/res/drawable-land-mdpi/key_hint_simplequote_holo.9.png Binary files differdeleted file mode 100644 index 3c217b058..000000000 --- a/java/res/drawable-land-mdpi/key_hint_simplequote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_slash_holo.9.png b/java/res/drawable-land-mdpi/key_hint_slash_holo.9.png Binary files differdeleted file mode 100644 index 98545f0ac..000000000 --- a/java/res/drawable-land-mdpi/key_hint_slash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_slash_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_slash_large_holo.9.png Binary files differdeleted file mode 100644 index a3a02973c..000000000 --- a/java/res/drawable-land-mdpi/key_hint_slash_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_smaller_holo.9.png b/java/res/drawable-land-mdpi/key_hint_smaller_holo.9.png Binary files differdeleted file mode 100644 index 5af183644..000000000 --- a/java/res/drawable-land-mdpi/key_hint_smaller_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_star_holo.9.png b/java/res/drawable-land-mdpi/key_hint_star_holo.9.png Binary files differdeleted file mode 100644 index 18304d738..000000000 --- a/java/res/drawable-land-mdpi/key_hint_star_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png Binary files differdeleted file mode 100644 index 50f99a191..000000000 --- a/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_underscore_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_underscore_large_holo.9.png Binary files differdeleted file mode 100644 index ee0e83578..000000000 --- a/java/res/drawable-land-mdpi/key_hint_underscore_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-xhdpi/hint_popup_holo.9.png b/java/res/drawable-land-xhdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..3cd20d34f --- /dev/null +++ b/java/res/drawable-land-xhdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-xlarge/btn_center_default.9.png b/java/res/drawable-mdpi/btn_center_default.9.png Binary files differindex d5ec36ba4..d5ec36ba4 100755..100644 --- a/java/res/drawable-xlarge/btn_center_default.9.png +++ b/java/res/drawable-mdpi/btn_center_default.9.png diff --git a/java/res/drawable-xlarge/btn_center_pressed.9.png b/java/res/drawable-mdpi/btn_center_pressed.9.png Binary files differindex 593a679d0..593a679d0 100755..100644 --- a/java/res/drawable-xlarge/btn_center_pressed.9.png +++ b/java/res/drawable-mdpi/btn_center_pressed.9.png diff --git a/java/res/drawable-xlarge/btn_center_selected.9.png b/java/res/drawable-mdpi/btn_center_selected.9.png Binary files differindex f1914a886..f1914a886 100644 --- a/java/res/drawable-xlarge/btn_center_selected.9.png +++ b/java/res/drawable-mdpi/btn_center_selected.9.png diff --git a/java/res/drawable-mdpi/btn_close_candidates_pane.9.png b/java/res/drawable-mdpi/btn_close_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..5ea56925d --- /dev/null +++ b/java/res/drawable-mdpi/btn_close_candidates_pane.9.png diff --git a/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png b/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..83cb65305 --- /dev/null +++ b/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png Binary files differindex 1534d99d1..034d63870 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png Binary files differindex 936513a31..0cb53d506 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png Binary files differindex b071251a7..0050a0110 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png Binary files differindex 9fed21edf..27f8fdac6 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png Binary files differindex 3fce55938..b8ce95235 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png Binary files differindex 3f82b67dd..4d4d1a748 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png Binary files differindex eded1736b..90f471f48 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png Binary files differindex e6a1dcecc..c850768cd 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.png Binary files differnew file mode 100644 index 000000000..e9186b7bb --- /dev/null +++ b/java/res/drawable-mdpi/btn_keyboard_key_popup_background_holo.9.png diff --git a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differindex d2f5f3bf2..e96c8c5db 100644 --- a/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_holo.9.png +++ b/java/res/drawable-mdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-mdpi/cancel.png b/java/res/drawable-mdpi/cancel.png Binary files differdeleted file mode 100644 index 713a37875..000000000 --- a/java/res/drawable-mdpi/cancel.png +++ /dev/null diff --git a/java/res/drawable-mdpi/cancel_holo.9.png b/java/res/drawable-mdpi/cancel_holo.9.png Binary files differdeleted file mode 100644 index 74f967eb9..000000000 --- a/java/res/drawable-mdpi/cancel_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/dialog_bubble_step02.9.png b/java/res/drawable-mdpi/dialog_bubble_step02.9.png Binary files differdeleted file mode 100644 index d77f85fe2..000000000 --- a/java/res/drawable-mdpi/dialog_bubble_step02.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/dialog_bubble_step07.9.png b/java/res/drawable-mdpi/dialog_bubble_step07.9.png Binary files differdeleted file mode 100644 index 80f4a0eaa..000000000 --- a/java/res/drawable-mdpi/dialog_bubble_step07.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/hint_popup_holo.9.png b/java/res/drawable-mdpi/hint_popup_holo.9.png Binary files differindex 01d1139d8..e9e131c54 100644 --- a/java/res/drawable-mdpi/hint_popup_holo.9.png +++ b/java/res/drawable-mdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-mdpi/key_hint_at_holo.9.png b/java/res/drawable-mdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index 5b946ff9b..000000000 --- a/java/res/drawable-mdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-mdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index 852f899ed..000000000 --- a/java/res/drawable-mdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-mdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index 1d9346e6f..000000000 --- a/java/res/drawable-mdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index 17e9091b4..000000000 --- a/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-mdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index c2a913c04..000000000 --- a/java/res/drawable-mdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 846f213f1..000000000 --- a/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_dash_holo.9.png b/java/res/drawable-mdpi/key_hint_dash_holo.9.png Binary files differdeleted file mode 100644 index 2ee22ba79..000000000 --- a/java/res/drawable-mdpi/key_hint_dash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_doublecross_holo.9.png b/java/res/drawable-mdpi/key_hint_doublecross_holo.9.png Binary files differdeleted file mode 100644 index 0da933239..000000000 --- a/java/res/drawable-mdpi/key_hint_doublecross_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_equal_holo.9.png b/java/res/drawable-mdpi/key_hint_equal_holo.9.png Binary files differdeleted file mode 100644 index f5a9ba2f4..000000000 --- a/java/res/drawable-mdpi/key_hint_equal_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index ce8e8de43..000000000 --- a/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index 035dcf85d..000000000 --- a/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_larger_holo.9.png b/java/res/drawable-mdpi/key_hint_larger_holo.9.png Binary files differdeleted file mode 100644 index 50652bb13..000000000 --- a/java/res/drawable-mdpi/key_hint_larger_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_minus_large_holo.9.png b/java/res/drawable-mdpi/key_hint_minus_large_holo.9.png Binary files differdeleted file mode 100644 index 52c28dd87..000000000 --- a/java/res/drawable-mdpi/key_hint_minus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_parenclose_holo.9.png b/java/res/drawable-mdpi/key_hint_parenclose_holo.9.png Binary files differdeleted file mode 100644 index 52ee86a0f..000000000 --- a/java/res/drawable-mdpi/key_hint_parenclose_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_parenopen_holo.9.png b/java/res/drawable-mdpi/key_hint_parenopen_holo.9.png Binary files differdeleted file mode 100644 index b0ed388ad..000000000 --- a/java/res/drawable-mdpi/key_hint_parenopen_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_period_holo.9.png b/java/res/drawable-mdpi/key_hint_period_holo.9.png Binary files differdeleted file mode 100644 index 8d798a57f..000000000 --- a/java/res/drawable-mdpi/key_hint_period_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-mdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index 931390b45..000000000 --- a/java/res/drawable-mdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index e6f9f8a9c..000000000 --- a/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_question_holo.9.png b/java/res/drawable-mdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 6cbeb5993..000000000 --- a/java/res/drawable-mdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-mdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index bfd58de09..000000000 --- a/java/res/drawable-mdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index 3b361b71c..000000000 --- a/java/res/drawable-mdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index 2a08aa12e..000000000 --- a/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_semicolon_holo.9.png b/java/res/drawable-mdpi/key_hint_semicolon_holo.9.png Binary files differdeleted file mode 100644 index 7f9e8c90e..000000000 --- a/java/res/drawable-mdpi/key_hint_semicolon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_simplequote_holo.9.png b/java/res/drawable-mdpi/key_hint_simplequote_holo.9.png Binary files differdeleted file mode 100644 index 5e1a45c0e..000000000 --- a/java/res/drawable-mdpi/key_hint_simplequote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_slash_holo.9.png b/java/res/drawable-mdpi/key_hint_slash_holo.9.png Binary files differdeleted file mode 100644 index 645586a30..000000000 --- a/java/res/drawable-mdpi/key_hint_slash_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_slash_large_holo.9.png b/java/res/drawable-mdpi/key_hint_slash_large_holo.9.png Binary files differdeleted file mode 100644 index 75c3bb1a6..000000000 --- a/java/res/drawable-mdpi/key_hint_slash_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_smaller_holo.9.png b/java/res/drawable-mdpi/key_hint_smaller_holo.9.png Binary files differdeleted file mode 100644 index 2a0587cbd..000000000 --- a/java/res/drawable-mdpi/key_hint_smaller_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_star_holo.9.png b/java/res/drawable-mdpi/key_hint_star_holo.9.png Binary files differdeleted file mode 100644 index 9f33b9830..000000000 --- a/java/res/drawable-mdpi/key_hint_star_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_underscore_holo.9.png b/java/res/drawable-mdpi/key_hint_underscore_holo.9.png Binary files differdeleted file mode 100644 index 52e871e0a..000000000 --- a/java/res/drawable-mdpi/key_hint_underscore_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_underscore_large_holo.9.png b/java/res/drawable-mdpi/key_hint_underscore_large_holo.9.png Binary files differdeleted file mode 100644 index ee0e83578..000000000 --- a/java/res/drawable-mdpi/key_hint_underscore_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_background_holo.9.png b/java/res/drawable-mdpi/keyboard_background_holo.9.png Binary files differindex a93966c92..f1d55c6dd 100644 --- a/java/res/drawable-mdpi/keyboard_background_holo.9.png +++ b/java/res/drawable-mdpi/keyboard_background_holo.9.png diff --git a/java/res/drawable-mdpi/keyboard_hint_0.9.png b/java/res/drawable-mdpi/keyboard_hint_0.9.png Binary files differdeleted file mode 100644 index 61ad1b50a..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_0.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_1.9.png b/java/res/drawable-mdpi/keyboard_hint_1.9.png Binary files differdeleted file mode 100644 index cd7772e71..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_1.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_2.9.png b/java/res/drawable-mdpi/keyboard_hint_2.9.png Binary files differdeleted file mode 100644 index fa5f8b79c..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_2.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_3.9.png b/java/res/drawable-mdpi/keyboard_hint_3.9.png Binary files differdeleted file mode 100644 index 0c7336cb7..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_3.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_4.9.png b/java/res/drawable-mdpi/keyboard_hint_4.9.png Binary files differdeleted file mode 100644 index 73ef06c0e..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_4.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_5.9.png b/java/res/drawable-mdpi/keyboard_hint_5.9.png Binary files differdeleted file mode 100644 index aea460e1c..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_5.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_6.9.png b/java/res/drawable-mdpi/keyboard_hint_6.9.png Binary files differdeleted file mode 100644 index 16a9237e3..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_6.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_7.9.png b/java/res/drawable-mdpi/keyboard_hint_7.9.png Binary files differdeleted file mode 100644 index 6747a19c0..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_7.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_8.9.png b/java/res/drawable-mdpi/keyboard_hint_8.9.png Binary files differdeleted file mode 100644 index 28be2fb86..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_8.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_9.9.png b/java/res/drawable-mdpi/keyboard_hint_9.9.png Binary files differdeleted file mode 100644 index 731d63b1b..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_9.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_at.9.png b/java/res/drawable-mdpi/keyboard_hint_at.9.png Binary files differdeleted file mode 100644 index 69baedef4..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_at.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_colon.9.png b/java/res/drawable-mdpi/keyboard_hint_colon.9.png Binary files differdeleted file mode 100644 index 9d0d7cbab..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_colon.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_doublecross.9.png b/java/res/drawable-mdpi/keyboard_hint_doublecross.9.png Binary files differdeleted file mode 100644 index d24aa0f07..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_doublecross.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_exclamation.9.png b/java/res/drawable-mdpi/keyboard_hint_exclamation.9.png Binary files differdeleted file mode 100644 index f6cc7fe84..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_exclamation.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_greater.9.png b/java/res/drawable-mdpi/keyboard_hint_greater.9.png Binary files differdeleted file mode 100644 index 5210392bf..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_greater.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_plus.9.png b/java/res/drawable-mdpi/keyboard_hint_plus.9.png Binary files differdeleted file mode 100644 index d1d85ac87..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_plus.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_question.9.png b/java/res/drawable-mdpi/keyboard_hint_question.9.png Binary files differdeleted file mode 100644 index 37f6e5f36..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_question.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_quote.9.png b/java/res/drawable-mdpi/keyboard_hint_quote.9.png Binary files differdeleted file mode 100644 index e7d2cb5e3..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_quote.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_smaller.9.png b/java/res/drawable-mdpi/keyboard_hint_smaller.9.png Binary files differdeleted file mode 100644 index 76553cf96..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_smaller.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_hint_star.9.png b/java/res/drawable-mdpi/keyboard_hint_star.9.png Binary files differdeleted file mode 100644 index 47978c46c..000000000 --- a/java/res/drawable-mdpi/keyboard_hint_star.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png Binary files differindex 286cf84fc..9a1b7aadd 100644 --- a/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png +++ b/java/res/drawable-mdpi/keyboard_key_feedback_background_holo.9.png diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.png Binary files differnew file mode 100644 index 000000000..cb222b0f9 --- /dev/null +++ b/java/res/drawable-mdpi/keyboard_key_feedback_left_background_holo.9.png diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.png Binary files differnew file mode 100644 index 000000000..07d980083 --- /dev/null +++ b/java/res/drawable-mdpi/keyboard_key_feedback_left_more_background_holo.9.png diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png Binary files differindex e3f5be86d..05a332b8e 100644 --- a/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png +++ b/java/res/drawable-mdpi/keyboard_key_feedback_more_background_holo.9.png diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.png Binary files differnew file mode 100644 index 000000000..fd1675512 --- /dev/null +++ b/java/res/drawable-mdpi/keyboard_key_feedback_right_background_holo.9.png diff --git a/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.png b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.png Binary files differnew file mode 100644 index 000000000..1acbd8268 --- /dev/null +++ b/java/res/drawable-mdpi/keyboard_key_feedback_right_more_background_holo.9.png diff --git a/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png Binary files differindex 1f87a68e9..17faf86d0 100644 --- a/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png +++ b/java/res/drawable-mdpi/keyboard_suggest_strip_holo.9.png diff --git a/java/res/drawable-xlarge/mic_base.png b/java/res/drawable-mdpi/mic_base.png Binary files differindex 53e29ff4b..53e29ff4b 100644 --- a/java/res/drawable-xlarge/mic_base.png +++ b/java/res/drawable-mdpi/mic_base.png diff --git a/java/res/drawable-xlarge/mic_full.png b/java/res/drawable-mdpi/mic_full.png Binary files differindex e3e3dfac3..e3e3dfac3 100644 --- a/java/res/drawable-xlarge/mic_full.png +++ b/java/res/drawable-mdpi/mic_full.png diff --git a/java/res/drawable-mdpi/mic_slash_holo.png b/java/res/drawable-mdpi/mic_slash_holo.png Binary files differdeleted file mode 100644 index 07181e6fa..000000000 --- a/java/res/drawable-mdpi/mic_slash_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/ok_cancel.png b/java/res/drawable-mdpi/ok_cancel.png Binary files differdeleted file mode 100644 index 20d10f986..000000000 --- a/java/res/drawable-mdpi/ok_cancel.png +++ /dev/null diff --git a/java/res/drawable-mdpi/ok_cancel_holo.9.png b/java/res/drawable-mdpi/ok_cancel_holo.9.png Binary files differdeleted file mode 100644 index 035a4f6f0..000000000 --- a/java/res/drawable-mdpi/ok_cancel_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level0.png b/java/res/drawable-mdpi/speak_now_level0.png Binary files differdeleted file mode 100644 index 5bd13603e..000000000 --- a/java/res/drawable-mdpi/speak_now_level0.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level0_holo.png b/java/res/drawable-mdpi/speak_now_level0_holo.png Binary files differdeleted file mode 100644 index 2090b95a5..000000000 --- a/java/res/drawable-mdpi/speak_now_level0_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level1.png b/java/res/drawable-mdpi/speak_now_level1.png Binary files differdeleted file mode 100644 index ccb76b879..000000000 --- a/java/res/drawable-mdpi/speak_now_level1.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level1_holo.png b/java/res/drawable-mdpi/speak_now_level1_holo.png Binary files differdeleted file mode 100644 index 8acf482aa..000000000 --- a/java/res/drawable-mdpi/speak_now_level1_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level2.png b/java/res/drawable-mdpi/speak_now_level2.png Binary files differdeleted file mode 100644 index 715f90081..000000000 --- a/java/res/drawable-mdpi/speak_now_level2.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level2_holo.png b/java/res/drawable-mdpi/speak_now_level2_holo.png Binary files differdeleted file mode 100644 index 4b307d542..000000000 --- a/java/res/drawable-mdpi/speak_now_level2_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level3.png b/java/res/drawable-mdpi/speak_now_level3.png Binary files differdeleted file mode 100644 index 725248a25..000000000 --- a/java/res/drawable-mdpi/speak_now_level3.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level3_holo.png b/java/res/drawable-mdpi/speak_now_level3_holo.png Binary files differdeleted file mode 100644 index 7c7cd666f..000000000 --- a/java/res/drawable-mdpi/speak_now_level3_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level4.png b/java/res/drawable-mdpi/speak_now_level4.png Binary files differdeleted file mode 100644 index ff6c50b40..000000000 --- a/java/res/drawable-mdpi/speak_now_level4.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level4_holo.png b/java/res/drawable-mdpi/speak_now_level4_holo.png Binary files differdeleted file mode 100644 index 362c45337..000000000 --- a/java/res/drawable-mdpi/speak_now_level4_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level5.png b/java/res/drawable-mdpi/speak_now_level5.png Binary files differdeleted file mode 100644 index a5d6b89d6..000000000 --- a/java/res/drawable-mdpi/speak_now_level5.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level5_holo.png b/java/res/drawable-mdpi/speak_now_level5_holo.png Binary files differdeleted file mode 100644 index 1886befff..000000000 --- a/java/res/drawable-mdpi/speak_now_level5_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level6.png b/java/res/drawable-mdpi/speak_now_level6.png Binary files differdeleted file mode 100644 index dcdb48d08..000000000 --- a/java/res/drawable-mdpi/speak_now_level6.png +++ /dev/null diff --git a/java/res/drawable-mdpi/speak_now_level6_holo.png b/java/res/drawable-mdpi/speak_now_level6_holo.png Binary files differdeleted file mode 100644 index 88e4131c8..000000000 --- a/java/res/drawable-mdpi/speak_now_level6_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_done.png b/java/res/drawable-mdpi/sym_bkeyboard_done.png Binary files differdeleted file mode 100644 index 05ce7c643..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_done.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_numalt.png b/java/res/drawable-mdpi/sym_bkeyboard_numalt.png Binary files differdeleted file mode 100644 index 4fa410b62..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_numalt.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_numpound.png b/java/res/drawable-mdpi/sym_bkeyboard_numpound.png Binary files differdeleted file mode 100644 index 9126eed0d..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_numpound.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_numstar.png b/java/res/drawable-mdpi/sym_bkeyboard_numstar.png Binary files differdeleted file mode 100644 index 9b9f1b986..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_numstar.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_delete_holo.png b/java/res/drawable-mdpi/sym_keyboard_delete_holo.png Binary files differindex 155579169..f8f6e6a80 100644 --- a/java/res/drawable-mdpi/sym_keyboard_delete_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_delete_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_done.png b/java/res/drawable-mdpi/sym_keyboard_done.png Binary files differdeleted file mode 100644 index c0d6d1394..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_done.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_done.png b/java/res/drawable-mdpi/sym_keyboard_feedback_done.png Binary files differdeleted file mode 100644 index 0d7ebd4e5..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_feedback_done.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png b/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png Binary files differdeleted file mode 100644 index 494524a66..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_mic_disabled.png b/java/res/drawable-mdpi/sym_keyboard_mic_disabled.png Binary files differdeleted file mode 100644 index e926b3fa6..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_mic_disabled.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-mdpi/sym_keyboard_num0_holo.png Binary files differindex e1d395b45..2c57adf8b 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num0_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num0_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-mdpi/sym_keyboard_num1_holo.png Binary files differindex 225436ac2..509e28f9b 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num1_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num1_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-mdpi/sym_keyboard_num2_holo.png Binary files differindex e513fa4a0..0da18e772 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num2_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num2_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-mdpi/sym_keyboard_num3_holo.png Binary files differindex b91e005fc..e8470586f 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num3_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num3_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-mdpi/sym_keyboard_num4_holo.png Binary files differindex 65f88245b..13c216d3a 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num4_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num4_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-mdpi/sym_keyboard_num5_holo.png Binary files differindex b89ef07eb..0065153fc 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num5_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num5_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-mdpi/sym_keyboard_num6_holo.png Binary files differindex 931275a9e..09fab76a1 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num6_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num6_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-mdpi/sym_keyboard_num7_holo.png Binary files differindex 9396c4c8f..d350fddc8 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num7_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num7_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-mdpi/sym_keyboard_num8_holo.png Binary files differindex 12e3eef45..c40cb89a5 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num8_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num8_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-mdpi/sym_keyboard_num9_holo.png Binary files differindex 6911c2b4f..73526939d 100644 --- a/java/res/drawable-mdpi/sym_keyboard_num9_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_num9_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_numalt.png b/java/res/drawable-mdpi/sym_keyboard_numalt.png Binary files differdeleted file mode 100644 index 32a2cf3ca..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_numalt.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_numpound.png b/java/res/drawable-mdpi/sym_keyboard_numpound.png Binary files differdeleted file mode 100644 index b2419d9ab..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_numpound.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_numstar.png b/java/res/drawable-mdpi/sym_keyboard_numstar.png Binary files differdeleted file mode 100644 index cb66f968f..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_numstar.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_return_holo.png b/java/res/drawable-mdpi/sym_keyboard_return_holo.png Binary files differindex d519ccecf..abbce5234 100644 --- a/java/res/drawable-mdpi/sym_keyboard_return_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_return_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_settings_holo.png b/java/res/drawable-mdpi/sym_keyboard_settings_holo.png Binary files differindex 784a45054..82df90376 100644 --- a/java/res/drawable-mdpi/sym_keyboard_settings_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_settings_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_holo.png b/java/res/drawable-mdpi/sym_keyboard_shift_holo.png Binary files differindex 91d6e32f9..49b9fc088 100644 --- a/java/res/drawable-mdpi/sym_keyboard_shift_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_shift_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png Binary files differindex 2bd053656..5375beb4e 100644 --- a/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_shift_locked_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_space_holo.png b/java/res/drawable-mdpi/sym_keyboard_space_holo.png Binary files differindex 25e655d96..e413ddf2e 100644 --- a/java/res/drawable-mdpi/sym_keyboard_space_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_space_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_tab_holo.png b/java/res/drawable-mdpi/sym_keyboard_tab_holo.png Binary files differnew file mode 100644 index 000000000..c41af7b89 --- /dev/null +++ b/java/res/drawable-mdpi/sym_keyboard_tab_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_voice_holo.png b/java/res/drawable-mdpi/sym_keyboard_voice_holo.png Binary files differindex c1116dc17..158439a9f 100644 --- a/java/res/drawable-mdpi/sym_keyboard_voice_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_voice_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png Binary files differindex 44919dfcc..79026f1ab 100644 --- a/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png +++ b/java/res/drawable-mdpi/sym_keyboard_voice_off_holo.png diff --git a/java/res/drawable-mdpi/voice_ime_background.9.png b/java/res/drawable-mdpi/voice_ime_background.9.png Binary files differdeleted file mode 100644 index 9b15bc25f..000000000 --- a/java/res/drawable-mdpi/voice_ime_background.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/voice_swipe_hint.png b/java/res/drawable-mdpi/voice_swipe_hint.png Binary files differdeleted file mode 100644 index bb8873251..000000000 --- a/java/res/drawable-mdpi/voice_swipe_hint.png +++ /dev/null diff --git a/java/res/drawable-xlarge/vs_dialog_blue.9.png b/java/res/drawable-mdpi/vs_dialog_blue.9.png Binary files differindex cf27e8f43..cf27e8f43 100644 --- a/java/res/drawable-xlarge/vs_dialog_blue.9.png +++ b/java/res/drawable-mdpi/vs_dialog_blue.9.png diff --git a/java/res/drawable-xlarge/vs_dialog_red.9.png b/java/res/drawable-mdpi/vs_dialog_red.9.png Binary files differindex 6c08d5a30..6c08d5a30 100644 --- a/java/res/drawable-xlarge/vs_dialog_red.9.png +++ b/java/res/drawable-mdpi/vs_dialog_red.9.png diff --git a/java/res/drawable-xlarge/vs_dialog_yellow.9.png b/java/res/drawable-mdpi/vs_dialog_yellow.9.png Binary files differindex 2fb06c263..2fb06c263 100644 --- a/java/res/drawable-xlarge/vs_dialog_yellow.9.png +++ b/java/res/drawable-mdpi/vs_dialog_yellow.9.png diff --git a/java/res/drawable/vs_popup_mic_edge.png b/java/res/drawable-mdpi/vs_popup_mic_edge.png Binary files differindex 4ff6337a2..4ff6337a2 100644 --- a/java/res/drawable/vs_popup_mic_edge.png +++ b/java/res/drawable-mdpi/vs_popup_mic_edge.png diff --git a/java/res/drawable-mdpi/working.png b/java/res/drawable-mdpi/working.png Binary files differdeleted file mode 100644 index 4a930c52d..000000000 --- a/java/res/drawable-mdpi/working.png +++ /dev/null diff --git a/java/res/drawable-sw600dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw600dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differnew file mode 100644 index 000000000..544ed7f78 --- /dev/null +++ b/java/res/drawable-sw600dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-sw600dp-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-hdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..2ffc6ea2b --- /dev/null +++ b/java/res/drawable-sw600dp-hdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_numsymbol_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_numsymbol_holo.png Binary files differnew file mode 100644 index 000000000..398eaea12 --- /dev/null +++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_numsymbol_holo.png diff --git a/java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.png b/java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.png Binary files differnew file mode 100644 index 000000000..1780f682b --- /dev/null +++ b/java/res/drawable-sw600dp-hdpi/sym_keyboard_tab_holo.png diff --git a/java/res/drawable-sw600dp-land-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-land-hdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..2ffc6ea2b --- /dev/null +++ b/java/res/drawable-sw600dp-land-hdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw600dp-land-mdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-land-mdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..f5d15b728 --- /dev/null +++ b/java/res/drawable-sw600dp-land-mdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw600dp-land-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-land-xhdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..bc37fa844 --- /dev/null +++ b/java/res/drawable-sw600dp-land-xhdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png Binary files differnew file mode 100644 index 000000000..2ad73041e --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png Binary files differnew file mode 100644 index 000000000..fc21e79c4 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png Binary files differnew file mode 100644 index 000000000..76cfbb221 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png Binary files differnew file mode 100644 index 000000000..73748c2fb --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png Binary files differnew file mode 100644 index 000000000..059d4ac2e --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png Binary files differnew file mode 100644 index 000000000..e5cfdec88 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_normal_holo.9.png Binary files differnew file mode 100644 index 000000000..060524a53 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_normal_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png Binary files differnew file mode 100644 index 000000000..f4b061e07 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differnew file mode 100644 index 000000000..ffa7386df --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-mdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..f5d15b728 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-sw600dp-mdpi/keyboard_background_holo.9.png Binary files differindex b137b0021..a93966c92 100644 --- a/java/res/drawable-mdpi/key_hint_underline_holo.9.png +++ b/java/res/drawable-sw600dp-mdpi/keyboard_background_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-sw600dp-mdpi/keyboard_popup_panel_background_holo.9.png Binary files differnew file mode 100644 index 000000000..7be7ab7e2 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/keyboard_popup_panel_background_holo.9.png diff --git a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/keyboard_suggest_strip_holo.9.png Binary files differindex 9845e3bd6..1f87a68e9 100644 --- a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png +++ b/java/res/drawable-sw600dp-mdpi/keyboard_suggest_strip_holo.9.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.png Binary files differnew file mode 100644 index 000000000..155579169 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_delete_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num0_holo.png Binary files differnew file mode 100644 index 000000000..e1d395b45 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num0_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num1_holo.png Binary files differnew file mode 100644 index 000000000..225436ac2 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num1_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num2_holo.png Binary files differnew file mode 100644 index 000000000..e513fa4a0 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num2_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num3_holo.png Binary files differnew file mode 100644 index 000000000..b91e005fc --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num3_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num4_holo.png Binary files differnew file mode 100644 index 000000000..65f88245b --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num4_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num5_holo.png Binary files differnew file mode 100644 index 000000000..b89ef07eb --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num5_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num6_holo.png Binary files differnew file mode 100644 index 000000000..931275a9e --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num6_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num7_holo.png Binary files differnew file mode 100644 index 000000000..9396c4c8f --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num7_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num8_holo.png Binary files differnew file mode 100644 index 000000000..12e3eef45 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num8_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num9_holo.png Binary files differnew file mode 100644 index 000000000..6911c2b4f --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_num9_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_numbpound_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbpound_holo.png Binary files differindex e3a8b4900..e3a8b4900 100644 --- a/java/res/drawable-mdpi/sym_keyboard_numbpound_holo.png +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbpound_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_numbstar_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbstar_holo.png Binary files differindex e80e9345f..e80e9345f 100644 --- a/java/res/drawable-mdpi/sym_keyboard_numbstar_holo.png +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numbstar_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_numsymbol_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numsymbol_holo.png Binary files differnew file mode 100644 index 000000000..73153849c --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_numsymbol_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.png Binary files differnew file mode 100644 index 000000000..d519ccecf --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_return_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.png Binary files differnew file mode 100644 index 000000000..784a45054 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_settings_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.png Binary files differnew file mode 100644 index 000000000..91d6e32f9 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.png Binary files differnew file mode 100644 index 000000000..2bd053656 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_shift_locked_holo.png diff --git a/java/res/drawable-mdpi/sym_keyboard_smiley_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_space_holo.png Binary files differindex 594fe211c..25e655d96 100644 --- a/java/res/drawable-mdpi/sym_keyboard_smiley_holo.png +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_space_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.png Binary files differnew file mode 100644 index 000000000..5acd12cc4 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_tab_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.png Binary files differnew file mode 100644 index 000000000..c1116dc17 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_holo.png diff --git a/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.png Binary files differnew file mode 100644 index 000000000..081a13096 --- /dev/null +++ b/java/res/drawable-sw600dp-mdpi/sym_keyboard_voice_off_holo.png diff --git a/java/res/drawable-sw600dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw600dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differnew file mode 100644 index 000000000..8b5d1b098 --- /dev/null +++ b/java/res/drawable-sw600dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-sw600dp-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw600dp-xhdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..bc37fa844 --- /dev/null +++ b/java/res/drawable-sw600dp-xhdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_numsymbol_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_numsymbol_holo.png Binary files differnew file mode 100644 index 000000000..c7a8b286a --- /dev/null +++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_numsymbol_holo.png diff --git a/java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.png b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.png Binary files differnew file mode 100644 index 000000000..fd9f8cce6 --- /dev/null +++ b/java/res/drawable-sw600dp-xhdpi/sym_keyboard_tab_holo.png diff --git a/java/res/drawable-sw768dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw768dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differnew file mode 100644 index 000000000..544ed7f78 --- /dev/null +++ b/java/res/drawable-sw768dp-hdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-sw768dp-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-hdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..2ffc6ea2b --- /dev/null +++ b/java/res/drawable-sw768dp-hdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw768dp-land-hdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-land-hdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..2b93014e1 --- /dev/null +++ b/java/res/drawable-sw768dp-land-hdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-mdpi/key_hint_minus_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/hint_popup_holo.9.png Binary files differindex e59a31587..c409cea00 100644 --- a/java/res/drawable-mdpi/key_hint_minus_holo.9.png +++ b/java/res/drawable-sw768dp-land-mdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw768dp-land-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-land-xhdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..3cd20d34f --- /dev/null +++ b/java/res/drawable-sw768dp-land-xhdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png Binary files differnew file mode 100644 index 000000000..2ad73041e --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png Binary files differnew file mode 100644 index 000000000..fc21e79c4 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_off_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png Binary files differnew file mode 100644 index 000000000..76cfbb221 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_normal_on_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png Binary files differnew file mode 100644 index 000000000..73748c2fb --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png Binary files differnew file mode 100644 index 000000000..059d4ac2e --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_off_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png Binary files differnew file mode 100644 index 000000000..e5cfdec88 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_dark_pressed_on_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_normal_holo.9.png Binary files differnew file mode 100644 index 000000000..060524a53 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_normal_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png Binary files differnew file mode 100644 index 000000000..f4b061e07 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_light_pressed_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differnew file mode 100644 index 000000000..ffa7386df --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-land-mdpi/key_hint_minus_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/hint_popup_holo.9.png Binary files differindex 52c28dd87..01d1139d8 100644 --- a/java/res/drawable-land-mdpi/key_hint_minus_large_holo.9.png +++ b/java/res/drawable-sw768dp-mdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-sw768dp-mdpi/keyboard_background_holo.9.png Binary files differindex 06f3efb7e..a93966c92 100644 --- a/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png +++ b/java/res/drawable-sw768dp-mdpi/keyboard_background_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/keyboard_popup_panel_background_holo.9.png b/java/res/drawable-sw768dp-mdpi/keyboard_popup_panel_background_holo.9.png Binary files differnew file mode 100644 index 000000000..7be7ab7e2 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/keyboard_popup_panel_background_holo.9.png diff --git a/java/res/drawable-land-mdpi/key_hint_underscore_holo.9.png b/java/res/drawable-sw768dp-mdpi/keyboard_suggest_strip_holo.9.png Binary files differindex 52e871e0a..1f87a68e9 100644 --- a/java/res/drawable-land-mdpi/key_hint_underscore_holo.9.png +++ b/java/res/drawable-sw768dp-mdpi/keyboard_suggest_strip_holo.9.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_delete_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_delete_holo.png Binary files differnew file mode 100644 index 000000000..155579169 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_delete_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num0_holo.png Binary files differnew file mode 100644 index 000000000..e1d395b45 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num0_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num1_holo.png Binary files differnew file mode 100644 index 000000000..225436ac2 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num1_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num2_holo.png Binary files differnew file mode 100644 index 000000000..e513fa4a0 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num2_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num3_holo.png Binary files differnew file mode 100644 index 000000000..b91e005fc --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num3_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num4_holo.png Binary files differnew file mode 100644 index 000000000..65f88245b --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num4_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num5_holo.png Binary files differnew file mode 100644 index 000000000..b89ef07eb --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num5_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num6_holo.png Binary files differnew file mode 100644 index 000000000..931275a9e --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num6_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num7_holo.png Binary files differnew file mode 100644 index 000000000..9396c4c8f --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num7_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num8_holo.png Binary files differnew file mode 100644 index 000000000..12e3eef45 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num8_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num9_holo.png Binary files differnew file mode 100644 index 000000000..6911c2b4f --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_num9_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbpound_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbpound_holo.png Binary files differnew file mode 100644 index 000000000..e3a8b4900 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbpound_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbstar_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbstar_holo.png Binary files differnew file mode 100644 index 000000000..e80e9345f --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_numbstar_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_return_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_return_holo.png Binary files differnew file mode 100644 index 000000000..d519ccecf --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_return_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_settings_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_settings_holo.png Binary files differnew file mode 100644 index 000000000..784a45054 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_settings_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_holo.png Binary files differnew file mode 100644 index 000000000..91d6e32f9 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_locked_holo.png Binary files differnew file mode 100644 index 000000000..2bd053656 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_shift_locked_holo.png diff --git a/java/res/drawable-land-mdpi/key_hint_minus_holo.9.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_space_holo.png Binary files differindex e59a31587..25e655d96 100644 --- a/java/res/drawable-land-mdpi/key_hint_minus_holo.9.png +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_space_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_holo.png Binary files differnew file mode 100644 index 000000000..c1116dc17 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_holo.png diff --git a/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_off_holo.png Binary files differnew file mode 100644 index 000000000..081a13096 --- /dev/null +++ b/java/res/drawable-sw768dp-mdpi/sym_keyboard_voice_off_holo.png diff --git a/java/res/drawable-sw768dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-sw768dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differnew file mode 100644 index 000000000..8b5d1b098 --- /dev/null +++ b/java/res/drawable-sw768dp-xhdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-sw768dp-xhdpi/hint_popup_holo.9.png b/java/res/drawable-sw768dp-xhdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..bc37fa844 --- /dev/null +++ b/java/res/drawable-sw768dp-xhdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_candidate_pressed.9.png b/java/res/drawable-xhdpi/btn_candidate_pressed.9.png Binary files differnew file mode 100644 index 000000000..41e126a73 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_candidate_pressed.9.png diff --git a/java/res/drawable-xhdpi/btn_center_default.9.png b/java/res/drawable-xhdpi/btn_center_default.9.png Binary files differnew file mode 100644 index 000000000..e847425f8 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_center_default.9.png diff --git a/java/res/drawable-xhdpi/btn_center_pressed.9.png b/java/res/drawable-xhdpi/btn_center_pressed.9.png Binary files differnew file mode 100644 index 000000000..facfd4323 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_center_pressed.9.png diff --git a/java/res/drawable-xhdpi/btn_center_selected.9.png b/java/res/drawable-xhdpi/btn_center_selected.9.png Binary files differnew file mode 100644 index 000000000..facfd4323 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_center_selected.9.png diff --git a/java/res/drawable-xhdpi/btn_close_candidates_pane.9.png b/java/res/drawable-xhdpi/btn_close_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..9d797ed0d --- /dev/null +++ b/java/res/drawable-xhdpi/btn_close_candidates_pane.9.png diff --git a/java/res/drawable-xhdpi/btn_expand_candidates_pane.9.png b/java/res/drawable-xhdpi/btn_expand_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..88d01c9c8 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_expand_candidates_pane.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal.9.png Binary files differnew file mode 100644 index 000000000..eae1e3a54 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png Binary files differnew file mode 100644 index 000000000..b9667be13 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off.9.png Binary files differnew file mode 100644 index 000000000..13bad8f1a --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png Binary files differnew file mode 100644 index 000000000..1719992e1 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_off_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on.9.png Binary files differnew file mode 100644 index 000000000..853b8bc6e --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png Binary files differnew file mode 100644 index 000000000..0eb9c9f93 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_normal_on_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed.9.png Binary files differnew file mode 100644 index 000000000..1edfd64fe --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png Binary files differnew file mode 100644 index 000000000..5114bf5f1 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off.9.png Binary files differnew file mode 100644 index 000000000..dfdbfadd3 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png Binary files differnew file mode 100644 index 000000000..992395039 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_off_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on.9.png Binary files differnew file mode 100644 index 000000000..0e2733e17 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png Binary files differnew file mode 100644 index 000000000..474951c1d --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_on_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_normal.9.png Binary files differnew file mode 100644 index 000000000..f7e32f764 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_normal.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_pressed.9.png Binary files differnew file mode 100644 index 000000000..00c447604 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_fulltrans_pressed.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_normal.9.png Binary files differnew file mode 100644 index 000000000..ea13a7fdf --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_normal.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png Binary files differnew file mode 100644 index 000000000..4a255f7fb --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_normal.9.png Binary files differnew file mode 100644 index 000000000..2ed1b3447 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_normal.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_selected.9.png Binary files differnew file mode 100644 index 000000000..057c5716e --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_popup_selected.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed.9.png Binary files differnew file mode 100644 index 000000000..5d8e46de0 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png Binary files differnew file mode 100644 index 000000000..5bcd1c9c2 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal.9.png Binary files differnew file mode 100644 index 000000000..f53b40419 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_normal.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_off.9.png Binary files differnew file mode 100644 index 000000000..3c6ae6be8 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_normal_off.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_stone.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_stone.9.png Binary files differnew file mode 100644 index 000000000..eebe7d391 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_normal_off_stone.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on.9.png Binary files differnew file mode 100644 index 000000000..655bfb2c6 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_stone.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_stone.9.png Binary files differnew file mode 100644 index 000000000..336248aae --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_normal_on_stone.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_normal_stone.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_normal_stone.9.png Binary files differnew file mode 100644 index 000000000..bb1c72bb3 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_normal_stone.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.png Binary files differnew file mode 100644 index 000000000..10d788dfb --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_popup_background_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_holo.9.png Binary files differnew file mode 100644 index 000000000..0a9a9e44d --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_popup_selected_holo.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed.9.png Binary files differnew file mode 100644 index 000000000..f73911674 --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_pressed.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off.9.png Binary files differnew file mode 100644 index 000000000..34a948f4e --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_off.9.png diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on.9.png Binary files differnew file mode 100644 index 000000000..520f12d3f --- /dev/null +++ b/java/res/drawable-xhdpi/btn_keyboard_key_pressed_on.9.png diff --git a/java/res/drawable-xhdpi/candidate_feedback_background.9.png b/java/res/drawable-xhdpi/candidate_feedback_background.9.png Binary files differnew file mode 100644 index 000000000..0ec90e5ea --- /dev/null +++ b/java/res/drawable-xhdpi/candidate_feedback_background.9.png diff --git a/java/res/drawable-xhdpi/caution.png b/java/res/drawable-xhdpi/caution.png Binary files differnew file mode 100644 index 000000000..cfc3f7547 --- /dev/null +++ b/java/res/drawable-xhdpi/caution.png diff --git a/java/res/drawable-xhdpi/hint_popup.9.png b/java/res/drawable-xhdpi/hint_popup.9.png Binary files differnew file mode 100644 index 000000000..add474337 --- /dev/null +++ b/java/res/drawable-xhdpi/hint_popup.9.png diff --git a/java/res/drawable-xhdpi/hint_popup_holo.9.png b/java/res/drawable-xhdpi/hint_popup_holo.9.png Binary files differnew file mode 100644 index 000000000..a2b114e14 --- /dev/null +++ b/java/res/drawable-xhdpi/hint_popup_holo.9.png diff --git a/java/res/drawable-xhdpi/ic_dialog_keyboard.png b/java/res/drawable-xhdpi/ic_dialog_keyboard.png Binary files differnew file mode 100644 index 000000000..f114c93b6 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_dialog_keyboard.png diff --git a/java/res/drawable-xhdpi/ic_mic_dialog.png b/java/res/drawable-xhdpi/ic_mic_dialog.png Binary files differnew file mode 100644 index 000000000..5d6399c0a --- /dev/null +++ b/java/res/drawable-xhdpi/ic_mic_dialog.png diff --git a/java/res/drawable-xhdpi/ic_subtype_keyboard.png b/java/res/drawable-xhdpi/ic_subtype_keyboard.png Binary files differnew file mode 100644 index 000000000..a79bb3458 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_subtype_keyboard.png diff --git a/java/res/drawable-xhdpi/ic_subtype_mic.png b/java/res/drawable-xhdpi/ic_subtype_mic.png Binary files differnew file mode 100644 index 000000000..fc8d18cc2 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_subtype_mic.png diff --git a/java/res/drawable-xhdpi/ic_suggest_strip_microphone.png b/java/res/drawable-xhdpi/ic_suggest_strip_microphone.png Binary files differnew file mode 100644 index 000000000..d65d28708 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_suggest_strip_microphone.png diff --git a/java/res/drawable-xhdpi/ic_suggest_strip_microphone_swipe.png b/java/res/drawable-xhdpi/ic_suggest_strip_microphone_swipe.png Binary files differnew file mode 100644 index 000000000..889378a6a --- /dev/null +++ b/java/res/drawable-xhdpi/ic_suggest_strip_microphone_swipe.png diff --git a/java/res/drawable-xhdpi/keyboard_background.9.png b/java/res/drawable-xhdpi/keyboard_background.9.png Binary files differnew file mode 100644 index 000000000..263996322 --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_background.9.png diff --git a/java/res/drawable-xhdpi/keyboard_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_background_holo.9.png Binary files differnew file mode 100644 index 000000000..58d15142b --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_background_holo.9.png diff --git a/java/res/drawable-xhdpi/keyboard_dark_background.9.png b/java/res/drawable-xhdpi/keyboard_dark_background.9.png Binary files differnew file mode 100644 index 000000000..27b7a108c --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_dark_background.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background.9.png Binary files differnew file mode 100644 index 000000000..16c76106c --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_background.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.png Binary files differnew file mode 100644 index 000000000..44675ba00 --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_background_holo.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.png Binary files differnew file mode 100644 index 000000000..cfd1f5242 --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_left_background_holo.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.png Binary files differnew file mode 100644 index 000000000..a01c1733d --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_left_more_background_holo.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background.9.png Binary files differnew file mode 100644 index 000000000..e020e34b1 --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.png Binary files differnew file mode 100644 index 000000000..1d2abc26b --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_more_background_holo.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.png Binary files differnew file mode 100644 index 000000000..5616d1988 --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_right_background_holo.9.png diff --git a/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.png b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.png Binary files differnew file mode 100644 index 000000000..ecf9c2cbc --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_key_feedback_right_more_background_holo.9.png diff --git a/java/res/drawable-xhdpi/keyboard_popup_panel_background.9.png b/java/res/drawable-xhdpi/keyboard_popup_panel_background.9.png Binary files differnew file mode 100644 index 000000000..79f7ab00a --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_popup_panel_background.9.png diff --git a/java/res/drawable-xhdpi/keyboard_suggest_strip.9.png b/java/res/drawable-xhdpi/keyboard_suggest_strip.9.png Binary files differnew file mode 100644 index 000000000..1b568df03 --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_suggest_strip.9.png diff --git a/java/res/drawable-xhdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-xhdpi/keyboard_suggest_strip_divider.png Binary files differnew file mode 100644 index 000000000..cd7c2c7a2 --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_suggest_strip_divider.png diff --git a/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png b/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png Binary files differnew file mode 100644 index 000000000..f4ff7dc1c --- /dev/null +++ b/java/res/drawable-xhdpi/keyboard_suggest_strip_holo.9.png diff --git a/java/res/drawable-xhdpi/mic_base.png b/java/res/drawable-xhdpi/mic_base.png Binary files differnew file mode 100644 index 000000000..5c060bec9 --- /dev/null +++ b/java/res/drawable-xhdpi/mic_base.png diff --git a/java/res/drawable-xhdpi/mic_full.png b/java/res/drawable-xhdpi/mic_full.png Binary files differnew file mode 100644 index 000000000..32ffe124e --- /dev/null +++ b/java/res/drawable-xhdpi/mic_full.png diff --git a/java/res/drawable-xhdpi/mic_slash.png b/java/res/drawable-xhdpi/mic_slash.png Binary files differnew file mode 100644 index 000000000..18b22542b --- /dev/null +++ b/java/res/drawable-xhdpi/mic_slash.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_123_mic.png b/java/res/drawable-xhdpi/sym_bkeyboard_123_mic.png Binary files differnew file mode 100644 index 000000000..0aefaa1c3 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_123_mic.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_delete.png b/java/res/drawable-xhdpi/sym_bkeyboard_delete.png Binary files differnew file mode 100644 index 000000000..b84ee76dc --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_delete.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_mic.png b/java/res/drawable-xhdpi/sym_bkeyboard_mic.png Binary files differnew file mode 100644 index 000000000..8c3f11dd4 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_mic.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num0.png b/java/res/drawable-xhdpi/sym_bkeyboard_num0.png Binary files differnew file mode 100644 index 000000000..da8d50a8c --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num0.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num1.png b/java/res/drawable-xhdpi/sym_bkeyboard_num1.png Binary files differnew file mode 100644 index 000000000..62443eb1c --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num1.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num2.png b/java/res/drawable-xhdpi/sym_bkeyboard_num2.png Binary files differnew file mode 100644 index 000000000..4b3ef7ecc --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num2.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num3.png b/java/res/drawable-xhdpi/sym_bkeyboard_num3.png Binary files differnew file mode 100644 index 000000000..48315e499 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num3.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num4.png b/java/res/drawable-xhdpi/sym_bkeyboard_num4.png Binary files differnew file mode 100644 index 000000000..17958d7cc --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num4.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num5.png b/java/res/drawable-xhdpi/sym_bkeyboard_num5.png Binary files differnew file mode 100644 index 000000000..43716c424 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num5.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num6.png b/java/res/drawable-xhdpi/sym_bkeyboard_num6.png Binary files differnew file mode 100644 index 000000000..09f2b428d --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num6.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num7.png b/java/res/drawable-xhdpi/sym_bkeyboard_num7.png Binary files differnew file mode 100644 index 000000000..72438ec0f --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num7.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num8.png b/java/res/drawable-xhdpi/sym_bkeyboard_num8.png Binary files differnew file mode 100644 index 000000000..403b53f71 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num8.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num9.png b/java/res/drawable-xhdpi/sym_bkeyboard_num9.png Binary files differnew file mode 100644 index 000000000..644c2a4df --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_num9.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_return.png b/java/res/drawable-xhdpi/sym_bkeyboard_return.png Binary files differnew file mode 100644 index 000000000..1632ecd8e --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_return.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_search.png b/java/res/drawable-xhdpi/sym_bkeyboard_search.png Binary files differnew file mode 100644 index 000000000..69d8b22d1 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_search.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_settings.png b/java/res/drawable-xhdpi/sym_bkeyboard_settings.png Binary files differnew file mode 100644 index 000000000..050154a3a --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_settings.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_shift.png b/java/res/drawable-xhdpi/sym_bkeyboard_shift.png Binary files differnew file mode 100644 index 000000000..d15d11a50 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_shift.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_shift_locked.png b/java/res/drawable-xhdpi/sym_bkeyboard_shift_locked.png Binary files differnew file mode 100644 index 000000000..83b287fea --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_shift_locked.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_space.png b/java/res/drawable-xhdpi/sym_bkeyboard_space.png Binary files differnew file mode 100644 index 000000000..5ca62c7b7 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_space.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_tab.png b/java/res/drawable-xhdpi/sym_bkeyboard_tab.png Binary files differnew file mode 100644 index 000000000..6ca199755 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_tab.png diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_voice_off.png b/java/res/drawable-xhdpi/sym_bkeyboard_voice_off.png Binary files differnew file mode 100644 index 000000000..fc6a4eb59 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_bkeyboard_voice_off.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_123_mic.png b/java/res/drawable-xhdpi/sym_keyboard_123_mic.png Binary files differnew file mode 100644 index 000000000..bcb097967 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_123_mic.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_delete.png b/java/res/drawable-xhdpi/sym_keyboard_delete.png Binary files differnew file mode 100644 index 000000000..3c0b8b186 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_delete.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_delete_holo.png b/java/res/drawable-xhdpi/sym_keyboard_delete_holo.png Binary files differnew file mode 100644 index 000000000..5150073b8 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_delete_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_123_mic.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_123_mic.png Binary files differnew file mode 100644 index 000000000..5238c16d2 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_123_mic.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_delete.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_delete.png Binary files differnew file mode 100644 index 000000000..f0c29e7c8 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_delete.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_left.png Binary files differnew file mode 100644 index 000000000..a90b8dacf --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_left.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_right.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_right.png Binary files differnew file mode 100644 index 000000000..1123bf36e --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_language_arrows_right.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_mic.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_mic.png Binary files differnew file mode 100644 index 000000000..5ac27ebad --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_mic.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_numalt.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_numalt.png Binary files differnew file mode 100644 index 000000000..b68e6066a --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_numalt.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_return.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_return.png Binary files differnew file mode 100644 index 000000000..c777d00d6 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_return.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_search.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_search.png Binary files differnew file mode 100644 index 000000000..32e0789dd --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_search.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_settings.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_settings.png Binary files differnew file mode 100644 index 000000000..021cafacb --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_settings.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_shift.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_shift.png Binary files differnew file mode 100644 index 000000000..d8c0325c4 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_shift.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_space.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_space.png Binary files differnew file mode 100644 index 000000000..cee10568d --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_space.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_feedback_tab.png b/java/res/drawable-xhdpi/sym_keyboard_feedback_tab.png Binary files differnew file mode 100644 index 000000000..0650e01cb --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_feedback_tab.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-xhdpi/sym_keyboard_language_arrows_left.png Binary files differnew file mode 100644 index 000000000..226f2e617 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_language_arrows_left.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-xhdpi/sym_keyboard_language_arrows_right.png Binary files differnew file mode 100644 index 000000000..1e02e7e46 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_language_arrows_right.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_mic.png b/java/res/drawable-xhdpi/sym_keyboard_mic.png Binary files differnew file mode 100644 index 000000000..1323b6d1e --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_mic.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num0.png b/java/res/drawable-xhdpi/sym_keyboard_num0.png Binary files differnew file mode 100644 index 000000000..06bd3bfc7 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num0.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png Binary files differnew file mode 100644 index 000000000..33e80bdc3 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num1.png b/java/res/drawable-xhdpi/sym_keyboard_num1.png Binary files differnew file mode 100644 index 000000000..dfa0cfe78 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num1.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png Binary files differnew file mode 100644 index 000000000..dce3ee801 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num2.png b/java/res/drawable-xhdpi/sym_keyboard_num2.png Binary files differnew file mode 100644 index 000000000..4bd2ead08 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num2.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png Binary files differnew file mode 100644 index 000000000..e776efb33 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num3.png b/java/res/drawable-xhdpi/sym_keyboard_num3.png Binary files differnew file mode 100644 index 000000000..39db11228 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num3.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png Binary files differnew file mode 100644 index 000000000..66e7b3735 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num4.png b/java/res/drawable-xhdpi/sym_keyboard_num4.png Binary files differnew file mode 100644 index 000000000..60356947e --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num4.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png Binary files differnew file mode 100644 index 000000000..bf70e2890 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num5.png b/java/res/drawable-xhdpi/sym_keyboard_num5.png Binary files differnew file mode 100644 index 000000000..3238b3f40 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num5.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png Binary files differnew file mode 100644 index 000000000..98d0b5cc9 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num6.png b/java/res/drawable-xhdpi/sym_keyboard_num6.png Binary files differnew file mode 100644 index 000000000..c8da5a9d0 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num6.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png Binary files differnew file mode 100644 index 000000000..67340ef6a --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num7.png b/java/res/drawable-xhdpi/sym_keyboard_num7.png Binary files differnew file mode 100644 index 000000000..553cf5f0d --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num7.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png Binary files differnew file mode 100644 index 000000000..843224954 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num8.png b/java/res/drawable-xhdpi/sym_keyboard_num8.png Binary files differnew file mode 100644 index 000000000..eaaf53390 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num8.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png Binary files differnew file mode 100644 index 000000000..6d520bca9 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num9.png b/java/res/drawable-xhdpi/sym_keyboard_num9.png Binary files differnew file mode 100644 index 000000000..b510d3774 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num9.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png Binary files differnew file mode 100644 index 000000000..158c87957 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_return.png b/java/res/drawable-xhdpi/sym_keyboard_return.png Binary files differnew file mode 100644 index 000000000..ad061227e --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_return.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_return_holo.png b/java/res/drawable-xhdpi/sym_keyboard_return_holo.png Binary files differnew file mode 100644 index 000000000..6e2e1c0b9 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_return_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_search.png b/java/res/drawable-xhdpi/sym_keyboard_search.png Binary files differnew file mode 100644 index 000000000..aa785a221 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_search.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_settings.png b/java/res/drawable-xhdpi/sym_keyboard_settings.png Binary files differnew file mode 100644 index 000000000..50704255d --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_settings.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_settings_holo.png b/java/res/drawable-xhdpi/sym_keyboard_settings_holo.png Binary files differnew file mode 100644 index 000000000..018e45d9e --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_settings_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift.png b/java/res/drawable-xhdpi/sym_keyboard_shift.png Binary files differnew file mode 100644 index 000000000..290170619 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_shift.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift_holo.png b/java/res/drawable-xhdpi/sym_keyboard_shift_holo.png Binary files differnew file mode 100644 index 000000000..41d4ca176 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_shift_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift_locked.png b/java/res/drawable-xhdpi/sym_keyboard_shift_locked.png Binary files differnew file mode 100644 index 000000000..a5deb60e9 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_shift_locked.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.png Binary files differnew file mode 100644 index 000000000..b811b7464 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_shift_locked_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_space.png b/java/res/drawable-xhdpi/sym_keyboard_space.png Binary files differnew file mode 100644 index 000000000..66fc3e9d3 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_space.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_space_holo.png b/java/res/drawable-xhdpi/sym_keyboard_space_holo.png Binary files differnew file mode 100644 index 000000000..da8926496 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_space_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_space_led.9.png b/java/res/drawable-xhdpi/sym_keyboard_space_led.9.png Binary files differnew file mode 100644 index 000000000..6525fefab --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_space_led.9.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_tab.png b/java/res/drawable-xhdpi/sym_keyboard_tab.png Binary files differnew file mode 100644 index 000000000..0ef2ab5b9 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_tab.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_tab_holo.png b/java/res/drawable-xhdpi/sym_keyboard_tab_holo.png Binary files differnew file mode 100644 index 000000000..dd207ca3f --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_tab_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_voice_holo.png b/java/res/drawable-xhdpi/sym_keyboard_voice_holo.png Binary files differnew file mode 100644 index 000000000..d73e49910 --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_voice_holo.png diff --git a/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.png b/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.png Binary files differnew file mode 100644 index 000000000..8d34a5ada --- /dev/null +++ b/java/res/drawable-xhdpi/sym_keyboard_voice_off_holo.png diff --git a/java/res/drawable-xhdpi/vs_dialog_blue.9.png b/java/res/drawable-xhdpi/vs_dialog_blue.9.png Binary files differnew file mode 100644 index 000000000..3284d78ef --- /dev/null +++ b/java/res/drawable-xhdpi/vs_dialog_blue.9.png diff --git a/java/res/drawable-xhdpi/vs_dialog_red.9.png b/java/res/drawable-xhdpi/vs_dialog_red.9.png Binary files differnew file mode 100644 index 000000000..5af2465b5 --- /dev/null +++ b/java/res/drawable-xhdpi/vs_dialog_red.9.png diff --git a/java/res/drawable-xhdpi/vs_dialog_yellow.9.png b/java/res/drawable-xhdpi/vs_dialog_yellow.9.png Binary files differnew file mode 100644 index 000000000..4f50439de --- /dev/null +++ b/java/res/drawable-xhdpi/vs_dialog_yellow.9.png diff --git a/java/res/drawable-xhdpi/vs_popup_mic_edge.png b/java/res/drawable-xhdpi/vs_popup_mic_edge.png Binary files differnew file mode 100644 index 000000000..1063cb464 --- /dev/null +++ b/java/res/drawable-xhdpi/vs_popup_mic_edge.png diff --git a/java/res/drawable-xlarge/caution.png b/java/res/drawable-xlarge/caution.png Binary files differdeleted file mode 100755 index eaef53425..000000000 --- a/java/res/drawable-xlarge/caution.png +++ /dev/null diff --git a/java/res/drawable-xlarge/mic_slash.png b/java/res/drawable-xlarge/mic_slash.png Binary files differdeleted file mode 100644 index 1dd05c5b4..000000000 --- a/java/res/drawable-xlarge/mic_slash.png +++ /dev/null diff --git a/java/res/drawable/btn_candidate_holo.xml b/java/res/drawable/btn_candidate_ics.xml index 66cd2460b..e4257e327 100644 --- a/java/res/drawable/btn_candidate_holo.xml +++ b/java/res/drawable/btn_candidate_ics.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. diff --git a/java/res/drawable/btn_center_default.9.png b/java/res/drawable/btn_center_default.9.png Binary files differdeleted file mode 100755 index d5ec36ba4..000000000 --- a/java/res/drawable/btn_center_default.9.png +++ /dev/null diff --git a/java/res/drawable/btn_center_pressed.9.png b/java/res/drawable/btn_center_pressed.9.png Binary files differdeleted file mode 100755 index 593a679d0..000000000 --- a/java/res/drawable/btn_center_pressed.9.png +++ /dev/null diff --git a/java/res/drawable/btn_center_selected.9.png b/java/res/drawable/btn_center_selected.9.png Binary files differdeleted file mode 100644 index f1914a886..000000000 --- a/java/res/drawable/btn_center_selected.9.png +++ /dev/null diff --git a/java/res/drawable/btn_keyboard_key2.xml b/java/res/drawable/btn_keyboard_key2.xml deleted file mode 100644 index bd745b76e..000000000 --- a/java/res/drawable/btn_keyboard_key2.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - - <!-- Toggle keys. Use checkable/checked state. --> - - <item android:state_checkable="true" android:state_checked="true" - android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_pressed_on" /> - <item android:state_checkable="true" android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_fulltrans_pressed" /> - <item android:state_checkable="true" android:state_checked="true" - android:drawable="@drawable/btn_keyboard_key_normal_on" /> - <item android:state_checkable="true" - android:drawable="@drawable/btn_keyboard_key_fulltrans_normal" /> - - <!-- Normal keys --> - - <item android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_fulltrans_pressed" /> - <item android:drawable="@drawable/btn_keyboard_key_fulltrans_normal" /> -</selector> diff --git a/java/res/drawable/btn_keyboard_key_honeycomb.xml b/java/res/drawable/btn_keyboard_key_ics.xml index 3dab8430f..7335cc299 100644 --- a/java/res/drawable/btn_keyboard_key_honeycomb.xml +++ b/java/res/drawable/btn_keyboard_key_ics.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project +<!-- Copyright (C) 2011 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,7 +14,6 @@ limitations under the License. --> -<!-- TODO: Remove "gingerbread" from file name and rename this to "btn_keyboard_key.xml". --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Functional keys. --> diff --git a/java/res/drawable/btn_keyboard_key_gingerbread_popup.xml b/java/res/drawable/btn_keyboard_key_popup.xml index 9b6d23beb..860cfd5d5 100644 --- a/java/res/drawable/btn_keyboard_key_gingerbread_popup.xml +++ b/java/res/drawable/btn_keyboard_key_popup.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project +<!-- Copyright (C) 2011 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/java/res/drawable/btn_keyboard_key_honeycomb_popup.xml b/java/res/drawable/btn_keyboard_key_popup_ics.xml index 6c2713650..8f797ac3c 100644 --- a/java/res/drawable/btn_keyboard_key_honeycomb_popup.xml +++ b/java/res/drawable/btn_keyboard_key_popup_ics.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project +<!-- Copyright (C) 2011 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -17,4 +17,5 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_keyboard_key_popup_selected_holo" /> + <item android:drawable="@drawable/btn_keyboard_key_popup_background_holo" /> </selector> diff --git a/java/res/drawable/btn_keyboard_key_stone.xml b/java/res/drawable/btn_keyboard_key_stone.xml index a6040a04e..27932e8da 100644 --- a/java/res/drawable/btn_keyboard_key_stone.xml +++ b/java/res/drawable/btn_keyboard_key_stone.xml @@ -16,6 +16,13 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- Functional keys. --> + + <item android:state_single="true" android:state_pressed="true" + android:drawable="@drawable/btn_keyboard_key_fulltrans_pressed" /> + <item android:state_single="true" + android:drawable="@drawable/btn_keyboard_key_normal_stone" /> + <!-- Toggle keys. Use checkable/checked state. --> <item android:state_checkable="true" android:state_checked="true" diff --git a/java/res/drawable/caution.png b/java/res/drawable/caution.png Binary files differdeleted file mode 100755 index eaef53425..000000000 --- a/java/res/drawable/caution.png +++ /dev/null diff --git a/java/res/drawable/keyboard_key_feedback_honeycomb.xml b/java/res/drawable/keyboard_key_feedback_ics.xml index a3ea140cd..04c86794f 100644 --- a/java/res/drawable/keyboard_key_feedback_honeycomb.xml +++ b/java/res/drawable/keyboard_key_feedback_ics.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project +<!-- Copyright (C) 2011 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/java/res/drawable/mic_base.png b/java/res/drawable/mic_base.png Binary files differdeleted file mode 100644 index 53e29ff4b..000000000 --- a/java/res/drawable/mic_base.png +++ /dev/null diff --git a/java/res/drawable/mic_full.png b/java/res/drawable/mic_full.png Binary files differdeleted file mode 100644 index e3e3dfac3..000000000 --- a/java/res/drawable/mic_full.png +++ /dev/null diff --git a/java/res/drawable/mic_slash.png b/java/res/drawable/mic_slash.png Binary files differdeleted file mode 100644 index 1dd05c5b4..000000000 --- a/java/res/drawable/mic_slash.png +++ /dev/null diff --git a/java/res/drawable/vs_dialog_blue.9.png b/java/res/drawable/vs_dialog_blue.9.png Binary files differdeleted file mode 100644 index cf27e8f43..000000000 --- a/java/res/drawable/vs_dialog_blue.9.png +++ /dev/null diff --git a/java/res/drawable/vs_dialog_red.9.png b/java/res/drawable/vs_dialog_red.9.png Binary files differdeleted file mode 100644 index 6c08d5a30..000000000 --- a/java/res/drawable/vs_dialog_red.9.png +++ /dev/null diff --git a/java/res/drawable/vs_dialog_yellow.9.png b/java/res/drawable/vs_dialog_yellow.9.png Binary files differdeleted file mode 100644 index 2fb06c263..000000000 --- a/java/res/drawable/vs_dialog_yellow.9.png +++ /dev/null diff --git a/java/res/layout-xlarge/recognition_status.xml b/java/res/layout-sw768dp/recognition_status.xml index 40bc09823..40bc09823 100644 --- a/java/res/layout-xlarge/recognition_status.xml +++ b/java/res/layout-sw768dp/recognition_status.xml diff --git a/java/res/layout-xlarge/candidate.xml b/java/res/layout-xlarge/candidate.xml deleted file mode 100644 index 582e64261..000000000 --- a/java/res/layout-xlarge/candidate.xml +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:orientation="horizontal" -> - <ImageView - android:id="@+id/candidate_divider" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:src="@drawable/keyboard_suggest_strip_divider" - android:paddingRight="@dimen/candidate_padding" - android:paddingLeft="@dimen/candidate_padding" - android:visibility="invisible" - android:focusable="false" - android:clickable="false" - android:gravity="center_vertical|center_horizontal" /> - <Button - android:id="@+id/candidate_word" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:minWidth="@dimen/candidate_min_width" - android:textSize="@dimen/candidate_text_size" - android:textColor="@color/candidate_normal" - android:background="@drawable/btn_candidate_holo" - android:focusable="true" - android:clickable="true" - android:gravity="center_vertical|center_horizontal" /> - <TextView - android:id="@+id/candidate_debug_info" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:visibility="gone" - android:textSize="10dip" - android:textColor="#ff808080" - android:focusable="false" - android:clickable="false" - android:gravity="bottom" /> -</LinearLayout> diff --git a/java/res/layout-xlarge/candidates.xml b/java/res/layout-xlarge/candidates.xml deleted file mode 100644 index 096a0adf1..000000000 --- a/java/res/layout-xlarge/candidates.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" - android:gravity="bottom" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:minHeight="@dimen/candidate_strip_minimum_height" -> - <!-- On tablets, the candidate strip is centered with horizontal paddings on both sides because - width of the landscape mode is too long for the candidate strip. This LinearLayout is - required to hold the paddings. --> - <LinearLayout - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/keyboard_suggest_strip_holo" - android:paddingRight="@dimen/candidate_strip_padding" - android:paddingLeft="@dimen/candidate_strip_padding" - > - <HorizontalScrollView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:fadingEdge="horizontal" - android:fadingEdgeLength="@dimen/candidate_strip_fading_edge_length" - android:scrollbars="none" - > - <com.android.inputmethod.latin.CandidateView - android:id="@+id/candidates" - android:layout_width="match_parent" - android:layout_height="@dimen/candidate_strip_height" - android:gravity="center_vertical" /> - </HorizontalScrollView> - </LinearLayout> -</LinearLayout> diff --git a/java/res/layout/bubble_text.xml b/java/res/layout/bubble_text.xml deleted file mode 100644 index c3957b65e..000000000 --- a/java/res/layout/bubble_text.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2009, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of 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. -*/ ---> - -<TextView xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textSize="14sp" - android:textColor="?android:attr/textColorPrimary" - android:minWidth="32dip" - android:gravity="center" - android:shadowRadius="2.75" - android:shadowColor="#BB000000" - /> diff --git a/java/res/layout/candidate.xml b/java/res/layout/candidate.xml deleted file mode 100644 index 5472a1dd1..000000000 --- a/java/res/layout/candidate.xml +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:orientation="horizontal" -> - <ImageView - android:id="@+id/candidate_divider" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:src="@drawable/keyboard_suggest_strip_divider" - android:paddingRight="@dimen/candidate_padding" - android:paddingLeft="@dimen/candidate_padding" - android:visibility="invisible" - android:focusable="false" - android:clickable="false" - android:gravity="center_vertical|center_horizontal" /> - <Button - android:id="@+id/candidate_word" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:minWidth="@dimen/candidate_min_width" - android:textSize="@dimen/candidate_text_size" - android:textColor="@color/candidate_normal" - android:background="@drawable/btn_candidate" - android:focusable="true" - android:clickable="true" - android:gravity="center_vertical|center_horizontal" /> - <TextView - android:id="@+id/candidate_debug_info" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:visibility="gone" - android:textSize="10dip" - android:textColor="#ff808080" - android:focusable="false" - android:clickable="false" - android:gravity="bottom" /> -</LinearLayout> diff --git a/java/res/layout/key_preview_honeycomb.xml b/java/res/layout/candidate_divider.xml index 2fbfbb517..1d75e52b3 100644 --- a/java/res/layout/key_preview_honeycomb.xml +++ b/java/res/layout/candidate_divider.xml @@ -18,12 +18,13 @@ */ --> -<TextView xmlns:android="http://schemas.android.com/apk/res/android" +<ImageView + xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" - android:layout_height="80sp" - android:textSize="40sp" - android:textColor="@color/latinkeyboard_key_color_white" - android:minWidth="32dip" - android:gravity="center" - android:background="@drawable/keyboard_key_feedback_honeycomb" - /> + android:layout_height="match_parent" + android:src="@drawable/keyboard_suggest_strip_divider" + android:paddingRight="@dimen/candidate_padding" + android:paddingLeft="@dimen/candidate_padding" + android:focusable="false" + android:clickable="false" + android:gravity="center_vertical|center_horizontal" /> diff --git a/java/res/layout/candidate_info.xml b/java/res/layout/candidate_info.xml new file mode 100644 index 000000000..f3557289c --- /dev/null +++ b/java/res/layout/candidate_info.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** 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. +*/ +--> + +<TextView + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="6sp" + android:textColor="@android:color/white" + android:visibility="gone" + style="?attr/suggestionBackgroundStyle" /> diff --git a/java/res/layout/candidate_preview.xml b/java/res/layout/candidate_preview.xml index fe2002d46..32705c996 100644 --- a/java/res/layout/candidate_preview.xml +++ b/java/res/layout/candidate_preview.xml @@ -19,11 +19,10 @@ --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" + android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textColor="?android:attr/textColorPrimaryInverse" android:minWidth="32dip" android:gravity="center" - android:background="@drawable/candidate_feedback_background" - /> + style="?attr/suggestionPreviewBackgroundStyle" /> diff --git a/java/res/layout-xlarge/candidate_preview.xml b/java/res/layout/candidate_word.xml index 61d5f8e7b..94ae2b44e 100644 --- a/java/res/layout-xlarge/candidate_preview.xml +++ b/java/res/layout/candidate_word.xml @@ -18,12 +18,10 @@ */ --> -<TextView +<Button xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="18sp" - android:textColor="?android:attr/textColorPrimaryInverse" - android:minWidth="32dip" - android:gravity="center" - android:background="@drawable/keyboard_popup_panel_background_holo" /> + android:minWidth="@dimen/candidate_min_width" + android:textSize="@dimen/candidate_text_size" + style="?attr/suggestionBackgroundStyle" /> diff --git a/java/res/layout/candidates.xml b/java/res/layout/candidates.xml deleted file mode 100644 index 3d91c1d20..000000000 --- a/java/res/layout/candidates.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" - android:gravity="bottom" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:minHeight="@dimen/candidate_strip_minimum_height" - android:paddingRight="@dimen/candidate_strip_padding" - android:paddingLeft="@dimen/candidate_strip_padding" -> - <HorizontalScrollView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/keyboard_suggest_strip" - android:fadingEdge="horizontal" - android:fadingEdgeLength="@dimen/candidate_strip_fading_edge_length" - android:scrollbars="none" - > - <com.android.inputmethod.latin.CandidateView - android:id="@+id/candidates" - android:layout_width="match_parent" - android:layout_height="@dimen/candidate_strip_height" - android:gravity="center_vertical" /> - </HorizontalScrollView> -</LinearLayout> diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/candidates_strip.xml new file mode 100644 index 000000000..c23c29cbe --- /dev/null +++ b/java/res/layout/candidates_strip.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <RelativeLayout + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:gravity="center" + > + <include + android:id="@+id/word_left" + layout="@layout/candidate_word" /> + <include + android:id="@+id/info_left" + layout="@layout/candidate_info" /> + </RelativeLayout> + <include + layout="@layout/candidate_divider" /> + <RelativeLayout + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:gravity="center" + > + <include + android:id="@+id/word_center" + layout="@layout/candidate_word" /> + <include + android:id="@+id/info_center" + layout="@layout/candidate_info" /> + </RelativeLayout> + <include + layout="@layout/candidate_divider" /> + <LinearLayout + android:orientation="horizontal" + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:gravity="center_vertical" + > + <RelativeLayout + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:gravity="center" + > + <include + android:id="@+id/word_right" + layout="@layout/candidate_word" /> + <include + android:id="@+id/info_right" + layout="@layout/candidate_info" /> + </RelativeLayout> + <!-- Image drawables are set in CandidateView constructor --> + <ImageButton + android:id="@+id/expand_candidates_pane" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:visibility="gone" + style="?attr/suggestionsStripBackgroundStyle" /> + <ImageButton + android:id="@+id/close_candidates_pane" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:visibility="gone" + style="?attr/suggestionsStripBackgroundStyle" /> + </LinearLayout> +</merge> diff --git a/java/res/layout/input_basic.xml b/java/res/layout/input_basic.xml deleted file mode 100644 index 8666daece..000000000 --- a/java/res/layout/input_basic.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2008, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<com.android.inputmethod.keyboard.LatinKeyboardView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/latin_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="0dip" - android:background="@drawable/keyboard_background" - - latin:keyBackground="@drawable/btn_keyboard_key" - /> diff --git a/java/res/layout/input_gingerbread.xml b/java/res/layout/input_gingerbread.xml deleted file mode 100644 index ccca501af..000000000 --- a/java/res/layout/input_gingerbread.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<com.android.inputmethod.keyboard.LatinKeyboardView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/latin_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="0dip" - android:background="@drawable/keyboard_dark_background" - - latin:keyBackground="@drawable/btn_keyboard_key_gingerbread" - latin:keyLetterStyle="bold" - /> diff --git a/java/res/layout/input_honeycomb.xml b/java/res/layout/input_honeycomb.xml deleted file mode 100644 index 8dadafd81..000000000 --- a/java/res/layout/input_honeycomb.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<com.android.inputmethod.keyboard.LatinKeyboardView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/latin_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="0dip" - android:background="@drawable/keyboard_background_holo" - - latin:keyBackground="@drawable/btn_keyboard_key_honeycomb" - latin:keyPreviewLayout="@layout/key_preview_honeycomb" - latin:keyPreviewHeight="@dimen/key_preview_height_holo" - latin:keyPreviewOffset="@dimen/key_preview_offset_holo" - latin:popupLayout="@layout/keyboard_popup_honeycomb" - latin:keyTextColorDisabled="#FF63666D" - latin:keyLetterStyle="bold" - latin:shadowColor="#00000000" - latin:shadowRadius="0.0" - /> diff --git a/java/res/layout/input_stone_bold.xml b/java/res/layout/input_stone_bold.xml deleted file mode 100644 index a0b40684f..000000000 --- a/java/res/layout/input_stone_bold.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<com.android.inputmethod.keyboard.LatinKeyboardView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/latin_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="0dip" - android:background="@drawable/keyboard_background" - - latin:keyBackground="@drawable/btn_keyboard_key_stone" - latin:keyTextColor="@color/latinkeyboard_key_color_black" - latin:keyTextColorDisabled="#FF808080" - latin:shadowColor="@color/latinkeyboard_key_color_white" - latin:keyLetterStyle="bold" - latin:colorScheme="black" - latin:popupLayout="@layout/keyboard_popup_stone" - /> diff --git a/java/res/layout/input_stone_normal.xml b/java/res/layout/input_stone_normal.xml deleted file mode 100644 index 41cbc16fa..000000000 --- a/java/res/layout/input_stone_normal.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<com.android.inputmethod.keyboard.LatinKeyboardView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/latin_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="0dip" - android:background="@drawable/keyboard_background" - - latin:keyBackground="@drawable/btn_keyboard_key_stone" - latin:keyTextColor="@color/latinkeyboard_key_color_black" - latin:keyTextColorDisabled="#FF808080" - latin:shadowColor="@color/latinkeyboard_key_color_white" - latin:colorScheme="black" - latin:popupLayout="@layout/keyboard_popup_stone" - /> diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml new file mode 100644 index 000000000..821082f91 --- /dev/null +++ b/java/res/layout/input_view.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content" +> + <!-- On tablets, the candidate strip is centered with horizontal paddings on both sides because + width of the landscape mode is too long for the candidate strip. This LinearLayout is + required to hold the paddings. --> + <LinearLayout + android:id="@+id/candidates_container" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="@dimen/candidate_strip_minimum_height" + android:gravity="bottom" + > + <View + android:layout_width="@dimen/candidate_strip_padding" + android:layout_height="@dimen/candidate_strip_height" + style="?attr/suggestionsStripBackgroundStyle" /> + <com.android.inputmethod.latin.CandidateView + android:id="@+id/candidates" + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="@dimen/candidate_strip_height" + android:gravity="center_vertical" + style="?attr/candidateViewStyle" /> + <View + android:layout_width="@dimen/candidate_strip_padding" + android:layout_height="@dimen/candidate_strip_height" + style="?attr/suggestionsStripBackgroundStyle" /> + </LinearLayout> + + <LinearLayout + android:id="@+id/candidates_pane_container" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + style="?attr/suggestionsStripBackgroundStyle" + > + <View + android:layout_width="@dimen/candidate_strip_padding" + android:layout_height="@dimen/candidate_strip_height" /> + <FrameLayout + android:id="@+id/candidates_pane" + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" /> + <View + android:layout_width="@dimen/candidate_strip_padding" + android:layout_height="@dimen/candidate_strip_height" /> + </LinearLayout> + + <com.android.inputmethod.keyboard.LatinKeyboardView + android:id="@+id/keyboard_view" + android:layout_alignParentBottom="true" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> +</LinearLayout> diff --git a/java/res/layout/key_preview.xml b/java/res/layout/key_preview.xml index de03506ad..5332d15c6 100644 --- a/java/res/layout/key_preview.xml +++ b/java/res/layout/key_preview.xml @@ -22,8 +22,7 @@ android:layout_width="wrap_content" android:layout_height="80sp" android:textSize="40sp" - android:textColor="@color/latinkeyboard_key_color_white" android:minWidth="32dip" android:gravity="center" - android:background="@drawable/keyboard_key_feedback" + style="?attr/keyPreviewStyle" /> diff --git a/java/res/layout/keyboard_popup.xml b/java/res/layout/keyboard_popup.xml index 0317d8deb..e2508da78 100644 --- a/java/res/layout/keyboard_popup.xml +++ b/java/res/layout/keyboard_popup.xml @@ -22,9 +22,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" - android:background="@drawable/keyboard_popup_panel_background" - android:paddingLeft="@dimen/mini_keyboard_horizontal_padding" - android:paddingRight="@dimen/mini_keyboard_horizontal_padding" + style="?attr/popupMiniKeyboardPanelStyle" > <com.android.inputmethod.keyboard.PopupMiniKeyboardView xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" @@ -32,9 +30,5 @@ android:layout_alignParentBottom="true" android:layout_width="wrap_content" android:layout_height="wrap_content" - - latin:keyBackground="@drawable/btn_keyboard_key_gingerbread_popup" - latin:keyHysteresisDistance="0dip" - latin:verticalCorrection="@dimen/mini_keyboard_vertical_correction" /> </LinearLayout> diff --git a/java/res/layout/keyboard_popup_honeycomb.xml b/java/res/layout/keyboard_popup_honeycomb.xml deleted file mode 100644 index 2ddcbdc0c..000000000 --- a/java/res/layout/keyboard_popup_honeycomb.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:background="@drawable/keyboard_popup_panel_background_holo" - android:paddingLeft="@dimen/mini_keyboard_horizontal_padding_holo" - android:paddingRight="@dimen/mini_keyboard_horizontal_padding_holo" - > - <com.android.inputmethod.keyboard.PopupMiniKeyboardView - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/mini_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - - latin:keyBackground="@drawable/btn_keyboard_key_honeycomb_popup" - latin:keyHysteresisDistance="0dip" - latin:verticalCorrection="@dimen/mini_keyboard_vertical_correction" - /> -</LinearLayout> diff --git a/java/res/layout/keyboard_popup_stone.xml b/java/res/layout/keyboard_popup_stone.xml deleted file mode 100644 index 94176b244..000000000 --- a/java/res/layout/keyboard_popup_stone.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:background="@drawable/keyboard_popup_panel_background" - > - <com.android.inputmethod.keyboard.PopupMiniKeyboardView - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/mini_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/keyboard_background" - - latin:keyBackground="@drawable/btn_keyboard_key_stone" - latin:keyTextColor="@color/latinkeyboard_key_color_black" - latin:shadowColor="@color/latinkeyboard_key_color_white" - /> -</LinearLayout> diff --git a/java/res/raw/type3.ogg b/java/res/raw/type3.ogg Binary files differdeleted file mode 100644 index 20e670807..000000000 --- a/java/res/raw/type3.ogg +++ /dev/null diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml new file mode 100644 index 000000000..db6217315 --- /dev/null +++ b/java/res/values-af/strings.xml @@ -0,0 +1,177 @@ +<?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. +*/ + --> + +<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-sleutelbord"</string> + <string name="english_ime_settings" msgid="6661589557206947774">"Android-sleutelbordinstellings"</string> + <string name="english_ime_input_options" msgid="3909945612939668554">"Invoeropsies"</string> + <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibreer met sleuteldruk"</string> + <string name="sound_on_keypress" msgid="6093592297198243644">"Klank met sleuteldruk"</string> + <string name="popup_on_keypress" msgid="123894815723512944">"Opspring by druk van sleutel"</string> + <!-- no translation found for general_category (1859088467017573195) --> + <skip /> + <!-- no translation found for correction_category (2236750915056607613) --> + <skip /> + <!-- no translation found for ngram_category (5337109164339320257) --> + <skip /> + <!-- no translation found for misc_category (6894192814868233453) --> + <skip /> + <!-- no translation found for advanced_settings (362895144495591463) --> + <skip /> + <!-- no translation found for advanced_settings_summary (5193513161106637254) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) --> + <skip /> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> + <string name="auto_cap" msgid="1719746674854628252">"Outohoofletters"</string> + <string name="quick_fixes" msgid="5353213327680897927">"Vinnige oplossings"</string> + <string name="quick_fixes_summary" msgid="3405028402510332373">"Korrigeer algemene tikfoute"</string> + <!-- no translation found for prefs_show_suggestions (8026799663445531637) --> + <skip /> + <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Wys voorgestelde woorde terwyl jy tik"</string> + <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Wys altyd"</string> + <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Wys in portretmodus"</string> + <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Versteek altyd"</string> + <!-- no translation found for prefs_use_spacebar_language_switch (8828538114550634449) --> + <skip /> + <string name="prefs_settings_key" msgid="4623341240804046498">"Wys instellingsleutel"</string> + <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Outomaties"</string> + <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Wys altyd"</string> + <string name="settings_key_mode_always_hide_name" msgid="7833948046716923994">"Versteek altyd"</string> + <string name="auto_correction" msgid="4979925752001319458">"Outokorrigering"</string> + <!-- outdated translation 6881047311475758267 --> <string name="auto_correction_summary" msgid="5625751551134658006">"Korrigeer outomaties die vorige woord"</string> + <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Af"</string> + <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Nederig"</string> + <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressief"</string> + <!-- outdated translation 1323347224043514969 --> <string name="bigram_suggestion" msgid="2636414079905220518">"Bigram-voorstelle"</string> + <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Gebruik vorige woord om voorstel te verbeter"</string> + <!-- no translation found for bigram_prediction (8914273444762259739) --> + <skip /> + <!-- no translation found for bigram_prediction_summary (1747261921174300098) --> + <skip /> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Gestoor"</string> + <string name="label_go_key" msgid="1635148082137219148">"Gaan"</string> + <string name="label_next_key" msgid="362972844525672568">"Volgende"</string> + <string name="label_done_key" msgid="2441578748772529288">"Klaar"</string> + <string name="label_send_key" msgid="2815056534433717444">"Stuur"</string> + <string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string> + <string name="label_more_key" msgid="3760239494604948502">"Meer"</string> + <string name="label_pause_key" msgid="181098308428035340">"Laat wag"</string> + <string name="label_wait_key" msgid="6402152600878093134">"Wag"</string> + <string name="voice_warning_title" msgid="4419354150908395008">"Steminvoering"</string> + <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Steminvoering vir jou taal word nie tans ondersteun nie, maar werk wel in Engels."</string> + <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Steminvoer gebruik Google se spraakherkenning. "<a href="http://m.google.com/privacy">"Die Mobiel-privaatheidsbeleid"</a>" is van toepassing."</string> + <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"Om steminvoer af te skakel, gaan na invoermetode-instellings."</string> + <string name="voice_hint_dialog_message" msgid="1420686286820661548">"Om steminvoer te gebruik, druk die mikrofoonknoppie."</string> + <string name="voice_listening" msgid="467518160751321844">"Praat nou"</string> + <string name="voice_working" msgid="6666937792815731889">"Werkend"</string> + <string name="voice_initializing" msgid="661962047129906646"></string> + <string name="voice_error" msgid="5140896300312186162">"Fout. Probeer asseblief weer."</string> + <string name="voice_network_error" msgid="6649556447401862563">"Kon nie koppel nie"</string> + <string name="voice_too_much_speech" msgid="5746973620134227376">"Fout, te veel spraak."</string> + <string name="voice_audio_error" msgid="5072707727016414454">"Oudioprobleem"</string> + <string name="voice_server_error" msgid="7807129913977261644">"Bedienerfout"</string> + <string name="voice_speech_timeout" msgid="8461817525075498795">"Geen spraak gehoor nie"</string> + <string name="voice_no_match" msgid="4285117547030179174">"Geen passings gevind nie"</string> + <string name="voice_not_installed" msgid="5552450909753842415">"Stemsoek nie geïnstalleer nie"</string> + <string name="voice_swipe_hint" msgid="6943546180310682021"><b>"Wenk:"</b>" Sleep oor die sleutelbord om te praat"</string> + <string name="voice_punctuation_hint" msgid="1611389463237317754"><b>"Wenk:"</b>" Probeer volgende keer om leestekens soos \"punt\", \"komma\" of \"vraagteken\" hardop te sê."</string> + <string name="cancel" msgid="6830980399865683324">"Kanselleer"</string> + <string name="ok" msgid="7898366843681727667">"OK"</string> + <string name="voice_input" msgid="2466640768843347841">"Steminvoering"</string> + <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Op hoofsleutelbord"</string> + <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Op simbolesleutelbord"</string> + <string name="voice_input_modes_off" msgid="3745699748218082014">"Af"</string> + <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"Mikrofoon op hoofsleutelbord"</string> + <string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Mikrofoon op simbolesleutelbord"</string> + <string name="voice_input_modes_summary_off" msgid="63875609591897607">"Steminvoer is gedeaktiveer"</string> + <string name="selectInputMethod" msgid="315076553378705821">"Kies invoermetode"</string> + <string name="language_selection_title" msgid="1651299598555326750">"Invoertale"</string> + <string name="language_selection_summary" msgid="187110938289512256">"Gly vinger op spasiebalk om taal te verander"</string> + <string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Raak weer om te stoor"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Woordeboek beskikbaar"</string> + <string name="prefs_enable_log" msgid="6620424505072963557">"Aktiveer gebruikerterugvoer"</string> + <string name="prefs_description_log" msgid="5827825607258246003">"Help hierdie invoermetode-redigeerder te verbeter deur gebruikstatistiek en omvalverslae outomaties na Google te stuur."</string> + <string name="prefs_enable_recorrection" msgid="4588408906649533582">"Raak om woorde reg te maak"</string> + <string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Raak ingevoerde woorde om hulle te korrigeer, net wanneer voorstelle sigbaar is"</string> + <string name="keyboard_layout" msgid="437433231038683666">"Sleutelbordtema"</string> + <string name="subtype_mode_cs_keyboard" msgid="1141718931112377586">"Tsjeggiese sleutelbord"</string> + <!-- no translation found for subtype_mode_ar_keyboard (2655338636329774995) --> + <skip /> + <string name="subtype_mode_da_keyboard" msgid="1243570804427922104">"Deense sleutelbord"</string> + <string name="subtype_mode_de_keyboard" msgid="1990979135959462145">"Duitse sleutelbord"</string> + <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Engelse (VK) sleutelbord"</string> + <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Engelse (VS) sleutelbord"</string> + <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spaanse sleutelbord"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> + <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Franse sleutelbord"</string> + <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Franse (Kanada) sleutelbord"</string> + <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Franse (Switserland) sleutelbord"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> + <!-- no translation found for subtype_mode_iw_keyboard (1787536828253289950) --> + <skip /> + <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italiaanse sleutelbord"</string> + <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Noorweegse sleutelbord"</string> + <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Nederlandse sleutelbord"</string> + <!-- no translation found for subtype_mode_pl_keyboard (2225816414814396047) --> + <skip /> + <!-- no translation found for subtype_mode_pt_keyboard (7503997804861754840) --> + <skip /> + <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Russiese sleutelbord"</string> + <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serwiese sleutelbord"</string> + <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Sweedse sleutelbord"</string> + <!-- no translation found for subtype_mode_af_voice (7542487489657902699) --> + <skip /> + <string name="subtype_mode_cs_voice" msgid="1136386688120958641">"Tsjeggiese stem"</string> + <string name="subtype_mode_de_voice" msgid="8378803143958089866">"Duitse stem"</string> + <!-- no translation found for subtype_mode_en_voice (6643420989651848728) --> + <skip /> + <string name="subtype_mode_es_voice" msgid="1323473601346507487">"Spaanse stem"</string> + <string name="subtype_mode_fr_voice" msgid="4675914209337824269">"Franse stem"</string> + <!-- no translation found for subtype_mode_it_voice (5077373057157441323) --> + <skip /> + <string name="subtype_mode_ja_voice" msgid="6604859132669646367">"Japannese stem"</string> + <string name="subtype_mode_ko_voice" msgid="4890391190762324561">"Koreaanse stem"</string> + <!-- no translation found for subtype_mode_nl_voice (2603552312869575021) --> + <skip /> + <string name="subtype_mode_pl_voice" msgid="2076196021014840487">"Poolse stem"</string> + <string name="subtype_mode_pt_voice" msgid="8036522712795994397">"Portugese stem"</string> + <string name="subtype_mode_ru_voice" msgid="8034596947963787529">"Russiese stem"</string> + <string name="subtype_mode_tr_voice" msgid="3402067436761140005">"Turkse stem"</string> + <!-- no translation found for subtype_mode_yue_voice (1576887891614624263) --> + <skip /> + <!-- no translation found for subtype_mode_zh_voice (4360533229467271152) --> + <skip /> + <!-- no translation found for subtype_mode_zu_voice (1146122571698884636) --> + <skip /> + <string name="prefs_usability_study_mode" msgid="6937813623647419810">"Bruikbaarheidsmodus"</string> +</resources> diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml new file mode 100644 index 000000000..740aefc2a --- /dev/null +++ b/java/res/values-am/strings.xml @@ -0,0 +1,177 @@ +<?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. +*/ + --> + +<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> + <string name="english_ime_settings" msgid="6661589557206947774">"የAndroid ቁልፍሰሌዳ ቅንብሮች"</string> + <string name="english_ime_input_options" msgid="3909945612939668554">"ግቤት አማራጮች"</string> + <string name="vibrate_on_keypress" msgid="5258079494276955460">"በቁልፍመጫንጊዜ አንዝር"</string> + <string name="sound_on_keypress" msgid="6093592297198243644">"በቁልፍ መጫን ላይ የሚወጣ ድምፅ"</string> + <string name="popup_on_keypress" msgid="123894815723512944">"ቁልፍ ጫን ላይ ብቅ ባይ"</string> + <!-- no translation found for general_category (1859088467017573195) --> + <skip /> + <!-- no translation found for correction_category (2236750915056607613) --> + <skip /> + <!-- no translation found for ngram_category (5337109164339320257) --> + <skip /> + <!-- no translation found for misc_category (6894192814868233453) --> + <skip /> + <!-- no translation found for advanced_settings (362895144495591463) --> + <skip /> + <!-- no translation found for advanced_settings_summary (5193513161106637254) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) --> + <skip /> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> + <string name="auto_cap" msgid="1719746674854628252">"ራስ-ሰር አቢይ ማድረግ"</string> + <string name="quick_fixes" msgid="5353213327680897927">"ፈጣንጥገና"</string> + <string name="quick_fixes_summary" msgid="3405028402510332373">" የተለመዱ የትየባ ስህተቶችንያስተካክላል"</string> + <!-- no translation found for prefs_show_suggestions (8026799663445531637) --> + <skip /> + <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"እየተየብክ ተመራጭ ቃላትን አሳይ"</string> + <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"ሁልጊዜ አሳይ"</string> + <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"በቁመት ሁነታ አሳይ"</string> + <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ሁልጊዜ ደብቅ"</string> + <!-- no translation found for prefs_use_spacebar_language_switch (8828538114550634449) --> + <skip /> + <string name="prefs_settings_key" msgid="4623341240804046498">"የቅንብሮች ቁልፍ አሳይ"</string> + <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"ራስ ሰር"</string> + <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"ሁልጊዜ አሳይ"</string> + <string name="settings_key_mode_always_hide_name" msgid="7833948046716923994">"ሁልጊዜ ደብቅ"</string> + <string name="auto_correction" msgid="4979925752001319458">"በራስ ማስተካከል"</string> + <!-- outdated translation 6881047311475758267 --> <string name="auto_correction_summary" msgid="5625751551134658006">"የቀደመውን ቃል በራስሰር አስተካክል"</string> + <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"ውጪ"</string> + <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"መጠነኛ"</string> + <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"ኃይለኛ"</string> + <!-- outdated translation 1323347224043514969 --> <string name="bigram_suggestion" msgid="2636414079905220518">"ቢግራም ምክሮች"</string> + <string name="bigram_suggestion_summary" msgid="4383845146070101531">"ምክርን ለማሻሻል የቀደመ ቃልን ተጠቀም"</string> + <!-- no translation found for bigram_prediction (8914273444762259739) --> + <skip /> + <!-- no translation found for bigram_prediction_summary (1747261921174300098) --> + <skip /> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : ተቀምጧል"</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> + <string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string> + <string name="label_more_key" msgid="3760239494604948502">"ተጨማሪ"</string> + <string name="label_pause_key" msgid="181098308428035340">"ላፍታ አቁም"</string> + <string name="label_wait_key" msgid="6402152600878093134">"ቆይ"</string> + <string name="voice_warning_title" msgid="4419354150908395008">"የድምፅ ግቤ ት"</string> + <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"የድምፅ ግቤት በአሁኑ ጊዜ ለእርስዎን ቋንቋ አይደግፍም፣ ግን በእንግሊዘኛ ይሰራል።"</string> + <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"የድምፅ ግቤት የGoogleን ንግግር ለይቶ ማወቂያ ይጠቀማል።"<a href="http://m.google.com/privacy">"የተንቀሳቃሽ ስልክ ግላዊ ፖሊሲ"</a>" ይተገበራል።"</string> + <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"የድምፅ ግቤት ለማጥፋት፣ወደ ግቤት ሜተድ ቅንብሮች ሂድ።"</string> + <string name="voice_hint_dialog_message" msgid="1420686286820661548">"የድምፅግቤት ለመጠቀም፣ የማይክራፎንየድምፅ ማጉያ አዝራር ተጫን።"</string> + <string name="voice_listening" msgid="467518160751321844">"አሁን ተናገር"</string> + <string name="voice_working" msgid="6666937792815731889">"ሥራ ላይ"</string> + <string name="voice_initializing" msgid="661962047129906646"></string> + <string name="voice_error" msgid="5140896300312186162">"ስህተት፣ እባክዎ እንደገና ይሞክሩ።"</string> + <string name="voice_network_error" msgid="6649556447401862563">"ማያያዝ አልተቻለም"</string> + <string name="voice_too_much_speech" msgid="5746973620134227376">"ስህተት፣ በጣም ብዙ ንግግር።"</string> + <string name="voice_audio_error" msgid="5072707727016414454">"የድምፅ ችግር"</string> + <string name="voice_server_error" msgid="7807129913977261644">"የአገልጋይ ስህተት"</string> + <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_punctuation_hint" msgid="1611389463237317754"><b>"ምክር፡"</b>" ሌላ ጊዜ፣ እንደ \"period\", \"comma\", ወይም \"question mark\" ያሉ ስርዓተ ነጥቦችን ለመናገር ሞክር።"</string> + <string name="cancel" msgid="6830980399865683324">"ይቅር"</string> + <string name="ok" msgid="7898366843681727667">"እሺ"</string> + <string name="voice_input" msgid="2466640768843347841">"የድምፅ ግቤት"</string> + <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"በዋናቁልፍ ሰሌዳ ላይ"</string> + <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"በምልክቶች ቁልፍ ሰሌዳ ላይ"</string> + <string name="voice_input_modes_off" msgid="3745699748218082014">"ውጪ"</string> + <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"ድምፅ ማጉያ በዋናው ቁልፍሰሌዳው ላይ"</string> + <string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"የድምፅ ማጉያ ምልክትበቁልፍ ሰሌዳላይ"</string> + <string name="voice_input_modes_summary_off" msgid="63875609591897607">"የድምፅ ግቤት ቦዝኗል"</string> + <string name="selectInputMethod" msgid="315076553378705821">"የግቤት ሜተድ ምረጥ"</string> + <string name="language_selection_title" msgid="1651299598555326750">"ቋንቋዎች አግቤት"</string> + <string name="language_selection_summary" msgid="187110938289512256">"ቋንቋ ለመለወጥ የቦታ ቁልፍ ላይ ጣትዎን ያንሸራቱ"</string> + <string name="hint_add_to_dictionary" msgid="9006292060636342317">"← ለማስቀመጥ ድጋሚ ንካ"</string> + <string name="has_dictionary" msgid="6071847973466625007">"መዝገበ ቃላት አለ"</string> + <string name="prefs_enable_log" msgid="6620424505072963557">"የተጠቃሚ ግብረ ምላሽ አንቃ"</string> + <string name="prefs_description_log" msgid="5827825607258246003">"ወደ Google የተሰናከለ ሪፖርቶች እና አጠቃቀም ስታስቲክስ በራስ ሰር በመላክ ይህን ግቤት ሜተድ አርትኢ እገዛ ያሻሽላል።"</string> + <string name="prefs_enable_recorrection" msgid="4588408906649533582">"ቃላትን ለማስተካከል ንካ"</string> + <string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"የገቡ ቃላትን ለማስተካከል ንካ፣ አማራጮች ሲታዩብቻ"</string> + <string name="keyboard_layout" msgid="437433231038683666">"የቁልፍ ሰሌዳ ገጽታ"</string> + <string name="subtype_mode_cs_keyboard" msgid="1141718931112377586">"የቼክ ቁልፍሰሌዳ"</string> + <!-- no translation found for subtype_mode_ar_keyboard (2655338636329774995) --> + <skip /> + <string name="subtype_mode_da_keyboard" msgid="1243570804427922104">"የዳኒሽኛ ቁልፍሰሌዳ"</string> + <string name="subtype_mode_de_keyboard" msgid="1990979135959462145">"የጀርመንኛ ቁልፍሰሌዳ"</string> + <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"የእንግሊዘኛ(ዩኬ) ቁልፍሰሌዳ"</string> + <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"የእንግሊዘኛ(ዩኤስ) ቁልፍሰሌዳ"</string> + <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"የስፖኒሽኛቁልፍ ሰሌዳ"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> + <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"የፈረንሳይኛ ቁልፍሰሌዳ"</string> + <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"የፈረንሳይኛ(ካናዳ) ቁልፍሰሌዳ"</string> + <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"የፈረንሳይኛ(ስዊዘርላንድ) ቁልፍሰሌዳ"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> + <!-- no translation found for subtype_mode_iw_keyboard (1787536828253289950) --> + <skip /> + <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"የጣሊያንኛ ቁልፍ ሰሌዳ"</string> + <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"የኖርዌጂኛ ቁልፍሰሌዳ"</string> + <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"የደች ቁልፍሰሌዳ"</string> + <!-- no translation found for subtype_mode_pl_keyboard (2225816414814396047) --> + <skip /> + <!-- no translation found for subtype_mode_pt_keyboard (7503997804861754840) --> + <skip /> + <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"የራሽኛቁልፍ ሰሌዳ"</string> + <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"የሩሲኪኛቁልፍ ሰሌዳ"</string> + <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"የሲውድናዊ ቁልፍሰሌዳ"</string> + <!-- no translation found for subtype_mode_af_voice (7542487489657902699) --> + <skip /> + <string name="subtype_mode_cs_voice" msgid="1136386688120958641">"የቼክ ድምፅ"</string> + <string name="subtype_mode_de_voice" msgid="8378803143958089866">"የጀርመናዊ ድምፅ"</string> + <!-- no translation found for subtype_mode_en_voice (6643420989651848728) --> + <skip /> + <string name="subtype_mode_es_voice" msgid="1323473601346507487">"የስፔናዊ ድምፅ"</string> + <string name="subtype_mode_fr_voice" msgid="4675914209337824269">"የፈረንሳዊ ድምፅ"</string> + <!-- no translation found for subtype_mode_it_voice (5077373057157441323) --> + <skip /> + <string name="subtype_mode_ja_voice" msgid="6604859132669646367">"የጃፓናዊ ድምፅ"</string> + <string name="subtype_mode_ko_voice" msgid="4890391190762324561">"የኮሪያዊ ድምፅ"</string> + <!-- no translation found for subtype_mode_nl_voice (2603552312869575021) --> + <skip /> + <string name="subtype_mode_pl_voice" msgid="2076196021014840487">"የፖሊሽኛ ድምፅ"</string> + <string name="subtype_mode_pt_voice" msgid="8036522712795994397">"የፖርቹጊኛ ድምፅ"</string> + <string name="subtype_mode_ru_voice" msgid="8034596947963787529">"የራሽኛድምፅ"</string> + <string name="subtype_mode_tr_voice" msgid="3402067436761140005">"የቱርካዊ ድምፅ"</string> + <!-- no translation found for subtype_mode_yue_voice (1576887891614624263) --> + <skip /> + <!-- no translation found for subtype_mode_zh_voice (4360533229467271152) --> + <skip /> + <!-- no translation found for subtype_mode_zu_voice (1146122571698884636) --> + <skip /> + <string name="prefs_usability_study_mode" msgid="6937813623647419810">"የተገልጋይነት ጥናት ሁነታ"</string> +</resources> diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml index df5b87ac1..455e9f5f2 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"تصحيح النص"</string> <string name="ngram_category" msgid="5337109164339320257">"الاقتراحات بناءً على الكلمات السابقة"</string> <string name="misc_category" msgid="6894192814868233453">"خيارات أخرى"</string> + <string name="advanced_settings" msgid="362895144495591463">"الإعدادات المتقدمة"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"خيارات للمستخدمين الخبراء"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"تأخير إزالة النافذة المنبثقة الأساسية"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"بلا تأخير"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"افتراضي"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"استخدام الأحرف الكبيرة تلقائيًا"</string> <string name="quick_fixes" msgid="5353213327680897927">"إصلاحات سريعة"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"تصحيح الأخطاء المكتوبة الشائعة"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"لوحة مفاتيح إنجليزية (بريطانيا)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"لوحة مفاتيح إنجليزية (الولايات المتحدة)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"لوحة مفاتيح إسبانية"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"لوحة مفاتيح إسبانية (الولايات المتحدة)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"لوحة مفاتيح فرنسية"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"لوحة مفاتيح فرنسية (كندا)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"لوحة مفاتيح فرنسية (سويسرا)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"لوحة المفاتيح العبرية"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"لوحة مفاتيح إيطالية"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"لوحة مفاتيح نرويجية"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"لوحة مفاتيح بولندية"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"لوحة المفاتيح البولندية"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"لوحة المفاتيح البرتغالية"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"لوحة مفاتيح روسية"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"لوحة مفاتيح صربية"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"لوحة مفاتيح سويدية"</string> diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml index 7f59a13db..05af01668 100644 --- a/java/res/values-bg/strings.xml +++ b/java/res/values-bg/strings.xml @@ -28,8 +28,17 @@ <string name="popup_on_keypress" msgid="123894815723512944">"Изскачащ прозорец при натискане на клавиш"</string> <string name="general_category" msgid="1859088467017573195">"Общи"</string> <string name="correction_category" msgid="2236750915056607613">"Корекция на текста"</string> - <string name="ngram_category" msgid="5337109164339320257">"Предложения въз на основа на предишни думи"</string> + <string name="ngram_category" msgid="5337109164339320257">"Предложения въз основа на предишни думи"</string> <string name="misc_category" msgid="6894192814868233453">"Други опции"</string> + <string name="advanced_settings" msgid="362895144495591463">"Разширени настройки"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Опции за потребителите експерти"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Отхвърляне на подсказката"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задържане"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"По подразбиране"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Автоматично поставяне на главни букви"</string> <string name="quick_fixes" msgid="5353213327680897927">"Бързи корекции"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Коригира най-честите грешки при въвеждане"</string> @@ -38,7 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Винаги да се показва"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Показване с вертикална ориентация"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Винаги да се скрива"</string> - <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Клавишът интервал да превкл. езика"</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Смяна на езика с клавиша за интервал"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Показване на клавиша за настройки"</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Автоматично"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Да се показва винаги"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"английска (Великобрит.) клавиатура"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"английска (САЩ) клавиатура"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"испанска клавиатура"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"испанска (САЩ) клавиатура"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"френска клавиатура"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"френска (Канада) клавиатура"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"френска (Швейцария) клавиатура"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"клавиатура на иврит"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"италианска клавиатура"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"норвежка клавиатура"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"нидерландска клавиатура"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Полска клавиатура"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Португалска клавиатура"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"руска клавиатура"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"сръбска клавиатура"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"шведска клавиатура"</string> diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml index 36939fef7..01de93372 100644 --- a/java/res/values-ca/strings.xml +++ b/java/res/values-ca/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Correcció de text"</string> <string name="ngram_category" msgid="5337109164339320257">"Suggeriments basats en paraules anteriors"</string> <string name="misc_category" msgid="6894192814868233453">"Altres opcions"</string> + <string name="advanced_settings" msgid="362895144495591463">"Configuració avançada"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opcions per a usuaris experts"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retard d\'om. em. de tecla"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sense retard"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminat"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Majúscules automàtiques"</string> <string name="quick_fixes" msgid="5353213327680897927">"Correccions ràpides"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corregeix els errors d\'ortografia habituals"</string> @@ -38,7 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostra sempre"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Mostra en mode vertical"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Amaga sempre"</string> - <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Utilitza el canvi d\'idioma amb la barra espaiadora"</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Canvi d\'idioma amb la barra espaiadora"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Mostra la tecla de configuració"</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Automàtic"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Mostra sempre"</string> @@ -51,7 +60,7 @@ <string name="bigram_suggestion" msgid="2636414079905220518">"Suggeriments Bigram"</string> <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Utilitza la paraula anterior per millorar el suggeriment"</string> <string name="bigram_prediction" msgid="8914273444762259739">"Predicció Bigram"</string> - <string name="bigram_prediction_summary" msgid="1747261921174300098">"Utilitza la paraula anterior per a la predicció també"</string> + <string name="bigram_prediction_summary" msgid="1747261921174300098">"Utilitza també la paraula anterior per a la predicció"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: desada"</string> <string name="label_go_key" msgid="1635148082137219148">"Vés"</string> <string name="label_next_key" msgid="362972844525672568">"Següent"</string> @@ -63,7 +72,7 @@ <string name="label_wait_key" msgid="6402152600878093134">"Espera"</string> <string name="voice_warning_title" msgid="4419354150908395008">"Entrada de veu"</string> <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Actualment, l\'entrada de veu no és compatible amb el vostre idioma, però funciona en anglès."</string> - <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"L\'entrada de veu utilitza el reconeixement de veu de Google. S\'hi aplica la "<a href="http://m.google.com/privacy">"Política de privadesa de Google Mobile"</a>"."</string> + <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"L\'entrada de veu utilitza el reconeixement de veu de Google. S\'hi aplica la "<a href="http://m.google.com/privacy">"Política de privadesa de Google per a mòbils"</a>"."</string> <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"Per desactivar l\'entada de veu, vés a la configuració del mètode d\'entrada."</string> <string name="voice_hint_dialog_message" msgid="1420686286820661548">"Per utilitzar l\'entrada de veu, prem el botó del micròfon."</string> <string name="voice_listening" msgid="467518160751321844">"Parleu ara"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Teclat anglès (Regne Unit)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Teclat anglès (Estats Units)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Teclat espanyol"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Teclat espanyol (Estats Units)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Teclat francès"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Teclat francès (Canadà)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Teclat francès (Suïssa)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Teclat hebreu"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Teclat italià"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Teclat noruec"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Teclat holandès"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Teclat polonès"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Teclat portuguès"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Teclat rus"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Teclat serbi"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Teclat suec"</string> diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index 132bc1c29..9dbe9ae4e 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Oprava textu"</string> <string name="ngram_category" msgid="5337109164339320257">"Návrhy na základě předchozích slov"</string> <string name="misc_category" msgid="6894192814868233453">"Další možnosti"</string> + <string name="advanced_settings" msgid="362895144495591463">"Pokročilá nastavení"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Možnosti pro zkušené uživatele"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Prodleva vysk. okna kláv."</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez prodlevy"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Výchozí"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Velká písmena automaticky"</string> <string name="quick_fixes" msgid="5353213327680897927">"Rychlé opravy"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Opravuje nejčastější chyby při psaní"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Klávesnice – angličtina (VB)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Klávesnice – angličtina (USA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Klávesnice – španělština"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Klávesnice – španělština (USA)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Klávesnice – francouzština"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Klávesnice – francouzština (Kanada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Klávesnice – francouzština (Švýc.)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Klávesnice – hebrejština"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Klávesnice – italština"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Klávesnice – norština"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Klávesnice – holandština"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Polská klávesnice"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugalská klávesnice"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Klávesnice – ruština"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Klávesnice – srbština"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Klávesnice – švédština"</string> diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml index ad92b24d1..b4b4b5ad8 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Tekstkorrigering"</string> <string name="ngram_category" msgid="5337109164339320257">"Forslag baseret på tidligere ord"</string> <string name="misc_category" msgid="6894192814868233453">"Andre valgmuligheder"</string> + <string name="advanced_settings" msgid="362895144495591463">"Avancerede indstillinger"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Muligheder for ekspertbrugere"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Forsink. afvis. af taste-popup"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Ingen forsink."</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Skriv aut. med stort"</string> <string name="quick_fixes" msgid="5353213327680897927">"Hurtige løsninger"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Retter almindelige stavefejl"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Engelsk tastatur (Storbritannien)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Engelsk tastatur (USA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spansk tastatur"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spansk tastatur (USA)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Fransk tastatur"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Fransk tastatur (Canada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Fransk tastatur (Schweiz)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebraisk tastatur"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italiensk tastatur"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norsk tastatur"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Hollandsk tastatur"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Polsk tastatur"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugisisk tastatur"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Russisk tastatur"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbisk tastatur"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Svensk tastatur"</string> diff --git a/java/res/values-de-rZZ/donottranslate-altchars.xml b/java/res/values-de-rZZ/donottranslate-altchars.xml new file mode 100644 index 000000000..a6f8fc810 --- /dev/null +++ b/java/res/values-de-rZZ/donottranslate-altchars.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="alternates_for_a">ä,â,à,á,æ,ã,å,ā</string> + <string name="alternates_for_e">3,ė</string> + <string name="alternates_for_o">9,ö,ô,ò,ó,õ,œ,ø,ō</string> + <string name="alternates_for_u">7,ü,û,ù,ú,ū</string> + <string name="alternates_for_s">ß,ś,š</string> + <string name="alternates_for_n">ñ,ń</string> + <string name="alternates_for_y">6</string> + <string name="alternates_for_z"></string> +</resources> diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml index 65f0faa32..01adc52d2 100644 --- a/java/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Textkorrektur"</string> <string name="ngram_category" msgid="5337109164339320257">"Vorschläge basieren auf bisherigen Wörtern"</string> <string name="misc_category" msgid="6894192814868233453">"Sonstige Optionen"</string> + <string name="advanced_settings" msgid="362895144495591463">"Erweiterte Einstellungen"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Optionen für Experten"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Verzög. Schlüssel-Pop-up"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Keine Verzögerung"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Autom. Groß-/Kleinschr."</string> <string name="quick_fixes" msgid="5353213327680897927">"Quick Fixes"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Korrigiert gängige Tippfehler"</string> @@ -62,7 +71,7 @@ <string name="label_pause_key" msgid="181098308428035340">"Pause"</string> <string name="label_wait_key" msgid="6402152600878093134">"Warten"</string> <string name="voice_warning_title" msgid="4419354150908395008">"Spracheingabe"</string> - <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Spracheingaben werden derzeit nicht für Ihre Sprache unterstützt, funktionieren jedoch in Englisch."</string> + <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Spracheingaben werden zurzeit nicht für Ihre Sprache unterstützt, funktionieren jedoch in Englisch."</string> <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Die Spracheingabe verwendet die Spracherkennung von Google. Es gelten die "<a href="http://m.google.com/privacy">"Google Mobile-Datenschutzbestimmungen"</a>"."</string> <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"Rufen Sie zum Deaktivieren der Spracheingabe die Einstellungen für die Eingabemethode auf."</string> <string name="voice_hint_dialog_message" msgid="1420686286820661548">"Drücken Sie zur Verwendung der Spracheingabe die Mikrofonschaltfläche."</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Englische Tastatur (GB)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Englische Tastatur (USA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spanische Tastatur"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spanische Tastatur (USA)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Französische Tastatur"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Französische Tastatur (Kanada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Französische Tastatur (Schweiz)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebräische Tastatur"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italienische Tastatur"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norwegische Tastatur"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Niederländische Tastatur"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Polnische Tastatur"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugiesische Tastatur"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Russische Tastatur"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbische Tastatur"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Schwedische Tastatur"</string> diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml index 5cee959a0..9d8729ebe 100644 --- a/java/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Διόρθωση κειμένου"</string> <string name="ngram_category" msgid="5337109164339320257">"Προτάσεις που βασίζονται σε προηγούμενες λέξεις"</string> <string name="misc_category" msgid="6894192814868233453">"Άλλες επιλογές"</string> + <string name="advanced_settings" msgid="362895144495591463">"Σύνθετες ρυθμίσεις"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Επιλογές για έμπειρους χρήστες"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Χρόνος εξαφ. αναδ. παραθ."</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Χωρίς καθυστέρ."</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Προεπιλογή"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Αυτόματη χρήση κεφαλαίων"</string> <string name="quick_fixes" msgid="5353213327680897927">"Γρήγορες διορθώσεις"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Διορθώνει συνηθισμένα λάθη πληκτρολόγησης"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Αγγλικό (ΗΒ) πληκτρολόγιο"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Αγγλικό (ΗΠΑ) πληκτρολόγιο"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Ισπανικό πληκτρολόγιο"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Ισπανικό (ΗΠΑ) πληκτρολόγιο"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Γαλλικό πληκτρολόγιο"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Γαλλικό (Καναδάς) πληκτρολόγιο"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Γαλλικό (Ελβετία) πληκτρολόγιο"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Πληκτρολόγιο με εβραϊκή γραφή"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Ιταλικό πληκτρολόγιο"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Νορβηγικό πληκτρολόγιο"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Ολλανδικό πληκτρολόγιο"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Πληκτρολόγιο με πολωνικούς χαρακτήρες"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Πορτογαλικό πληκτρολόγιο"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Ρωσικό πληκτρολόγιο"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Σερβικό πληκτρολόγιο"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Σουηδικό πληκτρολόγιο"</string> diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml index 7d5d50177..3a488f4cc 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -30,6 +30,13 @@ <string name="correction_category" msgid="2236750915056607613">"Text correction"</string> <string name="ngram_category" msgid="5337109164339320257">"Suggestions based on previous words"</string> <string name="misc_category" msgid="6894192814868233453">"Other Options"</string> + <string name="advanced_settings" msgid="362895144495591463">"Advanced settings"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Options for expert users"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Key pop-up dismiss delay"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"No delay"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string> + <string name="use_contacts_dict" msgid="4435317977804180815">"Suggest Contact names"</string> + <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Use names from Contacts for suggestions and corrections"</string> <string name="auto_cap" msgid="1719746674854628252">"Auto-capitalisation"</string> <string name="quick_fixes" msgid="5353213327680897927">"Quick fixes"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corrects commonly typed mistakes"</string> @@ -105,14 +112,18 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"English (UK) Keyboard"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"English (US) Keyboard"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spanish Keyboard"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spanish (US) Keyboard"</string> + <string name="subtype_mode_fi_keyboard" msgid="3198596464082614532">"Finnish Keyboard"</string> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"French Keyboard"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"French (Canada) Keyboard"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"French (Switzerland) Keyboard"</string> + <string name="subtype_mode_hr_keyboard" msgid="7177182405440070112">"Croatian Keyboard"</string> + <string name="subtype_mode_hu_keyboard" msgid="8843338355732633647">"Hungarian Keyboard"</string> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebrew Keyboard"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italian Keyboard"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norwegian Keyboard"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Dutch Keyboard"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Polish keyboard"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portuguese Keyboard"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Russian Keyboard"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbian Keyboard"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Swedish Keyboard"</string> diff --git a/java/res/layout/input_basic_highcontrast.xml b/java/res/values-en/whitelist.xml index 4829c7d7c..9395f4c88 100644 --- a/java/res/layout/input_basic_highcontrast.xml +++ b/java/res/values-en/whitelist.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -17,16 +17,22 @@ ** limitations under the License. */ --> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- + An entry of the whitelist word should be: + 1. (int)frequency + 2. (String)before + 3. (String)after + --> + <string-array name="wordlist_whitelist" translatable="false"> -<com.android.inputmethod.keyboard.LatinKeyboardView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - android:id="@+id/latin_keyboard_view" - android:layout_alignParentBottom="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="0dip" - android:background="@android:color/black" + <item>255</item> + <item>ill</item> + <item>I\'ll</item> - latin:keyBackground="@drawable/btn_keyboard_key3" - /> + <item>255</item> + <item>thisd</item> + <item>this\'d</item> + + </string-array> +</resources> diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index e40f98b3b..048f02eed 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Corrección de texto"</string> <string name="ngram_category" msgid="5337109164339320257">"Sugerencias sobre la base de palabras anteriores"</string> <string name="misc_category" msgid="6894192814868233453">"Otras opciones"</string> + <string name="advanced_settings" msgid="362895144495591463">"Configuración avanzada"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opciones para usuarios expertos"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Demora en rechazo de ventana emergente de clave"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sin demora"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminada"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Mayúsculas automáticas"</string> <string name="quick_fixes" msgid="5353213327680897927">"Arreglos rápidos"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corrige errores de escritura comunes"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Teclado en inglés (Reino Unido)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Teclado en inglés (EE.UU.)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Teclado en español"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Teclado en español (EE.UU.)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Teclado en francés"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Teclado en francés (Canadá)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Teclado en francés (Suiza)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Teclado hebreo"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Teclado en italiano"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Teclado en noruego"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Teclado en holandés"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Teclado polaco"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Teclado en portugués"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Teclado en ruso"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Teclado en serbio"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Teclado en sueco"</string> diff --git a/java/res/values-es/donottranslate-altchars.xml b/java/res/values-es/donottranslate-altchars.xml index 99f1663a1..16111ec42 100644 --- a/java/res/values-es/donottranslate-altchars.xml +++ b/java/res/values-es/donottranslate-altchars.xml @@ -25,4 +25,6 @@ <string name="alternates_for_u">7,ú,ü,ù,û,ū</string> <string name="alternates_for_n">ñ,ń</string> <string name="alternates_for_c">ç,ć,č</string> + <string name="alternates_for_punctuation">"\\,,\?,!,¿,¡,:,-,\',\",),(,/,;,+,&,\@"</string> + <string name="alternates_for_web_tab_punctuation">".,\\,,\?,!,¿,¡,:,-,\',\",),(,/,;,+,&,\@"</string> </resources> diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml index e1532427a..b7fbe96ec 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -27,11 +27,17 @@ <string name="sound_on_keypress" msgid="6093592297198243644">"Sonido al pulsar tecla"</string> <string name="popup_on_keypress" msgid="123894815723512944">"Popup al pulsar tecla"</string> <string name="general_category" msgid="1859088467017573195">"General"</string> - <!-- no translation found for correction_category (2236750915056607613) --> + <string name="correction_category" msgid="2236750915056607613">"Corrección ortográfica"</string> + <string name="ngram_category" msgid="5337109164339320257">"Sugerencias basadas en palabras anteriores"</string> + <string name="misc_category" msgid="6894192814868233453">"Otras opciones"</string> + <string name="advanced_settings" msgid="362895144495591463">"Ajustes avanzados"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opciones para usuarios expertos"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retraso de rechazo"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sin retraso"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminado"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> <skip /> - <!-- no translation found for ngram_category (5337109164339320257) --> - <skip /> - <!-- no translation found for misc_category (6894192814868233453) --> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> <skip /> <string name="auto_cap" msgid="1719746674854628252">"Mayúsculas automáticas"</string> <string name="quick_fixes" msgid="5353213327680897927">"Correcciones rápidas"</string> @@ -41,8 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostrar siempre"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Mostrar en modo vertical"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ocultar siempre"</string> - <!-- no translation found for prefs_use_spacebar_language_switch (8828538114550634449) --> - <skip /> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Utilizar espacio para cambiar idioma"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Mostrar tecla de ajustes"</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Automáticamente"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Mostrar siempre"</string> @@ -52,12 +57,10 @@ <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Desactivada"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Parcial"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Total"</string> - <!-- outdated translation 7146707435859263625 --> <string name="bigram_suggestion" msgid="2636414079905220518">"Sugerencias de bigramas"</string> + <string name="bigram_suggestion" msgid="2636414079905220518">"Sugerencias de bigramas"</string> <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Usar palabra anterior para mejorar sugerencias"</string> - <!-- no translation found for bigram_prediction (8914273444762259739) --> - <skip /> - <!-- no translation found for bigram_prediction_summary (1747261921174300098) --> - <skip /> + <string name="bigram_prediction" msgid="8914273444762259739">"Predicción de bigramas"</string> + <string name="bigram_prediction_summary" msgid="1747261921174300098">"Utilizar también la palabra anterior para realizar la predicción"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string> <string name="label_go_key" msgid="1635148082137219148">"Ir"</string> <string name="label_next_key" msgid="362972844525672568">"Sig."</string> @@ -111,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Teclado inglés (Reino Unido)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Teclado de inglés (EE.UU.)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Teclado español"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Teclado en español (EE.UU.)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Teclado francés"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Teclado francés (Canadá)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Teclado francés (Suiza)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Teclado hebreo"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Teclado italiano"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Teclado noruego"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Teclado holandés"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Teclado polaco"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Teclado portugués"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Teclado ruso"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Teclado serbio"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Teclado sueco"</string> diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml index 25ee9dff8..17347b20d 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"تصحیح متن"</string> <string name="ngram_category" msgid="5337109164339320257">"پیشنهادهایی بر اساس کلمه های قبلی"</string> <string name="misc_category" msgid="6894192814868233453">"سایر گزینه ها"</string> + <string name="advanced_settings" msgid="362895144495591463">"تنظیمات پیشرفته"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"گزینه هایی برای کاربران حرفه ای"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"تأخیر در رد کردن کلید نمایشی"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"بدون تأخیر"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"پیش فرض"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"نوشتن با حروف بزرگ خودکار"</string> <string name="quick_fixes" msgid="5353213327680897927">"راه حل های سریع"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"تصحیح خطاهای تایپی رایج"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"صفحه کلید انگلیسی (بریتانیایی)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"صفحه کلید انگلیسی (آمریکایی)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"صفحه کلید اسپانیایی"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"صفحه کلید اسپانیایی (آمریکایی)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"صفحه کلید فرانسوی"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"صفحه کلید فرانسوی (کانادایی)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"صفحه کلید فرانسوی (سوئیس)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"صفحه کلید عبری"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"صفحه کلید ایتالیایی"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"صفحه کلید نروژی"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"صفحه کلید هلندی"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"صفحه کلید لهستانی"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"صفحه کلید پرتغالی"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"صفحه کلید روسی"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"صفحه کلید صربی"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"صفحه کلید سوئدی"</string> diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml index f02e8217d..7fda7c78a 100644 --- a/java/res/values-fi/strings.xml +++ b/java/res/values-fi/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Tekstin korjaus"</string> <string name="ngram_category" msgid="5337109164339320257">"Aiempiin sanoihin perustuvat ehdotukset"</string> <string name="misc_category" msgid="6894192814868233453">"Muut vaihtoehdot"</string> + <string name="advanced_settings" msgid="362895144495591463">"Lisäasetukset"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Valinnat kokeneille käyttäjille"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Näppäimen hylkäysviive"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Ei viivettä"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Oletus"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Automaattiset isot kirjaimet"</string> <string name="quick_fixes" msgid="5353213327680897927">"Pikakorjaukset"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Korjaa yleiset kirjoitusvirheet"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Näppäimistö: englanti (UK)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Näppäimistö: englanti (US)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Näppäimistö: espanja"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Näppäimistö: espanja (US)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Näppäimistö: ranska"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Näppäimistö: ranska (Kanada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Näppäimistö: ranska (Sveitsi)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hepreankielinen näppäimistö"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Näppäimistö: italia"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Näppäimistö: norja"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Näppäimistö: hollanti"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Näppäimistö: puola"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Näppäimistö: portugali"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Näppäimistö: venäjä"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Näppäimistö: serbia"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Näppäimistö: ruotsi"</string> diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index 276aed2c5..2f09277b5 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Correction du texte"</string> <string name="ngram_category" msgid="5337109164339320257">"Suggestions basées sur les mots précédents"</string> <string name="misc_category" msgid="6894192814868233453">"Autres options"</string> + <string name="advanced_settings" msgid="362895144495591463">"Paramètres avancés"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Options destinées aux utilisateurs expérimentés"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Délai masq. touche pop-up"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Aucun délai"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Par défaut"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Majuscules auto"</string> <string name="quick_fixes" msgid="5353213327680897927">"Corrections rapides"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corrige les fautes de frappe courantes"</string> @@ -38,7 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Toujours afficher"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Afficher en mode Portrait"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Toujours masquer"</string> - <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Sélecteur langue barre d\'espace"</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Barre d\'espace pour changer langue"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Afficher touche param."</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Automatique"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Toujours afficher"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Clavier anglais (Royaume-Uni)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Clavier anglais (États-Unis)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Clavier espagnol"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Clavier espagnol (États-Unis)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Clavier français"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Clavier français (Canada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Clavier français (Suisse)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Clavier hébreu"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Clavier italien"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Clavier norvégien"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Clavier néerlandais"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Clavier polonais"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Clavier portugais"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Clavier russe"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Clavier serbe"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Clavier suédois"</string> diff --git a/java/res/values-hr/donottranslate-altchars.xml b/java/res/values-hr/donottranslate-altchars.xml new file mode 100644 index 000000000..d0c9d4049 --- /dev/null +++ b/java/res/values-hr/donottranslate-altchars.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="alternates_for_s">š,ś,ß</string> + <string name="alternates_for_n">ñ,ń</string> + <string name="alternates_for_y"></string> + <string name="alternates_for_z">6,ž,ź,ż</string> + <string name="alternates_for_c">č,ć,ç</string> + <string name="alternates_for_d">đ</string> +</resources> diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml index 6117821ee..b3df4ed05 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Ispravak teksta"</string> <string name="ngram_category" msgid="5337109164339320257">"Prijedlozi na temelju prethodnih riječi"</string> <string name="misc_category" msgid="6894192814868233453">"Ostale opcije"</string> + <string name="advanced_settings" msgid="362895144495591463">"Napredne postavke"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opcije za stručne korisnike"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Bez odgode klj. skočnih"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez odgode"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Zadano"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Automatsko pisanje velikih slova"</string> <string name="quick_fixes" msgid="5353213327680897927">"Brzi popravci"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Ispravlja uobičajene pogreške u pisanju"</string> @@ -38,7 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Uvijek prikaži"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Prikaži u portretnom načinu"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Uvijek sakrij"</string> - <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Koristite razmaknicu za prebacivanje jezika"</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Upotrijebite razmaknicu za prebacivanje jezika"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Prikaži tipku postavki"</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Automatski"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Uvijek prikaži"</string> @@ -51,7 +60,7 @@ <string name="bigram_suggestion" msgid="2636414079905220518">"Bigram prijedlozi"</string> <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Upotrijebi prethodnu riječ radi poboljšanja prijedloga"</string> <string name="bigram_prediction" msgid="8914273444762259739">"Bigram predviđanje"</string> - <string name="bigram_prediction_summary" msgid="1747261921174300098">"Koristite prethodnu riječ i za predviđanje"</string> + <string name="bigram_prediction_summary" msgid="1747261921174300098">"Upotrijebite prethodnu riječ i za predviđanje"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Spremljeno"</string> <string name="label_go_key" msgid="1635148082137219148">"Idi"</string> <string name="label_next_key" msgid="362972844525672568">"Dalje"</string> @@ -61,7 +70,7 @@ <string name="label_more_key" msgid="3760239494604948502">"Više"</string> <string name="label_pause_key" msgid="181098308428035340">"Pauza"</string> <string name="label_wait_key" msgid="6402152600878093134">"Pričekaj"</string> - <string name="voice_warning_title" msgid="4419354150908395008">"Glasovni unos"</string> + <string name="voice_warning_title" msgid="4419354150908395008">"Glasovni ulaz"</string> <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Vaš jezik trenutno nije podržan za glasovni unos, ali radi za engleski."</string> <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Glasovni unos upotrebljava Googleovo prepoznavanje govora. Primjenjuju se "<a href="http://m.google.com/privacy">"Pravila o privatnosti za uslugu Mobile"</a>"."</string> <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"Za isključivanje glasovnog unosa idite na postavke načina unosa."</string> @@ -81,7 +90,7 @@ <string name="voice_punctuation_hint" msgid="1611389463237317754"><b>"Savjet:"</b>" Sljedeći put pokušajte izgovoriti znakove interpunkcije poput \"točka, \"zarez\" ili \"upitnik\"."</string> <string name="cancel" msgid="6830980399865683324">"Odustani"</string> <string name="ok" msgid="7898366843681727667">"U redu"</string> - <string name="voice_input" msgid="2466640768843347841">"Glasovni unos"</string> + <string name="voice_input" msgid="2466640768843347841">"Glasovni ulaz"</string> <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Na glavnoj tipkovnici"</string> <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Na tipkovnici simb."</string> <string name="voice_input_modes_off" msgid="3745699748218082014">"Isključeno"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Engleska (UK) tipkovnica"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Engleska (SAD) tipkovnica"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Španjolska tipkovnica"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Tipkovnica za španjolski (SAD)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Francuska tipkovnica"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Francuska (Kanada) tipkovnica"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Francuska (Švicarska) tipkovnica"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebrejska tipkovnica"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Talijanska tipkovnica"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norveška tipkovnica"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Nizozemska tipkovnica"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Poljska tipkovnica"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugalska tipkovnica"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Ruska tipkovnica"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Srpska tipkovnica"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Švedska tipkovnica"</string> diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml index 81255d719..aed535ab0 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Szövegjavítás"</string> <string name="ngram_category" msgid="5337109164339320257">"Javaslatok korábbi szavak alapján"</string> <string name="misc_category" msgid="6894192814868233453">"Egyéb beállítások"</string> + <string name="advanced_settings" msgid="362895144495591463">"Speciális beállítások"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Beállítások gyakorlott felhasználóknak"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Gombeltüntetés késése"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Nincs késés"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Alapbeállítás"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Automatikusan nagy kezdőbetű"</string> <string name="quick_fixes" msgid="5353213327680897927">"Gyorsjavítások"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Kijavítja a gyakori gépelési hibákat"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Angol (UK) billentyűzet"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Angol (US) billentyűzet"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spanyol billentyűzet"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spanyol (US) billentyűzet"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Francia billentyűzet"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Francia (kanadai) billentyűzet"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Francia (svájci) billentyűzet"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Héber billentyűzet"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Olasz billentyűzet"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norvég billentyűzet"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Holland billentyűzet"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Lengyel billentyűzet"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugál billentyűzet"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Orosz billentyűzet"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Szerb billentyűzet"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Svéd billentyűzet"</string> diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index 32ef38d35..97706d031 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Koreksi teks"</string> <string name="ngram_category" msgid="5337109164339320257">"Saran berdasarkan kata sebelumnya"</string> <string name="misc_category" msgid="6894192814868233453">"Opsi lain"</string> + <string name="advanced_settings" msgid="362895144495591463">"Setelan lanjutan"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Pilihan untuk pengguna ahli"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tundaan singkir munculan kunci"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Tanpa penundaan"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Bawaan"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Kapitalisasi otomatis"</string> <string name="quick_fixes" msgid="5353213327680897927">"Perbaikan cepat"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Memperbaiki kesalahan ketik umum"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Keyboard Inggris (Britania Raya)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Keyboard Inggris (AS)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Keyboard Spanyol"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Keyboard Spanyol (AS)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Keyboard Prancis"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Keyboard Prancis (Kanada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Keyboard Prancis (Swiss)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Papan tombol Ibrani"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Keyboard Italia"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Keyboard Norwegia"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Keyboard Belanda"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Keyboard bahasa Polski"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Keyboard Portugis"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Keyboard Rusia"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Keyboard Serbia"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Keyboard Swedia"</string> diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml index 3a896fcd7..eb902e049 100644 --- a/java/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Correzione testo"</string> <string name="ngram_category" msgid="5337109164339320257">"Suggerimenti in base alle parole precedenti"</string> <string name="misc_category" msgid="6894192814868233453">"Altre opzioni"</string> + <string name="advanced_settings" msgid="362895144495591463">"Impostazioni avanzate"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opzioni per utenti esperti"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ritardo eliminaz. popup tasto"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Nessun ritardo"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predefinito"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Maiuscole automatiche"</string> <string name="quick_fixes" msgid="5353213327680897927">"Correzioni veloci"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corregge gli errori di digitazione più comuni"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Tastiera inglese (Regno Unito)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Tastiera inglese (Stati Uniti)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Tastiera spagnola"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Tastiera spagnola (Stati Uniti)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Tastiera francese"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Tastiera francese (Canada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Tastiera francese (Svizzera)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Tastiera ebraica"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Tastiera italiana"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Tastiera norvegese"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Tastiera olandese"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Tastiera polacca"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Tastiera portoghese"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Tastiera russa"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Tastiera serba"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Tastiera svedese"</string> diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml index 0b26ed9fe..c45351037 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"תיקון טקסט"</string> <string name="ngram_category" msgid="5337109164339320257">"הצעות המבוססות על מילים קודמות"</string> <string name="misc_category" msgid="6894192814868233453">"אפשרויות אחרות"</string> + <string name="advanced_settings" msgid="362895144495591463">"הגדרות מתקדמות"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"אפשרויות עבור משתמשים מתקדמים"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"עיכוב דחייה של מוקפץ ראשי"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ללא עיכוב"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ברירת מחדל"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"הפיכה אוטומטית של אותיות לרישיות"</string> <string name="quick_fixes" msgid="5353213327680897927">"תיקונים מהירים"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"מתקן שגיאות הקלדה נפוצות"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"מקלדת אנגלית (בריטניה)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"מקלדת אנגלית (ארה\"ב)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"מקלדת ספרדית"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"מקלדת ספרדית (ארה\"ב)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"מקלדת צרפתית"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"מקלדת צרפתית (קנדה)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"מקלדת צרפתית (שוויץ)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"מקלדת בשפה העברית"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"מקלדת איטלקית"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"מקלדת נורווגית"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"מקלדת הולנדית"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"מקלדת פולנית"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"מקלדת פורטוגזית"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"מקלדת רוסית"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"מקלדת סרבית"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"מקלדת שוודית"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 402c35675..2aa55a7e0 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"テキストの修正"</string> <string name="ngram_category" msgid="5337109164339320257">"前の語句に基づいた入力候補表示"</string> <string name="misc_category" msgid="6894192814868233453">"他のオプション"</string> + <string name="advanced_settings" msgid="362895144495591463">"詳細設定"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"上級ユーザー向けオプション"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"キーのポップアップ時間"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"すぐに消去"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"デフォルト"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"自動大文字変換"</string> <string name="quick_fixes" msgid="5353213327680897927">"クイックフィックス"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"よくある誤字・脱字を修正します"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"英語(英国)のキーボード"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"英語(米国)のキーボード"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"スペイン語のキーボード"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"スペイン語(米国)のキーボード"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"フランス語のキーボード"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"フランス語(カナダ)のキーボード"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"フランス語(スイス)のキーボード"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"ヘブライ語のキーボード"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"イタリア語のキーボード"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"ノルウェー語のキーボード"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"オランダ語のキーボード"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"ポーランド語のキーボード"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"ポルトガル語のキーボード"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"ロシア語のキーボード"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"セルビア語のキーボード"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"スウェーデン語のキーボード"</string> diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index ca2f570a8..8f4747843 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"텍스트 수정"</string> <string name="ngram_category" msgid="5337109164339320257">"이전 단어에 기반한 추천"</string> <string name="misc_category" msgid="6894192814868233453">"기타 옵션"</string> + <string name="advanced_settings" msgid="362895144495591463">"고급 설정"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"전문 사용자용 옵션"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"키 팝업 해제 지연"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"지연 없음"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"기본값"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"자동 대문자화"</string> <string name="quick_fixes" msgid="5353213327680897927">"빠른 수정"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"자주 발생하는 오타를 수정합니다."</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"영어(영국) 키보드"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"영어(미국) 키보드"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"스페인어 키보드"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"스페인어(미국) 키보드"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"프랑스어 키보드"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"프랑스어(캐나다) 키보드"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"프랑스어(스위스) 키보드"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"히브리어 키보드"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"이탈리아어 키보드"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"노르웨이어 키보드"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"네덜란드어 키보드"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"폴란드어 키보드"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"포르투갈어 키보드"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"러시아어 키보드"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"세르비아어 키보드"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"스웨덴어 키보드"</string> diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml index 8af3cb005..8f6eb2339 100644 --- a/java/res/values-land/dimens.xml +++ b/java/res/values-land/dimens.xml @@ -26,16 +26,22 @@ <!-- <dimen name="key_height">0.260in</dimen>--> <dimen name="key_bottom_gap">0.020in</dimen> <dimen name="popup_key_height">0.280in</dimen> - <dimen name="keyboard_top_padding">0.0in</dimen> - <dimen name="keyboard_bottom_padding">0.0in</dimen> + <dimen name="keyboard_top_padding">0.00in</dimen> + <dimen name="keyboard_bottom_padding">0.00in</dimen> + <dimen name="key_bottom_gap_ics">0.04in</dimen> + <dimen name="key_horizontal_gap_ics">0.01in</dimen> + <dimen name="keyboard_top_padding_ics">0.03in</dimen> + <dimen name="keyboard_bottom_padding_ics">0.00in</dimen> <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> <fraction name="key_letter_ratio">55%</fraction> - <fraction name="key_label_text_ratio">35%</fraction> - <dimen name="key_preview_offset">0.08in</dimen> + <fraction name="key_label_ratio">35%</fraction> + <fraction name="key_hint_letter_ratio">28%</fraction> + <fraction name="key_uppercase_letter_ratio">40%</fraction> <fraction name="key_preview_text_ratio">90%</fraction> + <dimen name="key_preview_offset">0.08in</dimen> + <dimen name="key_preview_offset_ics">0.01in</dimen> <dimen name="candidate_strip_height">38dip</dimen> <dimen name="candidate_strip_fading_edge_length">63dip</dimen> - <dimen name="spacebar_vertical_correction">2dip</dimen> <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> <!-- popup_key_height x 1.2 --> <dimen name="mini_keyboard_slide_allowance">0.336in</dimen> diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml index fbe50e005..ae32914ed 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Teksto taisymas"</string> <string name="ngram_category" msgid="5337109164339320257">"Pasiūlymai pagal ankstesnius žodžius"</string> <string name="misc_category" msgid="6894192814868233453">"Kitos parinktys"</string> + <string name="advanced_settings" msgid="362895144495591463">"Išplėstiniai nustatymai"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Parinktys ekspertams"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Pagr. išš. l. atsis. d."</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Be delsos"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Numatytasis"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Automatinis didžiųjų raidžių rašymas"</string> <string name="quick_fixes" msgid="5353213327680897927">"Greiti pataisymai"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Taiso dažnai padarytas rašybos klaidas"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Angliška (JK) klaviatūra"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Angliška (JAV) klaviatūra"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Ispaniška klaviatūra"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Ispaniška (JAV) klaviatūra"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Prancūziška klaviatūra"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Prancūziška (Kanada) klaviatūra"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Prancūziška (Šveicarija) klaviatūra"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebrajiška klaviatūra"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Itališka klaviatūra"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norvegiška klaviatūra"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Olandiška klaviatūra"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Lenkiška klaviatūra"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugališka klaviatūra"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Rusiška klaviatūra"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbiška klaviatūra"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Švediška klaviatūra"</string> diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml index 84bee5382..d455715e5 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -28,8 +28,17 @@ <string name="popup_on_keypress" msgid="123894815723512944">"Nospiežot taustiņu, parādīt uznirstošo izvēlni"</string> <string name="general_category" msgid="1859088467017573195">"Vispārīgi"</string> <string name="correction_category" msgid="2236750915056607613">"Teksta korekcija"</string> - <string name="ngram_category" msgid="5337109164339320257">"Ieteikumi, pamatojoties uz iepriekšējiem vārdiem"</string> + <string name="ngram_category" msgid="5337109164339320257">"Ieteikumi, kuru pamatā ir iepriekšējie vārdi"</string> <string name="misc_category" msgid="6894192814868233453">"Citas opcijas"</string> + <string name="advanced_settings" msgid="362895144495591463">"Papildu iestatījumi"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opcijas speciālistiem"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Taust. uzn. loga noraid. aizk."</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez aizkaves"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Noklusējums"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Automātiska lielo burtu lietošana"</string> <string name="quick_fixes" msgid="5353213327680897927">"Ātrie labojumi"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Nodrošina izplatītu drukas kļūdu labošanu."</string> @@ -38,7 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Vienmēr rādīt"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Rādīt portreta režīmā"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Vienmēr slēpt"</string> - <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Izmantot atstarpēšanas taustiņu, lai pārslēgtu valodu"</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Izmantot valodu pārslēgšanai atstarpēšanas taustiņu"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Rādīt iestatījumu taustiņu"</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Automātiski"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Vienmēr rādīt"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Angļu (Lielbritānija) tastatūra"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Angļu (ASV) tastatūra"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spāņu tastatūra"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spāņu (ASV) tastatūra"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Franču tastatūra"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Franču (Kanāda) tastatūra"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Franču (Šveices) tastatūra"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Ebreju tastatūra"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Itāļu tastatūra"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norvēģu tastatūra"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Holandiešu tastatūra"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Poļu valodas tastatūra"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugāļu valodas tastatūra"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Krievu tastatūra"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbu tastatūra"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Zviedru tastatūra"</string> diff --git a/java/res/values-ms/strings.xml b/java/res/values-ms/strings.xml new file mode 100644 index 000000000..532a89539 --- /dev/null +++ b/java/res/values-ms/strings.xml @@ -0,0 +1,160 @@ +<?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. +*/ + --> + +<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">"Papan kekunci Android"</string> + <string name="english_ime_settings" msgid="6661589557206947774">"Tetapan papan kekunci Android"</string> + <string name="english_ime_input_options" msgid="3909945612939668554">"Pilihan input"</string> + <string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar pada tekanan kekunci"</string> + <string name="sound_on_keypress" msgid="6093592297198243644">"Bunyi pada tekanan kekunci"</string> + <string name="popup_on_keypress" msgid="123894815723512944">"Pop timbul pada tekanan kunci"</string> + <string name="general_category" msgid="1859088467017573195">"Umum"</string> + <string name="correction_category" msgid="2236750915056607613">"Pembetulan teks"</string> + <string name="ngram_category" msgid="5337109164339320257">"Cadangan berdasarkan pada perkataan sebelumnya"</string> + <string name="misc_category" msgid="6894192814868233453">"Pilihan lain"</string> + <!-- no translation found for advanced_settings (362895144495591463) --> + <skip /> + <!-- no translation found for advanced_settings_summary (5193513161106637254) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) --> + <skip /> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> + <string name="auto_cap" msgid="1719746674854628252">"Huruf besar auto"</string> + <string name="quick_fixes" msgid="5353213327680897927">"Pembaikan pantas"</string> + <string name="quick_fixes_summary" msgid="3405028402510332373">"Membetulkan kesalahan menaip yang biasa"</string> + <string name="prefs_show_suggestions" msgid="8026799663445531637">"Tunjukkan cadangan pembetulan"</string> + <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Paparkan cadangan perkataan semasa menaip"</string> + <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Sentiasa tunjukkan"</string> + <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Tunjukkan pada mod potret"</string> + <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Sentiasa sembunyikan"</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Bar ruang tukar bhs"</string> + <string name="prefs_settings_key" msgid="4623341240804046498">"Tunjukkan kekunci tetapan"</string> + <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Automatik"</string> + <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Sentiasa tunjukkan"</string> + <string name="settings_key_mode_always_hide_name" msgid="7833948046716923994">"Sentiasa sembunyikan"</string> + <string name="auto_correction" msgid="4979925752001319458">"Auto Pembetulan"</string> + <string name="auto_correction_summary" msgid="5625751551134658006">"Bar ruang dan tanda baca secara automatik membetulkan perkataan yang ditaip salah"</string> + <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Matikan"</string> + <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Sederhana"</string> + <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresif"</string> + <string name="bigram_suggestion" msgid="2636414079905220518">"Cadangan bigram"</string> + <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Gunakan perkataan sebelumnya untuk memperbaik cadangan"</string> + <string name="bigram_prediction" msgid="8914273444762259739">"Ramalan bigram"</string> + <string name="bigram_prediction_summary" msgid="1747261921174300098">"Gunakan juga perkataan sebelumnya untuk ramalan"</string> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Disimpan"</string> + <string name="label_go_key" msgid="1635148082137219148">"Pergi"</string> + <string name="label_next_key" msgid="362972844525672568">"Seterusnya"</string> + <string name="label_done_key" msgid="2441578748772529288">"Selesai"</string> + <string name="label_send_key" msgid="2815056534433717444">"Hantar"</string> + <string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string> + <string name="label_more_key" msgid="3760239494604948502">"Lagi"</string> + <string name="label_pause_key" msgid="181098308428035340">"Jeda"</string> + <string name="label_wait_key" msgid="6402152600878093134">"Tnggu"</string> + <string name="voice_warning_title" msgid="4419354150908395008">"Input suara"</string> + <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Input suara tidak disokong untuk bahasa anda pada masa ini tetapi ia berfungsi dalam bahasa Inggeris."</string> + <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Input suara menggunakan pengecaman pertuturan Google. "<a href="http://m.google.com/privacy">"Dasar Polisi Mudah Alih"</a>" digunakan."</string> + <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"Untuk mematikan input suara, pergi ke tetapan kaedah input."</string> + <string name="voice_hint_dialog_message" msgid="1420686286820661548">"Untuk menggunakan input suara, tekan butang mikrofon."</string> + <string name="voice_listening" msgid="467518160751321844">"Sebutkan sekarang"</string> + <string name="voice_working" msgid="6666937792815731889">"Berfungsi"</string> + <string name="voice_initializing" msgid="661962047129906646"></string> + <string name="voice_error" msgid="5140896300312186162">"Ralat. Sila cuba lagi."</string> + <string name="voice_network_error" msgid="6649556447401862563">"Tidak boleh disambungkan"</string> + <string name="voice_too_much_speech" msgid="5746973620134227376">"Ralat, terlalu banyak pertuturan."</string> + <string name="voice_audio_error" msgid="5072707727016414454">"Masalah audio"</string> + <string name="voice_server_error" msgid="7807129913977261644">"Ralat pelayan"</string> + <string name="voice_speech_timeout" msgid="8461817525075498795">"Tiada pertuturan didengari"</string> + <string name="voice_no_match" msgid="4285117547030179174">"Tiada padanan ditemui"</string> + <string name="voice_not_installed" msgid="5552450909753842415">"Carian suara tidak dipasang"</string> + <string name="voice_swipe_hint" msgid="6943546180310682021">"Petunjuk"<b>":"</b>" Leret merentasi papan kekunci untuk bercakap"</string> + <string name="voice_punctuation_hint" msgid="1611389463237317754"><b>"Petunjuk:"</b>" Lain kali, cuba ucapkan tanda baca seperti \"titik\", \"koma\" atau \"tanda soal\"."</string> + <string name="cancel" msgid="6830980399865683324">"Batal"</string> + <string name="ok" msgid="7898366843681727667">"OK"</string> + <string name="voice_input" msgid="2466640768843347841">"Input suara"</string> + <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Hidpkn kekunci utama"</string> + <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Pd ppn kekunci simbl"</string> + <string name="voice_input_modes_off" msgid="3745699748218082014">"Matikan"</string> + <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"Mik. pd kekunci utma"</string> + <string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Mik. pd kekunci smbl"</string> + <string name="voice_input_modes_summary_off" msgid="63875609591897607">"Input suara dilmphkn"</string> + <string name="selectInputMethod" msgid="315076553378705821">"Pilih kaedah input"</string> + <string name="language_selection_title" msgid="1651299598555326750">"Bahasa input"</string> + <string name="language_selection_summary" msgid="187110938289512256">"Luncurkan jari pada spacebar untuk menukar bahasa"</string> + <string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Sentuh sekali lagi untuk menyimpan"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Kamus tersedia"</string> + <string name="prefs_enable_log" msgid="6620424505072963557">"Dayakan maklum balas pengguna"</string> + <string name="prefs_description_log" msgid="5827825607258246003">"Bantu memperbaik editor input ini dengan menghantar statistik penggunaan dan laporan runtuhan kepada Google."</string> + <string name="prefs_enable_recorrection" msgid="4588408906649533582">"Sentuh untuk membetulkan perkataan"</string> + <string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Sentuh perkataan yang dimasukkan untuk membetulkannya, hanya apabila cadangan boleh dilihat"</string> + <string name="keyboard_layout" msgid="437433231038683666">"Tema Papan Kekunci"</string> + <string name="subtype_mode_cs_keyboard" msgid="1141718931112377586">"Papan kekunci Czech"</string> + <string name="subtype_mode_ar_keyboard" msgid="2655338636329774995">"Papan kekunci bahasa Arab"</string> + <string name="subtype_mode_da_keyboard" msgid="1243570804427922104">"Papan kekunci Denmark"</string> + <string name="subtype_mode_de_keyboard" msgid="1990979135959462145">"Papan kekunci Jerman"</string> + <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Papan kekunci Inggeris (UK)"</string> + <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Papan kekunci Inggeris (AS)"</string> + <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Papan kekunci Sepanyol"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> + <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Papan kekunci Perancis"</string> + <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Papan kekunci Perancis (Kanada)"</string> + <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Ppan kekunci Perancis (Switzerland)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> + <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Papan kekunci bahasa Ibrani"</string> + <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Papan kekunci Itali"</string> + <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Papan kekunci Norway"</string> + <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Papan kekunci Belanda"</string> + <!-- no translation found for subtype_mode_pl_keyboard (2225816414814396047) --> + <skip /> + <!-- no translation found for subtype_mode_pt_keyboard (7503997804861754840) --> + <skip /> + <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Papan kekunci Rusia"</string> + <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Papan kekunci Serbia"</string> + <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Papan kekunci Sweden"</string> + <string name="subtype_mode_af_voice" msgid="7542487489657902699">"Suara Bahasa Afrikaans"</string> + <string name="subtype_mode_cs_voice" msgid="1136386688120958641">"Suara Orang Czech"</string> + <string name="subtype_mode_de_voice" msgid="8378803143958089866">"Suara Orang Jerman"</string> + <string name="subtype_mode_en_voice" msgid="6643420989651848728">"Suara Bahasa Inggeris"</string> + <string name="subtype_mode_es_voice" msgid="1323473601346507487">"Suara Orang Sepanyol"</string> + <string name="subtype_mode_fr_voice" msgid="4675914209337824269">"Suara Orang Perancis"</string> + <string name="subtype_mode_it_voice" msgid="5077373057157441323">"Suara Bahasa Itali"</string> + <string name="subtype_mode_ja_voice" msgid="6604859132669646367">"Suara Orang Jepun"</string> + <string name="subtype_mode_ko_voice" msgid="4890391190762324561">"Suara Orang Korea"</string> + <string name="subtype_mode_nl_voice" msgid="2603552312869575021">"Suara Bahasa Belanda"</string> + <string name="subtype_mode_pl_voice" msgid="2076196021014840487">"Suara Orang Poland"</string> + <string name="subtype_mode_pt_voice" msgid="8036522712795994397">"Suara Orang Portugis"</string> + <string name="subtype_mode_ru_voice" msgid="8034596947963787529">"Suara Orang Rusia"</string> + <string name="subtype_mode_tr_voice" msgid="3402067436761140005">"Suara Orang Turki"</string> + <string name="subtype_mode_yue_voice" msgid="1576887891614624263">"Cina, Suara Bahasa Yue"</string> + <string name="subtype_mode_zh_voice" msgid="4360533229467271152">"Cina, Suara Bahasa Mandarin"</string> + <string name="subtype_mode_zu_voice" msgid="1146122571698884636">"Suara bahasa isiZulu"</string> + <string name="prefs_usability_study_mode" msgid="6937813623647419810">"Mod Kajian Kebolehgunaan"</string> +</resources> diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index e20c9515e..af5dd3ce3 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Tekstkorrigering"</string> <string name="ngram_category" msgid="5337109164339320257">"Forslag basert på tidligere ord"</string> <string name="misc_category" msgid="6894192814868233453">"Andre alternativer"</string> + <string name="advanced_settings" msgid="362895144495591463">"Avanserte innstillinger"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Alternativer for ekspertbrukere"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tregt tastevindu"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"U/ forsinkelse"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Stor forbokstav"</string> <string name="quick_fixes" msgid="5353213327680897927">"Autokorrektur"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Retter vanlige stavefeil"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Engelsk tastatur (Storbritannia)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Engelsk tastatur (USA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spansk tastatur"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spansk tastatur (USA)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Fransk tastatur"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Fransk tastatur (Canada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Fransk tastatur (Sveits)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebraisk tastatur"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italiensk tastatur"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norsk tastatur"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Nederlandsk tastatur"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Polsk tastatur"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugisisk tastatur"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Russisk tastatur"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbisk tastatur"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Svensk tastatur"</string> diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index 89b714bc8..6c4cb135c 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Tekstcorrectie"</string> <string name="ngram_category" msgid="5337109164339320257">"Suggesties op basis van eerdere woorden"</string> <string name="misc_category" msgid="6894192814868233453">"Andere opties"</string> + <string name="advanced_settings" msgid="362895144495591463">"Geavanceerde instellingen"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opties voor ervaren gebruikers"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Afwijz.vertr. toetspop-up"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Geen vertraging"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standaard"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Auto-hoofdlettergebruik"</string> <string name="quick_fixes" msgid="5353213327680897927">"Snelle oplossingen"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Hiermee worden veelvoorkomende typefouten gecorrigeerd"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Engels toetsenbord (VK)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Engels toetsenbord (VS)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spaans toetsenbord"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spaans toetsenbord (VS)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Frans toetsenbord"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Frans toetsenbord (Canada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Frans toetsenbord (Zwitserland)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebreeuws toetsenbord"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italiaans toetsenbord"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Noors toetsenbord"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Nederlands toetsenbord"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Pools toetsenbord"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugees toetsenbord"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Russisch toetsenbord"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Servisch toetsenbord"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Zweeds toetsenbord"</string> diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index 65240d748..2c39c532c 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Poprawianie tekstu"</string> <string name="ngram_category" msgid="5337109164339320257">"Podpowiedzi na podstawie wcześniejszych słów"</string> <string name="misc_category" msgid="6894192814868233453">"Inne opcje"</string> + <string name="advanced_settings" msgid="362895144495591463">"Ustawienia zaawansowane"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opcje dla zaawansowanych użytkowników"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Opóźnienie wyłączenia wyskakującego okienka"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez opóźnienia"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Wartość domyślna"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Wstawiaj wielkie litery"</string> <string name="quick_fixes" msgid="5353213327680897927">"Szybkie poprawki"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Poprawia częste błędy wpisywania"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Klawiatura angielska (UK)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Klawiatura angielska (USA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Klawiatura hiszpańska"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Klawiatura hiszpańska (USA)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Klawiatura francuska"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Klawiatura francuska (Kanada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Klawiatura francuska (Szwajcaria)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Klawiatura hebrajska"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Klawiatura włoska"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Klawiatura norweska"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Klawiatura holenderska"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Klawiatura polska"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Klawiatura portugalska"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Klawiatura rosyjska"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Klawiatura serbska"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Klawiatura szwedzka"</string> diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index b972ce049..cae6f49f7 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Correção de texto"</string> <string name="ngram_category" msgid="5337109164339320257">"Sugestões baseadas em palavras anteriores"</string> <string name="misc_category" msgid="6894192814868233453">"Outras opções"</string> + <string name="advanced_settings" msgid="362895144495591463">"Definições avançadas"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opções para utilizadores experientes"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Atraso p/ ignorar pop-up"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sem atraso"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predefinido"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Letras maiúsculas automáticas"</string> <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> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Teclado inglês (Reino Unido)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Teclado inglês (EUA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Teclado espanhol"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Teclado espanhol (EUA)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Teclado francês"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Teclado francês (Canadá)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Teclado francês (Suíça)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Teclado hebraico"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Teclado italiano"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Teclado norueguês"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Teclado holandês"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Teclado Polaco"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Teclado Português"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Teclado russo"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Teclado sérvio"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Teclado sueco"</string> diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index a999dc67e..62c20eb82 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Correção de texto"</string> <string name="ngram_category" msgid="5337109164339320257">"Sugestões baseadas em palavras anteriores"</string> <string name="misc_category" msgid="6894192814868233453">"Outras opções"</string> + <string name="advanced_settings" msgid="362895144495591463">"Configurações avançadas"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opções para usuários experientes"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Dispens. atraso chave princ."</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sem atraso"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Padrão"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Capitaliz. automática"</string> <string name="quick_fixes" msgid="5353213327680897927">"Reparos rápidos"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corrige erros comuns de digitação"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Teclado para inglês (Reino Unido)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Teclado para inglês (EUA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Teclado para espanhol"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Teclado para espanhol"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Teclado para francês"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Teclado para francês (Canadá)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Teclado para francês (Suíça)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Teclado hebraico"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Teclado para italiano"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Teclado para norueguês"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Teclado para holandês"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Teclado polonês"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Teclado em português"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Teclado para russo"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Teclado para sérvio"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Teclado para sueco"</string> diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml index b0c1bea24..ddb40e809 100644 --- a/java/res/values-rm/strings.xml +++ b/java/res/values-rm/strings.xml @@ -35,6 +35,20 @@ <skip /> <!-- no translation found for misc_category (6894192814868233453) --> <skip /> + <!-- no translation found for advanced_settings (362895144495591463) --> + <skip /> + <!-- no translation found for advanced_settings_summary (5193513161106637254) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) --> + <skip /> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Maiusclas automaticas"</string> <string name="quick_fixes" msgid="5353213327680897927">"Correcturas sveltas"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Curregia sbagls da tippar currents"</string> @@ -145,7 +159,7 @@ <skip /> <!-- no translation found for subtype_mode_es_keyboard (1775125478866113148) --> <skip /> - <!-- no translation found for subtype_mode_es_US_keyboard (3702125193532262008) --> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> <skip /> <!-- no translation found for subtype_mode_fr_keyboard (8016515336759761014) --> <skip /> @@ -153,6 +167,10 @@ <skip /> <!-- no translation found for subtype_mode_fr_CH_keyboard (6742806653181621228) --> <skip /> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <!-- no translation found for subtype_mode_iw_keyboard (1787536828253289950) --> <skip /> <!-- no translation found for subtype_mode_it_keyboard (4934199655425394484) --> @@ -161,6 +179,10 @@ <skip /> <!-- no translation found for subtype_mode_nl_keyboard (5090278083256037936) --> <skip /> + <!-- no translation found for subtype_mode_pl_keyboard (2225816414814396047) --> + <skip /> + <!-- no translation found for subtype_mode_pt_keyboard (7503997804861754840) --> + <skip /> <!-- no translation found for subtype_mode_ru_keyboard (1383995915064277943) --> <skip /> <!-- no translation found for subtype_mode_sr_keyboard (5019440799612208168) --> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index 0fcefd1f2..960ced552 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Corectare text"</string> <string name="ngram_category" msgid="5337109164339320257">"Sugestii bazate pe cuvinte anterioare"</string> <string name="misc_category" msgid="6894192814868233453">"Alte opţiuni"</string> + <string name="advanced_settings" msgid="362895144495591463">"Setări avansate"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Opţiuni pt. utiliz. experţi"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Înt. înch. pop-up esenţ."</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Fără întârziere"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Prestabilit"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Auto-capitalizare"</string> <string name="quick_fixes" msgid="5353213327680897927">"Remedieri rapide"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Corectează greşelile introduse frecvent"</string> @@ -38,7 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Afişaţi întotdeauna"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Afişaţi în modul Portret"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ascundeţi întotdeauna"</string> - <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Sp. pt. comut. lb."</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Spacebar – selector limbă"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Afişaţi tasta setări"</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Automat"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Afişaţi întotdeauna"</string> @@ -48,10 +57,10 @@ <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Dezactivată"</string> <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderată"</string> <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivă"</string> - <string name="bigram_suggestion" msgid="2636414079905220518">"Sugestii pentru cuvinte de două litere"</string> + <string name="bigram_suggestion" msgid="2636414079905220518">"Sugestii de tip bigram"</string> <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Utilizaţi cuvântul anterior pentru a îmbunătăţi sugestia"</string> - <string name="bigram_prediction" msgid="8914273444762259739">"Sugestii pentru cuvinte de două litere"</string> - <string name="bigram_prediction_summary" msgid="1747261921174300098">"De asemenea, utilizaţi pentru sugestii cuvântul precedent"</string> + <string name="bigram_prediction" msgid="8914273444762259739">"Predicţii de tip bigram"</string> + <string name="bigram_prediction_summary" msgid="1747261921174300098">"Se utilizează şi cuvântul precedent pentru predicţii"</string> <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: salvat"</string> <string name="label_go_key" msgid="1635148082137219148">"OK"</string> <string name="label_next_key" msgid="362972844525672568">"Înainte"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Tastatură engleză (Marea Britanie)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Tastatură engleză (S.U.A.)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Tastatură spaniolă"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Tastatură spaniolă (S.U.A.)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Tastatură franceză"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Tastatură franceză (Canada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Tastatură franceză (Elveţia)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Tastatură ebraică"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Tastatură italiană"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Tastatură norvegiană"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Tastatură olandeză"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Tastatură poloneză"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Tastatură portugheză"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Tastatură rusă"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Tastatură sârbă"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Tastatură suedeză"</string> diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index 2e8577ea1..68ec65038 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Исправление текста"</string> <string name="ngram_category" msgid="5337109164339320257">"Подсказки, основанные на предыдущих словах"</string> <string name="misc_category" msgid="6894192814868233453">"Другие варианты"</string> + <string name="advanced_settings" msgid="362895144495591463">"Расширенные настройки"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Для опытных пользователей"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Задержка закрытия"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задержки"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"По умолчанию"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Заглавные автоматически"</string> <string name="quick_fixes" msgid="5353213327680897927">"Быстрое исправление"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Исправлять распространенные опечатки"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Клавиатура: английская (Великобритания)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Клавиатура: английская (США)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Клавиатура: испанская"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Клавиатура: испанская (США)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Клавиатура: французская"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Клавиатура: французская"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Клавиатура: французская (Швейцария)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Клавиатура на иврите"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Клавиатура: итальянская"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Клавиатура: норвежская"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Клавиатура: голландская"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Польская клавиатура"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Португальская раскладка"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Клавиатура: русская"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Клавиатура: сербская"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Голос: шведский"</string> diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index eeefa820f..3d5dd5878 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Oprava textu"</string> <string name="ngram_category" msgid="5337109164339320257">"Návrhy na základe predchádzajúcich slov"</string> <string name="misc_category" msgid="6894192814868233453">"Ďalšie možnosti"</string> + <string name="advanced_settings" msgid="362895144495591463">"Rozšírené nastavenia"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Možnosti pre skúsených používateľov"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Onesk. zrušenia kľúč. kon. okna"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez oneskorenia"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predvolená"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Veľké písmená automaticky"</string> <string name="quick_fixes" msgid="5353213327680897927">"Rýchle opravy"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Opravuje najčastejšie chyby pri písaní"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"klávesnica – angličtina (br.)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"klávesnica – angličtina (am.)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"klávesnica – španielčina"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"klávesnica – španielčina (am.)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"klávesnica – francúzština"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"klávesnica – francúzština (Kanada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"klávesnica – francúzština (Švajč.)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"klávesnica – hebrejčina"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"klávesnica – taliančina"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"klávesnica – nórčina"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"klávesnica – holandčina"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Poľská klávesnica"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugalská klávesnica"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"klávesnica – ruština"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"hlas – srbčina"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"klávesnica – švédčina"</string> diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml index 91f9036e6..a747f4c66 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Popravek besedila"</string> <string name="ngram_category" msgid="5337109164339320257">"Predlogi, ki temeljijo na prejšnjih besedah"</string> <string name="misc_category" msgid="6894192814868233453">"Druge možnosti"</string> + <string name="advanced_settings" msgid="362895144495591463">"Dodatne nastavitve"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Možnosti za izkušene uporabnike"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Zakas. okna za zavrnitev"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Brez zamude"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Privzeto"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Samodejne velike začetnice"</string> <string name="quick_fixes" msgid="5353213327680897927">"Hitri popravki"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Popravi pogoste tipkarske napake"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Tipkovnica za britansko angleščino"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Tipkovnica za ameriško angleščino"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Španska tipkovnica"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Tipkovnica za ameriško španščino"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Francoska tipkovnica"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Tipkovnica za kanadsko francoščino"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Tipkovnica za švicarsko francoščino"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebrejska tipkovnica"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italijanska tipkovnica"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norveška tipkovnica"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Nizozemska tipkovnica"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Poljska tipkovnica"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugalska tipkovnica"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Ruska tipkovnica"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Srbska tipkovnica"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Švedska tipkovnica"</string> diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml index b20f1df2e..025ce91b5 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -29,7 +29,16 @@ <string name="general_category" msgid="1859088467017573195">"Опште"</string> <string name="correction_category" msgid="2236750915056607613">"Исправљање текста"</string> <string name="ngram_category" msgid="5337109164339320257">"Предлози на основу претходних речи"</string> - <string name="misc_category" msgid="6894192814868233453">"Друге опције:"</string> + <string name="misc_category" msgid="6894192814868233453">"Друге опције"</string> + <string name="advanced_settings" msgid="362895144495591463">"Напредна подешавања"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Опције за искусне кориснике"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Одложи одбац. иск. прозора тастера"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без одлагања"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Подразумевано"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Аутоматски унос великих слова"</string> <string name="quick_fixes" msgid="5353213327680897927">"Брзе исправке"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Исправља честе грешке у куцању"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Језик тастатуре: енглески (УК)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Језик тастатуре: енглески (САД)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Језик тастатуре: шпански"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Језик тастатуре: шпански (САД)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Језик тастатуре: француски"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Језик тастатуре: француски (Канада)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Језик тастатуре: француски (Швајц.)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Језик тастатуре: хебрејски"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Језик тастатуре: италијански"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Језик тастатуре: норвешки"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Језик тастатуре: холандски"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Језик тастатуре: пољски"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Језик тастатуре: португалски"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Језик тастатуре: руски"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Језик тастатуре: српски"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Језик тастатуре: шведски"</string> diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index 2d35fd87b..cf0fcf899 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Textkorrigering"</string> <string name="ngram_category" msgid="5337109164339320257">"Förslag baserade på tidigare ord"</string> <string name="misc_category" msgid="6894192814868233453">"Andra alternativ"</string> + <string name="advanced_settings" msgid="362895144495591463">"Avancerade inställningar"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Alternativ för expertanvändare"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ta bort popup-fördröjning"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Fördröj inte"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Automatiska versaler"</string> <string name="quick_fixes" msgid="5353213327680897927">"Snabba lösningar"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Åtgärdar automatiskt vanliga misstag"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Engelskt tangentbord (Storbrit.)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Engelskt tangentbord (USA)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spanskt tangentbord"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spanskt tangentbord (USA)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Franskt tangentbord"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Franskt tangentbord (Kanada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Franskt tangentbord (Schweiz)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebreiskt tangentbord"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italienskt tangentbord"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norskt tangentbord"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Holländskt tangentbord"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Polskt tangentbord"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portugisiskt tangentbord"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Ryskt tangentbord"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbiskt tangentbord"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Svenskt tangentbord"</string> diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml new file mode 100644 index 000000000..44f0722da --- /dev/null +++ b/java/res/values-sw/strings.xml @@ -0,0 +1,177 @@ +<?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. +*/ + --> + +<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">"Kibodi ya Android"</string> + <string name="english_ime_settings" msgid="6661589557206947774">"Mipangilio ya kibodi ya Android"</string> + <string name="english_ime_input_options" msgid="3909945612939668554">"Chaguo za uingizaji"</string> + <string name="vibrate_on_keypress" msgid="5258079494276955460">"Tetema unabofya kitufe"</string> + <string name="sound_on_keypress" msgid="6093592297198243644">"Toa sauti unapobofya kitufe"</string> + <string name="popup_on_keypress" msgid="123894815723512944">"Ibuka kitufe kinapobonyezwa"</string> + <!-- no translation found for general_category (1859088467017573195) --> + <skip /> + <!-- no translation found for correction_category (2236750915056607613) --> + <skip /> + <!-- no translation found for ngram_category (5337109164339320257) --> + <skip /> + <!-- no translation found for misc_category (6894192814868233453) --> + <skip /> + <!-- no translation found for advanced_settings (362895144495591463) --> + <skip /> + <!-- no translation found for advanced_settings_summary (5193513161106637254) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) --> + <skip /> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> + <string name="auto_cap" msgid="1719746674854628252">"Uwekaji wa herufi kubwa kiotomatiki"</string> + <string name="quick_fixes" msgid="5353213327680897927">"Utatuzi wa haraka"</string> + <string name="quick_fixes_summary" msgid="3405028402510332373">"Husahihisha makosa ya kawaida yaliyoandikwa"</string> + <!-- no translation found for prefs_show_suggestions (8026799663445531637) --> + <skip /> + <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Onyesha maneno yaliyopendekezwa wakati unachapa"</string> + <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Onyesha kila wakati"</string> + <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Onyesha kwenye hali wima"</string> + <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ficha kila wakati"</string> + <!-- no translation found for prefs_use_spacebar_language_switch (8828538114550634449) --> + <skip /> + <string name="prefs_settings_key" msgid="4623341240804046498">"Onyesha kitufe cha mipangilio"</string> + <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Kiotomatiki"</string> + <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Onyesha kila wakati"</string> + <string name="settings_key_mode_always_hide_name" msgid="7833948046716923994">" Ficha kila mara"</string> + <string name="auto_correction" msgid="4979925752001319458">"Usahihishaji Kioto"</string> + <!-- outdated translation 6881047311475758267 --> <string name="auto_correction_summary" msgid="5625751551134658006">"Sahihisha neno lililotangulia kiotomatiki"</string> + <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Zima"</string> + <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Ya wastani"</string> + <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Ya hima"</string> + <!-- outdated translation 1323347224043514969 --> <string name="bigram_suggestion" msgid="2636414079905220518">"Mapendekezo ya Bigramu"</string> + <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Tumia neno la hapo awali ili kuboresha pendekezo"</string> + <!-- no translation found for bigram_prediction (8914273444762259739) --> + <skip /> + <!-- no translation found for bigram_prediction_summary (1747261921174300098) --> + <skip /> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Imehifadhiwa"</string> + <string name="label_go_key" msgid="1635148082137219148">"Nenda"</string> + <string name="label_next_key" msgid="362972844525672568">"Ifuatayo"</string> + <string name="label_done_key" msgid="2441578748772529288">"Kwisha"</string> + <string name="label_send_key" msgid="2815056534433717444">"Tuma"</string> + <string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string> + <string name="label_more_key" msgid="3760239494604948502">"Zaidi"</string> + <string name="label_pause_key" msgid="181098308428035340">"Pumzisha"</string> + <string name="label_wait_key" msgid="6402152600878093134">"Subiri"</string> + <string name="voice_warning_title" msgid="4419354150908395008">"Uingizaji wa sauti"</string> + <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Uingizaji wa sauti hauhimiliwi kwa lugha yako kwa sasa, lakini inafanya kazi kwa Kiingereza."</string> + <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Uingizaji wa sauti hutumia utambuaji wa usemi wa Google. "<a href="http://m.google.com/privacy">"Sera ya Faragha ya Simu za mkononi "</a>" hutumika."</string> + <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"Ili kuzima uingizaji sauti, nenda kwa mipangilio ya mbinu ya uingizaji."</string> + <string name="voice_hint_dialog_message" msgid="1420686286820661548">"Ili kutumia uingizaji wa sauti, bonyeza kitufe cha maikrofoni."</string> + <string name="voice_listening" msgid="467518160751321844">"Ongea sasa"</string> + <string name="voice_working" msgid="6666937792815731889">"Inafanya kazi"</string> + <string name="voice_initializing" msgid="661962047129906646"></string> + <string name="voice_error" msgid="5140896300312186162">"Hitilafu. Tafadhali jaribu tena."</string> + <string name="voice_network_error" msgid="6649556447401862563">"Haiwezi kuunganisha"</string> + <string name="voice_too_much_speech" msgid="5746973620134227376">"Hitilafu, usemi ni zaidi."</string> + <string name="voice_audio_error" msgid="5072707727016414454">"Tatizo la sauti"</string> + <string name="voice_server_error" msgid="7807129913977261644">"Hitilafu ya Seva"</string> + <string name="voice_speech_timeout" msgid="8461817525075498795">"Hakuna matamshi yaliyosikizwa"</string> + <string name="voice_no_match" msgid="4285117547030179174">"Hakuna zinazolingana zilizopatikana."</string> + <string name="voice_not_installed" msgid="5552450909753842415">"Utafutaji wa sauti haujawekwa"</string> + <string name="voice_swipe_hint" msgid="6943546180310682021"><b>"Kidokezo:"</b>" Telezesha kidole kwenye kibodi ili utamke"</string> + <string name="voice_punctuation_hint" msgid="1611389463237317754"><b>"Kidokezo:"</b>" Wakati mwingine, jaribu kutamka uakifishaji kama vile \"kituo\", \"koma\", au \"kiulizio cha swali\"."</string> + <string name="cancel" msgid="6830980399865683324">"Ghairi"</string> + <string name="ok" msgid="7898366843681727667">"Sawa"</string> + <string name="voice_input" msgid="2466640768843347841">"Uingizaji wa sauti"</string> + <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Kwenye kibodi kuu"</string> + <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Kwenye kibodi ya ishara"</string> + <string name="voice_input_modes_off" msgid="3745699748218082014">"Zima"</string> + <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"Maikrofoni kwenye kibodi kuu"</string> + <string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Maikrofoni kwenye kibodi ya ishara"</string> + <string name="voice_input_modes_summary_off" msgid="63875609591897607">"Uingizaji sauti umelemazwa"</string> + <string name="selectInputMethod" msgid="315076553378705821">"Chagua mtindo wa uingizaji"</string> + <string name="language_selection_title" msgid="1651299598555326750">"Lugha za uingizaji"</string> + <string name="language_selection_summary" msgid="187110938289512256">"Telezesha kidole kwenye kitufe cha nafasi ili kubadilisha lugha"</string> + <string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Gusa tena ili kuhifadhi"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Kamusi inapatikana"</string> + <string name="prefs_enable_log" msgid="6620424505072963557">"Wezesha maoni ya watumiaji"</string> + <string name="prefs_description_log" msgid="5827825607258246003">"Saidia kuimarisha mbinu ya uingizaji wa kihariri, kwa kutuma takwimu za matumizi na ripoti za kuvurugika kwa Google kiotomatiki."</string> + <string name="prefs_enable_recorrection" msgid="4588408906649533582">"Gusa ili kurekebisha maneno"</string> + <string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Gusa maneno yaliyoingizwa ili kuyasahihisha, wakati mapendekezo yanaonekana tu"</string> + <string name="keyboard_layout" msgid="437433231038683666">"Maandhari ya Kibodi"</string> + <string name="subtype_mode_cs_keyboard" msgid="1141718931112377586">"Kibodi ya Kicheki"</string> + <!-- no translation found for subtype_mode_ar_keyboard (2655338636329774995) --> + <skip /> + <string name="subtype_mode_da_keyboard" msgid="1243570804427922104">"Kibodi ya Kidenmaki"</string> + <string name="subtype_mode_de_keyboard" msgid="1990979135959462145">"Kibodi ya Kijerumani"</string> + <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Kibodi ya Kiingereza (Uingereza)"</string> + <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Kibodi ya Kiingereza (Marekani)"</string> + <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Kibodi ya Kihispania"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> + <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Kibodi ya Kifaransa"</string> + <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Kibodi ya Kifaransa (Kanada)"</string> + <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Kibodi ya Kifaransa (Uswizi)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> + <!-- no translation found for subtype_mode_iw_keyboard (1787536828253289950) --> + <skip /> + <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Kibodi ya Kiitaliano"</string> + <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Kibodi ya Kinorwe"</string> + <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Kibodi ya Kiholanzi"</string> + <!-- no translation found for subtype_mode_pl_keyboard (2225816414814396047) --> + <skip /> + <!-- no translation found for subtype_mode_pt_keyboard (7503997804861754840) --> + <skip /> + <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Kibodi ya Kirusi"</string> + <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Kibodi ya Kiserbia"</string> + <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Kibodi ya Kiswidi"</string> + <!-- no translation found for subtype_mode_af_voice (7542487489657902699) --> + <skip /> + <string name="subtype_mode_cs_voice" msgid="1136386688120958641">"Sauti ya Kicheki"</string> + <string name="subtype_mode_de_voice" msgid="8378803143958089866">"Sauti ya Kijerumani"</string> + <!-- no translation found for subtype_mode_en_voice (6643420989651848728) --> + <skip /> + <string name="subtype_mode_es_voice" msgid="1323473601346507487">"Sauti ya Kihispania"</string> + <string name="subtype_mode_fr_voice" msgid="4675914209337824269">"Sauti ya Kifaransa"</string> + <!-- no translation found for subtype_mode_it_voice (5077373057157441323) --> + <skip /> + <string name="subtype_mode_ja_voice" msgid="6604859132669646367">"Sauti ya Kijapani"</string> + <string name="subtype_mode_ko_voice" msgid="4890391190762324561">"Sauti ya Kikorea"</string> + <!-- no translation found for subtype_mode_nl_voice (2603552312869575021) --> + <skip /> + <string name="subtype_mode_pl_voice" msgid="2076196021014840487">"Sauti ya Kipolandi"</string> + <string name="subtype_mode_pt_voice" msgid="8036522712795994397">"Sauti ya Kireno"</string> + <string name="subtype_mode_ru_voice" msgid="8034596947963787529">"Sauti ya Kirusi"</string> + <string name="subtype_mode_tr_voice" msgid="3402067436761140005">"Sauti ya Kituruki"</string> + <!-- no translation found for subtype_mode_yue_voice (1576887891614624263) --> + <skip /> + <!-- no translation found for subtype_mode_zh_voice (4360533229467271152) --> + <skip /> + <!-- no translation found for subtype_mode_zu_voice (1146122571698884636) --> + <skip /> + <string name="prefs_usability_study_mode" msgid="6937813623647419810">"Hali ya Uchunguzi wa Utumizi"</string> +</resources> diff --git a/java/res/values-sw600dp-land/dimens.xml b/java/res/values-sw600dp-land/dimens.xml new file mode 100644 index 000000000..6e583e3bf --- /dev/null +++ b/java/res/values-sw600dp-land/dimens.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** 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> + <!-- keyboardHeight = key_height*4 + key_bottom_gap*3 --> + <dimen name="keyboardHeight">45.0mm</dimen> + <fraction name="minKeyboardHeight">45%p</fraction> + <!-- key_height + key_bottom_gap = popup_key_height --> + <!-- <dimen name="key_height">14.5mm</dimen> --> + <dimen name="key_bottom_gap">1.3mm</dimen> + <dimen name="key_horizontal_gap">1.3mm</dimen> + <dimen name="keyboard_top_padding">1.1mm</dimen> + <dimen name="keyboard_bottom_padding">0.0mm</dimen> + <dimen name="key_bottom_gap_ics">1.3mm</dimen> + <dimen name="key_horizontal_gap_ics">1.3mm</dimen> + <dimen name="keyboard_top_padding_ics">1.1mm</dimen> + <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> + <dimen name="popup_key_height">13.0mm</dimen> + + <fraction name="key_letter_ratio">45%</fraction> + <fraction name="key_label_ratio">32%</fraction> + <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_uppercase_letter_ratio">29%</fraction> + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">18dip</dimen> + <dimen name="candidate_strip_padding">40.0mm</dimen> +</resources> diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml new file mode 100644 index 000000000..75c0edf87 --- /dev/null +++ b/java/res/values-sw600dp/config.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** 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> + <bool name="config_enable_show_settings_key_option">true</bool> + <bool name="config_enable_show_voice_key_option">false</bool> + <bool name="config_enable_show_popup_on_keypress_option">false</bool> + <bool name="config_enable_show_recorrection_option">false</bool> + <bool name="config_enable_quick_fixes_option">false</bool> + <bool name="config_enable_bigram_suggestions_option">false</bool> + <bool name="config_swipe_down_dismiss_keyboard_enabled">false</bool> + <bool name="config_sliding_key_input_enabled">false</bool> + <bool name="config_digit_popup_characters_enabled">false</bool> + <!-- Whether or not Popup on key press is enabled by default --> + <bool name="config_default_popup_preview">false</bool> + <bool name="config_default_sound_enabled">true</bool> + <bool name="config_auto_correction_spacebar_led_enabled">false</bool> + <bool name="config_use_spacebar_language_switcher">false</bool> + <!-- Showing mini keyboard, just above the touched point if true, aligned to the key if false --> + <bool name="config_show_mini_keyboard_at_touched_point">true</bool> + <!-- The language is never displayed if == 0, always displayed if < 0 --> + <integer name="config_delay_before_fadeout_language_on_spacebar">1200</integer> + <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. --> + <string name="config_default_keyboard_theme_id" translatable="false">5</string> + <string name="config_text_size_of_language_on_spacebar" translatable="false">medium</string> + <integer name="config_max_popup_keyboard_column">5</integer> +</resources> diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml new file mode 100644 index 000000000..274b62b4c --- /dev/null +++ b/java/res/values-sw600dp/dimens.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** 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> + <!-- keyboardHeight = key_height*4 + key_bottom_gap*3 --> + <dimen name="keyboardHeight">48.0mm</dimen> + <fraction name="maxKeyboardHeight">50%p</fraction> + <fraction name="minKeyboardHeight">-35.0%p</fraction> + <!-- key_height + key_bottom_gap = popup_key_height --> + <!-- <dimen name="key_height">14.5mm</dimen> --> + <dimen name="key_bottom_gap">1.0mm</dimen> + <dimen name="key_horizontal_gap">1.0mm</dimen> + <dimen name="popup_key_height">10.0mm</dimen> + <dimen name="keyboard_top_padding">1.1mm</dimen> + <dimen name="keyboard_bottom_padding">0.0mm</dimen> + <dimen name="key_bottom_gap_ics">1.0mm</dimen> + <dimen name="key_horizontal_gap_ics">1.0mm</dimen> + <dimen name="keyboard_top_padding_ics">1.1mm</dimen> + <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> + <dimen name="mini_keyboard_key_horizontal_padding">12dip</dimen> + <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> + <!-- popup_key_height x 1.2 --> + <dimen name="mini_keyboard_slide_allowance">15.6mm</dimen> + <!-- popup_key_height x -1.0 --> + <dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen> + + <fraction name="key_letter_ratio">37%</fraction> + <fraction name="key_label_ratio">22%</fraction> + <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_uppercase_letter_ratio">25%</fraction> + <fraction name="key_preview_text_ratio">50%</fraction> + <dimen name="key_preview_height">15.0mm</dimen> + <dimen name="key_preview_offset">0.1in</dimen> + <dimen name="key_preview_offset_ics">0.05in</dimen> + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> + + <dimen name="candidate_strip_height">46dip</dimen> + <dimen name="candidate_strip_padding">15.0mm</dimen> + <dimen name="candidate_min_width">0.3in</dimen> + <dimen name="candidate_padding">12dip</dimen> + <dimen name="candidate_text_size">22dip</dimen> +</resources> diff --git a/java/res/values/durations.xml b/java/res/values-sw600dp/donottranslate.xml index 92af68e39..6d94c2811 100644 --- a/java/res/values/durations.xml +++ b/java/res/values-sw600dp/donottranslate.xml @@ -1,25 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> <!-- -/* +/* ** -** Copyright 2008, The Android Open Source Project +** Copyright 2011, The Android Open Source Project ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at +** 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 +** 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 +** 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> - <!-- Vibration duration in milliseconds, for key presses in the IME. This can be hardware - dependent and may require overriding with a device specific overlay. --> - <integer name="vibrate_duration_ms">40</integer> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Default value of the visibility of the suggestion strip --> + <string name="prefs_suggestion_visibility_default_value" translatable="false">1</string> </resources> diff --git a/java/res/values-xlarge-land/dimens.xml b/java/res/values-sw768dp-land/dimens.xml index ade125639..74eb08aa3 100644 --- a/java/res/values-xlarge-land/dimens.xml +++ b/java/res/values-sw768dp-land/dimens.xml @@ -21,17 +21,25 @@ <resources> <!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=14.5mm --> <dimen name="keyboardHeight">58.0mm</dimen> + <fraction name="minKeyboardHeight">45%p</fraction> <!-- key_height + key_bottom_gap = popup_key_height --> <!-- <dimen name="key_height">14.5mm</dimen> --> - <dimen name="key_bottom_gap">0.0mm</dimen> - <dimen name="key_horizontal_gap">0.0mm</dimen> - <dimen name="popup_key_height">13.0mm</dimen> + <dimen name="key_bottom_gap">1.6mm</dimen> + <dimen name="key_horizontal_gap">1.6mm</dimen> <dimen name="keyboard_top_padding">1.1mm</dimen> <dimen name="keyboard_bottom_padding">0.0mm</dimen> + <dimen name="key_bottom_gap_ics">1.6mm</dimen> + <dimen name="key_horizontal_gap_ics">1.6mm</dimen> + <dimen name="keyboard_top_padding_ics">1.1mm</dimen> + <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> + <dimen name="popup_key_height">13.0mm</dimen> <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> - <fraction name="key_letter_ratio">30.7%</fraction> - <fraction name="key_label_text_ratio">21.9%</fraction> + <fraction name="key_letter_ratio">38%</fraction> + <fraction name="key_label_ratio">26%</fraction> + <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_uppercase_letter_ratio">24%</fraction> + <dimen name="key_preview_height">17.0mm</dimen> <!-- left or right padding of label alignment --> <dimen name="key_label_horizontal_alignment_padding">18dip</dimen> <dimen name="key_preview_height_holo">26.5mm</dimen> diff --git a/java/res/values-xlarge/config.xml b/java/res/values-sw768dp/config.xml index 80ef3cd8e..4025b0e41 100644 --- a/java/res/values-xlarge/config.xml +++ b/java/res/values-sw768dp/config.xml @@ -20,20 +20,18 @@ <resources> <bool name="config_enable_show_settings_key_option">false</bool> - <bool name="config_enable_show_subtype_settings">false</bool> <bool name="config_enable_show_voice_key_option">false</bool> - <!-- TODO: This configuration value is temporary set true to check popup preview behavior. --> - <bool name="config_enable_show_popup_on_keypress_option">true</bool> + <bool name="config_enable_show_popup_on_keypress_option">false</bool> <bool name="config_enable_show_recorrection_option">false</bool> <bool name="config_enable_quick_fixes_option">false</bool> <bool name="config_enable_bigram_suggestions_option">false</bool> - <bool name="config_candidate_highlight_font_color_enabled">false</bool> <bool name="config_swipe_down_dismiss_keyboard_enabled">false</bool> <bool name="config_sliding_key_input_enabled">false</bool> <bool name="config_digit_popup_characters_enabled">false</bool> <!-- Whether or not Popup on key press is enabled by default --> <bool name="config_default_popup_preview">false</bool> <bool name="config_default_sound_enabled">true</bool> + <bool name="config_auto_correction_spacebar_led_enabled">false</bool> <bool name="config_use_spacebar_language_switcher">false</bool> <!-- Showing mini keyboard, just above the touched point if true, aligned to the key if false --> <bool name="config_show_mini_keyboard_at_touched_point">true</bool> diff --git a/java/res/values-xlarge/dimens.xml b/java/res/values-sw768dp/dimens.xml index 2796b6fcb..b5d5a8496 100644 --- a/java/res/values-xlarge/dimens.xml +++ b/java/res/values-sw768dp/dimens.xml @@ -21,13 +21,19 @@ <resources> <!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=12mm --> <dimen name="keyboardHeight">48.0mm</dimen> + <fraction name="maxKeyboardHeight">50%p</fraction> + <fraction name="minKeyboardHeight">-35.0%p</fraction> <!-- key_height + key_bottom_gap = popup_key_height --> <!-- <dimen name="key_height">14.5mm</dimen> --> - <dimen name="key_bottom_gap">0.0mm</dimen> - <dimen name="key_horizontal_gap">0.0mm</dimen> - <dimen name="popup_key_height">10.0mm</dimen> + <dimen name="key_bottom_gap">1.1mm</dimen> + <dimen name="key_horizontal_gap">1.1mm</dimen> <dimen name="keyboard_top_padding">1.1mm</dimen> <dimen name="keyboard_bottom_padding">0.0mm</dimen> + <dimen name="key_bottom_gap_ics">1.1mm</dimen> + <dimen name="key_horizontal_gap_ics">1.1mm</dimen> + <dimen name="keyboard_top_padding_ics">1.1mm</dimen> + <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> + <dimen name="popup_key_height">10.0mm</dimen> <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> <dimen name="mini_keyboard_horizontal_padding_holo">40dip</dimen> <dimen name="mini_keyboard_key_horizontal_padding">12dip</dimen> @@ -37,13 +43,16 @@ <!-- popup_key_height x -1.0 --> <dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen> - <fraction name="key_letter_ratio">34.4%</fraction> - <fraction name="key_label_text_ratio">21.2%</fraction> + <fraction name="key_letter_ratio">38%</fraction> + <fraction name="key_label_ratio">26%</fraction> + <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_uppercase_letter_ratio">25%</fraction> + <fraction name="key_preview_text_ratio">50%</fraction> + <dimen name="key_preview_height">15.0mm</dimen> + <dimen name="key_preview_offset">0.1in</dimen> + <dimen name="key_preview_offset_ics">0.05in</dimen> <!-- left or right padding of label alignment --> <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> - <fraction name="key_preview_text_ratio">26.3%</fraction> - <dimen name="key_preview_height_holo">23.0mm</dimen> - <dimen name="key_preview_offset_holo">8.0mm</dimen> <dimen name="candidate_strip_height">46dip</dimen> <!-- candidate_strip_minimum_height = diff --git a/java/res/values-xlarge/donottranslate.xml b/java/res/values-sw768dp/donottranslate.xml index 672dea589..672dea589 100644 --- a/java/res/values-xlarge/donottranslate.xml +++ b/java/res/values-sw768dp/donottranslate.xml diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml index cd7fe95c0..1cbc42e23 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"การแก้ไขข้อความ"</string> <string name="ngram_category" msgid="5337109164339320257">"ข้อเสนอแนะตามคำก่อนหน้านี้"</string> <string name="misc_category" msgid="6894192814868233453">"ตัวเลือกอื่นๆ"</string> + <string name="advanced_settings" msgid="362895144495591463">"การตั้งค่าขั้นสูง"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"ตัวเลือกสำหรับผู้ใช้ที่มีความเชี่ยวชาญ"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"การหน่วงเวลาก่อนปิดป๊อปอัพหลัก"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ไม่มีการหน่วงเวลา"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ค่าเริ่มต้น"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"ปรับเป็นตัวพิมพ์ใหญ่อัตโนมัติ"</string> <string name="quick_fixes" msgid="5353213327680897927">"แก้ไขด่วน"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"แก้ไขข้อผิดพลาดในการพิมพ์ที่พบบ่อย"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"แป้นพิมพ์ภาษาอังกฤษ (สหราชอาณาจักร)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"แป้นพิมพ์ภาษาอังกฤษ (สหรัฐอเมริกา)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"แปันพิมพ์ภาษาสเปน"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"แป้นพิมพ์ภาษาสเปน (สหรัฐอเมริกา)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"แป้นพิมพ์ภาษาฝรั่งเศส"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"แป้นพิมพ์ภาษาฝรั่งเศส (แคนาดา)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"แป้นพิมพ์ภาษาฝรั่งเศส (สวิตเซอร์แลนด์)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"แป้นพิมพ์ภาษาฮิบรู"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"แป้นพิมพ์ภาษาอิตาลี"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"แป้นพิมพ์ภาษานอร์เวย์"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"แป้นพิมพ์ภาษาดัตช์"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"แป้นพิมพ์ภาษาโปแลนด์"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"แป้นพิมพ์ภาษาโปรตุเกส"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"แป้นพิมพ์ภาษารัสเซีย"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"แป้นพิมพ์ภาษาเซอร์เบีย"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"แป้นพิมพ์ภาษาสวีเดน"</string> diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml index da62eafc6..e5d968769 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Pagwawasto ng teksto"</string> <string name="ngram_category" msgid="5337109164339320257">"Mga suhestiyon batay sa mga nakaraang salita"</string> <string name="misc_category" msgid="6894192814868233453">"Iba pang mga pagpipilian"</string> + <string name="advanced_settings" msgid="362895144495591463">"Mga advanced na setting"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Mga pagpipilian para sa mga ekspertong user"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Balewala antala key popup"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Walang antala"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Auto-capitalization"</string> <string name="quick_fixes" msgid="5353213327680897927">"Mga mabilisang pagsasaayos"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Itinatama ang mga karaniwang na-type na mali"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Ingles (UK) na Keyboard"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Ingles (US) na Keyboard"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Spanish na Keyboard"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Spanish (US) na Keyboard"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"French na Keyboard"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"French (Canada) na Keyboard"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"French (Switzerland) na Keyboard"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Hebrew na Keyboard"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Italian na Keyboard"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norwegian na Keyboard"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Dutch na Keyboard"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Polish na Keyboard"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portuguese na Keyboard"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Russian na Keyboard"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Serbian na Keyboard"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Swedish na Keyboard"</string> diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index 2607ae257..8be9f7a6d 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Metin düzeltme"</string> <string name="ngram_category" msgid="5337109164339320257">"Önceki kelimelere dayalı öneriler"</string> <string name="misc_category" msgid="6894192814868233453">"Diğer seçenekler"</string> + <string name="advanced_settings" msgid="362895144495591463">"Gelişmiş ayarlar"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Uzman kullanıcılar için seçenekler"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tuş popup içn kaptm ertlm"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Gecikme yok"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Varsayılan"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Otomatik olarak büyük harf yap"</string> <string name="quick_fixes" msgid="5353213327680897927">"Hızlı onarımlar"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Yaygın olarak yapılan yazım hatalarını düzeltir"</string> @@ -38,7 +47,7 @@ <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Her zaman göster"</string> <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Dikey modda göster"</string> <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Her zaman gizle"</string> - <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Dil geçişi içn boşluk çubğn kullan"</string> + <string name="prefs_use_spacebar_language_switch" msgid="8828538114550634449">"Dil geçişi > boşluk çubuğuyla"</string> <string name="prefs_settings_key" msgid="4623341240804046498">"Ayarları göster tuşu"</string> <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Otomatik"</string> <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Her zaman göster"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"İngilizce (İngiltere) Klavye"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"İngilizce (ABD) Klavye"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"İspanyolca Klavye"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"İspanyolca (ABD) Klavye"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Fransızca Klavye"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Fransızca (Kanada) Klavye"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Fransızca (İsviçre) Klavye"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"İbranice Klavye"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"İtalyanca Klavye"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Norveççe Klavye"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Felemenkçe Klavye"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Lehçe Klavye"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Portekizce Klavye"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Rusça Klavye"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Sırpça Klavye"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"İsveççe Klavye"</string> diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml index a2f589d1d..e5d2b31e1 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Виправлення тексту"</string> <string name="ngram_category" msgid="5337109164339320257">"Пропозиції на основі попередніх слів"</string> <string name="misc_category" msgid="6894192814868233453">"Інші опції"</string> + <string name="advanced_settings" msgid="362895144495591463">"Розширені налаштування"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Налаштування для досвідчених користувачів"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Затримка клавіши закриття"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без затримки"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"За умовчанням"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Авто викор. вел. літер"</string> <string name="quick_fixes" msgid="5353213327680897927">"Шв. виправлення"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Виправляє поширені помилки"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Англ. розкладка (Великобританія)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Англійська розкладка (США)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Іспанська розкладка"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Іспанська розкладка (США)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Французька розкладка"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Французька розкладка (Канада)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Французька розкладка (Швейцарія)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Розкладка для івриту"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Італійська розкладка"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Норвезька розкладка"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Голланд. розклад."</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Польська розкладка"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Португальська розкладка"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Російська розкладка"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Сербська розкладка"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Шведська розкладка"</string> diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml index 81be8264e..a75f7e82e 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"Sửa văn bản"</string> <string name="ngram_category" msgid="5337109164339320257">"Đề xuất dựa trên các từ trước đó"</string> <string name="misc_category" msgid="6894192814868233453">"Tùy chọn khác"</string> + <string name="advanced_settings" msgid="362895144495591463">"Cài đặt nâng cao"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"Tùy chọn cho người dùng chuyên gia"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Hlại việc l.bỏ csổ b.lên chính"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Không có tgian trễ"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Mặc định"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"Tự động viết hoa"</string> <string name="quick_fixes" msgid="5353213327680897927">"Sửa nhanh"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"Sửa lỗi nhập thông thường"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Bàn phím tiếng Anh (Anh)"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Bàn phím tiếng Anh (Mỹ)"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Bàn phím tiếng Tây Ban Nha"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"Bàn phím tiếng Tây Ban Nha (Mỹ)"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Bàn phím tiếng Pháp"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Bàn phím tiếng Pháp (Canada)"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Bàn phím tiếng Pháp (Thụy Sĩ)"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"Bàn phím tiếng Do Thái"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Bàn phím tiếng Ý"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Bàn phím tiếng Na Uy"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Bàn phím tiếng Hà Lan"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"Bàn phím tiếng Ba Lan"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"Bàn phím tiếng Bồ Đào Nha"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Bàn phím tiếng Nga"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Bàn phím tiếng Serbia"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Bàn phím tiếng Thụy Điển"</string> diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index 1f15831b3..2db21f4d1 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"文本更正"</string> <string name="ngram_category" msgid="5337109164339320257">"根据前面的字词提供建议"</string> <string name="misc_category" msgid="6894192814868233453">"其他选项"</string> + <string name="advanced_settings" msgid="362895144495591463">"高级设置"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"适合专家级用户的选项"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"关闭弹出式键盘的延迟"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"无延迟"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"默认"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"自动大写"</string> <string name="quick_fixes" msgid="5353213327680897927">"快速纠正"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"纠正常见的输入错误"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"英语(英国)键盘"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"英语(美国)键盘"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"西班牙语键盘"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"西班牙语(美国)键盘"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"法语键盘"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"法语(加拿大)键盘"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"法语(瑞士)键盘"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"希伯来语键盘"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"意大利语键盘"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"挪威语键盘"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"荷兰语键盘"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"波兰语键盘"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"葡萄牙语键盘"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"俄语键盘"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"塞尔维亚语键盘"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"瑞典语键盘"</string> diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml index 8a89aeb08..43a1f3770 100644 --- a/java/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -30,6 +30,15 @@ <string name="correction_category" msgid="2236750915056607613">"文字修正"</string> <string name="ngram_category" msgid="5337109164339320257">"根據先前字詞產生的建議"</string> <string name="misc_category" msgid="6894192814868233453">"其他選項"</string> + <string name="advanced_settings" msgid="362895144495591463">"進階設定"</string> + <string name="advanced_settings_summary" msgid="5193513161106637254">"提供給專業使用者的選項"</string> + <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"關閉彈出式鍵盤的延遲時間"</string> + <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"不延遲"</string> + <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"預設"</string> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> <string name="auto_cap" msgid="1719746674854628252">"自動大寫"</string> <string name="quick_fixes" msgid="5353213327680897927">"快速修正"</string> <string name="quick_fixes_summary" msgid="3405028402510332373">"修正一般打字錯誤"</string> @@ -105,14 +114,21 @@ <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"英文 (英國) 鍵盤"</string> <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"英文 (美國) 鍵盤"</string> <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"西班牙文鍵盤"</string> - <string name="subtype_mode_es_US_keyboard" msgid="3702125193532262008">"西班牙文 (美國) 鍵盤"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"法文鍵盤"</string> <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"法文 (加拿大) 鍵盤"</string> <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"法文 (瑞士) 鍵盤"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> <string name="subtype_mode_iw_keyboard" msgid="1787536828253289950">"希伯來文鍵盤"</string> <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"義大利文鍵盤"</string> <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"挪威文鍵盤"</string> <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"荷蘭文鍵盤"</string> + <string name="subtype_mode_pl_keyboard" msgid="2225816414814396047">"波蘭文鍵盤"</string> + <string name="subtype_mode_pt_keyboard" msgid="7503997804861754840">"葡萄牙文鍵盤"</string> <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"俄文鍵盤"</string> <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"塞爾維亞文鍵盤"</string> <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"瑞典文語音"</string> diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml new file mode 100644 index 000000000..3c6f2ba75 --- /dev/null +++ b/java/res/values-zu/strings.xml @@ -0,0 +1,177 @@ +<?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. +*/ + --> + +<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">"Ikhibhodi ye-Android"</string> + <string name="english_ime_settings" msgid="6661589557206947774">"Izilungiselelo zekhibhodi ye-Android"</string> + <string name="english_ime_input_options" msgid="3909945612939668554">"Okukhethwa kukho kokungenayo"</string> + <string name="vibrate_on_keypress" msgid="5258079494276955460">"Dlidlizelisa ngokucindezela inkinobho"</string> + <string name="sound_on_keypress" msgid="6093592297198243644">"Umsindo wokucindezela ukhiye"</string> + <string name="popup_on_keypress" msgid="123894815723512944">"Ugaxekile ngokucindezela ukhiye"</string> + <!-- no translation found for general_category (1859088467017573195) --> + <skip /> + <!-- no translation found for correction_category (2236750915056607613) --> + <skip /> + <!-- no translation found for ngram_category (5337109164339320257) --> + <skip /> + <!-- no translation found for misc_category (6894192814868233453) --> + <skip /> + <!-- no translation found for advanced_settings (362895144495591463) --> + <skip /> + <!-- no translation found for advanced_settings_summary (5193513161106637254) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) --> + <skip /> + <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) --> + <skip /> + <!-- no translation found for use_contacts_dict (4435317977804180815) --> + <skip /> + <!-- no translation found for use_contacts_dict_summary (6599983334507879959) --> + <skip /> + <string name="auto_cap" msgid="1719746674854628252">"Ukwenza ofeleba okuzenzakalelayo"</string> + <string name="quick_fixes" msgid="5353213327680897927">"Ukulungisa okusheshayo"</string> + <string name="quick_fixes_summary" msgid="3405028402510332373">"Ilungisa amaphutha athayiphwa ngokuvamile"</string> + <!-- no translation found for prefs_show_suggestions (8026799663445531637) --> + <skip /> + <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Bonisa amagama aphakamisiwe ngenkathi uthayipha"</string> + <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Bonisa njalo"</string> + <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3551821800439659812">"Bonisa kwimodi emile"</string> + <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Fihla njalo"</string> + <!-- no translation found for prefs_use_spacebar_language_switch (8828538114550634449) --> + <skip /> + <string name="prefs_settings_key" msgid="4623341240804046498">"Bonisa ukhiye wezilungiselelo"</string> + <string name="settings_key_mode_auto_name" msgid="2993460277873684680">"Okuzenzakalelayo"</string> + <string name="settings_key_mode_always_show_name" msgid="3047567041784760575">"Bonisa njalo"</string> + <string name="settings_key_mode_always_hide_name" msgid="7833948046716923994">"Fihla njalo"</string> + <string name="auto_correction" msgid="4979925752001319458">"Ukulungisa okuzenzakalelayo"</string> + <!-- outdated translation 6881047311475758267 --> <string name="auto_correction_summary" msgid="5625751551134658006">"Ngokuzenzakalelayo ilungisa igama elandulele"</string> + <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Valiwe"</string> + <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Thobekile"</string> + <string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Bukhali"</string> + <!-- outdated translation 1323347224043514969 --> <string name="bigram_suggestion" msgid="2636414079905220518">"Iziphakamiso ze-Biagram"</string> + <string name="bigram_suggestion_summary" msgid="4383845146070101531">"Sebenzisa igama elandulele ukuthuthukisa okusikiselwayo"</string> + <!-- no translation found for bigram_prediction (8914273444762259739) --> + <skip /> + <!-- no translation found for bigram_prediction_summary (1747261921174300098) --> + <skip /> + <string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Kulondoloziwe"</string> + <string name="label_go_key" msgid="1635148082137219148">"Iya"</string> + <string name="label_next_key" msgid="362972844525672568">"Okulandelayo"</string> + <string name="label_done_key" msgid="2441578748772529288">"Kwenziwe"</string> + <string name="label_send_key" msgid="2815056534433717444">"Thumela"</string> + <string name="label_to_alpha_key" msgid="4793983863798817523">"ABC"</string> + <string name="label_more_key" msgid="3760239494604948502">"Okungaphezulu"</string> + <string name="label_pause_key" msgid="181098308428035340">"Misa okwesikhashana"</string> + <string name="label_wait_key" msgid="6402152600878093134">"Linda"</string> + <string name="voice_warning_title" msgid="4419354150908395008">"Okungenayo kwezwi"</string> + <string name="voice_warning_locale_not_supported" msgid="637923019716442333">"Okungenayo kwezwi akusekelwa kolimi lwakho, kodwa kuyasebenza Ngesingisi."</string> + <string name="voice_warning_may_not_understand" msgid="5596289095878251072">"Okufakwayo kwezwi kusebenzisa ukuqaphela izwi le-Google. "<a href="http://m.google.com/privacy">"Inqubomgomo Yobumfihlo Yefoni"</a>" iyasebenza."</string> + <string name="voice_warning_how_to_turn_off" msgid="3190378129944934856">"Ukuvala okufakwayo kwezwi, iya kuzilungiselelo zendlela yokufakwayo"</string> + <string name="voice_hint_dialog_message" msgid="1420686286820661548">"Ukusebenzisa okufakwayo kwezwi, cindezela inkinobho yemakrofoni."</string> + <string name="voice_listening" msgid="467518160751321844">"Khuluma manje"</string> + <string name="voice_working" msgid="6666937792815731889">"Kuyasebenza"</string> + <string name="voice_initializing" msgid="661962047129906646"></string> + <string name="voice_error" msgid="5140896300312186162">"Iphutha. Sicela uzame futhi."</string> + <string name="voice_network_error" msgid="6649556447401862563">"Ayikwazanga ukuxhuma"</string> + <string name="voice_too_much_speech" msgid="5746973620134227376">"Iphutha, kunamagama amaningi."</string> + <string name="voice_audio_error" msgid="5072707727016414454">"Inkinga yomsindo"</string> + <string name="voice_server_error" msgid="7807129913977261644">"Iphutha leseva"</string> + <string name="voice_speech_timeout" msgid="8461817525075498795">"Awekho amagama azwakele"</string> + <string name="voice_no_match" msgid="4285117547030179174">"Akukho okufanayo okutholiwe"</string> + <string name="voice_not_installed" msgid="5552450909753842415">"Ukusesha ngezwi akufakiwe"</string> + <string name="voice_swipe_hint" msgid="6943546180310682021"><b>"Isexwayiso:"</b>"Shintshela kwikhibhodi ukuze ukhulume"</string> + <string name="voice_punctuation_hint" msgid="1611389463237317754"><b>"Isixwayiso: "</b>"Esikhathini esilandelayo, zama ukukhuluma izimpimiselo ezinjengo \"isikhathi, \"ikhefu\" noma \"uphawu lombuzo\"."</string> + <string name="cancel" msgid="6830980399865683324">"Khansela"</string> + <string name="ok" msgid="7898366843681727667">"KULUNGILE"</string> + <string name="voice_input" msgid="2466640768843347841">"Okungenayo kwezwi"</string> + <string name="voice_input_modes_main_keyboard" msgid="3360660341121083174">"Kwikhibhodi eyisisekelo"</string> + <string name="voice_input_modes_symbols_keyboard" msgid="7203213240786084067">"Ikhibhodi yezimpawu"</string> + <string name="voice_input_modes_off" msgid="3745699748218082014">"VALIWE"</string> + <string name="voice_input_modes_summary_main_keyboard" msgid="6586544292900314339">"I-mic kwikhibhodi eyisisekelo"</string> + <string name="voice_input_modes_summary_symbols_keyboard" msgid="5233725927281932391">"Ikhibhodi yezimpawu ze-mic"</string> + <string name="voice_input_modes_summary_off" msgid="63875609591897607">"Okufakwayo kwezwi kuvimbelwe"</string> + <string name="selectInputMethod" msgid="315076553378705821">"Khetha indlela yokungenayo"</string> + <string name="language_selection_title" msgid="1651299598555326750">"Izilimi zokufakwayo"</string> + <string name="language_selection_summary" msgid="187110938289512256">"Slayida umunwe kwibha yesikhala ukushintsha ulimi"</string> + <string name="hint_add_to_dictionary" msgid="9006292060636342317">"← Thinta futhi ukulondoloza"</string> + <string name="has_dictionary" msgid="6071847973466625007">"Isichazamazwi siyatholakala"</string> + <string name="prefs_enable_log" msgid="6620424505072963557">"Vumela impendulo yomsebenzisi"</string> + <string name="prefs_description_log" msgid="5827825607258246003">"Siza ukuthuthukisa umhleli wendlela yokungenayo ngokuthumela izibalo zokubala nokuphahlaza imibiko e-Google."</string> + <string name="prefs_enable_recorrection" msgid="4588408906649533582">"Thinta ukulungisa amagama"</string> + <string name="prefs_enable_recorrection_summary" msgid="5082041365862396329">"Thinta amagama afakiwe ukuwalungisa, kuphela lapho okusikiselwayo kubonakala"</string> + <string name="keyboard_layout" msgid="437433231038683666">"Indikimba Yekhibhodi"</string> + <string name="subtype_mode_cs_keyboard" msgid="1141718931112377586">"Ikhibhodi yesi-Czech"</string> + <!-- no translation found for subtype_mode_ar_keyboard (2655338636329774995) --> + <skip /> + <string name="subtype_mode_da_keyboard" msgid="1243570804427922104">"Ikhibhodi yesi-Danish"</string> + <string name="subtype_mode_de_keyboard" msgid="1990979135959462145">"Ikhobhodi yei-German"</string> + <string name="subtype_mode_en_GB_keyboard" msgid="7945856548410373708">"Ikhibhodi ye-English (UK)"</string> + <string name="subtype_mode_en_US_keyboard" msgid="3708655163769735410">"Ikhobhodi ye-English (US)"</string> + <string name="subtype_mode_es_keyboard" msgid="1775125478866113148">"Ikhobhodi yesi-Spanish"</string> + <!-- no translation found for subtype_mode_fi_keyboard (3198596464082614532) --> + <skip /> + <string name="subtype_mode_fr_keyboard" msgid="8016515336759761014">"Ikhibhodi yesi-French"</string> + <string name="subtype_mode_fr_CA_keyboard" msgid="2628517247158376263">"Ikhobhodi yesi-French (i-Canada)"</string> + <string name="subtype_mode_fr_CH_keyboard" msgid="6742806653181621228">"Ikhibhodi yesi-French (i-Switzerland"</string> + <!-- no translation found for subtype_mode_hr_keyboard (7177182405440070112) --> + <skip /> + <!-- no translation found for subtype_mode_hu_keyboard (8843338355732633647) --> + <skip /> + <!-- no translation found for subtype_mode_iw_keyboard (1787536828253289950) --> + <skip /> + <string name="subtype_mode_it_keyboard" msgid="4934199655425394484">"Ikhibhodi yesi-Italian"</string> + <string name="subtype_mode_nb_keyboard" msgid="1175783216100212360">"Ikhibhodi yesi-Norwegian"</string> + <string name="subtype_mode_nl_keyboard" msgid="5090278083256037936">"Ikhibhodi yesi-Dutch"</string> + <!-- no translation found for subtype_mode_pl_keyboard (2225816414814396047) --> + <skip /> + <!-- no translation found for subtype_mode_pt_keyboard (7503997804861754840) --> + <skip /> + <string name="subtype_mode_ru_keyboard" msgid="1383995915064277943">"Ikhobhodi yesi-Russian"</string> + <string name="subtype_mode_sr_keyboard" msgid="5019440799612208168">"Ikhibhodi yesi-Serbian"</string> + <string name="subtype_mode_sv_keyboard" msgid="4933838139861753401">"Ikhobhodi yesi-Swedish"</string> + <!-- no translation found for subtype_mode_af_voice (7542487489657902699) --> + <skip /> + <string name="subtype_mode_cs_voice" msgid="1136386688120958641">"Izwi le-Czech"</string> + <string name="subtype_mode_de_voice" msgid="8378803143958089866">"Izwi lesi-German"</string> + <!-- no translation found for subtype_mode_en_voice (6643420989651848728) --> + <skip /> + <string name="subtype_mode_es_voice" msgid="1323473601346507487">"Izwi lesi-Spanish"</string> + <string name="subtype_mode_fr_voice" msgid="4675914209337824269">"Izwi lesi-French"</string> + <!-- no translation found for subtype_mode_it_voice (5077373057157441323) --> + <skip /> + <string name="subtype_mode_ja_voice" msgid="6604859132669646367">"Izwi lesi-Japanese"</string> + <string name="subtype_mode_ko_voice" msgid="4890391190762324561">"Izwi lesi-Korean"</string> + <!-- no translation found for subtype_mode_nl_voice (2603552312869575021) --> + <skip /> + <string name="subtype_mode_pl_voice" msgid="2076196021014840487">"Izwi lesi-Polish"</string> + <string name="subtype_mode_pt_voice" msgid="8036522712795994397">"Izwi lesi-Portuguese"</string> + <string name="subtype_mode_ru_voice" msgid="8034596947963787529">"Izwi lesi-Russian"</string> + <string name="subtype_mode_tr_voice" msgid="3402067436761140005">"Izwi lesi-Turkish"</string> + <!-- no translation found for subtype_mode_yue_voice (1576887891614624263) --> + <skip /> + <!-- no translation found for subtype_mode_zh_voice (4360533229467271152) --> + <skip /> + <!-- no translation found for subtype_mode_zu_voice (1146122571698884636) --> + <skip /> + <string name="prefs_usability_study_mode" msgid="6937813623647419810">"Imodi Yesitadi Yokusebenziseka"</string> +</resources> diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index f03da4f8f..e9b6354a5 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -15,36 +15,56 @@ --> <resources> - - <declare-styleable name="KeyboardView"> - <!-- Default KeyboardView style. --> + <declare-styleable name="KeyboardTheme"> + <!-- Keyboard style --> + <attr name="keyboardStyle" format="reference" /> + <!-- LatinKeyboard style --> + <attr name="latinKeyboardStyle" format="reference" /> + <!-- KeyboardView style --> <attr name="keyboardViewStyle" format="reference" /> + <attr name="keyPreviewStyle" format="reference" /> + <!-- PopupMiniKeyboardView style --> + <attr name="popupMiniKeyboardViewStyle" format="reference" /> + <attr name="popupMiniKeyboardPanelStyle" format="reference" /> + <!-- Suggestions strip style --> + <attr name="suggestionsStripBackgroundStyle" format="reference" /> + <attr name="suggestionBackgroundStyle" format="reference" /> + <attr name="suggestionPreviewBackgroundStyle" format="reference" /> + <attr name="candidateViewStyle" format="reference" /> + </declare-styleable> + <declare-styleable name="KeyboardView"> <!-- Image for the key. This image needs to be a StateListDrawable, with the following possible states: normal, pressed, checkable, checkable+pressed, checkable+checked, checkable+checked+pressed. --> <attr name="keyBackground" format="reference" /> - <!-- Size of the text for one letter character keys, in the proportion of key height. - --> + <!-- Size of the text for one letter keys, in the proportion of key height. --> <attr name="keyLetterRatio" format="float" /> - - <!-- Size of the text for custom keys with some text and no icon, in the proportion of key - height. --> - <attr name="labelTextRatio" format="float" /> + <!-- Size of the text for keys with some text, in the proportion of key height. --> + <attr name="keyLabelRatio" format="float" /> + <!-- Size of the text for hint letter, in the proportion of key height. --> + <attr name="keyHintLetterRatio" format="float" /> + <!-- Size of the text for upper case letter, in the proportion of key height. --> + <attr name="keyUppercaseLetterRatio" format="float" /> <!-- Color to use for the label in a key. --> <attr name="keyTextColor" format="color" /> + <!-- Color to use for the label in a key when in inactivated state. --> + <attr name="keyTextInactivatedColor" format="color" /> + <!-- Key hint letter color --> + <attr name="keyHintLetterColor" format="color" /> + <!-- Upper case letter colors --> + <attr name="keyUppercaseLetterInactivatedColor" format="color" /> + <attr name="keyUppercaseLetterActivatedColor" format="color" /> - <!-- Color to use for the label in a key when in disabled state. --> - <attr name="keyTextColorDisabled" format="color" /> + <!-- Popup hint icon "..." --> + <attr name="keyPopupHintIcon" format="reference" /> <!-- Layout resource for key press feedback.--> <attr name="keyPreviewLayout" format="reference" /> - <!-- Vertical offset of the key press feedback from the key. --> <attr name="keyPreviewOffset" format="dimension" /> - <!-- Height of the key press feedback popup. --> <attr name="keyPreviewHeight" format="dimension" /> @@ -61,20 +81,26 @@ <attr name="shadowRadius" format="float" /> <attr name="backgroundDimAmount" format="float" /> - <attr name="keyLetterStyle"> + <attr name="keyTextStyle" format="enum"> <!-- This should be aligned with Typeface.NORMAL etc. --> <enum name="normal" value="0" /> <enum name="bold" value="1" /> <enum name="italic" value="2" /> <enum name="boldItalic" value="3" /> </attr> + </declare-styleable> - <attr name="colorScheme"> - <!-- This should be aligned with KeyboardView.COLOR_SCHEME_* --> - <enum name="white" value="0" /> - <enum name="black" value="1" /> + <declare-styleable name="CandidateView"> + <attr name="autoCorrectHighlight" format="integer"> + <flag name="autoCorrectBold" value="0x01" /> + <flag name="autoCorrectUnderline" value="0x02" /> + <flag name="autoCorrectInvert" value="0x04" /> </attr> - + <attr name="colorTypedWord" format="color" /> + <attr name="colorAutoCorrect" format="color" /> + <attr name="colorSuggested" format="color" /> + <attr name="iconExpandPane" format="reference" /> + <attr name="iconClosePane" format="reference" /> </declare-styleable> <declare-styleable name="Keyboard"> @@ -85,8 +111,19 @@ <!-- Minimum keyboard height represented in pixels, percentage of display height if fraction is positive, or percentage of display width if fraction is negative. --> <attr name="minKeyboardHeight" format="dimension|fraction" /> - <!-- Default width of a key, in pixels or percentage of display width. --> - <attr name="keyWidth" format="dimension|fraction" /> + <!-- Keyboard top and bottom paddings. --> + <attr name="keyboardTopPadding" format="dimension" /> + <attr name="keyboardBottomPadding" format="dimension" /> + <!-- Default width of a key, in pixels or percentage of display width. + If the value is zero, the actual key width will be determined to fill out the area up + to the right edge of the keyboard. + If the value is negative, the actual key width will be determined to fill out the + area between the nearest key on the left hand side and the right edge of the keyboard. + --> + <attr name="keyWidth" format="dimension|fraction|enum"> + <enum name="fillRight" value="0" /> + <enum name="fillBoth" value="-1" /> + </attr> <!-- Default height of a row (key height + vertical gap), in pixels or percentage of keyboard height. --> <attr name="rowHeight" format="dimension|fraction" /> @@ -98,6 +135,32 @@ <attr name="popupKeyboardTemplate" format="reference" /> <!-- Locale of the keyboard layout --> <attr name="keyboardLocale" format="string" /> + <!-- Icon set for key top and key preview. --> + <attr name="iconShiftKey" format="reference" /> + <attr name="iconToSymbolKey" format="reference" /> + <attr name="iconToSymbolKeyWithShortcut" format="reference" /> + <attr name="iconDeleteKey" format="reference" /> + <attr name="iconSettingsKey" format="reference" /> + <attr name="iconShortcutKey" format="reference" /> + <attr name="iconSpaceKey" format="reference" /> + <attr name="iconReturnKey" format="reference" /> + <attr name="iconSearchKey" format="reference" /> + <attr name="iconTabKey" format="reference" /> + <attr name="iconNum1Key" format="reference" /> + <attr name="iconNum2Key" format="reference" /> + <attr name="iconNum3Key" format="reference" /> + <attr name="iconNum4Key" format="reference" /> + <attr name="iconNum5Key" format="reference" /> + <attr name="iconNum6Key" format="reference" /> + <attr name="iconNum7Key" format="reference" /> + <attr name="iconNum8Key" format="reference" /> + <attr name="iconNum9Key" format="reference" /> + <attr name="iconNum0Key" format="reference" /> + <attr name="iconShiftedShiftKey" format="reference" /> + <attr name="iconPreviewSpaceKey" format="reference" /> + <attr name="iconPreviewTabKey" format="reference" /> + <attr name="iconPreviewSettingsKey" format="reference" /> + <attr name="iconPreviewShortcutKey" format="reference" /> </declare-styleable> <declare-styleable name="Keyboard_Key"> @@ -108,7 +171,7 @@ <!-- Maximum column of popup keyboard --> <attr name="maxPopupKeyboardColumn" format="integer" /> <!-- Key edge flags. --> - <attr name="keyEdgeFlags"> + <attr name="keyEdgeFlags" format="integer"> <!-- Key is anchored to the left of the keyboard. --> <flag name="left" value="1" /> <!-- Key is anchored to the right of the keyboard. --> @@ -120,43 +183,76 @@ <attr name="isSticky" format="boolean" /> <!-- Whether long-pressing on this key will make it repeat. --> <attr name="isRepeatable" format="boolean" /> - <!-- The icon to show in the popup preview. --> - <attr name="iconPreview" format="reference" /> <!-- The string of characters to output when this key is pressed. --> <attr name="keyOutputText" format="string" /> <!-- The label to display on the key. --> <attr name="keyLabel" format="string" /> - <!-- The key label option --> - <attr name="keyLabelOption"> - <!-- This should be aligned with KeyboardView.KEY_LABEL_OPTION_* --> - <flag name="alignLeft" value="1" /> - <flag name="alignRight" value="2" /> - <flag name="alignBottom" value="8" /> - <flag name="fontNormal" value="16" /> + <!-- The hint letter to display on the key in conjunction with the label. --> + <attr name="keyHintLetter" format="string" /> + <!-- The key label option. --> + <attr name="keyLabelOption" format="integer"> + <!-- This should be aligned with Key.LABEL_OPTION_* --> + <flag name="alignLeft" value="0x01" /> + <flag name="alignRight" value="0x02" /> + <flag name="alignBottom" value="0x08" /> + <flag name="fontNormal" value="0x10" /> + <flag name="fontFixedWidth" value="0x20" /> + <flag name="followKeyLetterRatio" value="0x40" /> + <flag name="popupHint" value="0x80" /> + <flag name="hasUppercaseLetter" value="0x100" /> </attr> - <!-- The unicode that this key generates in manual temporary upper case mode. --> - <attr name="manualTemporaryUpperCaseCode" format="integer" /> <!-- The icon to display on the key instead of the label. --> - <attr name="keyIcon" format="reference" /> - <!-- The hint icon to display on the key in conjunction with the label --> - <attr name="keyHintIcon" format="reference" /> - <!-- The hint icon to display on the key when keyboard is in manual temporary upper case - mode. --> - <attr name="manualTemporaryUpperCaseHintIcon" format="reference" /> + <attr name="keyIcon" format="enum"> + <!-- This should be aligned with KeyboardIcons.ICON_* --> + <enum name="iconShiftKey" value="1" /> + <enum name="iconToSymbolKey" value="2" /> + <enum name="iconToSymbolKeyWithShortcut" value="3" /> + <enum name="iconDeleteKey" value="4" /> + <enum name="iconSettingsKey" value="5" /> + <enum name="iconShortcutKey" value="6" /> + <enum name="iconSpaceKey" value="7" /> + <enum name="iconReturnKey" value="8" /> + <enum name="iconSearchKey" value="9" /> + <enum name="iconTabKey" value="10" /> + <enum name="iconNum1Key" value="11" /> + <enum name="iconNum2Key" value="12" /> + <enum name="iconNum3Key" value="13" /> + <enum name="iconNum4Key" value="14" /> + <enum name="iconNum5Key" value="15" /> + <enum name="iconNum6Key" value="16" /> + <enum name="iconNum7Key" value="17" /> + <enum name="iconNum8Key" value="18" /> + <enum name="iconNum9Key" value="19" /> + <enum name="iconNum0Key" value="20" /> + </attr> + <!-- Shift key icon for shifted state --> + <attr name="keyIconShifted" format="enum"> + <!-- This should be aligned with KeyboardIcons.ICON_SHIFTED_* --> + <enum name="iconShiftedShiftKey" value="21" /> + </attr> + <!-- The icon to show in the popup preview. --> + <attr name="keyIconPreview" format="enum"> + <!-- This should be aligned with KeyboardIcons.ICON_PREVIEW_* --> + <enum name="iconPreviewSpaceKey" value="22" /> + <enum name="iconPreviewTabKey" value="23" /> + <enum name="iconPreviewSettingsKey" value="24" /> + <enum name="iconPreviewShortcutKey" value="25" /> + </attr> <!-- The key style to specify a set of key attributes defined by <key_style/> --> <attr name="keyStyle" format="string" /> - <!-- Shift key icon for shifted state --> - <attr name="shiftedIcon" format="reference" /> <!-- The key is enabled and responds on press. --> <attr name="enabled" format="boolean" /> <!-- Visual insets --> <attr name="visualInsetsLeft" format="dimension|fraction" /> <attr name="visualInsetsRight" format="dimension|fraction" /> + <!-- The X-coordinate of upper right corner of this key including horizontal gap. + If the value is negative, the origin is the right edge of the keyboard. --> + <attr name="keyXPos" format="dimension|fraction" /> </declare-styleable> <declare-styleable name="Keyboard_Row"> <!-- Row edge flags. --> - <attr name="rowEdgeFlags"> + <attr name="rowEdgeFlags" format="integer"> <!-- Row is anchored to the top of the keyboard. --> <flag name="top" value="4" /> <!-- Row is anchored to the bottom of the keyboard. --> @@ -170,29 +266,39 @@ <declare-styleable name="Keyboard_Case"> <!-- This should be aligned with KeyboardId.MODE_* --> - <attr name="mode"> + <attr name="mode" format="enum|string"> <enum name="text" value="0" /> <enum name="url" value="1" /> <enum name="email" value="2" /> <enum name="im" value="3" /> - <enum name="web" value="4" /> - <enum name="phone" value="5" /> + <enum name="phone" value="4" /> + <enum name="number" value="5" /> </attr> + <attr name="navigateAction" format="boolean" /> <attr name="passwordInput" format="boolean" /> - <attr name="hasSettingsKey" format="string" /> - <attr name="voiceKeyEnabled" format="string" /> - <attr name="hasVoiceKey" format="string" /> - <attr name="imeAction"> + <attr name="hasSettingsKey" format="boolean" /> + <!-- This should be aligned with KeyboardID.F2KEY_MODE_* --> + <attr name="f2KeyMode" format="enum"> + <enum name="none" value="0" /> + <enum name="settings" value="1" /> + <enum name="shortcutIme" value="2" /> + <enum name="shortcutImeOrSettings" value="3" /> + </attr> + <attr name="clobberSettingsKey" format="boolean" /> + <attr name="voiceKeyEnabled" format="boolean" /> + <attr name="hasVoiceKey" format="boolean" /> + <attr name="imeAction" format="enum"> <!-- This should be aligned with EditorInfo.IME_ACTION_* --> - <flag name="actionUnspecified" value="0" /> - <flag name="actionNone" value="1" /> - <flag name="actionGo" value="2" /> - <flag name="actionSearch" value="3" /> - <flag name="actionSend" value="4" /> - <flag name="actionNext" value="5" /> - <flag name="actionDone" value="6" /> - <flag name="actionPrevious" value="7" /> + <enum name="actionUnspecified" value="0" /> + <enum name="actionNone" value="1" /> + <enum name="actionGo" value="2" /> + <enum name="actionSearch" value="3" /> + <enum name="actionSend" value="4" /> + <enum name="actionNext" value="5" /> + <enum name="actionDone" value="6" /> + <enum name="actionPrevious" value="7" /> </attr> + <attr name="localeCode" format="string" /> <attr name="languageCode" format="string" /> <attr name="countryCode" format="string" /> </declare-styleable> @@ -201,4 +307,16 @@ <attr name="styleName" format="string" /> <attr name="parentStyle" format="string" /> </declare-styleable> + + <declare-styleable name="LatinKeyboard"> + <attr name="autoCorrectionSpacebarLedEnabled" format="boolean" /> + <attr name="autoCorrectionSpacebarLedIcon" format="reference" /> + <attr name="disabledShortcutIcon" format="reference" /> + <attr name="spacebarTextColor" format="color" /> + <attr name="spacebarTextShadowColor" format="color" /> + <attr name="spacebarArrowLeftIcon" format="reference" /> + <attr name="spacebarArrowRightIcon" format="reference" /> + <attr name="spacebarArrowPreviewLeftIcon" format="reference" /> + <attr name="spacebarArrowPreviewRightIcon" format="reference" /> + </declare-styleable> </resources> diff --git a/java/res/values/bools.xml b/java/res/values/bools.xml index 2a181e17d..889d8f784 100644 --- a/java/res/values/bools.xml +++ b/java/res/values/bools.xml @@ -21,6 +21,4 @@ <!-- Whether this input method should be used as the default for a locale. Override it for latin languages. --> <bool name="im_is_default">false</bool> - <!-- Whether or not voice input is enabled by default. --> - <bool name="voice_input_default">true</bool> </resources> diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml deleted file mode 100644 index 733a464cc..000000000 --- a/java/res/values/colors.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2008, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> -<resources> - <color name="candidate_normal">#FFFFFFFF</color> - <color name="candidate_recommended">#FFFCAE00</color> - <color name="candidate_other">#FFFCAE00</color> - <color name="latinkeyboard_bar_language_shadow_white">#80000000</color> - <color name="latinkeyboard_bar_language_shadow_black">#80FFFFFF</color> - <color name="latinkeyboard_bar_language_text">#FFC0C0C0</color> - <color name="latinkeyboard_feedback_language_text">#FFFFFFFF</color> - <color name="latinkeyboard_key_color_white">#FFFFFFFF</color> - <color name="latinkeyboard_key_color_black">#FF000000</color> -</resources> diff --git a/java/res/values/config.xml b/java/res/values/config.xml index 1d24b1088..ad580cc69 100644 --- a/java/res/values/config.xml +++ b/java/res/values/config.xml @@ -20,16 +20,13 @@ <resources> <bool name="config_swipeDisambiguation">true</bool> - <bool name="config_long_press_comma_for_settings_enabled">true</bool> <bool name="config_enable_show_settings_key_option">true</bool> - <bool name="config_enable_show_subtype_settings">true</bool> <bool name="config_enable_show_voice_key_option">true</bool> <bool name="config_enable_show_popup_on_keypress_option">true</bool> <bool name="config_enable_show_recorrection_option">true</bool> <bool name="config_enable_quick_fixes_option">true</bool> <bool name="config_enable_bigram_suggestions_option">true</bool> <bool name="config_enable_usability_study_mode_option">false</bool> - <bool name="config_candidate_highlight_font_color_enabled">true</bool> <bool name="config_swipe_down_dismiss_keyboard_enabled">true</bool> <bool name="config_sliding_key_input_enabled">true</bool> <bool name="config_digit_popup_characters_enabled">true</bool> @@ -45,6 +42,7 @@ <bool name="config_default_bigram_prediction">false</bool> <bool name="config_default_recorrection_enabled">true</bool> <bool name="config_default_sound_enabled">false</bool> + <bool name="config_auto_correction_spacebar_led_enabled">true</bool> <bool name="config_use_spacebar_language_switcher">true</bool> <!-- Showing mini keyboard, just above the touched point if true, aligned to the key if false --> <bool name="config_show_mini_keyboard_at_touched_point">false</bool> @@ -69,11 +67,9 @@ <integer name="config_double_spaces_turn_into_period_timeout">1100</integer> <dimen name="config_touch_noise_threshold_distance">2.0mm</dimen> <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. --> - <string name="config_default_keyboard_theme_id" translatable="false">4</string> + <string name="config_default_keyboard_theme_id" translatable="false">5</string> <string name="config_text_size_of_language_on_spacebar" translatable="false">small</string> <integer name="config_max_popup_keyboard_column">5</integer> - <!-- Whether or not auto-correction should be enabled by default --> - <bool name="enable_autocorrect">true</bool> <string-array name="auto_correction_threshold_values" translatable="false"> <!-- Off, When auto correction setting is Off, this value is not used. --> <item></item> diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml index 4708611e0..54256de3c 100644 --- a/java/res/values/dimens.xml +++ b/java/res/values/dimens.xml @@ -30,9 +30,15 @@ <dimen name="popup_key_height">0.330in</dimen> <dimen name="keyboard_top_padding">0.00in</dimen> <dimen name="keyboard_bottom_padding">0.06in</dimen> + <dimen name="key_bottom_gap_stone">0.00in</dimen> + <dimen name="key_horizontal_gap_stone">0.00in</dimen> + <dimen name="key_bottom_gap_ics">0.06in</dimen> + <dimen name="key_horizontal_gap_ics">0.01in</dimen> + <dimen name="keyboard_top_padding_ics">0.03in</dimen> + <dimen name="keyboard_bottom_padding_ics">0.06in</dimen> <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> <dimen name="mini_keyboard_horizontal_padding">16dip</dimen> - <dimen name="mini_keyboard_horizontal_padding_holo">32dip</dimen> + <dimen name="mini_keyboard_horizontal_padding_holo">38dip</dimen> <dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen> <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> <!-- popup_key_height x 1.2 --> @@ -44,14 +50,15 @@ <dimen name="keyboard_vertical_correction">-0.05in</dimen> <fraction name="key_letter_ratio">45%</fraction> - <fraction name="key_label_text_ratio">29%</fraction> + <fraction name="key_label_ratio">29%</fraction> + <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_uppercase_letter_ratio">35%</fraction> <!-- left or right padding of label alignment --> <dimen name="key_label_horizontal_alignment_padding">21dip</dimen> + <fraction name="key_preview_text_ratio">82%</fraction> <dimen name="key_preview_height">80sp</dimen> <dimen name="key_preview_offset">0.1in</dimen> - <fraction name="key_preview_text_ratio">82%</fraction> - <dimen name="key_preview_height_holo">130sp</dimen> - <dimen name="key_preview_offset_holo">0.193in</dimen> + <dimen name="key_preview_offset_ics">0.05in</dimen> <dimen name="candidate_strip_height">42dip</dimen> <!-- candidate_strip_minimum_height = @@ -62,11 +69,9 @@ <dimen name="candidate_min_width">32dip</dimen> <dimen name="candidate_padding">6dip</dimen> <dimen name="candidate_text_size">18dip</dimen> - <dimen name="spacebar_vertical_correction">4dip</dimen> <!-- If the screen height in landscape is larger than the below value, then the keyboard will not go into extract (fullscreen) mode. --> <dimen name="max_height_for_fullscreen">2.5in</dimen> - <dimen name="bubble_pointer_offset">22dip</dimen> <dimen name="key_hysteresis_distance">0.05in</dimen> </resources> diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml index 1cdae3d81..1c198d9cb 100644 --- a/java/res/values/donottranslate.xml +++ b/java/res/values/donottranslate.xml @@ -38,8 +38,10 @@ <string name="label_tab_key">Tab</string> <!-- Label for "switch to symbols" key. Must be short to fit on key! --> <string name="label_to_symbol_key">\?123</string> - <!-- Label for "switch to numeric" key. Must be short to fit on key! --> - <string name="label_to_numeric_key">123</string> + <!-- Label for "switch to phone numeric" key. Must be short to fit on key! --> + <string name="label_to_phone_numeric_key">123</string> + <!-- Label for "switch to phone symbols" key. Must be short to fit on key! --> + <string name="label_to_phone_symbols_key">\uff0a\uff03\uff08</string> <!-- Option values to show/hide the settings key in onscreen keyboard --> <!-- Automatically decide to show or hide the settings key --> @@ -126,7 +128,7 @@ <string name="layout_stone_bold">Stone (bold)</string> <string name="layout_stone_normal">Stone (normal)</string> <string name="layout_gingerbread">Gingerbread</string> - <string name="layout_honeycomb">Honeycomb</string> + <string name="layout_ics">IceCreamSandwich</string> <!-- For keyboard theme switcher dialog --> <string-array name="keyboard_layout_modes"> @@ -135,7 +137,7 @@ <item>@string/layout_stone_normal</item> <item>@string/layout_stone_bold</item> <item>@string/layout_gingerbread</item> - <item>@string/layout_honeycomb</item> + <item>@string/layout_ics</item> </string-array> <string-array name="keyboard_layout_modes_values"> <item>0</item> @@ -150,9 +152,11 @@ <string-array name="subtype_locale_exception_keys"> <item>en_US</item> <item>en_GB</item> + <item>de_ZZ</item> </string-array> <string-array name="subtype_locale_exception_values"> <item>English (US)</item> <item>English (UK)</item> + <item>Deutsch (QWERTY)</item> </string-array> </resources> diff --git a/java/res/values/keyboard-icons-black.xml b/java/res/values/keyboard-icons-black.xml new file mode 100644 index 000000000..3ba345580 --- /dev/null +++ b/java/res/values/keyboard-icons-black.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardIcons.Black" parent="android:Theme.Light"> + <!-- Keyboard icons --> + <item name="iconShiftKey">@drawable/sym_bkeyboard_shift</item> + <item name="iconToSymbolKeyWithShortcut">@drawable/sym_bkeyboard_123_mic</item> + <item name="iconDeleteKey">@drawable/sym_bkeyboard_delete</item> + <item name="iconSettingsKey">@drawable/sym_bkeyboard_settings</item> + <item name="iconShortcutKey">@drawable/sym_bkeyboard_mic</item> + <item name="iconSpaceKey">@drawable/sym_bkeyboard_space</item> + <item name="iconReturnKey">@drawable/sym_bkeyboard_return</item> + <item name="iconSearchKey">@drawable/sym_bkeyboard_search</item> + <item name="iconTabKey">@drawable/sym_bkeyboard_tab</item> + <item name="iconNum1Key">@drawable/sym_bkeyboard_num1</item> + <item name="iconNum2Key">@drawable/sym_bkeyboard_num2</item> + <item name="iconNum3Key">@drawable/sym_bkeyboard_num3</item> + <item name="iconNum4Key">@drawable/sym_bkeyboard_num4</item> + <item name="iconNum5Key">@drawable/sym_bkeyboard_num5</item> + <item name="iconNum6Key">@drawable/sym_bkeyboard_num6</item> + <item name="iconNum7Key">@drawable/sym_bkeyboard_num7</item> + <item name="iconNum8Key">@drawable/sym_bkeyboard_num8</item> + <item name="iconNum9Key">@drawable/sym_bkeyboard_num9</item> + <item name="iconNum0Key">@drawable/sym_bkeyboard_num0</item> + <item name="iconShiftedShiftKey">@drawable/sym_bkeyboard_shift_locked</item> + <item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item> + <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item> + <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_feedback_settings</item> + <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item> + <!-- LatinKeyboard icons --> + <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item> + <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item> + <item name="spacebarArrowLeftIcon">@drawable/sym_keyboard_language_arrows_left</item> + <item name="spacebarArrowRightIcon">@drawable/sym_keyboard_language_arrows_right</item> + <item name="spacebarArrowPreviewLeftIcon">@drawable/sym_keyboard_feedback_language_arrows_left</item> + <item name="spacebarArrowPreviewRightIcon">@drawable/sym_keyboard_feedback_language_arrows_right</item> + </style> +</resources> diff --git a/java/res/values/keyboard-icons-ics.xml b/java/res/values/keyboard-icons-ics.xml new file mode 100644 index 000000000..3029695e6 --- /dev/null +++ b/java/res/values/keyboard-icons-ics.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardIcons.IceCreamSandwich" parent="android:Theme.Holo"> + <!-- Keyboard icons --> +<!-- <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo</item> --> + <item name="iconShiftKey">@drawable/sym_keyboard_shift</item> +<!-- <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_voice_holo</item> --> + <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic</item> +<!-- <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item> --> + <item name="iconDeleteKey">@drawable/sym_keyboard_delete</item> +<!-- <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item> --> + <item name="iconSettingsKey">@drawable/sym_keyboard_settings</item> +<!-- <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item> --> + <item name="iconShortcutKey">@drawable/sym_keyboard_mic</item> +<!-- <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo</item> --> + <item name="iconSpaceKey">@drawable/sym_keyboard_space</item> +<!-- <item name="iconReturnKey">@drawable/sym_keyboard_return_holo</item> --> + <item name="iconReturnKey">@drawable/sym_keyboard_return</item> +<!-- <item name="iconSearchKey">@drawable/sym_keyboard_search_holo</item> --> + <item name="iconSearchKey">@drawable/sym_keyboard_search</item> +<!-- <item name="iconTabKey">@drawable/sym_keyboard_tab_holo</item> --> + <item name="iconTabKey">@drawable/sym_keyboard_tab</item> +<!-- <item name="iconNum1Key">@drawable/sym_keyboard_num1_holo</item> --> +<!-- <item name="iconNum2Key">@drawable/sym_keyboard_num2_holo</item> --> +<!-- <item name="iconNum3Key">@drawable/sym_keyboard_num3_holo</item> --> +<!-- <item name="iconNum4Key">@drawable/sym_keyboard_num4_holo</item> --> +<!-- <item name="iconNum5Key">@drawable/sym_keyboard_num5_holo</item> --> +<!-- <item name="iconNum6Key">@drawable/sym_keyboard_num6_holo</item> --> +<!-- <item name="iconNum7Key">@drawable/sym_keyboard_num7_holo</item> --> +<!-- <item name="iconNum8Key">@drawable/sym_keyboard_num8_holo</item> --> +<!-- <item name="iconNum9Key">@drawable/sym_keyboard_num9_holo</item> --> +<!-- <item name="iconNum0Key">@drawable/sym_keyboard_num0_holo</item> --> +<!-- <item name="iconNumStarKey">@drawable/sym_keyboard_numbstar_holo</item> --> +<!-- <item name="iconNumPoundKey">@drawable/sym_keyboard_numbpound_holo</item> --> +<!-- <item name="iconNumAltKey">@drawable/sym_keyboard_numalt_holo</item> --> + <item name="iconNum1Key">@drawable/sym_keyboard_num1</item> + <item name="iconNum2Key">@drawable/sym_keyboard_num2</item> + <item name="iconNum3Key">@drawable/sym_keyboard_num3</item> + <item name="iconNum4Key">@drawable/sym_keyboard_num4</item> + <item name="iconNum5Key">@drawable/sym_keyboard_num5</item> + <item name="iconNum6Key">@drawable/sym_keyboard_num6</item> + <item name="iconNum7Key">@drawable/sym_keyboard_num7</item> + <item name="iconNum8Key">@drawable/sym_keyboard_num8</item> + <item name="iconNum9Key">@drawable/sym_keyboard_num9</item> + <item name="iconNum0Key">@drawable/sym_keyboard_num0</item> +<!-- <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked_holo</item> --> + <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked</item> + <item name="iconPreviewSpaceKey">@drawable/sym_keyboard_space_holo</item> +<!-- <item name="iconPreviewTabKey">@drawable/sym_keyboard_tab_holo</item> --> + <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item> +<!-- <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings_holo</item> --> + <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings</item> +<!-- <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_voice_holo</item> --> + <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item> + <!-- LatinKeyboard icons --> + <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item> + <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item> + <item name="spacebarArrowLeftIcon">@drawable/sym_keyboard_language_arrows_left</item> + <item name="spacebarArrowRightIcon">@drawable/sym_keyboard_language_arrows_right</item> + <item name="spacebarArrowPreviewLeftIcon">@drawable/sym_keyboard_feedback_language_arrows_left</item> + <item name="spacebarArrowPreviewRightIcon">@drawable/sym_keyboard_feedback_language_arrows_right</item> + </style> +</resources> diff --git a/java/res/values/keyboard-icons-white.xml b/java/res/values/keyboard-icons-white.xml new file mode 100644 index 000000000..9f5fb5a5b --- /dev/null +++ b/java/res/values/keyboard-icons-white.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardIcons" parent="android:Theme"> + <!-- Keyboard icons --> + <item name="iconShiftKey">@drawable/sym_keyboard_shift</item> + <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic</item> + <item name="iconDeleteKey">@drawable/sym_keyboard_delete</item> + <item name="iconSettingsKey">@drawable/sym_keyboard_settings</item> + <item name="iconShortcutKey">@drawable/sym_keyboard_mic</item> + <item name="iconSpaceKey">@drawable/sym_keyboard_space</item> + <item name="iconReturnKey">@drawable/sym_keyboard_return</item> + <item name="iconSearchKey">@drawable/sym_keyboard_search</item> + <item name="iconTabKey">@drawable/sym_keyboard_tab</item> + <item name="iconNum1Key">@drawable/sym_keyboard_num1</item> + <item name="iconNum2Key">@drawable/sym_keyboard_num2</item> + <item name="iconNum3Key">@drawable/sym_keyboard_num3</item> + <item name="iconNum4Key">@drawable/sym_keyboard_num4</item> + <item name="iconNum5Key">@drawable/sym_keyboard_num5</item> + <item name="iconNum6Key">@drawable/sym_keyboard_num6</item> + <item name="iconNum7Key">@drawable/sym_keyboard_num7</item> + <item name="iconNum8Key">@drawable/sym_keyboard_num8</item> + <item name="iconNum9Key">@drawable/sym_keyboard_num9</item> + <item name="iconNum0Key">@drawable/sym_keyboard_num0</item> + <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked</item> + <item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item> + <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item> + <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_feedback_settings</item> + <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item> + <!-- LatinKeyboard icons --> + <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item> + <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item> + <item name="spacebarArrowLeftIcon">@drawable/sym_keyboard_language_arrows_left</item> + <item name="spacebarArrowRightIcon">@drawable/sym_keyboard_language_arrows_right</item> + <item name="spacebarArrowPreviewLeftIcon">@drawable/sym_keyboard_feedback_language_arrows_left</item> + <item name="spacebarArrowPreviewRightIcon">@drawable/sym_keyboard_feedback_language_arrows_right</item> + </style> +</resources> diff --git a/java/res/values/keycodes.xml b/java/res/values/keycodes.xml index d5926ecfd..ee345291a 100644 --- a/java/res/values/keycodes.xml +++ b/java/res/values/keycodes.xml @@ -23,9 +23,6 @@ <integer name="key_tab">9</integer> <integer name="key_return">10</integer> <integer name="key_space">32</integer> - <integer name="key_dash">45</integer> - <integer name="key_single_quote">39</integer> - <integer name="key_double_quote">34</integer> <integer name="key_shift">-1</integer> <integer name="key_switch_alpha_symbol">-2</integer> <integer name="key_delete">-5</integer> diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml index ac6082f22..75f4c50fb 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -58,6 +58,11 @@ <!-- Description for delay for dismissing a popup on screen: default value of the delay [CHAR LIMIT=15] --> <string name="key_preview_popup_dismiss_default_delay">Default</string> + <!-- Option name for enabling or disabling the use of names of people in Contacts for suggestion and correction [CHAR LIMIT=25] --> + <string name="use_contacts_dict">Suggest Contact names</string> + <!-- Description for option enabling or disabling the use of names of people in Contacts for suggestion and correction [CHAR LIMIT=65] --> + <string name="use_contacts_dict_summary">Use names from Contacts for suggestions and corrections</string> + <!-- Option to enable auto capitalization of sentences --> <string name="auto_cap">Auto-capitalization</string> @@ -126,6 +131,81 @@ <!-- Label for "Wait" key of phone number keyboard. Must be short to fit on key! [CHAR LIMIT=5]--> <string name="label_wait_key">Wait</string> + <!-- Spoken description for the currently entered text --> + <string name="spoken_current_text_is">Current text is "%s"</string> + <!-- Spoken description when there is no text entered --> + <string name="spoken_no_text_entered">No text entered</string> + + <!-- Spoken description for unknown keyboard keys. --> + <string name="spoken_description_unknown">Key code %d</string> + <!-- Spoken description for the "Shift" keyboard key. --> + <string name="spoken_description_shift">Shift</string> + <!-- Spoken description for the "Shift" keyboard key's pressed state. --> + <string name="spoken_description_shift_shifted">Shift enabled</string> + <!-- Spoken description for the "Shift" keyboard key's pressed state. --> + <string name="spoken_description_caps_lock">Caps lock enabled</string> + <!-- Spoken description for the "Delete" keyboard key. --> + <string name="spoken_description_delete">Delete</string> + <!-- Spoken description for the "To Symbol" keyboard key. --> + <string name="spoken_description_to_symbol">Symbols</string> + <!-- Spoken description for the "To Alpha" keyboard key. --> + <string name="spoken_description_to_alpha">Letters</string> + <!-- Spoken description for the "To Numbers" keyboard key. --> + <string name="spoken_description_to_numeric">Numbers</string> + <!-- Spoken description for the "Settings" keyboard key. --> + <string name="spoken_description_settings">Settings</string> + <!-- Spoken description for the "Tab" keyboard key. --> + <string name="spoken_description_tab">Tab</string> + <!-- Spoken description for the "Space" keyboard key. --> + <string name="spoken_description_space">Space</string> + <!-- Spoken description for the "Mic" keyboard key. --> + <string name="spoken_description_mic">Voice input</string> + <!-- Spoken description for the "Smiley" keyboard key. --> + <string name="spoken_description_smiley">Smiley face</string> + <!-- Spoken description for the "Return" keyboard key. --> + <string name="spoken_description_return">Return</string> + + <!-- Spoken description for the "," keyboard key. --> + <string name="spoken_description_comma">Comma</string> + <!-- Spoken description for the "." keyboard key. --> + <string name="spoken_description_period">Period</string> + <!-- Spoken description for the "(" keyboard key. --> + <string name="spoken_description_left_parenthesis">Left parenthesis</string> + <!-- Spoken description for the ")" keyboard key. --> + <string name="spoken_description_right_parenthesis">Right parenthesis</string> + <!-- Spoken description for the ":" keyboard key. --> + <string name="spoken_description_colon">Colon</string> + <!-- Spoken description for the ";" keyboard key. --> + <string name="spoken_description_semicolon">Semicolon</string> + <!-- Spoken description for the "!" keyboard key. --> + <string name="spoken_description_exclamation_mark">Exclamation mark</string> + <!-- Spoken description for the "?" keyboard key. --> + <string name="spoken_description_question_mark">Question mark</string> + <!-- Spoken description for the """ keyboard key. --> + <string name="spoken_description_double_quote">Double quote</string> + <!-- Spoken description for the "'" keyboard key. --> + <string name="spoken_description_single_quote">Single quote</string> + <!-- Spoken description for the "•" keyboard key. --> + <string name="spoken_description_dot">Dot</string> + <!-- Spoken description for the "√" keyboard key. --> + <string name="spoken_description_square_root">Square root</string> + <!-- Spoken description for the "π" keyboard key. --> + <string name="spoken_description_pi">Pi</string> + <!-- Spoken description for the "Δ" keyboard key. --> + <string name="spoken_description_delta">Delta</string> + <!-- Spoken description for the "™" keyboard key. --> + <string name="spoken_description_trademark">Trademark</string> + <!-- Spoken description for the "℅" keyboard key. --> + <string name="spoken_description_care_of">Care of</string> + <!-- Spoken description for the "*" keyboard key. --> + <string name="spoken_description_star">Star</string> + <!-- Spoken description for the "#" keyboard key. --> + <string name="spoken_description_pound">Pound</string> + <!-- Spoken description for the "…" keyboard key. --> + <string name="spoken_description_ellipsis">Ellipsis</string> + <!-- Spoken description for the "„" keyboard key. --> + <string name="spoken_description_low_double_quote">Low double quote</string> + <!-- Voice related labels --> <!-- Title of the warning dialog that shows when a user initiates voice input for @@ -247,20 +327,26 @@ <string name="subtype_mode_da_keyboard">Danish Keyboard</string> <!-- Description for German keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_de_keyboard">German Keyboard</string> + <!-- Description for German QWERTY keyboard subtype [CHAR LIMIT=35] --> + <string name="subtype_mode_de_qwerty_keyboard">German QWERTY Keyboard</string> <!-- Description for English (United Kingdom) keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_en_GB_keyboard">English (UK) Keyboard</string> <!-- Description for English (United States) keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_en_US_keyboard">English (US) Keyboard</string> <!-- Description for Spanish keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_es_keyboard">Spanish Keyboard</string> - <!-- Description for Spanish (United States) keyboard subtype [CHAR LIMIT=35] --> - <string name="subtype_mode_es_US_keyboard">Spanish (US) Keyboard</string> + <!-- Description for Finnish keyboard subtype [CHAR LIMIT=35] --> + <string name="subtype_mode_fi_keyboard">Finnish Keyboard</string> <!-- Description for French keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_fr_keyboard">French Keyboard</string> <!-- Description for French (Canada) keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_fr_CA_keyboard">French (Canada) Keyboard</string> <!-- Description for French (Switzerland) keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_fr_CH_keyboard">French (Switzerland) Keyboard</string> + <!-- Description for Croatian keyboard subtype [CHAR LIMIT=35] --> + <string name="subtype_mode_hr_keyboard">Croatian Keyboard</string> + <!-- Description for Hungarian keyboard subtype [CHAR LIMIT=35] --> + <string name="subtype_mode_hu_keyboard">Hungarian Keyboard</string> <!-- Description for Hebrew keyboard subtype [CHAR LIMIT=35] --> <!-- Java uses the deprecated "iw" code instead of the standard "he" code --> <string name="subtype_mode_iw_keyboard">Hebrew Keyboard</string> @@ -280,6 +366,8 @@ <string name="subtype_mode_sr_keyboard">Serbian Keyboard</string> <!-- Description for Swedish keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_sv_keyboard">Swedish Keyboard</string> + <!-- Description for Turkish keyboard subtype [CHAR LIMIT=35] --> + <string name="subtype_mode_tr_keyboard">Turkish Keyboard</string> <!-- Description for Afrikaans voice input subtype [CHAR LIMIT=35] --> <string name="subtype_mode_af_voice">Afrikaans Voice</string> <!-- Description for Czech voice input subtype [CHAR LIMIT=35] --> diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml index 3a389e57b..05defcb52 100644 --- a/java/res/values/styles.xml +++ b/java/res/values/styles.xml @@ -15,25 +15,169 @@ --> <resources> + <!-- Theme "Basic" --> + <style name="Keyboard"> + <item name="rowHeight">25%p</item> + <item name="keyboardHeight">@dimen/keyboardHeight</item> + <item name="maxKeyboardHeight">@fraction/maxKeyboardHeight</item> + <item name="minKeyboardHeight">@fraction/minKeyboardHeight</item> + <item name="popupKeyboardTemplate">@xml/kbd_popup_template</item> + <item name="keyboardTopPadding">@dimen/keyboard_top_padding</item> + <item name="keyboardBottomPadding">@dimen/keyboard_bottom_padding</item> + <item name="horizontalGap">@dimen/key_horizontal_gap</item> + <item name="verticalGap">@dimen/key_bottom_gap</item> + <item name="maxPopupKeyboardColumn">@integer/config_max_popup_keyboard_column</item> + </style> + <style name="LatinKeyboard"> + <item name="autoCorrectionSpacebarLedEnabled">@bool/config_auto_correction_spacebar_led_enabled</item> + <item name="spacebarTextColor">#FFC0C0C0</item> + <item name="spacebarTextShadowColor">#80000000</item> + </style> <style name="KeyboardView"> <item name="android:background">@drawable/keyboard_background</item> - <item name="keyBackground">@drawable/btn_keyboard_key</item> <item name="keyLetterRatio">@fraction/key_letter_ratio</item> - <item name="keyLetterStyle">normal</item> + <item name="keyLabelRatio">@fraction/key_label_ratio</item> + <item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item> + <item name="keyUppercaseLetterRatio">@fraction/key_uppercase_letter_ratio</item> + <item name="keyTextStyle">normal</item> <item name="keyTextColor">#FFFFFFFF</item> - <item name="keyTextColorDisabled">#FFFFFFFF</item> + <item name="keyTextInactivatedColor">#FFFFFFFF</item> + <item name="keyHintLetterColor">#80000000</item> + <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item> + <item name="keyUppercaseLetterActivatedColor">#CCE0E4E5</item> + <item name="keyPopupHintIcon">@drawable/hint_popup</item> <item name="keyPreviewLayout">@layout/key_preview</item> <item name="keyPreviewOffset">@dimen/key_preview_offset</item> <item name="keyPreviewHeight">@dimen/key_preview_height</item> - <item name="labelTextRatio">@fraction/key_label_text_ratio</item> <item name="popupLayout">@layout/keyboard_popup</item> <item name="keyHysteresisDistance">@dimen/key_hysteresis_distance</item> <item name="verticalCorrection">@dimen/keyboard_vertical_correction</item> <item name="shadowColor">#BB000000</item> <item name="shadowRadius">2.75</item> <item name="backgroundDimAmount">0.5</item> - <item name="colorScheme">white</item> + </style> + <style name="KeyPreviewStyle"> + <item name="android:background">@drawable/keyboard_key_feedback</item> + <item name="android:textColor">#FFFFFFFF</item> + </style> + <style name="PopupMiniKeyboardView" parent="KeyboardView"> + <item name="keyBackground">@drawable/btn_keyboard_key_popup</item> + <item name="keyHysteresisDistance">0dip</item> + <item name="verticalCorrection">@dimen/mini_keyboard_vertical_correction</item> + </style> + <style name="PopupMiniKeyboardPanelStyle"> + <item name="android:background">@drawable/keyboard_popup_panel_background</item> + <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding</item> + <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding</item> + </style> + <style name="SuggestionsStripBackgroundStyle"> + <item name="android:background">@drawable/keyboard_suggest_strip</item> + </style> + <style name="SuggestionBackgroundStyle"> + <item name="android:background">@drawable/btn_candidate</item> + </style> + <style name="SuggestionPreviewBackgroundStyle"> + <item name="android:background">@drawable/candidate_feedback_background</item> + </style> + <style name="CandidateViewStyle" parent="SuggestionsStripBackgroundStyle"> + <item name="autoCorrectHighlight">autoCorrectBold</item> + <item name="colorTypedWord">#FFFFFFFF</item> + <item name="colorAutoCorrect">#FFFCAE00</item> + <item name="colorSuggested">#FFFCAE00</item> + <item name="iconExpandPane">@drawable/btn_expand_candidates_pane</item> + <item name="iconClosePane">@drawable/btn_close_candidates_pane</item>" + </style> + <!-- Theme "Basic high contrast" --> + <style name="KeyboardView.HighContrast" parent="KeyboardView"> + <item name="android:background">@android:color/black</item> + <item name="keyBackground">@drawable/btn_keyboard_key3</item> + </style> + <!-- Theme "Stone" --> + <style name="Keyboard.Stone" parent="Keyboard"> + <item name="horizontalGap">@dimen/key_horizontal_gap_stone</item> + <item name="verticalGap">@dimen/key_bottom_gap_stone</item> + </style> + <style name="LatinKeyboard.Stone" parent="LatinKeyboard"> + <item name="spacebarTextColor">#FF444444</item> + <item name="spacebarTextShadowColor">#80FFFFFF</item> + </style> + <style name="KeyboardView.Stone" parent="KeyboardView"> + <item name="keyBackground">@drawable/btn_keyboard_key_stone</item> + <item name="keyTextColor">#FF000000</item> + <item name="keyTextInactivatedColor">#FF808080</item> + <item name="shadowColor">#FFFFFFFF</item> + </style> + <style name="PopupMiniKeyboardView.Stone" parent="PopupMiniKeyboardView"> + <item name="keyBackground">@drawable/btn_keyboard_key_stone</item> + <item name="keyTextColor">#FF000000</item> + <item name="shadowColor">#FFFFFFFF</item> + </style> + <!-- Theme "Stone bold" --> + <style name="KeyboardView.Stone.Bold" parent="KeyboardView.Stone"> + <item name="keyTextStyle">bold</item> + </style> + <!-- Theme "Gingerbread" --> + <style name="KeyboardView.Gingerbread" parent="KeyboardView"> + <item name="android:background">@drawable/keyboard_dark_background</item> + <item name="keyBackground">@drawable/btn_keyboard_key_gingerbread</item> + <item name="keyTextStyle">bold</item> + </style> + <style name="PopupMiniKeyboardView.Gingerbread" parent="PopupMiniKeyboardView"> + <item name="android:background">@null</item> + </style> + <!-- Theme "IceCreamSandwich" --> + <style name="Keyboard.IceCreamSandwich" parent="Keyboard" > + <item name="keyboardTopPadding">@dimen/keyboard_top_padding_ics</item> + <item name="keyboardBottomPadding">@dimen/keyboard_bottom_padding_ics</item> + <item name="horizontalGap">@dimen/key_horizontal_gap_ics</item> + <item name="verticalGap">@dimen/key_bottom_gap_ics</item> + </style> + <style name="LatinKeyboard.IceCreamSandwich" parent="LatinKeyboard"> + <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item> + </style> + <style name="KeyboardView.IceCreamSandwich" parent="KeyboardView"> + <item name="android:background">@drawable/keyboard_background_holo</item> + <item name="keyBackground">@drawable/btn_keyboard_key_ics</item> + <item name="keyTextStyle">bold</item> + <item name="keyTextInactivatedColor">#66E0E4E5</item> + <item name="keyHintLetterColor">#80000000</item> + <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item> + <item name="keyUppercaseLetterActivatedColor">#FFFFFFFF</item> + <item name="keyPopupHintIcon">@drawable/hint_popup</item> + <item name="keyPreviewHeight">@dimen/key_preview_height</item> + <item name="keyPreviewOffset">@dimen/key_preview_offset_ics</item> + <item name="shadowColor">#00000000</item> + <item name="shadowRadius">0.0</item> + </style> + <style name="KeyPreviewStyle.IceCreamSandwich"> + <item name="android:background">@drawable/keyboard_key_feedback_ics</item> + </style> + <style name="PopupMiniKeyboardView.IceCreamSandwich" parent="PopupMiniKeyboardView"> + <item name="android:background">@null</item> + <item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item> + </style> + <style name="PopupMiniKeyboardPanelStyle.IceCreamSandwich"> + <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item> + <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding_holo</item> + <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding_holo</item> + </style> + <style name="SuggestionsStripBackgroundStyle.IceCreamSandwich"> + <item name="android:background">@drawable/keyboard_suggest_strip_holo</item> + </style> + <style name="SuggestionBackgroundStyle.IceCreamSandwich"> + <item name="android:background">@drawable/btn_candidate_ics</item> + </style> + <style name="SuggestionPreviewBackgroundStyle.IceCreamSandwich"> + <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item> + </style> + <style name="CandidateViewStyle.IceCreamSandwich" parent="SuggestionsStripBackgroundStyle.IceCreamSandwich"> + <item name="autoCorrectHighlight">autoCorrectUnderline|autoCorrectInvert</item> + <item name="colorTypedWord">#FFFFFFFF</item> + <item name="colorAutoCorrect">#FFFFFFFF</item> + <item name="colorSuggested">#FFFFFFFF</item> + <item name="iconExpandPane">@drawable/btn_expand_candidates_pane</item> + <item name="iconClosePane">@drawable/btn_close_candidates_pane</item>" </style> <style name="PopupMiniKeyboardAnimation"> <item name="android:windowEnterAnimation">@anim/mini_keyboard_fadein</item> diff --git a/java/res/values/themes-basic-highcontrast.xml b/java/res/values/themes-basic-highcontrast.xml new file mode 100644 index 000000000..8122e4eb0 --- /dev/null +++ b/java/res/values/themes-basic-highcontrast.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardTheme.HighContrast" parent="KeyboardIcons"> + <item name="keyboardStyle">@style/Keyboard</item> + <item name="latinKeyboardStyle">@style/LatinKeyboard</item> + <item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item> + <item name="keyPreviewStyle">@style/KeyPreviewStyle</item> + <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item> + <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item> + <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> + <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> + <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item> + <item name="candidateViewStyle">@style/CandidateViewStyle</item> + </style> +</resources> diff --git a/java/res/values/themes-basic.xml b/java/res/values/themes-basic.xml new file mode 100644 index 000000000..50b52de32 --- /dev/null +++ b/java/res/values/themes-basic.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardTheme" parent="KeyboardIcons"> + <item name="keyboardStyle">@style/Keyboard</item> + <item name="latinKeyboardStyle">@style/LatinKeyboard</item> + <item name="keyboardViewStyle">@style/KeyboardView</item> + <item name="keyPreviewStyle">@style/KeyPreviewStyle</item> + <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item> + <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item> + <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> + <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> + <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item> + <item name="candidateViewStyle">@style/CandidateViewStyle</item> + </style> +</resources> diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml new file mode 100644 index 000000000..cdb10c81a --- /dev/null +++ b/java/res/values/themes-gingerbread.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardTheme.Gingerbread" parent="KeyboardIcons"> + <item name="keyboardStyle">@style/Keyboard</item> + <item name="latinKeyboardStyle">@style/LatinKeyboard</item> + <item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item> + <item name="keyPreviewStyle">@style/KeyPreviewStyle</item> + <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Gingerbread</item> + <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item> + <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> + <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> + <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item> + <item name="candidateViewStyle">@style/CandidateViewStyle</item> + </style> +</resources> diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml new file mode 100644 index 000000000..33c40816b --- /dev/null +++ b/java/res/values/themes-ics.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardTheme.IceCreamSandwich" parent="KeyboardIcons.IceCreamSandwich"> + <item name="keyboardStyle">@style/Keyboard.IceCreamSandwich</item> + <item name="latinKeyboardStyle">@style/LatinKeyboard.IceCreamSandwich</item> + <item name="keyboardViewStyle">@style/KeyboardView.IceCreamSandwich</item> + <item name="keyPreviewStyle">@style/KeyPreviewStyle.IceCreamSandwich</item> + <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.IceCreamSandwich</item> + <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle.IceCreamSandwich</item> + <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.IceCreamSandwich</item> + <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.IceCreamSandwich</item> + <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle.IceCreamSandwich</item> + <item name="candidateViewStyle">@style/CandidateViewStyle.IceCreamSandwich</item> + </style> +</resources> diff --git a/java/res/values/themes-stone-bold.xml b/java/res/values/themes-stone-bold.xml new file mode 100644 index 000000000..6589807ec --- /dev/null +++ b/java/res/values/themes-stone-bold.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardTheme.Stone.Bold" parent="KeyboardIcons.Black"> + <item name="keyboardStyle">@style/Keyboard.Stone</item> + <item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item> + <item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item> + <item name="keyPreviewStyle">@style/KeyPreviewStyle</item> + <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item> + <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item> + <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> + <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> + <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item> + <item name="candidateViewStyle">@style/CandidateViewStyle</item> + </style> +</resources> diff --git a/java/res/values/themes-stone.xml b/java/res/values/themes-stone.xml new file mode 100644 index 000000000..a8608f6b3 --- /dev/null +++ b/java/res/values/themes-stone.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <style name="KeyboardTheme.Stone" parent="KeyboardIcons.Black"> + <item name="keyboardStyle">@style/Keyboard.Stone</item> + <item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item> + <item name="keyboardViewStyle">@style/KeyboardView.Stone</item> + <item name="keyPreviewStyle">@style/KeyPreviewStyle</item> + <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item> + <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item> + <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item> + <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item> + <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item> + <item name="candidateViewStyle">@style/CandidateViewStyle</item> + </style> +</resources> diff --git a/java/res/values/whitelist.xml b/java/res/values/whitelist.xml index ced52e70e..d4ecbfaa4 100644 --- a/java/res/values/whitelist.xml +++ b/java/res/values/whitelist.xml @@ -25,14 +25,5 @@ 3. (String)after --> <string-array name="wordlist_whitelist"> - - <item>255</item> - <item>ill</item> - <item>I\'ll</item> - - <item>255</item> - <item>thisd</item> - <item>this\'d</item> - </string-array> </resources> diff --git a/java/res/xml-ar/kbd_qwerty.xml b/java/res/xml-ar/kbd_qwerty.xml index 93310bf9c..57a6d2caf 100644 --- a/java/res/xml-ar/kbd_qwerty.xml +++ b/java/res/xml-ar/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="ar" > <include - latin:keyboardLayout="@xml/kbd_ar_rows" /> + latin:keyboardLayout="@xml/kbd_rows_arabic" /> </Keyboard> diff --git a/java/res/xml-cs/kbd_qwerty.xml b/java/res/xml-cs/kbd_qwerty.xml index a74f7fa84..9991ea2d2 100644 --- a/java/res/xml-cs/kbd_qwerty.xml +++ b/java/res/xml-cs/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="cs" > <include - latin:keyboardLayout="@xml/kbd_qwertz_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwertz" /> </Keyboard> diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml index 12ea33c13..37a50fdfd 100644 --- a/java/res/xml-da/kbd_qwerty.xml +++ b/java/res/xml-da/kbd_qwerty.xml @@ -20,16 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="da" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" /> + latin:keyboardLayout="@xml/kbd_rows_scandinavian" /> </Keyboard> diff --git a/java/res/xml-de-rZZ/kbd_qwerty.xml b/java/res/xml-de-rZZ/kbd_qwerty.xml new file mode 100644 index 000000000..d5fd8ef7a --- /dev/null +++ b/java/res/xml-de-rZZ/kbd_qwerty.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyboardLocale="de" +> + <include + latin:keyboardLayout="@xml/kbd_rows_qwerty" /> +</Keyboard> diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml index cc7722a44..89e10b26d 100644 --- a/java/res/xml-de/kbd_qwerty.xml +++ b/java/res/xml-de/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="de" > <include - latin:keyboardLayout="@xml/kbd_qwertz_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwertz" /> </Keyboard> diff --git a/java/res/xml-es/kbd_qwerty.xml b/java/res/xml-es/kbd_qwerty.xml index 3906bde38..568f4d652 100644 --- a/java/res/xml-es/kbd_qwerty.xml +++ b/java/res/xml-es/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="es,es_US" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows" /> + latin:keyboardLayout="@xml/kbd_rows_spanish" /> </Keyboard> diff --git a/java/res/xml-fi/kbd_qwerty.xml b/java/res/xml-fi/kbd_qwerty.xml index e35ab2b41..75721e057 100644 --- a/java/res/xml-fi/kbd_qwerty.xml +++ b/java/res/xml-fi/kbd_qwerty.xml @@ -20,16 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="fi" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" /> + latin:keyboardLayout="@xml/kbd_rows_scandinavian" /> </Keyboard> diff --git a/java/res/xml-fr-rCA/kbd_qwerty.xml b/java/res/xml-fr-rCA/kbd_qwerty.xml index e649a1e9c..7bdfbadf1 100644 --- a/java/res/xml-fr-rCA/kbd_qwerty.xml +++ b/java/res/xml-fr-rCA/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="fr_CA" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwerty" /> </Keyboard> diff --git a/java/res/xml-fr-rCH/kbd_qwerty.xml b/java/res/xml-fr-rCH/kbd_qwerty.xml index f82becb48..41b701d83 100644 --- a/java/res/xml-fr-rCH/kbd_qwerty.xml +++ b/java/res/xml-fr-rCH/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="fr_CH" > <include - latin:keyboardLayout="@xml/kbd_qwertz_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwertz" /> </Keyboard> diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml index 5d1f10c6b..8c730a24f 100644 --- a/java/res/xml-fr/kbd_qwerty.xml +++ b/java/res/xml-fr/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="fr" > <include - latin:keyboardLayout="@xml/kbd_azerty_rows" /> + latin:keyboardLayout="@xml/kbd_rows_azerty" /> </Keyboard> diff --git a/java/res/xml-hr/kbd_qwerty.xml b/java/res/xml-hr/kbd_qwerty.xml new file mode 100644 index 000000000..ca92e86a7 --- /dev/null +++ b/java/res/xml-hr/kbd_qwerty.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyboardLocale="hr" +> + <!-- TODO: Dedicated Croatian layout especially for tablet. --> + <include + latin:keyboardLayout="@xml/kbd_rows_qwertz" /> +</Keyboard> diff --git a/java/res/xml-hu/kbd_qwerty.xml b/java/res/xml-hu/kbd_qwerty.xml index 952ad9a0f..3195d5b1f 100644 --- a/java/res/xml-hu/kbd_qwerty.xml +++ b/java/res/xml-hu/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="hu" > <include - latin:keyboardLayout="@xml/kbd_qwertz_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwertz" /> </Keyboard> diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml index cfe404c9d..dc2c5d35a 100644 --- a/java/res/xml-iw/kbd_qwerty.xml +++ b/java/res/xml-iw/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="iw" > <include - latin:keyboardLayout="@xml/kbd_iw_rows" /> + latin:keyboardLayout="@xml/kbd_rows_hebrew" /> </Keyboard> diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml index e7a743ca9..1f4e86e89 100644 --- a/java/res/xml-nb/kbd_qwerty.xml +++ b/java/res/xml-nb/kbd_qwerty.xml @@ -20,16 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="nb" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" /> + latin:keyboardLayout="@xml/kbd_rows_scandinavian" /> </Keyboard> diff --git a/java/res/xml-pl/kbd_qwerty.xml b/java/res/xml-pl/kbd_qwerty.xml index ab5b88728..44312c52c 100644 --- a/java/res/xml-pl/kbd_qwerty.xml +++ b/java/res/xml-pl/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="pl" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwerty" /> </Keyboard> diff --git a/java/res/xml-pt/kbd_qwerty.xml b/java/res/xml-pt/kbd_qwerty.xml index 83fb5b4c1..f5dcbc61b 100644 --- a/java/res/xml-pt/kbd_qwerty.xml +++ b/java/res/xml-pt/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="pt" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwerty" /> </Keyboard> diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml index 826818c46..aee1b1bfc 100644 --- a/java/res/xml-ru/kbd_qwerty.xml +++ b/java/res/xml-ru/kbd_qwerty.xml @@ -20,16 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="ru" > <include - latin:keyboardLayout="@xml/kbd_ru_rows" /> + latin:keyboardLayout="@xml/kbd_rows_russian" /> </Keyboard> diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml index 6116c7536..58fc187c2 100644 --- a/java/res/xml-sr/kbd_qwerty.xml +++ b/java/res/xml-sr/kbd_qwerty.xml @@ -20,16 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="sr" > <include - latin:keyboardLayout="@xml/kbd_sr_rows" /> + latin:keyboardLayout="@xml/kbd_rows_serbian" /> </Keyboard> diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml index 69f0b3fa0..e29d9abce 100644 --- a/java/res/xml-sv/kbd_qwerty.xml +++ b/java/res/xml-sv/kbd_qwerty.xml @@ -20,16 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="sv" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" /> + latin:keyboardLayout="@xml/kbd_rows_scandinavian" /> </Keyboard> diff --git a/java/res/xml-sw600dp-land/kbd_popup_template.xml b/java/res/xml-sw600dp-land/kbd_popup_template.xml new file mode 100644 index 000000000..2c1d1902e --- /dev/null +++ b/java/res/xml-sw600dp-land/kbd_popup_template.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyWidth="5%p" + latin:horizontalGap="0px" + latin:verticalGap="0px" + latin:rowHeight="@dimen/popup_key_height" + > +</Keyboard> diff --git a/java/res/xml-sw600dp/kbd_key_styles.xml b/java/res/xml-sw600dp/kbd_key_styles.xml new file mode 100644 index 000000000..e8e80ac03 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_key_styles.xml @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- Base key style for the functional key --> + <key-style + latin:styleName="functionalKeyStyle" + latin:isFunctional="true" /> + <!-- Base key style for the key which may have settings key as popup key --> + <switch> + <case + latin:clobberSettingsKey="true" + > + <key-style + latin:styleName="settingsPopupStyle" + latin:parentStyle="functionalKeyStyle" /> + </case> + <default> + <key-style + latin:styleName="settingsPopupStyle" + latin:keyLabelOption="popupHint" + latin:popupCharacters="\@icon/5|\@integer/key_settings" + latin:parentStyle="functionalKeyStyle" /> + </default> + </switch> + <!-- Functional key styles --> + <key-style + latin:styleName="shiftKeyStyle" + latin:code="@integer/key_shift" + latin:keyIcon="iconShiftKey" + latin:keyIconShifted="iconShiftedShiftKey" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="deleteKeyStyle" + latin:code="@integer/key_delete" + latin:keyIcon="iconDeleteKey" + latin:parentStyle="functionalKeyStyle" + latin:isRepeatable="true" /> + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="iconReturnKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="spaceKeyStyle" + latin:code="@integer/key_space" + latin:keyIconPreview="iconPreviewSpaceKey" /> + <key-style + latin:styleName="nonSpecialBackgroundSpaceKeyStyle" + latin:code="@integer/key_space" + latin:keyIconPreview="iconPreviewSpaceKey" /> + <key-style + latin:styleName="smileyKeyStyle" + latin:keyLabel=":-)" + latin:keyOutputText=":-) " + latin:keyLabelOption="popupHint" + latin:popupCharacters="@string/alternates_for_smiley" + latin:maxPopupKeyboardColumn="5" /> + <key-style + latin:styleName="shortcutKeyStyle" + latin:code="@integer/key_shortcut" + latin:keyIcon="iconShortcutKey" + latin:keyIconPreview="iconPreviewShortcutKey" + latin:parentStyle="settingsPopupStyle" /> + <key-style + latin:styleName="settingsKeyStyle" + latin:code="@integer/key_settings" + latin:keyIcon="iconSettingsKey" + latin:keyIconPreview="iconPreviewSettingsKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="tabKeyStyle" + latin:code="@integer/key_tab" + latin:keyIcon="iconTabKey" + latin:keyIconPreview="iconPreviewTabKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_symbol_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="toAlphaKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_alpha_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="moreKeyStyle" + latin:code="@integer/key_shift" + latin:keyLabel="@string/label_more_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="comKeyStyle" + latin:keyLabel="@string/keylabel_for_popular_domain" + latin:keyLabelOption="fontNormal|popupHint" + latin:keyOutputText="@string/keylabel_for_popular_domain" + latin:popupCharacters="@string/alternates_for_popular_domain" /> + <switch> + <case + latin:passwordInput="true" + > + <key-style + latin:styleName="nonPasswordSymbolKeyStyle" + latin:enabled="false" /> + </case> + <!-- latin:passwordInput="false" --> + <default> + <key-style + latin:styleName="nonPasswordSymbolKeyStyle" + latin:enabled="true" /> + </default> + </switch> +</merge> diff --git a/java/res/xml-sw600dp/kbd_number.xml b/java/res/xml-sw600dp/kbd_number.xml new file mode 100644 index 000000000..2c7af0ae2 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_number.xml @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyWidth="16.75%p" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> + <switch> + <case + latin:passwordInput="true" + > + <!-- This row is intentionally not marked as a top row --> + <Row> + <Key + latin:keyStyle="num1KeyStyle" + latin:keyXPos="24.875%p" /> + <Key + latin:keyStyle="num2KeyStyle" /> + <Key + latin:keyStyle="num3KeyStyle" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyStyle="num4KeyStyle" + latin:keyXPos="24.875%p" /> + <Key + latin:keyStyle="num5KeyStyle" /> + <Key + latin:keyStyle="num6KeyStyle" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyStyle="num7KeyStyle" + latin:keyXPos="24.875%p" /> + <Key + latin:keyStyle="num8KeyStyle" /> + <Key + latin:keyStyle="num9KeyStyle" /> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row> + <Key + latin:keyStyle="tabKeyStyle" + latin:keyWidth="11.00%p" + latin:keyEdgeFlags="left" /> + <Spacer + latin:keyXPos="24.875%p" /> + <Key + latin:keyStyle="num0KeyStyle" /> + <Spacer + latin:keyXPos="-11.00%p" + latin:keyWidth="0%p" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f2" /> + </Row> + </case> + <!-- latin:passwordInput="false" --> + <default> + <!-- This row is intentionally not marked as a top row --> + <Row> + <Key + latin:keyLabel="-" + latin:keyStyle="numLabelStyle" + latin:keyXPos="11.00%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="+" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="." + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="1" + latin:keyXPos="38.75%p" /> + <Key + latin:keyLabel="2" /> + <Key + latin:keyLabel="3" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyLabel="*" + latin:keyStyle="numLabelStyle" + latin:keyXPos="11.00%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="/" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="," + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="4" + latin:keyXPos="38.75%p" /> + <Key + latin:keyLabel="5" /> + <Key + latin:keyLabel="6" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <!-- There is an empty area below the "More" key and left of the "(" key. To + ignore the touch event on the area, "(" is intentionally not marked as a left + edge key. --> + <Key + latin:keyLabel="(" + latin:keyStyle="numLabelStyle" + latin:keyXPos="11.00%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel=")" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="=" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="7" + latin:keyXPos="38.75%p" /> + <Key + latin:keyLabel="8" /> + <Key + latin:keyLabel="9" /> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row> + <Key + latin:keyStyle="tabKeyStyle" + latin:keyWidth="11.00%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" + latin:keyWidth="27.75%p" /> + <Key + latin:keyStyle="numStarKeyStyle" + latin:keyXPos="38.75%p" /> + <Key + latin:keyLabel="0" /> + <Key + latin:keyLabel="#" + latin:keyStyle="numLabelStyle" /> + <Spacer + latin:keyXPos="-11.00%p" + latin:keyWidth="0%p" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f2" /> + </Row> + </default> + </switch> +</Keyboard> diff --git a/java/res/xml-sw600dp/kbd_phone.xml b/java/res/xml-sw600dp/kbd_phone.xml new file mode 100644 index 000000000..4dee882e9 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_phone.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyWidth="16.75%p" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> + <!-- This row is intentionally not marked as a top row --> + <Row> + <Key + latin:keyLabel="-" + latin:keyStyle="numLabelStyle" + latin:keyXPos="15.625%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="+" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyStyle="num1KeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num2KeyStyle" /> + <Key + latin:keyStyle="num3KeyStyle" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyLabel="," + latin:keyStyle="numLabelStyle" + latin:keyXPos="15.625%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="." + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyStyle="num4KeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num5KeyStyle" /> + <Key + latin:keyStyle="num6KeyStyle" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyStyle="moreKeyStyle" + latin:keyWidth="11.0%p" + latin:keyEdgeFlags="left" /> + <!-- There is an empty area below the "More" key and left of the "(" key. To ignore + the touch event on the area, "(" is intentionally not marked as a left edge key. --> + <Key + latin:keyLabel="(" + latin:keyStyle="numLabelStyle" + latin:keyXPos="15.625%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel=")" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyStyle="num7KeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num8KeyStyle" /> + <Key + latin:keyStyle="num9KeyStyle" /> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row> + <Key + latin:keyStyle="tabKeyStyle" + latin:keyWidth="11.00%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" + latin:keyXPos="15.625%p" + latin:keyWidth="18.67%p" /> + <Key + latin:keyStyle="numStarKeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num0KeyStyle" /> + <Key + latin:keyLabel="#" + latin:keyStyle="numLabelStyle" /> + <Spacer + latin:keyXPos="-11.00%p" + latin:keyWidth="0%p" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f2" /> + </Row> +</Keyboard> diff --git a/java/res/xml-sw600dp/kbd_phone_symbols.xml b/java/res/xml-sw600dp/kbd_phone_symbols.xml new file mode 100644 index 000000000..87de880d9 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_phone_symbols.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyWidth="16.75%p" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> + <!-- This row is intentionally not marked as a top row --> + <Row> + <Key + latin:keyLabel="-" + latin:keyStyle="numLabelStyle" + latin:keyXPos="11.00%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="+" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:code="44" + latin:keyLabel="@string/label_pause_key" + latin:keyWidth="9.25%p" /> + <Key + latin:keyStyle="num1KeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num2KeyStyle" /> + <Key + latin:keyStyle="num3KeyStyle" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyLabel="," + latin:keyStyle="numLabelStyle" + latin:keyXPos="11.00%p" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="." + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:code="59" + latin:keyLabel="@string/label_wait_key" + latin:keyWidth="9.25%p" /> + <Key + latin:keyStyle="num4KeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num5KeyStyle" /> + <Key + latin:keyStyle="num6KeyStyle" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-11.00%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyStyle="moreKeyStyle" + latin:keyWidth="11.00%p" + latin:keyEdgeFlags="left" /> + <!-- There is an empty area below the "More" key and left of the "(" key. To ignore + the touch event on the area, "(" is intentionally not marked as a left edge key. --> + <Key + latin:keyLabel="(" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel=")" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyLabel="N" + latin:keyStyle="numLabelStyle" + latin:keyWidth="9.25%p" /> + <Key + latin:keyStyle="num7KeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num8KeyStyle" /> + <Key + latin:keyStyle="num9KeyStyle" /> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row> + <Key + latin:keyStyle="tabKeyStyle" + latin:keyWidth="11.00%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" + latin:keyWidth="27.75%p" /> + <Key + latin:keyStyle="numStarKeyStyle" + latin:keyXPos="38.867%p" /> + <Key + latin:keyStyle="num0KeyStyle" /> + <Key + latin:keyLabel="#" + latin:keyStyle="numLabelStyle" /> + <Spacer + latin:keyXPos="-11.00%p" + latin:keyWidth="0%p" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f2" /> + </Row> +</Keyboard> diff --git a/java/res/xml-sw600dp/kbd_popup_template.xml b/java/res/xml-sw600dp/kbd_popup_template.xml new file mode 100644 index 000000000..fff2659be --- /dev/null +++ b/java/res/xml-sw600dp/kbd_popup_template.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyWidth="8%p" + latin:horizontalGap="@dimen/key_horizontal_gap" + latin:verticalGap="0px" + latin:rowHeight="@dimen/popup_key_height" + > +</Keyboard> diff --git a/java/res/xml-sw600dp/kbd_qwerty_f2.xml b/java/res/xml-sw600dp/kbd_qwerty_f2.xml new file mode 100644 index 000000000..7638ee4b4 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_qwerty_f2.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:f2KeyMode="settings" + > + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </case> + <case + latin:f2KeyMode="shortcutIme" + > + <switch> + <case + latin:voiceKeyEnabled="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </case> + <!-- voiceKeyEnabled="false" --> + <default> + <Spacer /> + </default> + </switch> + </case> + <case + latin:f2KeyMode="shortcutImeOrSettings" + > + <switch> + <case + latin:voiceKeyEnabled="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </case> + <!-- voiceKeyEnabled="false" --> + <default> + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </default> + </switch> + </case> + <!-- f2KeyMode="none" --> + <default> + <Spacer /> + </default> + </switch> +</merge> diff --git a/java/res/xml-sw600dp/kbd_qwerty_row1.xml b/java/res/xml-sw600dp/kbd_qwerty_row1.xml new file mode 100644 index 000000000..b781d681e --- /dev/null +++ b/java/res/xml-sw600dp/kbd_qwerty_row1.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <Row + latin:keyWidth="9.0%p" + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="q" + latin:popupCharacters="@string/alternates_for_q" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="w" + latin:popupCharacters="@string/alternates_for_w" /> + <Key + latin:keyLabel="e" + latin:popupCharacters="@string/alternates_for_e" /> + <Key + latin:keyLabel="r" + latin:popupCharacters="@string/alternates_for_r" /> + <Key + latin:keyLabel="t" + latin:popupCharacters="@string/alternates_for_t" /> + <Key + latin:keyLabel="y" + latin:popupCharacters="@string/alternates_for_y" /> + <Key + latin:keyLabel="u" + latin:popupCharacters="@string/alternates_for_u" /> + <Key + latin:keyLabel="i" + latin:popupCharacters="@string/alternates_for_i" /> + <Key + latin:keyLabel="o" + latin:popupCharacters="@string/alternates_for_o" /> + <Key + latin:keyLabel="p" + latin:popupCharacters="@string/alternates_for_p" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> +</merge> diff --git a/java/res/xml-sw600dp/kbd_qwerty_row2.xml b/java/res/xml-sw600dp/kbd_qwerty_row2.xml new file mode 100644 index 000000000..05b005af1 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_qwerty_row2.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <Row + latin:keyWidth="9.0%p" + > + <Key + latin:keyLabel="a" + latin:popupCharacters="@string/alternates_for_a" + latin:keyXPos="4.5%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="s" + latin:popupCharacters="@string/alternates_for_s" /> + <Key + latin:keyLabel="d" + latin:popupCharacters="@string/alternates_for_d" /> + <Key + latin:keyLabel="f" /> + <Key + latin:keyLabel="g" + latin:popupCharacters="@string/alternates_for_g" /> + <Key + latin:keyLabel="h" /> + <Key + latin:keyLabel="j" /> + <Key + latin:keyLabel="k" + latin:popupCharacters="@string/alternates_for_k" /> + <Key + latin:keyLabel="l" + latin:popupCharacters="@string/alternates_for_l" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> +</merge> diff --git a/java/res/xml-xlarge/kbd_qwerty_row3.xml b/java/res/xml-sw600dp/kbd_qwerty_row3.xml index b7e9bcff9..0dbc5cf66 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row3.xml +++ b/java/res/xml-sw600dp/kbd_qwerty_row3.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -22,11 +22,11 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.9%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="10.0%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="z" @@ -58,21 +58,17 @@ <default> <Key latin:keyLabel="," - latin:manualTemporaryUpperCaseCode="33" - latin:keyHintIcon="@drawable/key_hint_exclamation_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="63" - latin:keyHintIcon="@drawable/key_hint_question_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" latin:popupCharacters="\?" /> </default> </switch> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.530%p" - latin:keyEdgeFlags="right" /> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> </Row> </merge> diff --git a/java/res/xml-sw600dp/kbd_qwerty_row4.xml b/java/res/xml-sw600dp/kbd_qwerty_row4.xml new file mode 100644 index 000000000..8fd65fe0e --- /dev/null +++ b/java/res/xml-sw600dp/kbd_qwerty_row4.xml @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- This row is intentionally not marked as a bottom row --> + <Row + latin:keyWidth="8.9%p" + > + <Key + latin:keyStyle="toSymbolKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="13.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="tabKeyStyle" /> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyStyle="comKeyStyle" /> + </case> + <case + latin:mode="url" + > + <Key + latin:keyStyle="comKeyStyle" /> + </case> + <default> + <Key + latin:keyLabel="/" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\@" + latin:popupCharacters="\@" /> + </default> + </switch> + <Key + latin:keyStyle="spaceKeyStyle" + latin:keyXPos="30.750%p" + latin:keyWidth="39.750%p" /> + <switch> + <case + latin:languageCode="ru" + > + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="-" + latin:keyWidth="9.750%p" /> + </case> + <case + latin:mode="url" + > + <Key + latin:keyLabel="/" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter=":" + latin:popupCharacters=":" + latin:keyWidth="9.750%p" /> + </case> + <default> + <Key + latin:keyLabel="\?" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="_" + latin:popupCharacters="_" + latin:keyWidth="9.750%p" /> + </default> + </switch> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="_" + latin:keyWidth="9.750%p" /> + </case> + <default> + <Key + latin:keyLabel="!" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\'" + latin:popupCharacters="\'" + latin:keyWidth="9.750%p" /> + </default> + </switch> + </case> + <!-- not languageCode="ru" --> + <default> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="-" + latin:keyWidth="9.750%p" /> + </case> + <case + latin:mode="url" + > + <Key + latin:keyLabel="/" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter=":" + latin:popupCharacters=":" + latin:keyWidth="9.750%p" /> + </case> + <default> + <Key + latin:keyLabel="\'" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter=""" + latin:popupCharacters=""" + latin:keyWidth="9.750%p" /> + </default> + </switch> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="_" + latin:keyWidth="9.750%p" /> + </case> + <default> + <Key + latin:keyLabel="-" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="_" + latin:popupCharacters="_" + latin:keyWidth="9.750%p" /> + </default> + </switch> + </default> + </switch> + <Spacer + latin:keyXPos="-10.00%p" + latin:keyWidth="0%p" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f2" /> + </Row> +</merge> diff --git a/java/res/xml-sw600dp/kbd_row3_right.xml b/java/res/xml-sw600dp/kbd_row3_right.xml new file mode 100644 index 000000000..a9c5eb371 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_row3_right.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="\@" + latin:keyXPos="-8.9%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </case> + <case + latin:mode="url" + > + <Key + latin:keyLabel="-" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="_" + latin:popupCharacters="_" + latin:keyXPos="-8.9%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </case> + <case + latin:imeAction="actionSearch" + > + <Key + latin:keyLabel=":" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="+" + latin:popupCharacters="+" + latin:keyXPos="-8.9%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </case> + <default> + <Key + latin:keyStyle="smileyKeyStyle" + latin:keyXPos="-8.9%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </default> + </switch> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_arabic.xml b/java/res/xml-sw600dp/kbd_rows_arabic.xml new file mode 100644 index 000000000..bc37d5a9f --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_arabic.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** 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. +*/ +--> + +<!-- This file for Arabic layout is an alpha version. It allows to enter --> +<!-- some right-to-left text, but it has gone through no study whatsoever, --> +<!-- and needs to be run through UX. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <Row + latin:keyWidth="8.0%p" + > + <Key + latin:keyLabel="ض" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="ص" /> + <Key + latin:keyLabel="ث" /> + <Key + latin:keyLabel="ق" /> + <Key + latin:keyLabel="ف" + latin:popupCharacters="ف,ڤ" /> + <Key + latin:keyLabel="غ" /> + <Key + latin:keyLabel="ع" /> + <Key + latin:keyLabel="ه" + latin:popupCharacters="ه,هـ" /> + <Key + latin:keyLabel="خ" /> + <Key + latin:keyLabel="ح" /> + <Key + latin:keyLabel="ج" + latin:popupCharacters="ج,چ" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.0%p" + > + <Key + latin:keyLabel="ش" + latin:keyXPos="3.0%p" /> + <Key + latin:keyLabel="س" /> + <Key + latin:keyLabel="ي" /> + <Key + latin:keyLabel="ب" + latin:popupCharacters="ب,پ" /> + <Key + latin:keyLabel="ل" + latin:popupCharacters="ل,لا" /> + <Key + latin:keyLabel="ا" + latin:popupCharacters="ا,أ,إ,آ" /> + <Key + latin:keyLabel="ت" /> + <Key + latin:keyLabel="ن" /> + <Key + latin:keyLabel="م" /> + <Key + latin:keyLabel="ك" + latin:popupCharacters="ك,گ" /> + <Key + latin:keyLabel="ط" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="7.65%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="8.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="ئ" /> + <Key + latin:keyLabel="ء" /> + <Key + latin:keyLabel="ؤ" /> + <Key + latin:keyLabel="ر" /> + <Key + latin:keyLabel="ذ" /> + <Key + latin:keyLabel="ى" /> + <Key + latin:keyLabel="ة" /> + <Key + latin:keyLabel="و" /> + <Key + latin:keyLabel="ز" + latin:popupCharacters="ز,ژ" /> + <Key + latin:keyLabel="ظ" /> + <Key + latin:keyLabel="د" /> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> + </Row> + <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_azerty.xml b/java/res/xml-sw600dp/kbd_rows_azerty.xml new file mode 100644 index 000000000..b53bbbbf9 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_azerty.xml @@ -0,0 +1,156 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <Row + latin:keyWidth="8.5%p" + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="a" + latin:popupCharacters="@string/alternates_for_a" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="z" + latin:popupCharacters="@string/alternates_for_z" /> + <Key + latin:keyLabel="e" + latin:popupCharacters="@string/alternates_for_e" /> + <Key + latin:keyLabel="r" + latin:popupCharacters="@string/alternates_for_r" /> + <Key + latin:keyLabel="t" + latin:popupCharacters="@string/alternates_for_t" /> + <Key + latin:keyLabel="y" + latin:popupCharacters="@string/alternates_for_y" /> + <Key + latin:keyLabel="u" + latin:popupCharacters="@string/alternates_for_u" /> + <Key + latin:keyLabel="i" + latin:popupCharacters="@string/alternates_for_i" /> + <Key + latin:keyLabel="o" + latin:popupCharacters="@string/alternates_for_o" /> + <Key + latin:keyLabel="p" + latin:popupCharacters="@string/alternates_for_p" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.5%p" + > + <Key + latin:keyLabel="q" + latin:popupCharacters="@string/alternates_for_q" + latin:keyXPos="5.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="s" + latin:popupCharacters="@string/alternates_for_s" /> + <Key + latin:keyLabel="d" + latin:popupCharacters="@string/alternates_for_d" /> + <Key + latin:keyLabel="f" /> + <Key + latin:keyLabel="g" + latin:popupCharacters="@string/alternates_for_g" /> + <Key + latin:keyLabel="h" /> + <Key + latin:keyLabel="j" /> + <Key + latin:keyLabel="k" + latin:popupCharacters="@string/alternates_for_k" /> + <Key + latin:keyLabel="l" + latin:popupCharacters="@string/alternates_for_l" /> + <Key + latin:keyLabel="m" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.5%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="w" + latin:popupCharacters="@string/alternates_for_w" /> + <Key + latin:keyLabel="x" /> + <Key + latin:keyLabel="c" + latin:popupCharacters="@string/alternates_for_c" /> + <Key + latin:keyLabel="v" + latin:popupCharacters="@string/alternates_for_v" /> + <Key + latin:keyLabel="b" /> + <Key + latin:keyLabel="n" + latin:popupCharacters="@string/alternates_for_n" /> + <Key + latin:keyLabel="\'" /> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="," /> + <Key + latin:keyLabel="." /> + </case> + <default> + <Key + latin:keyLabel="," + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" + latin:popupCharacters="!" /> + <Key + latin:keyLabel="." + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" + latin:popupCharacters="\?" /> + </default> + </switch> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_hebrew.xml b/java/res/xml-sw600dp/kbd_rows_hebrew.xml new file mode 100644 index 000000000..a1475376b --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_hebrew.xml @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <Row + latin:keyWidth="8.600%p" + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="," /> + <Key + latin:keyLabel="." /> + <Key + latin:keyLabel="ק" /> + <Key + latin:keyLabel="ר" /> + <Key + latin:keyLabel="א" /> + <Key + latin:keyLabel="ט" /> + <Key + latin:keyLabel="ו" /> + <Key + latin:keyLabel="ן" /> + <Key + latin:keyLabel="ם" /> + <Key + latin:keyLabel="פ" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-12.000%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.600%p" + > + <Key + latin:keyLabel="ש" + latin:keyXPos="4.000%p" /> + <Key + latin:keyLabel="ד" /> + <Key + latin:keyLabel="ג" + latin:popupCharacters="ג,ג׳" /> + <Key + latin:keyLabel="כ" /> + <Key + latin:keyLabel="ע" /> + <Key + latin:keyLabel="י" + latin:popupCharacters="י,ײַ" /> + <Key + latin:keyLabel="ח" + latin:popupCharacters="ח,ח׳" /> + <Key + latin:keyLabel="ל" /> + <Key + latin:keyLabel="ך" /> + <Key + latin:keyLabel="ף" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-10.400%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.600%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.000%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="ז" + latin:popupCharacters="ז,ז׳" /> + <Key + latin:keyLabel="ס" /> + <Key + latin:keyLabel="ב" /> + <Key + latin:keyLabel="ה" /> + <Key + latin:keyLabel="נ" /> + <Key + latin:keyLabel="מ" /> + <Key + latin:keyLabel="צ" + latin:popupCharacters="צ,צ׳" /> + <Key + latin:keyLabel="ת" + latin:popupCharacters="ת,ת׳" /> + <Key + latin:keyLabel="ץ" + latin:popupCharacters="ץ,ץ׳" /> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> + </Row> + <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_qwerty.xml b/java/res/xml-sw600dp/kbd_rows_qwerty.xml new file mode 100644 index 000000000..a2d26b3de --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_qwerty.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row1" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row2" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row3" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_qwertz.xml b/java/res/xml-sw600dp/kbd_rows_qwertz.xml new file mode 100644 index 000000000..7ea9b0f37 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_qwertz.xml @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <Row + latin:keyWidth="9.0%p" + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="q" + latin:popupCharacters="@string/alternates_for_q" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="w" + latin:popupCharacters="@string/alternates_for_w" /> + <Key + latin:keyLabel="e" + latin:popupCharacters="@string/alternates_for_e" /> + <Key + latin:keyLabel="r" + latin:popupCharacters="@string/alternates_for_r" /> + <Key + latin:keyLabel="t" + latin:popupCharacters="@string/alternates_for_t" /> + <Key + latin:keyLabel="z" + latin:popupCharacters="@string/alternates_for_z" /> + <Key + latin:keyLabel="u" + latin:popupCharacters="@string/alternates_for_u" /> + <Key + latin:keyLabel="i" + latin:popupCharacters="@string/alternates_for_i" /> + <Key + latin:keyLabel="o" + latin:popupCharacters="@string/alternates_for_o" /> + <Key + latin:keyLabel="p" + latin:popupCharacters="@string/alternates_for_p" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row2" /> + <Row + latin:keyWidth="8.9%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="y" + latin:popupCharacters="@string/alternates_for_y" /> + <Key + latin:keyLabel="x" /> + <Key + latin:keyLabel="c" + latin:popupCharacters="@string/alternates_for_c" /> + <Key + latin:keyLabel="v" + latin:popupCharacters="@string/alternates_for_v" /> + <Key + latin:keyLabel="b" /> + <Key + latin:keyLabel="n" + latin:popupCharacters="@string/alternates_for_n" /> + <Key + latin:keyLabel="m" /> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="," /> + <Key + latin:keyLabel="." /> + </case> + <default> + <Key + latin:keyLabel="," + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" + latin:popupCharacters="!" /> + <Key + latin:keyLabel="." + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" + latin:popupCharacters="\?" /> + </default> + </switch> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_russian.xml b/java/res/xml-sw600dp/kbd_rows_russian.xml new file mode 100644 index 000000000..43fa665e6 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_russian.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <Row + latin:keyWidth="8.0%p" + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="й" + latin:keyXPos="2.15%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="ц" /> + <Key + latin:keyLabel="у" /> + <Key + latin:keyLabel="к" /> + <Key + latin:keyLabel="е" + latin:popupCharacters="@string/alternates_for_cyrillic_e" /> + <Key + latin:keyLabel="н" /> + <Key + latin:keyLabel="г" /> + <Key + latin:keyLabel="ш" /> + <Key + latin:keyLabel="щ" /> + <Key + latin:keyLabel="з" /> + <Key + latin:keyLabel="х" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.0%p" + > + <Key + latin:keyLabel="ф" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="ы" /> + <Key + latin:keyLabel="в" /> + <Key + latin:keyLabel="а" /> + <Key + latin:keyLabel="п" /> + <Key + latin:keyLabel="р" /> + <Key + latin:keyLabel="о" /> + <Key + latin:keyLabel="л" /> + <Key + latin:keyLabel="д" /> + <Key + latin:keyLabel="ж" /> + <Key + latin:keyLabel="э" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.0%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="я" /> + <Key + latin:keyLabel="ч" /> + <Key + latin:keyLabel="с" /> + <Key + latin:keyLabel="м" /> + <Key + latin:keyLabel="и" /> + <Key + latin:keyLabel="т" /> + <Key + latin:keyLabel="ь" + latin:popupCharacters="@string/alternates_for_cyrillic_soft_sign" /> + <Key + latin:keyLabel="б" /> + <Key + latin:keyLabel="ю" /> + <Key + latin:keyLabel="." + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="," + latin:popupCharacters="," /> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_scandinavian.xml b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml new file mode 100644 index 000000000..3666ead51 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <Row + latin:keyWidth="7.9%p" + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="q" + latin:popupCharacters="@string/alternates_for_q" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="w" + latin:popupCharacters="@string/alternates_for_w" /> + <Key + latin:keyLabel="e" + latin:popupCharacters="@string/alternates_for_e" /> + <Key + latin:keyLabel="r" + latin:popupCharacters="@string/alternates_for_r" /> + <Key + latin:keyLabel="t" + latin:popupCharacters="@string/alternates_for_t" /> + <Key + latin:keyLabel="y" + latin:popupCharacters="@string/alternates_for_y" /> + <Key + latin:keyLabel="u" + latin:popupCharacters="@string/alternates_for_u" /> + <Key + latin:keyLabel="i" + latin:popupCharacters="@string/alternates_for_i" /> + <Key + latin:keyLabel="o" + latin:popupCharacters="@string/alternates_for_o" /> + <Key + latin:keyLabel="p" + latin:popupCharacters="@string/alternates_for_p" /> + <Key + latin:keyLabel="å" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="7.9%p" + > + <Key + latin:keyLabel="a" + latin:keyXPos="3.5%p" + latin:popupCharacters="@string/alternates_for_a" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="s" + latin:popupCharacters="@string/alternates_for_s" /> + <Key + latin:keyLabel="d" + latin:popupCharacters="@string/alternates_for_d" /> + <Key + latin:keyLabel="f" /> + <Key + latin:keyLabel="g" + latin:popupCharacters="@string/alternates_for_g" /> + <Key + latin:keyLabel="h" /> + <Key + latin:keyLabel="j" /> + <Key + latin:keyLabel="k" + latin:popupCharacters="@string/alternates_for_k" /> + <Key + latin:keyLabel="l" + latin:popupCharacters="@string/alternates_for_l" /> + <Key + latin:keyLabel="@string/keylabel_for_scandinavia_row2_10" + latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" /> + <Key + latin:keyLabel="@string/keylabel_for_scandinavia_row2_11" + latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="7.9%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.0%p" + latin:keyEdgeFlags="left" /> + <Spacer + latin:keyWidth="4.35%p" /> + <Key + latin:keyLabel="z" + latin:popupCharacters="@string/alternates_for_z" /> + <Key + latin:keyLabel="x" /> + <Key + latin:keyLabel="c" + latin:popupCharacters="@string/alternates_for_c" /> + <Key + latin:keyLabel="v" + latin:popupCharacters="@string/alternates_for_v" /> + <Key + latin:keyLabel="b" /> + <Key + latin:keyLabel="n" + latin:popupCharacters="@string/alternates_for_n" /> + <Key + latin:keyLabel="m" /> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="," /> + <Key + latin:keyLabel="." /> + </case> + <default> + <Key + latin:keyLabel="," + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" + latin:popupCharacters="!" /> + <Key + latin:keyLabel="." + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" + latin:popupCharacters="\?" /> + </default> + </switch> + <Spacer + latin:keyWidth="4.35%p" /> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_serbian.xml b/java/res/xml-sw600dp/kbd_rows_serbian.xml new file mode 100644 index 000000000..80debdadb --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_serbian.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <Row + latin:keyWidth="8.0%p" + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="љ" + latin:keyXPos="2.15%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="њ" /> + <Key + latin:keyLabel="е" /> + <Key + latin:keyLabel="р" /> + <Key + latin:keyLabel="т" /> + <Key + latin:keyLabel="з" /> + <Key + latin:keyLabel="у" /> + <Key + latin:keyLabel="и" /> + <Key + latin:keyLabel="о" /> + <Key + latin:keyLabel="п" /> + <Key + latin:keyLabel="ш" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="7.9%p" + > + <Key + latin:keyLabel="а" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="с" /> + <Key + latin:keyLabel="д" /> + <Key + latin:keyLabel="ф" /> + <Key + latin:keyLabel="г" /> + <Key + latin:keyLabel="х" /> + <Key + latin:keyLabel="ј" /> + <Key + latin:keyLabel="к" /> + <Key + latin:keyLabel="л" /> + <Key + latin:keyLabel="ч" /> + <Key + latin:keyLabel="ћ" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="7.5%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="8.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="ѕ" /> + <Key + latin:keyLabel="џ" /> + <Key + latin:keyLabel="ц" /> + <Key + latin:keyLabel="в" /> + <Key + latin:keyLabel="б" /> + <Key + latin:keyLabel="н" /> + <Key + latin:keyLabel="м" /> + <Key + latin:keyLabel="ђ" /> + <Key + latin:keyLabel="ж" /> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="," /> + <Key + latin:keyLabel="." /> + </case> + <default> + <Key + latin:keyLabel="," + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" + latin:popupCharacters="!" /> + <Key + latin:keyLabel="." + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" + latin:popupCharacters="\?" /> + </default> + </switch> + <include + latin:keyboardLayout="@xml/kbd_row3_right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw600dp/kbd_rows_spanish.xml b/java/res/xml-sw600dp/kbd_rows_spanish.xml new file mode 100644 index 000000000..7ef44bb53 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_rows_spanish.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row1" /> + <Row + latin:keyWidth="8.5%p" + > + <Key + latin:keyLabel="a" + latin:popupCharacters="@string/alternates_for_a" + latin:keyXPos="5.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="s" + latin:popupCharacters="@string/alternates_for_s" /> + <Key + latin:keyLabel="d" + latin:popupCharacters="@string/alternates_for_d" /> + <Key + latin:keyLabel="f" /> + <Key + latin:keyLabel="g" + latin:popupCharacters="@string/alternates_for_g" /> + <Key + latin:keyLabel="h" /> + <Key + latin:keyLabel="j" /> + <Key + latin:keyLabel="k" + latin:popupCharacters="@string/alternates_for_k" /> + <Key + latin:keyLabel="l" + latin:popupCharacters="@string/alternates_for_l" /> + <Key + latin:keyLabel="ñ" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row3" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-sw600dp/kbd_symbols.xml index 41e8522dc..77849f6fd 100644 --- a/java/res/xml-xlarge/kbd_symbols.xml +++ b/java/res/xml-sw600dp/kbd_symbols.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -20,14 +20,6 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> @@ -35,14 +27,9 @@ latin:keyboardLayout="@xml/kbd_currency_key_styles" /> <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="9.0%p" > <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" - latin:keyEdgeFlags="left" /> - <Key latin:keyLabel="1" latin:popupCharacters="¹,½,⅓,¼,⅛" /> <Key @@ -71,19 +58,16 @@ latin:popupCharacters="ⁿ,∅" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.157%p" + latin:keyWidth="9.0%p" > <Key - latin:keyStyle="toAlphaKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyWidth="11.167%p" - latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="#" /> + latin:keyLabel="#" + latin:keyXPos="4.5%p" /> <Key latin:keyStyle="currencyKeyStyle" /> <Key @@ -108,15 +92,16 @@ latin:popupCharacters="],},>" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="15.750%p" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.9%p" > <Key latin:keyStyle="moreKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="10.0%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="<" @@ -155,7 +140,8 @@ <Key latin:keyLabel="\'" latin:popupCharacters="‘,’,‚,‛" /> - <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> + <!-- Note: DroidSans doesn't have double-high-reversed-quotation + '\u201f' glyph. --> <!-- latin:popupCharacters="“,”,„,‟,«,»" --> <Key latin:keyLabel=""" @@ -179,59 +165,54 @@ </default> </switch> <Key - latin:keyStyle="moreKeyStyle" - latin:keyWidth="12.530%p" - latin:keyEdgeFlags="right" /> + latin:keyLabel="/" + latin:keyWidth="fillRight" /> </Row> <!-- This row is intentionally not marked as a bottom row --> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.9%p" > - <Spacer - latin:horizontalGap="8.362%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> <Key - latin:keyLabel="/" /> + latin:keyStyle="toAlphaKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="13.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="tabKeyStyle" /> <Key latin:keyLabel="\@" /> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="37.454%p" /> + latin:keyXPos="30.750%p" + latin:keyWidth="39.750%p" /> <switch> <case latin:languageCode="ru" > <Key - latin:keyLabel="_" /> + latin:keyLabel="_" + latin:keyWidth="9.750%p" /> <Key - latin:keyLabel="-" /> + latin:keyLabel="-" + latin:keyWidth="9.750%p" /> </case> <default> - <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> + <!-- Note: DroidSans doesn't have double-high-reversed-quotation + '\u201f' glyph. --> <!-- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" --> <Key latin:keyLabel=""" - latin:popupCharacters="“,”,«,»,‘,’,‚,‛" /> + latin:popupCharacters="“,”,«,»,‘,’,‚,‛" + latin:keyWidth="9.750%p" /> <Key - latin:keyLabel="_" /> + latin:keyLabel="_" + latin:keyWidth="9.750%p" /> </default> </switch> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" /> - </case> - </switch> + <Spacer + latin:keyXPos="-10.00%p" + latin:keyWidth="0%p" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f2" /> </Row> </Keyboard> diff --git a/java/res/xml-sw600dp/kbd_symbols_shift.xml b/java/res/xml-sw600dp/kbd_symbols_shift.xml new file mode 100644 index 000000000..b25292f27 --- /dev/null +++ b/java/res/xml-sw600dp/kbd_symbols_shift.xml @@ -0,0 +1,156 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <!-- This row is intentionally not marked as a top row --> + <Row + latin:keyWidth="9.0%p" + > + <Key + latin:keyLabel="~" /> + <Key + latin:keyLabel="`" /> + <Key + latin:keyLabel="|" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="•" + latin:popupCharacters="♪,♥,♠,♦,♣" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="√" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="π" + latin:popupCharacters="Π" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="÷" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="×" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="§" + latin:popupCharacters="¶" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="Δ" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-10.0%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="9.0%p" + > + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="£" + latin:keyXPos="4.5%p" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="¢" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="€" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="¥" /> + <Key + latin:keyLabel="^" + latin:popupCharacters="↑,↓,←,→" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="°" + latin:popupCharacters="′,″" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="±" + latin:popupCharacters="∞" /> + <Key + latin:keyLabel="{" /> + <Key + latin:keyLabel="}" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-14.6%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.9%p" + > + <Key + latin:keyStyle="moreKeyStyle" + latin:keyWidth="10.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="\\" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="©" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="®" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="™" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="℅" /> + <Key + latin:keyLabel="[" /> + <Key + latin:keyLabel="]" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="¡" /> + <Key + latin:keyStyle="nonPasswordSymbolKeyStyle" + latin:keyLabel="¿" /> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row + latin:keyWidth="8.9%p" + > + <Key + latin:keyStyle="toAlphaKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="13.0%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="tabKeyStyle" /> + <Key + latin:keyStyle="spaceKeyStyle" + latin:keyXPos="30.750%p" + latin:keyWidth="39.750%p" /> + <Spacer + latin:keyXPos="-10.00%p" + latin:keyWidth="0%p" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_f2" /> + </Row> +</Keyboard> diff --git a/java/res/xml-xlarge-land/kbd_popup_template.xml b/java/res/xml-sw768dp-land/kbd_popup_template.xml index 3caae1a60..3caae1a60 100644 --- a/java/res/xml-xlarge-land/kbd_popup_template.xml +++ b/java/res/xml-sw768dp-land/kbd_popup_template.xml diff --git a/java/res/xml-sw768dp/kbd_key_styles.xml b/java/res/xml-sw768dp/kbd_key_styles.xml new file mode 100644 index 000000000..5d8c081a6 --- /dev/null +++ b/java/res/xml-sw768dp/kbd_key_styles.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- Functional key styles --> + <key-style + latin:styleName="functionalKeyStyle" + latin:isFunctional="true" /> + <key-style + latin:styleName="shiftKeyStyle" + latin:code="@integer/key_shift" + latin:keyIcon="iconShiftKey" + latin:keyIconShifted="iconShiftedShiftKey" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="deleteKeyStyle" + latin:code="@integer/key_delete" + latin:keyIcon="iconDeleteKey" + latin:parentStyle="functionalKeyStyle" + latin:isRepeatable="true" /> + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="iconReturnKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="spaceKeyStyle" + latin:code="@integer/key_space" + latin:keyIconPreview="iconPreviewSpaceKey" /> + <key-style + latin:styleName="nonSpecialBackgroundSpaceKeyStyle" + latin:code="@integer/key_space" + latin:keyIconPreview="iconPreviewSpaceKey" /> + <key-style + latin:styleName="smileyKeyStyle" + latin:keyLabel=":-)" + latin:keyOutputText=":-) " + latin:keyLabelOption="popupHint" + latin:popupCharacters="@string/alternates_for_smiley" + latin:maxPopupKeyboardColumn="5" /> + <key-style + latin:styleName="settingsKeyStyle" + latin:code="@integer/key_settings" + latin:keyIcon="iconSettingsKey" + latin:keyIconPreview="iconPreviewSettingsKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="shortcutKeyStyle" + latin:code="@integer/key_shortcut" + latin:keyIcon="iconShortcutKey" + latin:keyIconPreview="iconPreviewShortcutKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="tabKeyStyle" + latin:code="@integer/key_tab" + latin:keyLabel="@string/label_tab_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_symbol_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="toAlphaKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_alpha_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="moreKeyStyle" + latin:code="@integer/key_shift" + latin:keyLabel="@string/label_more_key" + latin:keyLabelOption="fontNormal" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="comKeyStyle" + latin:keyLabel="@string/keylabel_for_popular_domain" + latin:keyLabelOption="fontNormal|popupHint" + latin:keyOutputText="@string/keylabel_for_popular_domain" + latin:popupCharacters="@string/alternates_for_popular_domain" /> + <switch> + <case + latin:passwordInput="true" + > + <key-style + latin:styleName="nonPasswordSymbolKeyStyle" + latin:enabled="false" /> + </case> + <!-- latin:passwordInput="false" --> + <default> + <key-style + latin:styleName="nonPasswordSymbolKeyStyle" + latin:enabled="true" /> + </default> + </switch> +</merge> diff --git a/java/res/xml-xlarge/kbd_number.xml b/java/res/xml-sw768dp/kbd_number.xml index 7cb77ea00..1ae6984a5 100644 --- a/java/res/xml-xlarge/kbd_number.xml +++ b/java/res/xml-sw768dp/kbd_number.xml @@ -20,15 +20,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="11.949%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" + latin:keyWidth="13.250%p" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> @@ -40,42 +32,42 @@ > <!-- This row is intentionally not marked as a top row --> <Row> - <Spacer - latin:horizontalGap="32.076%p" /> <Key - latin:keyStyle="num1KeyStyle" /> + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="11.172%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="num1KeyStyle" + latin:keyXPos="32.076%p" /> <Key latin:keyStyle="num2KeyStyle" /> <Key latin:keyStyle="num3KeyStyle" /> - <Spacer - latin:horizontalGap="22.272%p" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> - <Spacer - latin:horizontalGap="32.076%p" /> <Key - latin:keyStyle="num4KeyStyle" /> + latin:keyStyle="num4KeyStyle" + latin:keyXPos="32.076%p" /> <Key latin:keyStyle="num5KeyStyle" /> <Key latin:keyStyle="num6KeyStyle" /> - <Spacer - latin:horizontalGap="17.371%p" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> - <Spacer - latin:horizontalGap="32.076%p" /> <Key - latin:keyStyle="num7KeyStyle" /> + latin:keyStyle="num7KeyStyle" + latin:keyXPos="32.076%p" /> <Key latin:keyStyle="num8KeyStyle" /> <Key @@ -87,7 +79,7 @@ <!-- This row is intentionally not marked as a bottom row --> <Row> <Spacer - latin:horizontalGap="44.026%p" /> + latin:keyXPos="32.076%p" /> <Key latin:keyStyle="num0KeyStyle" /> <!-- There is an empty area below the "Enter" key and right of the "#" key. To @@ -102,79 +94,81 @@ <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" + latin:keyWidth="11.172%p" latin:keyEdgeFlags="left" /> - <Spacer - latin:horizontalGap="4.458%p" /> <Key latin:keyLabel="-" - latin:keyWidth="8.042%p" /> + latin:keyStyle="numLabelStyle" + latin:keyXPos="13.829%p" + latin:keyWidth="8.047%p" /> <Key latin:keyLabel="+" - latin:keyWidth="8.042%p" /> + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> <Key latin:keyLabel="." - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> <Key - latin:keyLabel="1" /> + latin:keyLabel="1" + latin:keyXPos="43.125%p" /> <Key latin:keyLabel="2" /> <Key latin:keyLabel="3" /> - <Spacer - latin:horizontalGap="9.360%p" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> - <Spacer - latin:horizontalGap="16.406%p" /> <Key latin:keyLabel="*" - latin:keyWidth="8.042%p" /> + latin:keyStyle="numLabelStyle" + latin:keyXPos="13.829%p" + latin:keyWidth="8.047%p" /> <Key latin:keyLabel="/" - latin:keyWidth="8.042%p" /> + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> <Key latin:keyLabel="," - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> <Key - latin:keyLabel="4" /> + latin:keyLabel="4" + latin:keyXPos="43.125%p" /> <Key latin:keyLabel="5" /> <Key latin:keyLabel="6" /> - <Spacer - latin:horizontalGap="4.458%p" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> <!-- There is an empty area below the "More" key and left of the "(" key. To ignore the touch event on the area, "(" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="16.406%p" /> <Key latin:keyLabel="(" - latin:keyWidth="8.042%p" /> + latin:keyStyle="numLabelStyle" + latin:keyXPos="13.829%p" + latin:keyWidth="8.047%p" /> <Key latin:keyLabel=")" - latin:keyWidth="8.042%p" /> + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> <Key latin:keyLabel="=" - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> <Key - latin:keyLabel="7" /> + latin:keyLabel="7" + latin:keyXPos="43.125%p" /> <Key latin:keyLabel="8" /> <Key @@ -185,45 +179,36 @@ </Row> <!-- This row is intentionally not marked as a bottom row --> <Row> - <!-- There is an empty area below the "More" key and left of the "space" key. To - ignore the touch event on the area, "space" is intentionally not marked as a - left edge key. --> - <Spacer - latin:horizontalGap="8.362%p" /> <switch> <case latin:hasSettingsKey="true"> <Key latin:keyStyle="settingsKeyStyle" - latin:keyWidth="8.042%p" /> + latin:keyWidth="8.047%p" /> </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> </switch> <Key latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" - latin:keyWidth="24.127%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> + latin:keyXPos="13.829%p" + latin:keyWidth="24.140%p" /> <Key - latin:keyLabel="*" /> + latin:keyLabel="*" + latin:keyStyle="numLabelStyle" + latin:keyXPos="43.125%p" /> <Key latin:keyLabel="0" /> <Key - latin:keyLabel="#" /> + latin:keyLabel="#" + latin:keyStyle="numLabelStyle" /> <switch> <case latin:voiceKeyEnabled="true" > <Key - latin:keyStyle="micKeyStyle" - latin:keyWidth="8.042%p" /> + latin:keyStyle="shortcutKeyStyle" + latin:keyXPos="-8.047%p" + latin:keyWidth="fillRight" /> </case> </switch> - <!-- There is an empty area below the "Enter" key and right of the "#" key. To - ignore the touch event on the area, "#" is intentionally not marked as a right - edge key. --> </Row> </default> </switch> diff --git a/java/res/xml-sw768dp/kbd_phone.xml b/java/res/xml-sw768dp/kbd_phone.xml new file mode 100644 index 000000000..6801ac5cc --- /dev/null +++ b/java/res/xml-sw768dp/kbd_phone.xml @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyWidth="13.250%p" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> + <!-- This row is intentionally not marked as a top row --> + <Row> + <Key + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="11.172%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="-" + latin:keyStyle="numLabelStyle" + latin:keyXPos="20.400%p" + latin:keyWidth="8.047%p" /> + <Key + latin:keyLabel="+" + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> + <Key + latin:keyStyle="num1KeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num2KeyStyle" /> + <Key + latin:keyStyle="num3KeyStyle" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyStyle="moreKeyStyle" + latin:keyWidth="11.172%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="," + latin:keyStyle="numLabelStyle" + latin:keyXPos="20.400%p" + latin:keyWidth="8.047%p" /> + <Key + latin:keyLabel="." + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> + <Key + latin:keyStyle="num4KeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num5KeyStyle" /> + <Key + latin:keyStyle="num6KeyStyle" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <!-- There is an empty area below the "More" key and left of the "(" key. To ignore + the touch event on the area, "(" is intentionally not marked as a left edge key. --> + <Key + latin:keyLabel="(" + latin:keyStyle="numLabelStyle" + latin:keyXPos="20.400%p" + latin:keyWidth="8.047%p" /> + <Key + latin:keyLabel=")" + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> + <Key + latin:keyStyle="num7KeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num8KeyStyle" /> + <Key + latin:keyStyle="num9KeyStyle" /> + <!-- There is an empty area below the "Enter" key and right of the "9" key. To ignore + the touch event on the area, "9" is intentionally not marked as a right edge key. --> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row> + <switch> + <case latin:hasSettingsKey="true"> + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="8.047%p" /> + </case> + </switch> + <Key + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" + latin:keyXPos="20.400%p" + latin:keyWidth="16.084%p" /> + <Key + latin:keyStyle="numStarKeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num0KeyStyle" /> + <Key + latin:keyLabel="#" + latin:keyStyle="numLabelStyle" /> + <switch> + <case + latin:voiceKeyEnabled="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyXPos="-8.047%p" + latin:keyWidth="fillRight" /> + </case> + </switch> + </Row> +</Keyboard> diff --git a/java/res/xml-sw768dp/kbd_phone_symbols.xml b/java/res/xml-sw768dp/kbd_phone_symbols.xml new file mode 100644 index 000000000..22f78b6d3 --- /dev/null +++ b/java/res/xml-sw768dp/kbd_phone_symbols.xml @@ -0,0 +1,151 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyWidth="13.250%p" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> + <!-- This row is intentionally not marked as a top row --> + <Row> + <Key + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="11.172%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="-" + latin:keyStyle="numLabelStyle" + latin:keyXPos="13.829%p" + latin:keyWidth="8.047%p" /> + <Key + latin:keyLabel="+" + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> + <Key + latin:code="44" + latin:keyLabel="@string/label_pause_key" + latin:keyWidth="8.047%p" /> + <Key + latin:keyStyle="num1KeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num2KeyStyle" /> + <Key + latin:keyStyle="num3KeyStyle" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyStyle="moreKeyStyle" + latin:keyWidth="11.172%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="," + latin:keyStyle="numLabelStyle" + latin:keyXPos="13.829%p" + latin:keyWidth="8.047%p" /> + <Key + latin:keyLabel="." + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> + <Key + latin:code="59" + latin:keyLabel="@string/label_wait_key" + latin:keyWidth="8.047%p" /> + <Key + latin:keyStyle="num4KeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num5KeyStyle" /> + <Key + latin:keyStyle="num6KeyStyle" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-11.172%p" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <!-- There is an empty area below the "More" key and left of the "(" key. To ignore + the touch event on the area, "(" is intentionally not marked as a left edge key. --> + <Key + latin:keyLabel="(" + latin:keyStyle="numLabelStyle" + latin:keyXPos="13.829%p" + latin:keyWidth="8.047%p" /> + <Key + latin:keyLabel=")" + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> + <Key + latin:keyLabel="N" + latin:keyStyle="numLabelStyle" + latin:keyWidth="8.047%p" /> + <Key + latin:keyStyle="num7KeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num8KeyStyle" /> + <Key + latin:keyStyle="num9KeyStyle" /> + <!-- There is an empty area below the "Enter" key and right of the "9" key. To ignore + the touch event on the area, "9" is intentionally not marked as a right edge key. --> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row> + <switch> + <case latin:hasSettingsKey="true"> + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="8.047%p" /> + </case> + </switch> + <Key + latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" + latin:keyXPos="13.829%p" + latin:keyWidth="24.140%p" /> + <Key + latin:keyStyle="numStarKeyStyle" + latin:keyXPos="43.125%p" /> + <Key + latin:keyStyle="num0KeyStyle" /> + <Key + latin:keyLabel="#" + latin:keyStyle="numLabelStyle" /> + <switch> + <case + latin:voiceKeyEnabled="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyXPos="-8.047%p" + latin:keyWidth="fillRight" /> + </case> + </switch> + </Row> +</Keyboard> diff --git a/java/res/xml-xlarge/kbd_popup_template.xml b/java/res/xml-sw768dp/kbd_popup_template.xml index 7d39d1a3a..7d39d1a3a 100644 --- a/java/res/xml-xlarge/kbd_popup_template.xml +++ b/java/res/xml-sw768dp/kbd_popup_template.xml diff --git a/java/res/xml-xlarge/kbd_qwerty_row1.xml b/java/res/xml-sw768dp/kbd_qwerty_row1.xml index f5135591c..3727cf34e 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row1.xml +++ b/java/res/xml-sw768dp/kbd_qwerty_row1.xml @@ -23,12 +23,12 @@ > <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="8.282%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="7.969%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" @@ -62,7 +62,8 @@ latin:popupCharacters="@string/alternates_for_p" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-9.219%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-xlarge/kbd_qwerty_row2.xml b/java/res/xml-sw768dp/kbd_qwerty_row2.xml index 02bd0a6c9..45af120e2 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row2.xml +++ b/java/res/xml-sw768dp/kbd_qwerty_row2.xml @@ -22,12 +22,12 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Row - latin:keyWidth="8.157%p" + latin:keyWidth="8.125%p" > <Key latin:keyStyle="toSymbolKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="11.167%p" + latin:keyWidth="11.172%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="a" @@ -55,7 +55,8 @@ latin:popupCharacters="@string/alternates_for_l" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="15.750%p" + latin:keyXPos="-15.704%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml-sw768dp/kbd_qwerty_row3.xml b/java/res/xml-sw768dp/kbd_qwerty_row3.xml new file mode 100644 index 000000000..7297ea512 --- /dev/null +++ b/java/res/xml-sw768dp/kbd_qwerty_row3.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <Row + latin:keyWidth="8.047%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="13.829%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="z" + latin:popupCharacters="@string/alternates_for_z" /> + <Key + latin:keyLabel="x" /> + <Key + latin:keyLabel="c" + latin:popupCharacters="@string/alternates_for_c" /> + <Key + latin:keyLabel="v" + latin:popupCharacters="@string/alternates_for_v" /> + <Key + latin:keyLabel="b" /> + <Key + latin:keyLabel="n" + latin:popupCharacters="@string/alternates_for_n" /> + <Key + latin:keyLabel="m" /> + <include + latin:keyboardLayout="@xml/kbd_row3_right2" /> + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyXPos="-13.750%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> +</merge> diff --git a/java/res/xml-sw768dp/kbd_qwerty_row4.xml b/java/res/xml-sw768dp/kbd_qwerty_row4.xml new file mode 100644 index 000000000..00eabab9e --- /dev/null +++ b/java/res/xml-sw768dp/kbd_qwerty_row4.xml @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <!-- This row is intentionally not marked as a bottom row --> + <Row + latin:keyWidth="8.047%p" + > + <switch> + <case + latin:hasSettingsKey="true" + > + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="8.047%p" /> + </case> + </switch> + <Spacer + latin:keyXPos="15.157%p" + latin:keyWidth="fillRight" /> + <switch> + <case + latin:mode="url" + > + <Key + latin:keyStyle="comKeyStyle" + latin:keyWidth="16.084%p" /> + </case> + <default> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyStyle="comKeyStyle" /> + </case> + <case + latin:imeAction="actionSearch" + > + <Key + latin:keyLabel=":" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="+" + latin:popupCharacters="+" /> + </case> + <default> + <Key + latin:keyStyle="smileyKeyStyle" /> + </default> + </switch> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="\@" /> + </case> + <default> + <Key + latin:keyLabel="/" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\@" + latin:popupCharacters="\@" /> + </default> + </switch> + </default> + </switch> + <Key + latin:keyStyle="spaceKeyStyle" + latin:keyXPos="31.250%p" + latin:keyWidth="37.500%p" /> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="-" /> + </case> + <case + latin:mode="url" + > + <Key + latin:keyLabel="/" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter=":" + latin:popupCharacters=":" /> + </case> + <default> + <Key + latin:keyLabel="\'" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter=""" + latin:popupCharacters=""" /> + </default> + </switch> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="_" /> + </case> + <default> + <Key + latin:keyLabel="-" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="_" + latin:popupCharacters="_" /> + </default> + </switch> + <switch> + <case + latin:voiceKeyEnabled="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyXPos="-8.047%p" + latin:keyWidth="fillRight" /> + </case> + </switch> + </Row> +</merge> diff --git a/java/res/xml-sw768dp/kbd_row3_right2.xml b/java/res/xml-sw768dp/kbd_row3_right2.xml new file mode 100644 index 000000000..e90de8eec --- /dev/null +++ b/java/res/xml-sw768dp/kbd_row3_right2.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:mode="email" + > + <Key + latin:keyLabel="," /> + <Key + latin:keyLabel="." /> + </case> + <default> + <Key + latin:keyLabel="," + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" + latin:popupCharacters="!" /> + <Key + latin:keyLabel="." + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" + latin:popupCharacters="\?" /> + </default> + </switch> +</merge> diff --git a/java/res/xml-xlarge/kbd_ar_rows.xml b/java/res/xml-sw768dp/kbd_rows_arabic.xml index e84aae6b5..c1810026b 100644 --- a/java/res/xml-xlarge/kbd_ar_rows.xml +++ b/java/res/xml-sw768dp/kbd_rows_arabic.xml @@ -27,12 +27,12 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="7.49%p" + latin:keyWidth="7.375%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="7.500%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ض" /> @@ -61,16 +61,17 @@ latin:popupCharacters="ج,چ" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-11.500%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.49%p" + latin:keyWidth="7.375%p" > <Key latin:keyStyle="toSymbolKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="9.375%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ش" /> @@ -100,16 +101,20 @@ latin:keyLabel="ط" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="8.593%p" + latin:keyXPos="-9.375%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="7.375%p" > <Key - latin:keyLabel="ئ" + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="12.750%p" latin:keyEdgeFlags="left" /> <Key + latin:keyLabel="ئ" /> + <Key latin:keyLabel="ء" /> <Key latin:keyLabel="ؤ" /> @@ -130,10 +135,6 @@ latin:keyLabel="ظ" /> <Key latin:keyLabel="د" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="11.736%p" - latin:keyEdgeFlags="right" /> </Row> <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> </merge> diff --git a/java/res/xml-xlarge/kbd_azerty_rows.xml b/java/res/xml-sw768dp/kbd_rows_azerty.xml index 564f77629..3bcba0042 100644 --- a/java/res/xml-xlarge/kbd_azerty_rows.xml +++ b/java/res/xml-sw768dp/kbd_rows_azerty.xml @@ -24,12 +24,12 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="8.282%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="7.969%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="a" @@ -63,11 +63,12 @@ latin:popupCharacters="@string/alternates_for_p" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-9.219%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.157%p" + latin:keyWidth="8.125%p" > <Key latin:keyStyle="toSymbolKeyStyle" @@ -103,15 +104,16 @@ latin:keyEdgeFlags="right" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="8.593%p" + latin:keyXPos="-15.704%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.047%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="13.829%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" @@ -131,9 +133,8 @@ latin:popupCharacters="@string/alternates_for_n" /> <Key latin:keyLabel="\'" - latin:manualTemporaryUpperCaseCode="58" - latin:keyHintIcon="@drawable/key_hint_colon_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter=":" latin:popupCharacters=":" /> <switch> <case @@ -147,21 +148,20 @@ <default> <Key latin:keyLabel="," - latin:manualTemporaryUpperCaseCode="33" - latin:keyHintIcon="@drawable/key_hint_exclamation_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="63" - latin:keyHintIcon="@drawable/key_hint_question_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" latin:popupCharacters="\?" /> </default> </switch> <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.530%p" + latin:keyXPos="-13.750%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-xlarge/kbd_iw_rows.xml b/java/res/xml-sw768dp/kbd_rows_hebrew.xml index a3a239dbf..5275a1f15 100644 --- a/java/res/xml-xlarge/kbd_iw_rows.xml +++ b/java/res/xml-sw768dp/kbd_rows_hebrew.xml @@ -24,12 +24,11 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="8.000%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="," /> @@ -53,16 +52,17 @@ latin:keyLabel="פ" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-12.000%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.157%p" + latin:keyWidth="8.000%p" > <Key latin:keyStyle="toSymbolKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="10.167%p" + latin:keyWidth="9.600%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ש" /> @@ -89,15 +89,16 @@ latin:keyLabel="ף" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="8.593%p" + latin:keyXPos="-10.400%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.000%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="13.200%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ז" @@ -121,10 +122,6 @@ <Key latin:keyLabel="ץ" latin:popupCharacters="ץ,ץ׳" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.530%p" - latin:keyEdgeFlags="right" /> </Row> <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> </merge> diff --git a/java/res/xml-xlarge/kbd_qwerty_rows.xml b/java/res/xml-sw768dp/kbd_rows_qwerty.xml index 6237712f6..6237712f6 100644 --- a/java/res/xml-xlarge/kbd_qwerty_rows.xml +++ b/java/res/xml-sw768dp/kbd_rows_qwerty.xml diff --git a/java/res/xml-xlarge/kbd_qwertz_rows.xml b/java/res/xml-sw768dp/kbd_rows_qwertz.xml index 3e99f0511..8d5f1e6d4 100644 --- a/java/res/xml-xlarge/kbd_qwertz_rows.xml +++ b/java/res/xml-sw768dp/kbd_rows_qwertz.xml @@ -24,12 +24,12 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="8.282%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="7.969%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" @@ -63,17 +63,18 @@ latin:popupCharacters="@string/alternates_for_p" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-9.219%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <include latin:keyboardLayout="@xml/kbd_qwerty_row2" /> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.047%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="13.829%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="y" @@ -105,21 +106,20 @@ <default> <Key latin:keyLabel="," - latin:manualTemporaryUpperCaseCode="33" - latin:keyHintIcon="@drawable/key_hint_exclamation_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="63" - latin:keyHintIcon="@drawable/key_hint_question_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo" + latin:keyLabelOption="hasUppercaseLetter" + latin:keyHintLetter="\?" latin:popupCharacters="\?" /> </default> </switch> <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.530%p" + latin:keyXPos="-13.750%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-xlarge/kbd_ru_rows.xml b/java/res/xml-sw768dp/kbd_rows_russian.xml index c5cd04371..ee91481c1 100644 --- a/java/res/xml-xlarge/kbd_ru_rows.xml +++ b/java/res/xml-sw768dp/kbd_rows_russian.xml @@ -25,57 +25,49 @@ latin:keyboardLayout="@xml/kbd_key_styles" /> <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.125%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="й" - latin:popupCharacters="1" /> + latin:keyLabel="й" /> <Key - latin:keyLabel="ц" - latin:popupCharacters="2" /> + latin:keyLabel="ц" /> <Key - latin:keyLabel="у" - latin:popupCharacters="3" /> + latin:keyLabel="у" /> <Key - latin:keyLabel="к" - latin:popupCharacters="4" /> + latin:keyLabel="к" /> <Key latin:keyLabel="е" latin:popupCharacters="@string/alternates_for_cyrillic_e" /> <Key - latin:keyLabel="н" - latin:popupCharacters="6" /> + latin:keyLabel="н" /> <Key - latin:keyLabel="г" - latin:popupCharacters="7" /> + latin:keyLabel="г" /> <Key - latin:keyLabel="ш" - latin:popupCharacters="8" /> + latin:keyLabel="ш" /> <Key - latin:keyLabel="щ" - latin:popupCharacters="9" /> + latin:keyLabel="щ" /> <Key - latin:keyLabel="з" - latin:popupCharacters="0" /> + latin:keyLabel="з" /> <Key latin:keyLabel="х" /> <Key + latin:keyLabel="ъ" /> + <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.125%p" > <Key latin:keyStyle="toSymbolKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="9.375%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ф" /> @@ -101,15 +93,16 @@ latin:keyLabel="э" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-9.375%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.125%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.400%p" + latin:keyWidth="12.750%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="я" /> @@ -124,21 +117,16 @@ <Key latin:keyLabel="т" /> <Key - latin:keyLabel="ь" - latin:popupCharacters="@string/alternates_for_cyrillic_soft_sign" /> + latin:keyLabel="ь" /> <Key latin:keyLabel="б" /> <Key latin:keyLabel="ю" /> - <Key - latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="44" - latin:keyHintIcon="@drawable/key_hint_comma_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_comma_large_holo" - latin:popupCharacters="," /> + <include + latin:keyboardLayout="@xml/kbd_row3_right2" /> <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="12.400%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-xlarge/kbd_qwerty_rows_scandinavia.xml b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml index fb2034fb7..7e9f604f5 100644 --- a/java/res/xml-xlarge/kbd_qwerty_rows_scandinavia.xml +++ b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml @@ -24,12 +24,12 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.375%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="7.500%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="q" @@ -65,16 +65,17 @@ latin:keyLabel="å" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-11.500%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.375%p" > <Key latin:keyStyle="toSymbolKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="9.375%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="a" @@ -108,11 +109,43 @@ latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-9.375%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="7.375%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="12.750%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="z" + latin:popupCharacters="@string/alternates_for_z" /> + <Key + latin:keyLabel="x" /> + <Key + latin:keyLabel="c" + latin:popupCharacters="@string/alternates_for_c" /> + <Key + latin:keyLabel="v" + latin:popupCharacters="@string/alternates_for_v" /> + <Key + latin:keyLabel="b" /> + <Key + latin:keyLabel="n" + latin:popupCharacters="@string/alternates_for_n" /> + <Key + latin:keyLabel="m" /> + <include + latin:keyboardLayout="@xml/kbd_row3_right2" /> + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyXPos="-12.750%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> - <include - latin:keyboardLayout="@xml/kbd_qwerty_row3" /> <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> </merge> diff --git a/java/res/xml-xlarge/kbd_sr_rows.xml b/java/res/xml-sw768dp/kbd_rows_serbian.xml index be0058505..4997dabb9 100644 --- a/java/res/xml-xlarge/kbd_sr_rows.xml +++ b/java/res/xml-sw768dp/kbd_rows_serbian.xml @@ -25,57 +25,48 @@ latin:keyboardLayout="@xml/kbd_key_styles" /> <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.125%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="8.640%p" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="љ" - latin:popupCharacters="1" /> + latin:keyLabel="љ" /> <Key - latin:keyLabel="њ" - latin:popupCharacters="2" /> + latin:keyLabel="њ" /> <Key - latin:keyLabel="е" - latin:popupCharacters="3" /> + latin:keyLabel="е" /> <Key - latin:keyLabel="р" - latin:popupCharacters="4" /> + latin:keyLabel="р" /> <Key - latin:keyLabel="т" - latin:popupCharacters="5" /> + latin:keyLabel="т" /> <Key - latin:keyLabel="з" - latin:popupCharacters="6" /> + latin:keyLabel="з" /> <Key - latin:keyLabel="у" - latin:popupCharacters="7" /> + latin:keyLabel="у" /> <Key - latin:keyLabel="и" - latin:popupCharacters="8" /> + latin:keyLabel="и" /> <Key - latin:keyLabel="о" - latin:popupCharacters="9" /> + latin:keyLabel="о" /> <Key - latin:keyLabel="п" - latin:popupCharacters="0" /> + latin:keyLabel="п" /> <Key latin:keyLabel="ш" /> <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="8.640%p" - latin:keyEdgeFlags="right" /> + latin:keyLabel="ђ" /> + <Key + latin:keyLabel="ж" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right"/> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.250%p" > <Key latin:keyStyle="toSymbolKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="8.640%p" + latin:keyWidth="11.172%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="а" /> @@ -100,16 +91,17 @@ <Key latin:keyLabel="ћ" /> <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="8.640%p" + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-9.219%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="7.520%p" + latin:keyWidth="7.250%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="8.640%p" + latin:keyWidth="13.829%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ѕ" /> @@ -125,25 +117,12 @@ latin:keyLabel="н" /> <Key latin:keyLabel="м" /> + <include + latin:keyboardLayout="@xml/kbd_row3_right2" /> <Key - latin:keyLabel="ђ" /> - <Key - latin:keyLabel="ж" /> - <Key - latin:keyLabel="," - latin:manualTemporaryUpperCaseCode="33" - latin:keyHintIcon="@drawable/key_hint_exclamation_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo" - latin:popupCharacters="!" /> - <Key - latin:keyLabel="." - latin:manualTemporaryUpperCaseCode="63" - latin:keyHintIcon="@drawable/key_hint_question_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo" - latin:popupCharacters="\?" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="8.640%p" + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-13.750%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml-sw768dp/kbd_rows_spanish.xml b/java/res/xml-sw768dp/kbd_rows_spanish.xml new file mode 100644 index 000000000..300592e6a --- /dev/null +++ b/java/res/xml-sw768dp/kbd_rows_spanish.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row1" /> + <Row + latin:keyWidth="8.125%p" + > + <Key + latin:keyStyle="toSymbolKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="10.167%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="a" + latin:popupCharacters="@string/alternates_for_a" /> + <Key + latin:keyLabel="s" + latin:popupCharacters="@string/alternates_for_s" /> + <Key + latin:keyLabel="d" + latin:popupCharacters="@string/alternates_for_d" /> + <Key + latin:keyLabel="f" /> + <Key + latin:keyLabel="g" + latin:popupCharacters="@string/alternates_for_g" /> + <Key + latin:keyLabel="h" /> + <Key + latin:keyLabel="j" /> + <Key + latin:keyLabel="k" + latin:popupCharacters="@string/alternates_for_k" /> + <Key + latin:keyLabel="l" + latin:popupCharacters="@string/alternates_for_l" /> + <Key + latin:keyLabel="ñ" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-15.704%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row3" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml-sw768dp/kbd_symbols.xml b/java/res/xml-sw768dp/kbd_symbols.xml new file mode 100644 index 000000000..0e6103ab9 --- /dev/null +++ b/java/res/xml-sw768dp/kbd_symbols.xml @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_currency_key_styles" /> + <!-- This row is intentionally not marked as a top row --> + <Row + latin:keyWidth="8.282%p" + > + <Key + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="7.969%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="1" + latin:popupCharacters="¹,½,⅓,¼,⅛" /> + <Key + latin:keyLabel="2" + latin:popupCharacters="²,⅔" /> + <Key + latin:keyLabel="3" + latin:popupCharacters="³,¾,⅜" /> + <Key + latin:keyLabel="4" + latin:popupCharacters="⁴" /> + <Key + latin:keyLabel="5" + latin:popupCharacters="⅝" /> + <Key + latin:keyLabel="6" /> + <Key + latin:keyLabel="7" + latin:popupCharacters="⅞" /> + <Key + latin:keyLabel="8" /> + <Key + latin:keyLabel="9" /> + <Key + latin:keyLabel="0" + latin:popupCharacters="ⁿ,∅" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyXPos="-9.219%p" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.125%p" + > + <Key + latin:keyStyle="toAlphaKeyStyle" + latin:keyLabelOption="alignLeft" + latin:keyWidth="11.172%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="#" /> + <Key + latin:keyStyle="currencyKeyStyle" /> + <Key + latin:keyLabel="%" + latin:popupCharacters="‰" /> + <Key + latin:keyLabel="&" /> + <Key + latin:keyLabel="*" + latin:popupCharacters="†,‡,★" /> + <Key + latin:keyLabel="-" + latin:popupCharacters="_,–,—" /> + <Key + latin:keyLabel="+" + latin:popupCharacters="±" /> + <Key + latin:keyLabel="(" + latin:popupCharacters="[,{,<" /> + <Key + latin:keyLabel=")" + latin:popupCharacters="],},>" /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyXPos="-15.704%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:keyWidth="8.047%p" + > + <Key + latin:keyStyle="moreKeyStyle" + latin:keyWidth="13.829%p" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="<" + latin:popupCharacters="≤,«,‹" /> + <Key + latin:keyLabel=">" + latin:popupCharacters="≥,»,›" /> + <Key + latin:keyLabel="=" + latin:popupCharacters="≠,≈" /> + <switch> + <case + latin:mode="url" + > + <Key + latin:keyLabel="\'" + latin:popupCharacters="‘,’,‚,‛" /> + </case> + <default> + <Key + latin:keyLabel=":" /> + </default> + </switch> + <Key + latin:keyLabel=";" /> + <Key + latin:keyLabel="," /> + <Key + latin:keyLabel="." /> + <Key + latin:keyLabel="!" + latin:popupCharacters="¡" /> + <Key + latin:keyLabel="\?" + latin:popupCharacters="¿" /> + <Key + latin:keyStyle="moreKeyStyle" + latin:keyXPos="-13.750%p" + latin:keyWidth="fillBoth" + latin:keyEdgeFlags="right" /> + </Row> + <!-- This row is intentionally not marked as a bottom row --> + <Row + latin:keyWidth="8.047%p" + > + <switch> + <case + latin:hasSettingsKey="true" + > + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="8.047%p" /> + </case> + </switch> + <Key + latin:keyLabel="/" + latin:keyXPos="15.157%p" /> + <Key + latin:keyLabel="\@" /> + <Key + latin:keyStyle="spaceKeyStyle" + latin:keyXPos="31.250%p" + latin:keyWidth="37.500%p" /> + <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> + <!-- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" --> + <Key + latin:keyLabel=""" + latin:popupCharacters="“,”,«,»,‘,’,‚,‛" /> + <Key + latin:keyLabel="_" /> + <switch> + <case + latin:voiceKeyEnabled="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyXPos="-8.047%p" + latin:keyWidth="fillRight" /> + </case> + </switch> + </Row> +</Keyboard> diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-sw768dp/kbd_symbols_shift.xml index d7f5958b7..b36814104 100644 --- a/java/res/xml-xlarge/kbd_symbols_shift.xml +++ b/java/res/xml-sw768dp/kbd_symbols_shift.xml @@ -20,25 +20,17 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> <!-- This row is intentionally not marked as a top row --> <Row - latin:keyWidth="8.272%p" + latin:keyWidth="8.282%p" > <Key latin:keyStyle="tabKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="7.949%p" + latin:keyWidth="7.969%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="~" /> @@ -72,16 +64,17 @@ latin:keyLabel="Δ" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.331%p" + latin:keyXPos="-9.219%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.157%p" + latin:keyWidth="8.125%p" > <Key latin:keyStyle="toAlphaKeyStyle" latin:keyLabelOption="alignLeft" - latin:keyWidth="11.167%p" + latin:keyWidth="11.172%p" latin:keyEdgeFlags="left" /> <Key latin:keyStyle="nonPasswordSymbolKeyStyle" @@ -112,15 +105,16 @@ latin:keyLabel="}" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="15.750%p" + latin:keyXPos="-15.704%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.047%p" > <Key latin:keyStyle="moreKeyStyle" - latin:keyWidth="15.192%p" + latin:keyWidth="13.829%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="\\" /> @@ -148,34 +142,33 @@ latin:keyLabel="¿" /> <Key latin:keyStyle="moreKeyStyle" - latin:keyWidth="12.530%p" + latin:keyXPos="-13.750%p" + latin:keyWidth="fillBoth" latin:keyEdgeFlags="right" /> </Row> <!-- This row is intentionally not marked as a bottom row --> <Row - latin:keyWidth="8.042%p" + latin:keyWidth="8.047%p" > - <Spacer - latin:horizontalGap="24.446%p" /> <switch> <case latin:hasSettingsKey="true"> <Key - latin:keyStyle="settingsKeyStyle" /> + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="8.047%p" /> </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> </switch> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="37.454%p" /> + latin:keyXPos="31.250%p" + latin:keyWidth="37.500%p" /> <switch> <case latin:voiceKeyEnabled="true" > <Key - latin:keyStyle="micKeyStyle" /> + latin:keyStyle="shortcutKeyStyle" + latin:keyXPos="-8.047%p" + latin:keyWidth="fillRight" /> </case> </switch> </Row> diff --git a/java/res/xml-tr/kbd_qwerty.xml b/java/res/xml-tr/kbd_qwerty.xml new file mode 100644 index 000000000..d2c38f60a --- /dev/null +++ b/java/res/xml-tr/kbd_qwerty.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" + latin:keyboardLocale="tr" +> + <include + latin:keyboardLayout="@xml/kbd_rows_qwerty" /> +</Keyboard> diff --git a/java/res/xml-xlarge/kbd_key_styles.xml b/java/res/xml-xlarge/kbd_key_styles.xml deleted file mode 100644 index 57eaccbae..000000000 --- a/java/res/xml-xlarge/kbd_key_styles.xml +++ /dev/null @@ -1,183 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<merge - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <!-- Functional key styles --> - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="functionalKeyStyle" - latin:isFunctional="true" /> - <key-style - latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" - latin:keyIcon="@drawable/sym_keyboard_shift_holo" - latin:shiftedIcon="@drawable/sym_keyboard_shift_locked_holo" - latin:iconPreview="@drawable/sym_keyboard_feedback_shift" - latin:parentStyle="functionalKeyStyle" - latin:isSticky="true" /> - <key-style - latin:styleName="deleteKeyStyle" - latin:code="@integer/key_delete" - latin:keyIcon="@drawable/sym_keyboard_delete_holo" - latin:iconPreview="@drawable/sym_keyboard_feedback_delete" - latin:parentStyle="functionalKeyStyle" - latin:isRepeatable="true" /> - <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_keyboard_return_holo" - latin:iconPreview="@drawable/sym_keyboard_feedback_return" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="spaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="nonSpecialBackgroundSpaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="smileyKeyStyle" - latin:keyLabel=":-)" - latin:keyOutputText=":-) " - latin:keyHintIcon="@drawable/hint_popup_holo" - latin:popupCharacters="@string/alternates_for_smiley" - latin:maxPopupKeyboardColumn="5" /> - <key-style - latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" - latin:keyIcon="@drawable/sym_keyboard_settings_holo" - latin:iconPreview="@drawable/sym_keyboard_feedback_settings" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="micKeyStyle" - latin:code="@integer/key_shortcut" - latin:keyIcon="@drawable/sym_keyboard_voice_holo" - latin:iconPreview="@drawable/sym_keyboard_feedback_mic" - latin:parentStyle="functionalKeyStyle" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="functionalKeyStyle" /> - <key-style - latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" - latin:keyIcon="@drawable/sym_bkeyboard_shift" - latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked" - latin:iconPreview="@drawable/sym_keyboard_feedback_shift" - latin:parentStyle="functionalKeyStyle" - latin:isSticky="true" /> - <key-style - latin:styleName="deleteKeyStyle" - latin:code="@integer/key_delete" - latin:keyIcon="@drawable/sym_bkeyboard_delete" - latin:iconPreview="@drawable/sym_keyboard_feedback_delete" - latin:parentStyle="functionalKeyStyle" - latin:isRepeatable="true" /> - <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_bkeyboard_return" - latin:iconPreview="@drawable/sym_keyboard_feedback_return" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="spaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="nonSpecialBackgroundSpaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - <key-style - latin:styleName="smileyKeyStyle" - latin:keyLabel=":-)" - latin:keyOutputText=":-) " - latin:keyHintIcon="@drawable/hint_popup_holo" - latin:popupCharacters="@string/alternates_for_smiley" - latin:maxPopupKeyboardColumn="5" /> - <key-style - latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" - latin:keyIcon="@drawable/sym_bkeyboard_settings" - latin:iconPreview="@drawable/sym_keyboard_feedback_settings" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="micKeyStyle" - latin:code="@integer/key_shortcut" - latin:keyIcon="@drawable/sym_bkeyboard_mic" - latin:iconPreview="@drawable/sym_keyboard_feedback_mic" - latin:parentStyle="functionalKeyStyle" /> - </case> - </switch> - <key-style - latin:styleName="tabKeyStyle" - latin:code="@integer/key_tab" - latin:keyLabel="@string/label_tab_key" - latin:keyLabelOption="fontNormal" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" - latin:keyLabelOption="fontNormal" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="toAlphaKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_alpha_key" - latin:keyLabelOption="fontNormal" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="moreKeyStyle" - latin:code="@integer/key_shift" - latin:keyLabel="@string/label_more_key" - latin:keyLabelOption="fontNormal" - latin:parentStyle="functionalKeyStyle" - latin:isSticky="true" /> - <key-style - latin:styleName="comKeyStyle" - latin:keyLabel="@string/keylabel_for_popular_domain" - latin:keyLabelOption="fontNormal" - latin:keyOutputText="@string/keylabel_for_popular_domain" - latin:keyHintIcon="@drawable/hint_popup_holo" - latin:popupCharacters="@string/alternates_for_popular_domain" /> - <switch> - <case - latin:passwordInput="true" - > - <key-style - latin:styleName="nonPasswordSymbolKeyStyle" - latin:enabled="false" /> - </case> - <!-- latin:passwordInput="false" --> - <default> - <key-style - latin:styleName="nonPasswordSymbolKeyStyle" - latin:enabled="true" /> - </default> - </switch> -</merge> diff --git a/java/res/xml-xlarge/kbd_numkey_styles.xml b/java/res/xml-xlarge/kbd_numkey_styles.xml deleted file mode 100644 index e27db94c7..000000000 --- a/java/res/xml-xlarge/kbd_numkey_styles.xml +++ /dev/null @@ -1,148 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<merge - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="num0KeyStyle" - latin:code="48" - latin:keyIcon="@drawable/sym_keyboard_num0_holo" /> - <key-style - latin:styleName="num1KeyStyle" - latin:code="49" - latin:keyIcon="@drawable/sym_keyboard_num1_holo" /> - <key-style - latin:styleName="num2KeyStyle" - latin:code="50" - latin:keyIcon="@drawable/sym_keyboard_num2_holo" /> - <key-style - latin:styleName="num3KeyStyle" - latin:code="51" - latin:keyIcon="@drawable/sym_keyboard_num3_holo" /> - <key-style - latin:styleName="num4KeyStyle" - latin:code="52" - latin:keyIcon="@drawable/sym_keyboard_num4_holo" /> - <key-style - latin:styleName="num5KeyStyle" - latin:code="53" - latin:keyIcon="@drawable/sym_keyboard_num5_holo" /> - <key-style - latin:styleName="num6KeyStyle" - latin:code="54" - latin:keyIcon="@drawable/sym_keyboard_num6_holo" /> - <key-style - latin:styleName="num7KeyStyle" - latin:code="55" - latin:keyIcon="@drawable/sym_keyboard_num7_holo" /> - <key-style - latin:styleName="num8KeyStyle" - latin:code="56" - latin:keyIcon="@drawable/sym_keyboard_num8_holo" /> - <key-style - latin:styleName="num9KeyStyle" - latin:code="57" - latin:keyIcon="@drawable/sym_keyboard_num9_holo" /> - <key-style - latin:styleName="numStarKeyStyle" - latin:code="42" - latin:keyIcon="@drawable/sym_keyboard_numbstar_holo" /> - <key-style - latin:styleName="numPoundKeyStyle" - latin:code="35" - latin:keyIcon="@drawable/sym_keyboard_numbpound_holo" /> - <key-style - latin:styleName="numAltKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_keyboard_numalt" - latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="num0KeyStyle" - latin:code="48" - latin:keyIcon="@drawable/sym_bkeyboard_num0" /> - <key-style - latin:styleName="num1KeyStyle" - latin:code="49" - latin:keyIcon="@drawable/sym_bkeyboard_num1" /> - <key-style - latin:styleName="num2KeyStyle" - latin:code="50" - latin:keyIcon="@drawable/sym_bkeyboard_num2" /> - <key-style - latin:styleName="num3KeyStyle" - latin:code="51" - latin:keyIcon="@drawable/sym_bkeyboard_num3" /> - <key-style - latin:styleName="num4KeyStyle" - latin:code="52" - latin:keyIcon="@drawable/sym_bkeyboard_num4" /> - <key-style - latin:styleName="num5KeyStyle" - latin:code="53" - latin:keyIcon="@drawable/sym_bkeyboard_num5" /> - <key-style - latin:styleName="num6KeyStyle" - latin:code="54" - latin:keyIcon="@drawable/sym_bkeyboard_num6" /> - <key-style - latin:styleName="num7KeyStyle" - latin:code="55" - latin:keyIcon="@drawable/sym_bkeyboard_num7" /> - <key-style - latin:styleName="num8KeyStyle" - latin:code="56" - latin:keyIcon="@drawable/sym_bkeyboard_num8" /> - <key-style - latin:styleName="num9KeyStyle" - latin:code="57" - latin:keyIcon="@drawable/sym_bkeyboard_num9" /> - <key-style - latin:styleName="numStarKeyStyle" - latin:code="42" - latin:keyIcon="@drawable/sym_bkeyboard_numstar" /> - <key-style - latin:styleName="numPoundKeyStyle" - latin:code="35" - latin:keyIcon="@drawable/sym_bkeyboard_numpound" /> - <key-style - latin:styleName="numAltKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_bkeyboard_numalt" - latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:code="@integer/key_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - </switch> -</merge> diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml deleted file mode 100644 index 60edcf2bd..000000000 --- a/java/res/xml-xlarge/kbd_phone.xml +++ /dev/null @@ -1,167 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<Keyboard - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="11.949%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" -> - <include - latin:keyboardLayout="@xml/kbd_key_styles" /> - <include - latin:keyboardLayout="@xml/kbd_numkey_styles" /> - <!-- This row is intentionally not marked as a top row --> - <Row> - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyEdgeFlags="left" /> - <!-- To match one character label size with "Tab", I placed spaces around the char '-' - and '+'. --> - <Spacer - latin:horizontalGap="8.470%p" /> - <Key - latin:code="45" - latin:keyLabel=" - " - latin:keyWidth="8.042%p" /> - <Key - latin:code="43" - latin:keyLabel=" + " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> - <Key - latin:keyStyle="num1KeyStyle" /> - <Key - latin:keyStyle="num2KeyStyle" /> - <Key - latin:keyStyle="num3KeyStyle" /> - <Spacer - latin:horizontalGap="9.360%p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <Key - latin:keyStyle="moreKeyStyle" - latin:keyEdgeFlags="left" /> - <!-- To match one character label size with "More", I placed spaces around the char ',' - and '.'. --> - <Spacer - latin:horizontalGap="8.470%p" /> - <Key - latin:code="44" - latin:keyLabel=" , " - latin:keyWidth="8.042%p" /> - <Key - latin:code="46" - latin:keyLabel=" . " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> - <Key - latin:keyStyle="num4KeyStyle" /> - <Key - latin:keyStyle="num5KeyStyle" /> - <Key - latin:keyStyle="num6KeyStyle" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <!-- To match one character label size with "More", I placed spaces around the char '(' - and ')'. --> - <!-- There is an empty area bellow the "More" key and left of the "(" key. To ignore - the touch event on the area, "(" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="20.427%p" /> - <Key - latin:code="40" - latin:keyLabel=" ( " - latin:keyWidth="8.042%p" /> - <Key - latin:code="41" - latin:keyLabel=" ) " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> - <Key - latin:keyStyle="num7KeyStyle" /> - <Key - latin:keyStyle="num8KeyStyle" /> - <Key - latin:keyStyle="num9KeyStyle" /> - <!-- There is an empty area bellow the "Enter" key and right of the "9" key. To ignore - the touch event on the area, "9" is intentionally not marked as a right edge key. --> - </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row> - <!-- There is an empty area bellow the "More" key and left of the "space" key. To ignore - the touch event on the area, "space" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="12.340%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> - <Key - latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" - latin:keyWidth="16.084%p" /> - <Spacer - latin:horizontalGap="8.479%p" /> - <Key - latin:keyStyle="numStarKeyStyle" /> - <Key - latin:keyStyle="num0KeyStyle" /> - <Key - latin:keyStyle="numPoundKeyStyle" /> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - </switch> - <!-- There is an empty area bellow the "Enter" key and right of the "#" key. To ignore - the touch event on the area, "#" is intentionally not marked as a right edge key. --> - </Row> -</Keyboard> diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml deleted file mode 100644 index c388a4667..000000000 --- a/java/res/xml-xlarge/kbd_phone_symbols.xml +++ /dev/null @@ -1,179 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<Keyboard - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="11.949%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" -> - <include - latin:keyboardLayout="@xml/kbd_key_styles" /> - <include - latin:keyboardLayout="@xml/kbd_numkey_styles" /> - <!-- This row is intentionally not marked as a top row --> - <Row> - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="alignLeft" - latin:keyEdgeFlags="left" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:code="45" - latin:keyLabel=" - " - latin:keyWidth="8.042%p" /> - <Key - latin:code="43" - latin:keyLabel=" + " - latin:keyWidth="8.042%p" /> - <Key - latin:code="44" - latin:keyLabel="@string/label_pause_key" - latin:keyWidth="8.042%p" /> - <!-- To match one character label size with "Tab" and "Pause, I placed spaces around the - char '-' and '+'. --> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="num1KeyStyle" /> - <Key - latin:keyStyle="num2KeyStyle" /> - <Key - latin:keyStyle="num3KeyStyle" /> - <Spacer - latin:horizontalGap="9.360%p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="9.804%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <Key - latin:keyStyle="moreKeyStyle" - latin:keyEdgeFlags="left" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:code="44" - latin:keyLabel=" , " - latin:keyWidth="8.042%p" /> - <Key - latin:code="46" - latin:keyLabel=" . " - latin:keyWidth="8.042%p" /> - <Key - latin:code="59" - latin:keyLabel="@string/label_wait_key" - latin:keyWidth="8.042%p" /> - <!-- To match one character label size with "More" and "Wait", I placed spaces around the - char ',' and '.'. --> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="num4KeyStyle" /> - <Key - latin:keyStyle="num5KeyStyle" /> - <Key - latin:keyStyle="num6KeyStyle" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="14.706%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <!-- To match one character label size with "More" and etc., I placed spaces around the - char 'N', '(' and ')'. --> - <!-- There is an empty area bellow the "More" key and left of the "(" key. To ignore - the touch event on the area, "(" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="16.406%p" /> - <Key - latin:code="40" - latin:keyLabel=" ( " - latin:keyWidth="8.042%p" /> - <Key - latin:code="41" - latin:keyLabel=" ) " - latin:keyWidth="8.042%p" /> - <Key - latin:code="78" - latin:keyLabel=" N " - latin:keyWidth="8.042%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="num7KeyStyle" /> - <Key - latin:keyStyle="num8KeyStyle" /> - <Key - latin:keyStyle="num9KeyStyle" /> - <!-- There is an empty area bellow the "Enter" key and right of the "9" key. To ignore - the touch event on the area, "9" is intentionally not marked as a right edge key. --> - </Row> - <!-- This row is intentionally not marked as a bottom row --> - <Row> - <!-- There is an empty area bellow the "More" key and left of the "space" key. To ignore - the touch event on the area, "space" is intentionally not marked as a left edge key. --> - <Spacer - latin:horizontalGap="8.362%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> - <Key - latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle" - latin:keyWidth="24.127%p" /> - <Spacer - latin:horizontalGap="4.458%p" /> - <Key - latin:keyStyle="numStarKeyStyle" /> - <Key - latin:keyStyle="num0KeyStyle" /> - <Key - latin:keyStyle="numPoundKeyStyle" /> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" - latin:keyWidth="8.042%p" /> - </case> - </switch> - <!-- There is an empty area bellow the "Enter" key and right of the "#" key. To ignore - the touch event on the area, "#" is intentionally not marked as a right edge key. --> - </Row> -</Keyboard> diff --git a/java/res/xml-xlarge/kbd_qwerty_row4.xml b/java/res/xml-xlarge/kbd_qwerty_row4.xml deleted file mode 100644 index f36b61fc7..000000000 --- a/java/res/xml-xlarge/kbd_qwerty_row4.xml +++ /dev/null @@ -1,258 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<merge - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <!-- This row is intentionally not marked as a bottom row --> - <Row - latin:keyWidth="8.042%p" - > - <Spacer - latin:horizontalGap="8.362%p" /> - <switch> - <case latin:hasSettingsKey="true"> - <Key - latin:keyStyle="settingsKeyStyle" /> - </case> - <default> - <Spacer - latin:horizontalGap="8.042%p" /> - </default> - </switch> - <switch> - <case - latin:languageCode="ru" - > - <switch> - <!-- TODO: implement logical OR for <case> attribute --> - <case - latin:mode="email" - > - <Key - latin:keyStyle="comKeyStyle" /> - </case> - <case - latin:mode="url" - > - <Key - latin:keyStyle="comKeyStyle" /> - </case> - <case - latin:imeAction="actionSearch" - > - <Key - latin:keyLabel=":" - latin:manualTemporaryUpperCaseCode="43" - latin:keyHintIcon="@drawable/key_hint_plus_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo" - latin:popupCharacters="+" /> - </case> - <default> - <Key - latin:keyStyle="smileyKeyStyle" /> - </default> - </switch> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="\@" /> - </case> - <case - latin:mode="url" - > - <Key - latin:keyLabel="-" - latin:manualTemporaryUpperCaseCode="95" - latin:keyHintIcon="@drawable/key_hint_underline_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo" - latin:popupCharacters="_" /> - </case> - <default> - <Key - latin:keyLabel="/" - latin:manualTemporaryUpperCaseCode="64" - latin:keyHintIcon="@drawable/key_hint_at_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo" - latin:popupCharacters="\@" /> - </default> - </switch> - </case> - <!-- not languageCode="ru" --> - <default> - <switch> - <case - latin:mode="url" - > - <Key - latin:keyStyle="comKeyStyle" - latin:keyWidth="16.084%p" /> - </case> - <default> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyStyle="comKeyStyle" /> - </case> - <case - latin:imeAction="actionSearch" - > - <Key - latin:keyLabel=":" - latin:manualTemporaryUpperCaseCode="43" - latin:keyHintIcon="@drawable/key_hint_plus_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo" - latin:popupCharacters="+" /> - </case> - <default> - <Key - latin:keyStyle="smileyKeyStyle" /> - </default> - </switch> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="\@" /> - </case> - <default> - <Key - latin:keyLabel="/" - latin:manualTemporaryUpperCaseCode="64" - latin:keyHintIcon="@drawable/key_hint_at_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo" - latin:popupCharacters="\@" /> - </default> - </switch> - </default> - </switch> - </default> - </switch> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="37.454%p" /> - <switch> - <case - latin:languageCode="ru" - > - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="-" /> - </case> - <case - latin:mode="url" - > - <Key - latin:keyLabel="/" - latin:manualTemporaryUpperCaseCode="58" - latin:keyHintIcon="@drawable/key_hint_colon_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo" - latin:popupCharacters=":" /> - </case> - <default> - <Key - latin:keyLabel="\?" - latin:manualTemporaryUpperCaseCode="95" - latin:keyHintIcon="@drawable/key_hint_underline_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo" - latin:popupCharacters="_" /> - </default> - </switch> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="_" /> - </case> - <default> - <Key - latin:keyLabel="!" - latin:manualTemporaryUpperCaseCode="39" - latin:keyHintIcon="@drawable/key_hint_quote_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo" - latin:popupCharacters="\'" /> - </default> - </switch> - </case> - <!-- not languageCode="ru" --> - <default> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="-" /> - </case> - <case - latin:mode="url" - > - <Key - latin:keyLabel="/" - latin:manualTemporaryUpperCaseCode="58" - latin:keyHintIcon="@drawable/key_hint_colon_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo" - latin:popupCharacters=":" /> - </case> - <default> - <Key - latin:keyLabel="\'" - latin:manualTemporaryUpperCaseCode="34" - latin:keyHintIcon="@drawable/key_hint_quote_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo" - latin:popupCharacters=""" /> - </default> - </switch> - <switch> - <case - latin:mode="email" - > - <Key - latin:keyLabel="_" /> - </case> - <default> - <Key - latin:keyLabel="-" - latin:manualTemporaryUpperCaseCode="95" - latin:keyHintIcon="@drawable/key_hint_underline_holo" - latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo" - latin:popupCharacters="_" /> - </default> - </switch> - </default> - </switch> - <switch> - <case - latin:voiceKeyEnabled="true" - > - <Key - latin:keyStyle="micKeyStyle" /> - </case> - </switch> - </Row> -</merge> diff --git a/java/res/xml/kbd_currency_key_styles.xml b/java/res/xml/kbd_currency_key_styles.xml index b30dd6451..9d3bb4725 100644 --- a/java/res/xml/kbd_currency_key_styles.xml +++ b/java/res/xml/kbd_currency_key_styles.xml @@ -27,229 +27,59 @@ > <key-style latin:styleName="currencyKeyStyle" - latin:keyLabel="$" - latin:popupCharacters="@string/alternates_for_currency_dollar" /> + latin:keyLabel="$" /> </case> <!-- Countries using Euro currency, 23 countries as for January 2011. --> - <!-- 1. Andorra (ca_AD, ca_ES) --> - <case - latin:languageCode="ca" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 2. Austria (de_AT) --> -<!-- <case--> -<!-- latin:countryCode="AT"--> -<!-- >--> -<!-- <key-style--> -<!-- latin:styleName="currencyKeyStyle"--> -<!-- latin:keyLabel="€"--> -<!-- latin:popupCharacters="@string/alternates_for_currency_euro" />--> -<!-- </case>--> - <!-- 3. Belgium (nl_BE, fr_BE, de_BE) --> -<!-- <case--> -<!-- latin:countryCode="BE"--> -<!-- >--> -<!-- <key-style--> -<!-- latin:styleName="currencyKeyStyle"--> -<!-- latin:keyLabel="€"--> -<!-- latin:popupCharacters="@string/alternates_for_currency_euro" />--> -<!-- </case>--> - <!-- 4. Cyprus (el_CY, tr_CY) --> - <case - latin:countryCode="CY" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 5. Estonia (et_EE) --> -<!-- <case--> -<!-- latin:languageCode="et"--> -<!-- latin:countryCode=""--> -<!-- >--> -<!-- <key-style--> -<!-- latin:styleName="currencyKeyStyle"--> -<!-- latin:keyLabel="€"--> -<!-- latin:popupCharacters="@string/alternates_for_currency_euro" />--> -<!-- </case>--> - <!-- 6. Finland (fi_FI, sv_FI) --> - <case - latin:languageCode="fi" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 7. France (fr_FR) --> - <case - latin:languageCode="fr" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 8. Germany (de_DE) --> - <case - latin:languageCode="de" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 9. Greece (el_GR) --> - <case - latin:languageCode="el" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 10. Ireland (ga_IE, en_IE) --> - <case - latin:countryCode="IE" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 11. Italy (it_IT) --> - <case - latin:languageCode="it" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 12. Kosovo --> -<!-- <case--> -<!-- latin:countryCode="XK"--> -<!-- >--> -<!-- <key-style--> -<!-- latin:styleName="currencyKeyStyle"--> -<!-- latin:keyLabel="€"--> -<!-- latin:popupCharacters="@string/alternates_for_currency_euro" />--> -<!-- </case>--> - <!-- 13. Luxembourg (lb_LU, fr_LU, de_LU) --> - <case - latin:countryCode="LU" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 14. Malta (mt_MT, en_MT) --> - <case - latin:countryCode="MT" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 15. Monaco (fr_MO) --> -<!-- <case--> -<!-- latin:countryCode="MO"--> -<!-- >--> -<!-- <key-style--> -<!-- latin:styleName="currencyKeyStyle"--> -<!-- latin:keyLabel="€"--> -<!-- latin:popupCharacters="@string/alternates_for_currency_euro" />--> -<!-- </case>--> - <!-- 16. Montenegro (sla_ME) --> - <case - latin:countryCode="ME" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 17. Netherlands (nl_NL) --> - <case - latin:languageCode="nl" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 18. Portugal (pt_PT) --> - <case - latin:languageCode="pt" - latin:countryCode="" - > - <key-style - latin:styleName="currencyKeyStyle" - latin:keyLabel="€" - latin:popupCharacters="@string/alternates_for_currency_euro" /> - </case> - <!-- 19. San Marino (it_SM) --> -<!-- <case--> -<!-- latin:countryCode="SM"--> -<!-- >--> -<!-- <key-style--> -<!-- latin:styleName="currencyKeyStyle"--> -<!-- latin:keyLabel="€"--> -<!-- latin:popupCharacters="@string/alternates_for_currency_euro" />--> -<!-- </case>--> - <!-- 20. Slovakia (sk_SK) --> + 1. Andorra (ca_AD, ca_ES) + 2. Austria (de_AT) + 3. Belgium (nl_BE, fr_BE, de_BE) + 4. Cyprus (el_CY, tr_CY) + 5. Estonia (et_EE) + 6. Finland (fi_FI, sv_FI) + 7. France (fr_FR) + 8. Germany (de_DE) + 9. Greece (el_GR) + 10. Ireland (ga_IE, en_IE) + 11. Italy (it_IT) + 12. Kosovo (??_XK) ?? + 13. Luxembourg (lb_LU, fr_LU, de_LU) + 14. Malta (mt_MT, en_MT) + 15. Monaco (fr_MO) + 16. Montenegro (sla_ME) + 17. Netherlands (nl_NL) + 18. Portugal (pt_PT) + 19. San Marino (it_SM) + 20. Slovakia (sk_SK) + 21. Slovenia (sl_SI) + 22. Spain (es_ES, ca_ES) + 23. Vatican City (it_VA) + --> + <!-- Note: Some locales may not have country code, and it it supposed to indicate the + country where the language originally/mainly spoken. --> <case - latin:languageCode="sk" - latin:countryCode="" + latin:localeCode="de|es|el|fi|fr|it|nl|sk|sl|pt_PT" > <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="€" latin:popupCharacters="@string/alternates_for_currency_euro" /> </case> - <!-- 21. Slovenia (sl_SI) --> <case - latin:languageCode="sl" - latin:countryCode="" + latin:languageCode="ca|et|lb|mt|sla" > <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="€" latin:popupCharacters="@string/alternates_for_currency_euro" /> </case> - <!-- 22. Spain (es_ES, ca_ES) --> <case - latin:languageCode="es" - latin:countryCode="" + latin:countryCode="AD|AT|BE|CY|EE|FI|FR|DE|GR|IE|IT|XK|LU|MT|MO|ME|NL|PT|SM|SK|SI|ES|VA" > <key-style latin:styleName="currencyKeyStyle" latin:keyLabel="€" latin:popupCharacters="@string/alternates_for_currency_euro" /> </case> - <!-- 23. Vatican City (it_VA) --> -<!-- <case--> -<!-- latin:countryCode="VA"--> -<!-- >--> -<!-- <key-style--> -<!-- latin:styleName="currencyKeyStyle"--> -<!-- latin:keyLabel="€"--> -<!-- latin:popupCharacters="@string/alternates_for_currency_euro" />--> -<!-- </case>--> <!-- United Kingdom --> <case latin:countryCode="GB" @@ -266,4 +96,4 @@ latin:popupCharacters="@string/alternates_for_currency_dollar" /> </default> </switch> -</merge>
\ No newline at end of file +</merge> diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml index d4d25d4a2..63d519c4c 100644 --- a/java/res/xml/kbd_key_styles.xml +++ b/java/res/xml/kbd_key_styles.xml @@ -22,188 +22,49 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <!-- Base key style for the functional key --> + <key-style + latin:styleName="functionalKeyStyle" + latin:isFunctional="true" /> + <!-- Base key style for the key which may have settings key as popup key --> <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="functionalKeyStyle" - latin:isFunctional="true" /> - </case> <case - latin:colorScheme="black" + latin:clobberSettingsKey="true" > <key-style - latin:styleName="functionalKeyStyle" /> + latin:styleName="settingsPopupStyle" + latin:parentStyle="functionalKeyStyle" /> </case> - </switch> - <!-- Base key style for the key which may have settings key as popup key --> - <switch> <case + latin:clobberSettingsKey="false" latin:hasSettingsKey="true" > <key-style latin:styleName="settingsPopupStyle" latin:parentStyle="functionalKeyStyle" /> </case> - <!-- latin:hasSettingsKey="false" --> + <!-- clobberSettingsKey="false" and hasSettingsKey="false" --> <default> <key-style latin:styleName="settingsPopupStyle" - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings" + latin:keyLabelOption="popupHint" + latin:popupCharacters="\@icon/5|\@integer/key_settings" latin:parentStyle="functionalKeyStyle" /> </default> </switch> <!-- Functional key styles --> - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" - latin:keyIcon="@drawable/sym_keyboard_shift" - latin:shiftedIcon="@drawable/sym_keyboard_shift_locked" - latin:iconPreview="@drawable/sym_keyboard_feedback_shift" - latin:parentStyle="functionalKeyStyle" - latin:isSticky="true" /> - <key-style - latin:styleName="deleteKeyStyle" - latin:code="@integer/key_delete" - latin:keyIcon="@drawable/sym_keyboard_delete" - latin:iconPreview="@drawable/sym_keyboard_feedback_delete" - latin:parentStyle="functionalKeyStyle" - latin:isRepeatable="true" /> - <switch> - <!-- When this qwerty keyboard has no voice key but voice key is enabled, then - symbol keyboard will have mic key. That means we should use "?123mic" key - here. --> - <case - latin:voiceKeyEnabled="true" - latin:hasVoiceKey="false" - > - <key-style - latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_keyboard_123_mic" - latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic" - latin:parentStyle="functionalKeyStyle" /> - </case> - <default> - <key-style - latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" - latin:parentStyle="functionalKeyStyle" /> - </default> - </switch> - <key-style - latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" - latin:keyIcon="@drawable/sym_keyboard_settings" - latin:iconPreview="@drawable/sym_keyboard_feedback_settings" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="spaceKeyStyle" - latin:code="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="tabKeyStyle" - latin:code="@integer/key_tab" - latin:keyIcon="@drawable/sym_keyboard_tab" - latin:iconPreview="@drawable/sym_keyboard_feedback_tab" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="micKeyStyle" - latin:code="@integer/key_shortcut" - latin:keyIcon="@drawable/sym_keyboard_mic" - latin:iconPreview="@drawable/sym_keyboard_feedback_mic" - latin:parentStyle="settingsPopupStyle" /> - <!-- Note: This key style is not for functional tab key. This is used for the tab key - which is laid out as normal letter key. --> - <key-style - latin:styleName="nonSpecialBackgroundTabKeyStyle" - latin:code="@integer/key_tab" - latin:keyIcon="@drawable/sym_keyboard_tab" - latin:iconPreview="@drawable/sym_keyboard_feedback_tab" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="shiftKeyStyle" - latin:code="@integer/key_shift" - latin:keyIcon="@drawable/sym_bkeyboard_shift" - latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked" - latin:iconPreview="@drawable/sym_keyboard_feedback_shift" - latin:parentStyle="functionalKeyStyle" - latin:isSticky="true" /> - <key-style - latin:styleName="deleteKeyStyle" - latin:code="@integer/key_delete" - latin:keyIcon="@drawable/sym_bkeyboard_delete" - latin:iconPreview="@drawable/sym_keyboard_feedback_delete" - latin:parentStyle="functionalKeyStyle" - latin:isRepeatable="true" /> - <switch> - <!-- When this qwerty keyboard has no voice key but voice key is enabled, then - symbol keyboard will have mic key. That means we should use "?123mic" key - here. --> - <case - latin:voiceKeyEnabled="true" - latin:hasVoiceKey="false" - > - <key-style - latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_bkeyboard_123_mic" - latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic" - latin:parentStyle="functionalKeyStyle" /> - </case> - <default> - <key-style - latin:styleName="toSymbolKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_symbol_key" - latin:parentStyle="functionalKeyStyle" /> - </default> - </switch> - <key-style - latin:styleName="settingsKeyStyle" - latin:code="@integer/key_settings" - latin:keyIcon="@drawable/sym_bkeyboard_settings" - latin:iconPreview="@drawable/sym_keyboard_feedback_settings" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="spaceKeyStyle" - latin:code="@integer/key_space" - latin:keyIcon="@drawable/sym_bkeyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="tabKeyStyle" - latin:code="@integer/key_tab" - latin:keyIcon="@drawable/sym_bkeyboard_tab" - latin:iconPreview="@drawable/sym_keyboard_feedback_tab" - latin:parentStyle="functionalKeyStyle" /> - <key-style - latin:styleName="micKeyStyle" - latin:code="@integer/key_shortcut" - latin:keyIcon="@drawable/sym_bkeyboard_mic" - latin:iconPreview="@drawable/sym_keyboard_feedback_mic" - latin:parentStyle="settingsPopupStyle" /> - <!-- Note: This key style is not for functional tab key. This is used for the tab key - which is laid out as normal letter key. --> - <key-style - latin:styleName="nonSpecialBackgroundTabKeyStyle" - latin:code="@integer/key_tab" - latin:keyIcon="@drawable/sym_bkeyboard_tab" - latin:iconPreview="@drawable/sym_keyboard_feedback_tab" /> - </case> - </switch> + <key-style + latin:styleName="shiftKeyStyle" + latin:code="@integer/key_shift" + latin:keyIcon="iconShiftKey" + latin:keyIconShifted="iconShiftedShiftKey" + latin:parentStyle="functionalKeyStyle" + latin:isSticky="true" /> + <key-style + latin:styleName="deleteKeyStyle" + latin:code="@integer/key_delete" + latin:keyIcon="iconDeleteKey" + latin:parentStyle="functionalKeyStyle" + latin:isRepeatable="true" /> <!-- Return key style --> <switch> <case @@ -245,52 +106,77 @@ <case latin:imeAction="actionSearch" > - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_keyboard_search" - latin:iconPreview="@drawable/sym_keyboard_feedback_search" - latin:parentStyle="functionalKeyStyle" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_bkeyboard_search" - latin:iconPreview="@drawable/sym_keyboard_feedback_search" - latin:parentStyle="functionalKeyStyle" /> - </case> - </switch> + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="iconSearchKey" + latin:parentStyle="functionalKeyStyle" /> + </case> + <default> + <key-style + latin:styleName="returnKeyStyle" + latin:code="@integer/key_return" + latin:keyIcon="iconReturnKey" + latin:parentStyle="functionalKeyStyle" /> + </default> + </switch> + <key-style + latin:styleName="spaceKeyStyle" + latin:code="@integer/key_space" + latin:keyIconPreview="iconPreviewSpaceKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="smileyKeyStyle" + latin:keyLabel=":-)" + latin:keyOutputText=":-) " + latin:keyLabelOption="popupHint" + latin:popupCharacters="@string/alternates_for_smiley" + latin:maxPopupKeyboardColumn="5" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="shortcutKeyStyle" + latin:code="@integer/key_shortcut" + latin:keyIcon="iconShortcutKey" + latin:keyIconPreview="iconPreviewShortcutKey" + latin:parentStyle="settingsPopupStyle" /> + <key-style + latin:styleName="settingsKeyStyle" + latin:code="@integer/key_settings" + latin:keyIcon="iconSettingsKey" + latin:keyIconPreview="iconPreviewSettingsKey" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="tabKeyStyle" + latin:code="@integer/key_tab" + latin:keyIcon="iconTabKey" + latin:keyIconPreview="iconPreviewTabKey" + latin:parentStyle="functionalKeyStyle" /> + <!-- Note: This key style is not for functional tab key. This is used for the tab key which is + laid out as normal letter key. --> + <key-style + latin:styleName="nonSpecialBackgroundTabKeyStyle" + latin:code="@integer/key_tab" + latin:keyIcon="iconTabKey" + latin:keyIconPreview="iconPreviewTabKey" /> + <switch> + <!-- When this qwerty keyboard has no voice key but voice key is enabled, then symbol + keyboard will have mic key. That means we should use "?123mic" key here. --> + <case + latin:voiceKeyEnabled="true" + latin:hasVoiceKey="false" + > + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyIcon="iconToSymbolKeyWithShortcut" + latin:parentStyle="functionalKeyStyle" /> </case> <default> - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_keyboard_return" - latin:iconPreview="@drawable/sym_keyboard_feedback_return" - latin:parentStyle="functionalKeyStyle" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="returnKeyStyle" - latin:code="@integer/key_return" - latin:keyIcon="@drawable/sym_bkeyboard_return" - latin:iconPreview="@drawable/sym_keyboard_feedback_return" - latin:parentStyle="functionalKeyStyle" /> - </case> - </switch> + <key-style + latin:styleName="toSymbolKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_symbol_key" + latin:parentStyle="functionalKeyStyle" /> </default> </switch> <key-style @@ -304,14 +190,6 @@ latin:keyLabel="@string/label_alt_key" latin:parentStyle="functionalKeyStyle" latin:isSticky="true" /> - <key-style - latin:styleName="smileyKeyStyle" - latin:keyLabel=":-)" - latin:keyOutputText=":-) " - latin:keyHintIcon="@drawable/hint_popup" - latin:popupCharacters="@string/alternates_for_smiley" - latin:maxPopupKeyboardColumn="5" - latin:parentStyle="functionalKeyStyle" /> <switch> <case latin:passwordInput="true" @@ -335,4 +213,4 @@ latin:parentStyle="functionalKeyStyle" /> </default> </switch> -</merge>
\ No newline at end of file +</merge> diff --git a/java/res/xml/kbd_number.xml b/java/res/xml/kbd_number.xml index 2556f6830..429b81846 100644 --- a/java/res/xml/kbd_number.xml +++ b/java/res/xml/kbd_number.xml @@ -20,95 +20,122 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" latin:keyWidth="26.67%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> - <!-- TODO: Should add number password layout just like the xlarge layout does. --> + <include + latin:keyboardLayout="@xml/kbd_numkey_styles" /> <switch> <case - latin:colorScheme="white" - > - <key-style - latin:styleName="numSpaceKeyStyle" - latin:code="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - <case - latin:colorScheme="black" + latin:passwordInput="true" > - <key-style - latin:styleName="numSpaceKeyStyle" - latin:code="@integer/key_space" - latin:keyIcon="@drawable/sym_bkeyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> + <Row + latin:rowEdgeFlags="top" + > + <Key + latin:keyStyle="num1KeyStyle" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="num2KeyStyle" /> + <Key + latin:keyStyle="num3KeyStyle" /> + </Row> + <Row> + <Key + latin:keyStyle="num4KeyStyle" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="num5KeyStyle" /> + <Key + latin:keyStyle="num6KeyStyle" /> + </Row> + <Row> + <Key + latin:keyStyle="num7KeyStyle" + latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="num8KeyStyle" /> + <Key + latin:keyStyle="num9KeyStyle" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:rowEdgeFlags="bottom" + > + <Spacer /> + <Key + latin:keyStyle="num0KeyStyle" /> + <Spacer /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> </case> + <!-- latin:passwordInput="false" --> + <default> + <Row + latin:rowEdgeFlags="top" + > + <Key + latin:keyLabel="1" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="2" /> + <Key + latin:keyLabel="3" /> + <Key + latin:keyLabel="-" + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyLabel="4" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="5" /> + <Key + latin:keyLabel="6" /> + <Key + latin:keyLabel="," + latin:keyStyle="functionalKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row> + <Key + latin:keyLabel="7" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="8" /> + <Key + latin:keyLabel="9" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + <Row + latin:rowEdgeFlags="bottom" + > + <Key + latin:keyStyle="numSpaceKeyStyle" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="0" /> + <Key + latin:keyLabel="." /> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </Row> + </default> </switch> - <Row - latin:rowEdgeFlags="top" - > - <Key - latin:keyLabel="1" - latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="2" /> - <Key - latin:keyLabel="3" /> - <Key - latin:keyLabel="-" - latin:keyStyle="functionalKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <Key - latin:keyLabel="4" - latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="5" /> - <Key - latin:keyLabel="6" /> - <Key - latin:keyLabel="," - latin:keyStyle="functionalKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row> - <Key - latin:keyLabel="7" - latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="8" /> - <Key - latin:keyLabel="9" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </Row> - <Row - latin:rowEdgeFlags="bottom" - > - <Key - latin:keyStyle="numSpaceKeyStyle" - latin:keyEdgeFlags="left" /> - <Key - latin:keyLabel="0" /> - <Key - latin:keyLabel="." /> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </Row> </Keyboard> diff --git a/java/res/xml/kbd_numkey_styles.xml b/java/res/xml/kbd_numkey_styles.xml index 2f9ae325a..3a26a022b 100644 --- a/java/res/xml/kbd_numkey_styles.xml +++ b/java/res/xml/kbd_numkey_styles.xml @@ -21,130 +21,75 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <switch> - <case - latin:colorScheme="white" - > - <key-style - latin:styleName="num0KeyStyle" - latin:code="48" - latin:keyIcon="@drawable/sym_keyboard_num0" /> - <key-style - latin:styleName="num1KeyStyle" - latin:code="49" - latin:keyIcon="@drawable/sym_keyboard_num1" /> - <key-style - latin:styleName="num2KeyStyle" - latin:code="50" - latin:keyIcon="@drawable/sym_keyboard_num2" /> - <key-style - latin:styleName="num3KeyStyle" - latin:code="51" - latin:keyIcon="@drawable/sym_keyboard_num3" /> - <key-style - latin:styleName="num4KeyStyle" - latin:code="52" - latin:keyIcon="@drawable/sym_keyboard_num4" /> - <key-style - latin:styleName="num5KeyStyle" - latin:code="53" - latin:keyIcon="@drawable/sym_keyboard_num5" /> - <key-style - latin:styleName="num6KeyStyle" - latin:code="54" - latin:keyIcon="@drawable/sym_keyboard_num6" /> - <key-style - latin:styleName="num7KeyStyle" - latin:code="55" - latin:keyIcon="@drawable/sym_keyboard_num7" /> - <key-style - latin:styleName="num8KeyStyle" - latin:code="56" - latin:keyIcon="@drawable/sym_keyboard_num8" /> - <key-style - latin:styleName="num9KeyStyle" - latin:code="57" - latin:keyIcon="@drawable/sym_keyboard_num9" /> - <key-style - latin:styleName="numStarKeyStyle" - latin:code="42" - latin:keyIcon="@drawable/sym_keyboard_numstar" /> - <key-style - latin:styleName="numPoundKeyStyle" - latin:code="35" - latin:keyIcon="@drawable/sym_keyboard_numpound" /> - <key-style - latin:styleName="numAltKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_keyboard_numalt" - latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:code="@integer/key_space" - latin:keyIcon="@drawable/sym_keyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - <case - latin:colorScheme="black" - > - <key-style - latin:styleName="num0KeyStyle" - latin:code="48" - latin:keyIcon="@drawable/sym_bkeyboard_num0" /> - <key-style - latin:styleName="num1KeyStyle" - latin:code="49" - latin:keyIcon="@drawable/sym_bkeyboard_num1" /> - <key-style - latin:styleName="num2KeyStyle" - latin:code="50" - latin:keyIcon="@drawable/sym_bkeyboard_num2" /> - <key-style - latin:styleName="num3KeyStyle" - latin:code="51" - latin:keyIcon="@drawable/sym_bkeyboard_num3" /> - <key-style - latin:styleName="num4KeyStyle" - latin:code="52" - latin:keyIcon="@drawable/sym_bkeyboard_num4" /> - <key-style - latin:styleName="num5KeyStyle" - latin:code="53" - latin:keyIcon="@drawable/sym_bkeyboard_num5" /> - <key-style - latin:styleName="num6KeyStyle" - latin:code="54" - latin:keyIcon="@drawable/sym_bkeyboard_num6" /> - <key-style - latin:styleName="num7KeyStyle" - latin:code="55" - latin:keyIcon="@drawable/sym_bkeyboard_num7" /> - <key-style - latin:styleName="num8KeyStyle" - latin:code="56" - latin:keyIcon="@drawable/sym_bkeyboard_num8" /> - <key-style - latin:styleName="num9KeyStyle" - latin:code="57" - latin:keyIcon="@drawable/sym_bkeyboard_num9" /> - <key-style - latin:styleName="numStarKeyStyle" - latin:code="42" - latin:keyIcon="@drawable/sym_bkeyboard_numstar" /> - <key-style - latin:styleName="numPoundKeyStyle" - latin:code="35" - latin:keyIcon="@drawable/sym_bkeyboard_numpound" /> - <key-style - latin:styleName="numAltKeyStyle" - latin:code="@integer/key_switch_alpha_symbol" - latin:keyIcon="@drawable/sym_bkeyboard_numalt" - latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" /> - <key-style - latin:styleName="numSpaceKeyStyle" - latin:code="@integer/key_space" - latin:keyIcon="@drawable/sym_bkeyboard_space" - latin:iconPreview="@drawable/sym_keyboard_feedback_space" /> - </case> - </switch> + <key-style + latin:styleName="num0KeyStyle" + latin:code="48" + latin:keyIcon="iconNum0Key" /> + <key-style + latin:styleName="num1KeyStyle" + latin:code="49" + latin:keyIcon="iconNum1Key" /> + <key-style + latin:styleName="num2KeyStyle" + latin:code="50" + latin:keyIcon="iconNum2Key" /> + <key-style + latin:styleName="num3KeyStyle" + latin:code="51" + latin:keyIcon="iconNum3Key" /> + <key-style + latin:styleName="num4KeyStyle" + latin:code="52" + latin:keyIcon="iconNum4Key" /> + <key-style + latin:styleName="num5KeyStyle" + latin:code="53" + latin:keyIcon="iconNum5Key" /> + <key-style + latin:styleName="num6KeyStyle" + latin:code="54" + latin:keyIcon="iconNum6Key" /> + <key-style + latin:styleName="num7KeyStyle" + latin:code="55" + latin:keyIcon="iconNum7Key" /> + <key-style + latin:styleName="num8KeyStyle" + latin:code="56" + latin:keyIcon="iconNum8Key" /> + <key-style + latin:styleName="num9KeyStyle" + latin:code="57" + latin:keyIcon="iconNum9Key" /> + <key-style + latin:styleName="numLabelStyle" + latin:keyLabelOption="fontFixedWidth|followKeyLetterRatio" /> + <key-style + latin:styleName="numLabelFunctionalStyle" + latin:keyLabelOption="fontFixedWidth|followKeyLetterRatio" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="numStarKeyStyle" + latin:code="42" + latin:keyLabel="\uff0a" + latin:parentStyle="numLabelStyle" /> + <key-style + latin:styleName="numPoundKeyStyle" + latin:keyLabel="#" + latin:parentStyle="numLabelStyle" /> + <key-style + latin:styleName="numSwitchToAltKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_phone_symbols_key" + latin:parentStyle="numLabelStyle" /> + <key-style + latin:styleName="numSwitchToNumericKeyStyle" + latin:code="@integer/key_switch_alpha_symbol" + latin:keyLabel="@string/label_to_phone_numeric_key" + latin:parentStyle="numLabelStyle" /> + <key-style + latin:styleName="numSpaceKeyStyle" + latin:code="@integer/key_space" + latin:keyIcon="iconSpaceKey" + latin:keyIconPreview="iconPreviewSpaceKey" /> </merge> diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml index ca591c72d..794528c2b 100644 --- a/java/res/xml/kbd_phone.xml +++ b/java/res/xml/kbd_phone.xml @@ -20,15 +20,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" latin:keyWidth="26.67%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> @@ -46,8 +38,8 @@ latin:keyStyle="num3KeyStyle" /> <Key latin:keyLabel="-" - latin:keyStyle="functionalKeyStyle" - latin:keyWidth="20%p" + latin:keyStyle="numLabelFunctionalStyle" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -60,8 +52,8 @@ latin:keyStyle="num6KeyStyle" /> <Key latin:keyLabel="." - latin:keyStyle="functionalKeyStyle" - latin:keyWidth="20%p" + latin:keyStyle="numLabelFunctionalStyle" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -74,14 +66,14 @@ latin:keyStyle="num9KeyStyle" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="20%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row latin:rowEdgeFlags="bottom" > <Key - latin:keyStyle="numAltKeyStyle" + latin:keyStyle="numSwitchToAltKeyStyle" latin:keyEdgeFlags="left" /> <Key latin:keyStyle="num0KeyStyle" /> @@ -89,7 +81,7 @@ latin:keyStyle="numSpaceKeyStyle" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="20%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> </Keyboard> diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml index 99db23ef1..1405c3c21 100644 --- a/java/res/xml/kbd_phone_symbols.xml +++ b/java/res/xml/kbd_phone_symbols.xml @@ -20,15 +20,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" latin:keyWidth="26.67%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> @@ -39,20 +31,24 @@ > <Key latin:keyLabel="(" + latin:keyStyle="numLabelStyle" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="/" /> + latin:keyLabel="/" + latin:keyStyle="numLabelStyle" /> <Key - latin:keyLabel=")" /> + latin:keyLabel=")" + latin:keyStyle="numLabelStyle" /> <Key latin:keyLabel="-" - latin:keyStyle="functionalKeyStyle" - latin:keyWidth="20%p" + latin:keyStyle="numLabelFunctionalStyle" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> <Key latin:keyLabel="N" + latin:keyStyle="numLabelStyle" latin:keyEdgeFlags="left" /> <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this has changed. --> @@ -60,11 +56,12 @@ latin:code="44" latin:keyLabel="Pause" /> <Key - latin:keyLabel="," /> + latin:keyLabel="," + latin:keyStyle="numLabelStyle" /> <Key latin:keyLabel="." - latin:keyStyle="functionalKeyStyle" - latin:keyWidth="20%p" + latin:keyStyle="numLabelFunctionalStyle" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -76,26 +73,27 @@ latin:code="59" latin:keyLabel="Wait" /> <Key - latin:keyStyle="numPoundKeyStyle" /> + latin:keyLabel="#" + latin:keyStyle="numLabelStyle" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="20%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row latin:rowEdgeFlags="bottom" > <Key - latin:code="@integer/key_switch_alpha_symbol" - latin:keyLabel="@string/label_to_numeric_key" + latin:keyStyle="numSwitchToNumericKeyStyle" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="+" /> + latin:keyLabel="+" + latin:keyStyle="numLabelStyle" /> <Key latin:keyStyle="numSpaceKeyStyle" /> <Key latin:keyStyle="returnKeyStyle" - latin:keyWidth="20%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> </Keyboard> diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml index fd43740a7..40917b921 100644 --- a/java/res/xml/kbd_qwerty.xml +++ b/java/res/xml/kbd_qwerty.xml @@ -20,17 +20,8 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" - latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" latin:keyboardLocale="en_GB,en_US" > <include - latin:keyboardLayout="@xml/kbd_qwerty_rows" /> + latin:keyboardLayout="@xml/kbd_rows_qwerty" /> </Keyboard> diff --git a/java/res/xml/kbd_qwerty_f1.xml b/java/res/xml/kbd_qwerty_f1.xml index d0e2884e1..51b9800e0 100644 --- a/java/res/xml/kbd_qwerty_f1.xml +++ b/java/res/xml/kbd_qwerty_f1.xml @@ -23,39 +23,92 @@ > <switch> <case - latin:mode="url" + latin:hasSettingsKey="true" > - <Key - latin:keyLabel="/" - latin:keyStyle="settingsPopupStyle" /> - </case> - <case - latin:mode="email" - > - <Key - latin:keyLabel="\@" - latin:keyStyle="settingsPopupStyle" /> - </case> - <default> <switch> <case - latin:hasVoiceKey="true" + latin:mode="url" > <Key - latin:keyStyle="micKeyStyle" /> + latin:keyLabel="/" + latin:keyWidth="9.2%p" + latin:keyStyle="settingsPopupStyle" /> </case> - <!-- latin:hasVoiceKey="false" --> <case - latin:mode="web" + latin:mode="email" > <Key - latin:keyLabel="." + latin:keyLabel="\@" + latin:keyWidth="9.2%p" latin:keyStyle="settingsPopupStyle" /> </case> <default> + <switch> + <case + latin:hasVoiceKey="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyWidth="9.2%p" /> + </case> + <!-- latin:hasVoiceKey="false" --> + <case + latin:navigateAction="true" + > + <Key + latin:keyLabel="." + latin:keyWidth="9.2%p" + latin:keyStyle="settingsPopupStyle" /> + </case> + <default> + <Key + latin:keyLabel="," + latin:keyWidth="9.2%p" + latin:keyStyle="settingsPopupStyle" /> + </default> + </switch> + </default> + </switch> + </case> + <!-- hasSettingsKey="false" --> + <default> + <switch> + <case + latin:mode="url" + > + <Key + latin:keyLabel="/" + latin:keyStyle="settingsPopupStyle" /> + </case> + <case + latin:mode="email" + > <Key - latin:keyLabel="," + latin:keyLabel="\@" latin:keyStyle="settingsPopupStyle" /> + </case> + <default> + <switch> + <case + latin:hasVoiceKey="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" /> + </case> + <!-- latin:hasVoiceKey="false" --> + <case + latin:navigateAction="true" + > + <Key + latin:keyLabel="." + latin:keyStyle="settingsPopupStyle" /> + </case> + <default> + <Key + latin:keyLabel="," + latin:keyStyle="settingsPopupStyle" /> + </default> + </switch> </default> </switch> </default> diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml index d9249657e..8c3669de0 100644 --- a/java/res/xml/kbd_qwerty_row1.xml +++ b/java/res/xml/kbd_qwerty_row1.xml @@ -27,45 +27,46 @@ > <Key latin:keyLabel="q" - latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:keyHintLetter="1" latin:popupCharacters="@string/alternates_for_q" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" - latin:keyHintIcon="@drawable/keyboard_hint_2" + latin:keyHintLetter="2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" - latin:keyHintIcon="@drawable/keyboard_hint_3" + latin:keyHintLetter="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintIcon="@drawable/keyboard_hint_4" + latin:keyHintLetter="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintIcon="@drawable/keyboard_hint_5" + latin:keyHintLetter="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" - latin:keyHintIcon="@drawable/keyboard_hint_6" + latin:keyHintLetter="6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" - latin:keyHintIcon="@drawable/keyboard_hint_7" + latin:keyHintLetter="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintIcon="@drawable/keyboard_hint_8" + latin:keyHintLetter="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintIcon="@drawable/keyboard_hint_9" + latin:keyHintLetter="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:keyHintLetter="0" latin:popupCharacters="@string/alternates_for_p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> </merge> diff --git a/java/res/xml/kbd_qwerty_row2.xml b/java/res/xml/kbd_qwerty_row2.xml index 9ed4553c4..57bbad75a 100644 --- a/java/res/xml/kbd_qwerty_row2.xml +++ b/java/res/xml/kbd_qwerty_row2.xml @@ -24,11 +24,10 @@ <Row latin:keyWidth="10%p" > - <Spacer - latin:horizontalGap="5%p" /> <Key latin:keyLabel="a" latin:popupCharacters="@string/alternates_for_a" + latin:keyXPos="5%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="s" @@ -52,5 +51,6 @@ latin:keyLabel="l" latin:popupCharacters="@string/alternates_for_l" latin:keyEdgeFlags="right" /> + <!-- Here is 5%p space --> </Row> </merge> diff --git a/java/res/xml/kbd_qwerty_row3.xml b/java/res/xml/kbd_qwerty_row3.xml index 3d106e615..98f0404c0 100644 --- a/java/res/xml/kbd_qwerty_row3.xml +++ b/java/res/xml/kbd_qwerty_row3.xml @@ -49,7 +49,7 @@ latin:keyLabel="m" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="15%p" + latin:keyWidth="fillBoth" latin:visualInsetsLeft="1%p" latin:keyEdgeFlags="right" /> </Row> diff --git a/java/res/xml/kbd_qwerty_row4.xml b/java/res/xml/kbd_qwerty_row4.xml index 82f5a4a92..095133929 100644 --- a/java/res/xml/kbd_qwerty_row4.xml +++ b/java/res/xml/kbd_qwerty_row4.xml @@ -27,103 +27,89 @@ > <switch> <case - latin:hasSettingsKey="false" + latin:hasSettingsKey="true" > <Key latin:keyStyle="toSymbolKeyStyle" - latin:keyWidth="20%p" + latin:keyWidth="13.75%p" latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="9.2%p" /> <include latin:keyboardLayout="@xml/kbd_qwerty_f1" /> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="40%p" /> + latin:keyWidth="35.83%p" /> <switch> <case - latin:mode="web" + latin:navigateAction="true" > - <Key - latin:keyHintIcon="@drawable/hint_popup" + <Key + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="popupHint" latin:popupCharacters="@string/alternates_for_web_tab_punctuation" - latin:maxPopupKeyboardColumn="8" - latin:keyStyle="tabKeyStyle" /> + latin:keyWidth="9.2%p" + latin:maxPopupKeyboardColumn="8" /> </case> <default> <Key latin:keyLabel="." - latin:keyHintIcon="@drawable/hint_popup" + latin:keyLabelOption="popupHint" latin:popupCharacters="@string/alternates_for_punctuation" + latin:keyWidth="9.2%p" latin:maxPopupKeyboardColumn="7" latin:keyStyle="functionalKeyStyle" /> </default> </switch> - <switch> - <case - latin:mode="im" - > - <Key - latin:keyStyle="smileyKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </case> - <default> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </default> - </switch> </case> - <case - latin:hasSettingsKey="true" - > + <!-- latin:hasSettingsKey="false" --> + <default> <Key latin:keyStyle="toSymbolKeyStyle" latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> - <Key - latin:keyStyle="settingsKeyStyle" /> <include latin:keyboardLayout="@xml/kbd_qwerty_f1" /> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="30%p" /> + latin:keyWidth="50%p" /> <switch> <case - latin:mode="web" + latin:navigateAction="true" > - <Key - latin:keyHintIcon="@drawable/hint_popup" + <Key + latin:keyStyle="tabKeyStyle" + latin:keyLabelOption="popupHint" latin:popupCharacters="@string/alternates_for_web_tab_punctuation" - latin:maxPopupKeyboardColumn="8" - latin:keyStyle="tabKeyStyle" /> + latin:maxPopupKeyboardColumn="8" /> </case> <default> <Key latin:keyLabel="." - latin:keyHintIcon="@drawable/hint_popup" + latin:keyLabelOption="popupHint" latin:popupCharacters="@string/alternates_for_punctuation" latin:maxPopupKeyboardColumn="7" latin:keyStyle="functionalKeyStyle" /> </default> </switch> - <switch> - <case - latin:mode="im" - > - <Key - latin:keyStyle="smileyKeyStyle" - latin:keyWidth="25%p" - latin:keyEdgeFlags="right" /> - </case> - <default> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="25%p" - latin:keyEdgeFlags="right" /> - </default> - </switch> + </default> + </switch> + <switch> + <case + latin:mode="im" + > + <Key + latin:keyStyle="smileyKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> </case> + <default> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </default> </switch> </Row> </merge> diff --git a/java/res/xml/kbd_ar_rows.xml b/java/res/xml/kbd_rows_arabic.xml index b2ea45701..a548775a4 100644 --- a/java/res/xml/kbd_ar_rows.xml +++ b/java/res/xml/kbd_rows_arabic.xml @@ -53,6 +53,7 @@ <Key latin:keyLabel="ج" latin:popupCharacters="چ" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -84,6 +85,7 @@ <Key latin:keyLabel="ك" latin:popupCharacters="گ" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -112,7 +114,8 @@ latin:keyLabel="ث" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="12%p" + latin:keyWidth="fillRight" + latin:visualInsetsLeft="1%p" latin:keyEdgeFlags="right" /> </Row> <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> diff --git a/java/res/xml/kbd_azerty_rows.xml b/java/res/xml/kbd_rows_azerty.xml index e805d5b1b..9825c4a10 100644 --- a/java/res/xml/kbd_azerty_rows.xml +++ b/java/res/xml/kbd_rows_azerty.xml @@ -29,45 +29,46 @@ > <Key latin:keyLabel="a" - latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:keyHintLetter="1" latin:popupCharacters="@string/alternates_for_a" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="z" - latin:keyHintIcon="@drawable/keyboard_hint_2" + latin:keyHintLetter="2" latin:popupCharacters="@string/alternates_for_z" /> <Key latin:keyLabel="e" - latin:keyHintIcon="@drawable/keyboard_hint_3" + latin:keyHintLetter="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintIcon="@drawable/keyboard_hint_4" + latin:keyHintLetter="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintIcon="@drawable/keyboard_hint_5" + latin:keyHintLetter="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" - latin:keyHintIcon="@drawable/keyboard_hint_6" + latin:keyHintLetter="6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" - latin:keyHintIcon="@drawable/keyboard_hint_7" + latin:keyHintLetter="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintIcon="@drawable/keyboard_hint_8" + latin:keyHintLetter="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintIcon="@drawable/keyboard_hint_9" + latin:keyHintLetter="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:keyHintLetter="0" latin:popupCharacters="@string/alternates_for_p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -100,6 +101,7 @@ latin:popupCharacters="@string/alternates_for_l" /> <Key latin:keyLabel="m" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -132,7 +134,7 @@ latin:popupCharacters="‘,’,‚,‛" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="15%p" + latin:keyWidth="fillRight" latin:visualInsetsLeft="1%p" latin:keyEdgeFlags="right" /> </Row> diff --git a/java/res/xml/kbd_iw_rows.xml b/java/res/xml/kbd_rows_hebrew.xml index fb0c2a915..c3c8f7d3e 100644 --- a/java/res/xml/kbd_iw_rows.xml +++ b/java/res/xml/kbd_rows_hebrew.xml @@ -27,12 +27,12 @@ <include latin:keyboardLayout="@xml/kbd_key_styles" /> <Row + latin:keyWidth="10%p" latin:rowEdgeFlags="top" > - <Spacer - latin:horizontalGap="5%p" /> <Key latin:keyLabel="ק" + latin:keyXPos="5%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ר" /> @@ -50,11 +50,13 @@ latin:keyLabel="פ" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="15%p" + latin:keyWidth="fillRight" latin:visualInsetsLeft="1%p" latin:keyEdgeFlags="right" /> </Row> - <Row> + <Row + latin:keyWidth="10%p" + > <Key latin:keyLabel="ש" latin:keyEdgeFlags="left" /> @@ -76,13 +78,15 @@ latin:keyLabel="ך" /> <Key latin:keyLabel="ף" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> - <Row> - <Spacer - latin:horizontalGap="5%p" /> + <Row + latin:keyWidth="10%p" + > <Key latin:keyLabel="ז" + latin:keyXPos="5%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ס" /> @@ -101,6 +105,7 @@ <Key latin:keyLabel="ץ" latin:keyEdgeFlags="right" /> + <!-- Here is 5%p space --> </Row> <include latin:keyboardLayout="@xml/kbd_qwerty_row4" /> </merge> diff --git a/java/res/xml/kbd_qwerty_rows.xml b/java/res/xml/kbd_rows_qwerty.xml index 6237712f6..6237712f6 100644 --- a/java/res/xml/kbd_qwerty_rows.xml +++ b/java/res/xml/kbd_rows_qwerty.xml diff --git a/java/res/xml/kbd_qwertz_rows.xml b/java/res/xml/kbd_rows_qwertz.xml index bb41f067a..0d70b2637 100644 --- a/java/res/xml/kbd_qwertz_rows.xml +++ b/java/res/xml/kbd_rows_qwertz.xml @@ -29,45 +29,46 @@ > <Key latin:keyLabel="q" - latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:keyHintLetter="1" latin:popupCharacters="@string/alternates_for_q" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" - latin:keyHintIcon="@drawable/keyboard_hint_2" + latin:keyHintLetter="2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" - latin:keyHintIcon="@drawable/keyboard_hint_3" + latin:keyHintLetter="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintIcon="@drawable/keyboard_hint_4" + latin:keyHintLetter="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintIcon="@drawable/keyboard_hint_5" + latin:keyHintLetter="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="z" - latin:keyHintIcon="@drawable/keyboard_hint_6" + latin:keyHintLetter="6" latin:popupCharacters="@string/alternates_for_z" /> <Key latin:keyLabel="u" - latin:keyHintIcon="@drawable/keyboard_hint_7" + latin:keyHintLetter="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintIcon="@drawable/keyboard_hint_8" + latin:keyHintLetter="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintIcon="@drawable/keyboard_hint_9" + latin:keyHintLetter="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:keyHintLetter="0" latin:popupCharacters="@string/alternates_for_p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <include @@ -100,7 +101,7 @@ latin:keyLabel="m" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="15%p" + latin:keyWidth="fillRight" latin:visualInsetsLeft="1%p" latin:keyEdgeFlags="right" /> </Row> diff --git a/java/res/xml/kbd_ru_rows.xml b/java/res/xml/kbd_rows_russian.xml index fa2af3be0..ff9fef409 100644 --- a/java/res/xml/kbd_ru_rows.xml +++ b/java/res/xml/kbd_rows_russian.xml @@ -29,49 +29,49 @@ > <Key latin:keyLabel="й" - latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:keyHintLetter="1" latin:popupCharacters="1" latin:keyWidth="8.75%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ц" - latin:keyHintIcon="@drawable/keyboard_hint_2" + latin:keyHintLetter="2" latin:popupCharacters="2" /> <Key latin:keyLabel="у" - latin:keyHintIcon="@drawable/keyboard_hint_3" + latin:keyHintLetter="3" latin:popupCharacters="3" /> <Key latin:keyLabel="к" - latin:keyHintIcon="@drawable/keyboard_hint_4" + latin:keyHintLetter="4" latin:popupCharacters="4" /> <Key latin:keyLabel="е" - latin:keyHintIcon="@drawable/keyboard_hint_5" + latin:keyHintLetter="5" latin:popupCharacters="@string/alternates_for_cyrillic_e" /> <Key latin:keyLabel="н" - latin:keyHintIcon="@drawable/keyboard_hint_6" + latin:keyHintLetter="6" latin:popupCharacters="6" /> <Key latin:keyLabel="г" - latin:keyHintIcon="@drawable/keyboard_hint_7" + latin:keyHintLetter="7" latin:popupCharacters="7" /> <Key latin:keyLabel="ш" - latin:keyHintIcon="@drawable/keyboard_hint_8" + latin:keyHintLetter="8" latin:popupCharacters="8" /> <Key latin:keyLabel="щ" - latin:keyHintIcon="@drawable/keyboard_hint_9" + latin:keyHintLetter="9" latin:popupCharacters="9" /> <Key latin:keyLabel="з" - latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:keyHintLetter="0" latin:popupCharacters="0" /> <Key latin:keyLabel="х" - latin:keyWidth="8.75%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -101,7 +101,7 @@ latin:keyLabel="ж" /> <Key latin:keyLabel="э" - latin:keyWidth="8.75%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -132,7 +132,7 @@ latin:keyLabel="ю" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="11.75%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml/kbd_qwerty_rows_scandinavia.xml b/java/res/xml/kbd_rows_scandinavian.xml index 1aae5a0a8..2d7dcde7a 100644 --- a/java/res/xml/kbd_qwerty_rows_scandinavia.xml +++ b/java/res/xml/kbd_rows_scandinavian.xml @@ -29,49 +29,49 @@ > <Key latin:keyLabel="q" - latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:keyHintLetter="1" latin:popupCharacters="@string/alternates_for_q" latin:keyWidth="8.75%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" - latin:keyHintIcon="@drawable/keyboard_hint_2" + latin:keyHintLetter="2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" - latin:keyHintIcon="@drawable/keyboard_hint_3" + latin:keyHintLetter="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintIcon="@drawable/keyboard_hint_4" + latin:keyHintLetter="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintIcon="@drawable/keyboard_hint_5" + latin:keyHintLetter="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" - latin:keyHintIcon="@drawable/keyboard_hint_6" + latin:keyHintLetter="6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" - latin:keyHintIcon="@drawable/keyboard_hint_7" + latin:keyHintLetter="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintIcon="@drawable/keyboard_hint_8" + latin:keyHintLetter="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintIcon="@drawable/keyboard_hint_9" + latin:keyHintLetter="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:keyHintLetter="0" latin:popupCharacters="@string/alternates_for_p" /> <Key latin:keyLabel="å" - latin:keyWidth="8.75%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -109,7 +109,7 @@ <Key latin:keyLabel="@string/keylabel_for_scandinavia_row2_11" latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" - latin:keyWidth="8.75%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml/kbd_sr_rows.xml b/java/res/xml/kbd_rows_serbian.xml index 8d6b070b2..9f4b6a203 100644 --- a/java/res/xml/kbd_sr_rows.xml +++ b/java/res/xml/kbd_rows_serbian.xml @@ -29,47 +29,48 @@ > <Key latin:keyLabel="љ" - latin:keyHintIcon="@drawable/keyboard_hint_1" + latin:keyHintLetter="1" latin:popupCharacters="1" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="њ" - latin:keyHintIcon="@drawable/keyboard_hint_2" + latin:keyHintLetter="2" latin:popupCharacters="2" /> <Key latin:keyLabel="е" - latin:keyHintIcon="@drawable/keyboard_hint_3" + latin:keyHintLetter="3" latin:popupCharacters="3" /> <Key latin:keyLabel="р" - latin:keyHintIcon="@drawable/keyboard_hint_4" + latin:keyHintLetter="4" latin:popupCharacters="4" /> <Key latin:keyLabel="т" - latin:keyHintIcon="@drawable/keyboard_hint_5" + latin:keyHintLetter="5" latin:popupCharacters="5" /> <Key latin:keyLabel="з" - latin:keyHintIcon="@drawable/keyboard_hint_6" + latin:keyHintLetter="6" latin:popupCharacters="6" /> <Key latin:keyLabel="у" - latin:keyHintIcon="@drawable/keyboard_hint_7" + latin:keyHintLetter="7" latin:popupCharacters="7" /> <Key latin:keyLabel="и" - latin:keyHintIcon="@drawable/keyboard_hint_8" + latin:keyHintLetter="8" latin:popupCharacters="8" /> <Key latin:keyLabel="о" - latin:keyHintIcon="@drawable/keyboard_hint_9" + latin:keyHintLetter="9" latin:popupCharacters="9" /> <Key latin:keyLabel="п" - latin:keyHintIcon="@drawable/keyboard_hint_0" + latin:keyHintLetter="0" latin:popupCharacters="0" /> <Key latin:keyLabel="ш" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -98,6 +99,7 @@ latin:keyLabel="ч" /> <Key latin:keyLabel="ћ" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row @@ -126,7 +128,7 @@ latin:keyLabel="ж" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="11.00%p" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <include diff --git a/java/res/xml/kbd_rows_spanish.xml b/java/res/xml/kbd_rows_spanish.xml new file mode 100644 index 000000000..c5ead10da --- /dev/null +++ b/java/res/xml/kbd_rows_spanish.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <include + latin:keyboardLayout="@xml/kbd_key_styles" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row1" /> + <Row + latin:keyWidth="10%p" + > + <Key + latin:keyLabel="a" + latin:popupCharacters="@string/alternates_for_a" + latin:keyEdgeFlags="left" /> + <Key + latin:keyLabel="s" + latin:popupCharacters="@string/alternates_for_s" /> + <Key + latin:keyLabel="d" + latin:popupCharacters="@string/alternates_for_d" /> + <Key + latin:keyLabel="f" /> + <Key + latin:keyLabel="g" + latin:popupCharacters="@string/alternates_for_g" /> + <Key + latin:keyLabel="h" /> + <Key + latin:keyLabel="j" /> + <Key + latin:keyLabel="k" + latin:popupCharacters="@string/alternates_for_k" /> + <Key + latin:keyLabel="l" + latin:popupCharacters="@string/alternates_for_l" /> + <Key + latin:keyLabel="ñ" + latin:keyEdgeFlags="right" /> + </Row> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row3" /> + <include + latin:keyboardLayout="@xml/kbd_qwerty_row4" /> +</merge> diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml index 0a8068991..8e9124f74 100644 --- a/java/res/xml/kbd_symbols.xml +++ b/java/res/xml/kbd_symbols.xml @@ -20,15 +20,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> @@ -65,6 +57,7 @@ <Key latin:keyLabel="0" latin:popupCharacters="ⁿ,∅" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -95,6 +88,7 @@ <Key latin:keyLabel=")" latin:popupCharacters="],},>" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -126,7 +120,7 @@ latin:popupCharacters="¿" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="15%p" + latin:keyWidth="fillRight" latin:visualInsetsLeft="1%p" latin:keyEdgeFlags="right" /> </Row> diff --git a/java/res/xml/kbd_symbols_f1.xml b/java/res/xml/kbd_symbols_f1.xml index 0fb7136b9..da5b5fc8d 100644 --- a/java/res/xml/kbd_symbols_f1.xml +++ b/java/res/xml/kbd_symbols_f1.xml @@ -23,16 +23,41 @@ > <switch> <case - latin:hasVoiceKey="true" + latin:hasSettingsKey="true" > - <Key - latin:keyStyle="micKeyStyle" /> + <switch> + <case + latin:hasVoiceKey="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" + latin:keyWidth="9.2%p" /> + </case> + <!-- latin:hasVoiceKey="false" --> + <default> + <Key + latin:keyLabel="," + latin:keyWidth="9.2%p" + latin:keyStyle="settingsPopupStyle" /> + </default> + </switch> </case> - <!-- latin:hasVoiceKey="false" --> + <!-- hasSettingsKey="false" --> <default> - <Key - latin:keyLabel="," - latin:keyStyle="settingsPopupStyle" /> + <switch> + <case + latin:hasVoiceKey="true" + > + <Key + latin:keyStyle="shortcutKeyStyle" /> + </case> + <!-- latin:hasVoiceKey="false" --> + <default> + <Key + latin:keyLabel="," + latin:keyStyle="settingsPopupStyle" /> + </default> + </switch> </default> </switch> </merge> diff --git a/java/res/xml/kbd_symbols_row4.xml b/java/res/xml/kbd_symbols_row4.xml index b330095af..9323d4fd1 100644 --- a/java/res/xml/kbd_symbols_row4.xml +++ b/java/res/xml/kbd_symbols_row4.xml @@ -22,81 +22,67 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Row + latin:keyWidth="10%p" latin:rowEdgeFlags="bottom" > <switch> <case - latin:hasSettingsKey="false" + latin:hasSettingsKey="true" > <Key latin:keyStyle="toAlphaKeyStyle" - latin:keyWidth="20%p" + latin:keyWidth="13.75%p" latin:keyEdgeFlags="left" /> + <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="9.2%p" /> <include - latin:keyboardLayout="@xml/kbd_symbols_f1" /> + latin:keyboardLayout="@xml/kbd_qwerty_f1" /> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="40%p" /> + latin:keyWidth="35.83%p" /> <Key latin:keyLabel="." - latin:keyHintIcon="@drawable/hint_popup" + latin:keyLabelOption="popupHint" latin:popupCharacters="@string/alternates_for_punctuation" + latin:keyWidth="9.2%p" latin:maxPopupKeyboardColumn="7" latin:keyStyle="functionalKeyStyle" /> - <switch> - <case - latin:mode="im" - > - <Key - latin:keyStyle="smileyKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </case> - <default> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </default> - </switch> </case> - <case - latin:hasSettingsKey="true" - > + <!-- latin:hasSettingsKey="false" --> + <default> <Key latin:keyStyle="toAlphaKeyStyle" latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> - <Key - latin:keyStyle="settingsKeyStyle" /> <include latin:keyboardLayout="@xml/kbd_symbols_f1" /> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="30%p" /> + latin:keyWidth="50%p" /> <Key latin:keyLabel="." - latin:keyHintIcon="@drawable/hint_popup" + latin:keyLabelOption="popupHint" latin:popupCharacters="@string/alternates_for_punctuation" latin:maxPopupKeyboardColumn="7" latin:keyStyle="functionalKeyStyle" /> - <switch> - <case - latin:mode="im" - > - <Key - latin:keyStyle="smileyKeyStyle" - latin:keyWidth="25%p" - latin:keyEdgeFlags="right" /> - </case> - <default> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="25%p" - latin:keyEdgeFlags="right" /> - </default> - </switch> + </default> + </switch> + <switch> + <case + latin:mode="im" + > + <Key + latin:keyStyle="smileyKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> </case> + <default> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </default> </switch> </Row> </merge> diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml index cde07333b..f22d45aff 100644 --- a/java/res/xml/kbd_symbols_shift.xml +++ b/java/res/xml/kbd_symbols_shift.xml @@ -20,15 +20,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardHeight="@dimen/keyboardHeight" - latin:maxKeyboardHeight="@fraction/maxKeyboardHeight" - latin:minKeyboardHeight="@fraction/minKeyboardHeight" - latin:rowHeight="25%p" latin:keyWidth="10%p" - latin:horizontalGap="@dimen/key_horizontal_gap" - latin:verticalGap="@dimen/key_bottom_gap" - latin:popupKeyboardTemplate="@xml/kbd_popup_template" - latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column" > <include latin:keyboardLayout="@xml/kbd_key_styles" /> @@ -63,6 +55,7 @@ latin:keyLabel="{" /> <Key latin:keyLabel="}" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -94,6 +87,7 @@ latin:keyLabel="[" /> <Key latin:keyLabel="]" + latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> @@ -125,7 +119,7 @@ latin:popupCharacters="≥,»,›" /> <Key latin:keyStyle="deleteKeyStyle" - latin:keyWidth="15%p" + latin:keyWidth="fillRight" latin:visualInsetsLeft="1%p" latin:keyEdgeFlags="right" /> </Row> diff --git a/java/res/xml/kbd_symbols_shift_row4.xml b/java/res/xml/kbd_symbols_shift_row4.xml index 4f8567d58..90a96e4bc 100644 --- a/java/res/xml/kbd_symbols_shift_row4.xml +++ b/java/res/xml/kbd_symbols_shift_row4.xml @@ -22,79 +22,66 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <Row + latin:keyWidth="10%p" latin:rowEdgeFlags="bottom" > <switch> <case - latin:hasSettingsKey="false" + latin:hasSettingsKey="true" > <Key latin:keyStyle="toAlphaKeyStyle" - latin:keyWidth="20%p" + latin:keyWidth="13.75%p" latin:keyEdgeFlags="left" /> <Key + latin:keyStyle="settingsKeyStyle" + latin:keyWidth="9.2%p" /> + <Key latin:keyLabel="„" latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" + latin:keyWidth="9.2%p" latin:keyStyle="nonPasswordFunctionalKeyStyle" /> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="40%p" /> + latin:keyWidth="35.83%p" /> <Key latin:keyLabel="…" + latin:keyWidth="9.2%p" latin:keyStyle="nonPasswordFunctionalKeyStyle" /> - <switch> - <case - latin:mode="im" - > - <Key - latin:keyStyle="smileyKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </case> - <default> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="20%p" - latin:keyEdgeFlags="right" /> - </default> - </switch> </case> - <case - latin:hasSettingsKey="true" - > + <!-- latin:hasSettingsKey="false" --> + <default> <Key latin:keyStyle="toAlphaKeyStyle" latin:keyWidth="15%p" latin:keyEdgeFlags="left" /> <Key - latin:keyStyle="settingsKeyStyle" /> - <Key latin:keyLabel="„" latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" latin:keyStyle="nonPasswordFunctionalKeyStyle" /> <Key latin:keyStyle="spaceKeyStyle" - latin:keyWidth="30%p" /> + latin:keyWidth="50%p" /> <Key latin:keyLabel="…" latin:keyStyle="nonPasswordFunctionalKeyStyle" /> - <switch> - <case - latin:mode="im" - > - <Key - latin:keyStyle="smileyKeyStyle" - latin:keyWidth="25%p" - latin:keyEdgeFlags="right" /> - </case> - <default> - <Key - latin:keyStyle="returnKeyStyle" - latin:keyWidth="25%p" - latin:keyEdgeFlags="right" /> - </default> - </switch> + </default> + </switch> + <switch> + <case + latin:mode="im" + > + <Key + latin:keyStyle="smileyKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> </case> + <default> + <Key + latin:keyStyle="returnKeyStyle" + latin:keyWidth="fillRight" + latin:keyEdgeFlags="right" /> + </default> </switch> </Row> </merge> diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml index 31ba650f1..3b700b136 100644 --- a/java/res/xml/method.xml +++ b/java/res/xml/method.xml @@ -20,7 +20,7 @@ <!-- The attributes in this XML file provide configuration information --> <!-- for the Input Method Manager. --> -<!-- Keyboard: en_US, en_GB, cs, da, de, es, es_US, fr, fr_CA, fr_CH, it, nb, nl, sr, sv --> +<!-- Keyboard: en_US, en_GB, ar, cs, da, de, es, es_US, fi, fr, fr_CA, fr_CH, hr, hu, it, iw, nb, nl, pl, pt, ru, sr, sv, tr --> <!-- Voice: af, cs, da, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, tr, yue, zh, zu --> <!-- TODO: use <lang>_keyboard icon instead of a common keyboard icon. --> <!-- TODO: use <lang>_mic icon instead of a common mic icon. --> diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml index b0497a51c..5f4a27d91 100644 --- a/java/res/xml/prefs.xml +++ b/java/res/xml/prefs.xml @@ -138,6 +138,12 @@ <ListPreference android:key="pref_key_preview_popup_dismiss_delay" android:title="@string/key_preview_popup_dismiss_delay" /> + <CheckBoxPreference + android:key="pref_key_use_contacts_dict" + android:title="@string/use_contacts_dict" + android:summary="@string/use_contacts_dict_summary" + android:persistent="true" + android:defaultValue="true" /> </PreferenceScreen> <!-- <Preference android:title="Debug Settings" diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java new file mode 100644 index 000000000..ae614b7e0 --- /dev/null +++ b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.accessibility; + +import android.accessibilityservice.AccessibilityServiceInfo; +import android.content.Context; +import android.content.SharedPreferences; +import android.inputmethodservice.InputMethodService; +import android.os.SystemClock; +import android.util.Log; +import android.view.MotionEvent; +import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityManager; + +import com.android.inputmethod.compat.AccessibilityEventCompatUtils; +import com.android.inputmethod.compat.AccessibilityManagerCompatWrapper; +import com.android.inputmethod.compat.MotionEventCompatUtils; + +public class AccessibilityUtils { + private static final String TAG = AccessibilityUtils.class.getSimpleName(); + private static final String CLASS = AccessibilityUtils.class.getClass().getName(); + private static final String PACKAGE = AccessibilityUtils.class.getClass().getPackage() + .getName(); + + private static final AccessibilityUtils sInstance = new AccessibilityUtils(); + + private AccessibilityManager mAccessibilityManager; + private AccessibilityManagerCompatWrapper mCompatManager; + + /* + * Setting this constant to {@code false} will disable all keyboard + * accessibility code, regardless of whether Accessibility is turned on in + * the system settings. It should ONLY be used in the event of an emergency. + */ + private static final boolean ENABLE_ACCESSIBILITY = true; + + public static void init(InputMethodService inputMethod, SharedPreferences prefs) { + if (!ENABLE_ACCESSIBILITY) + return; + + // These only need to be initialized if the kill switch is off. + sInstance.initInternal(inputMethod, prefs); + KeyCodeDescriptionMapper.init(inputMethod, prefs); + AccessibleInputMethodServiceProxy.init(inputMethod, prefs); + AccessibleKeyboardViewProxy.init(inputMethod, prefs); + } + + public static AccessibilityUtils getInstance() { + return sInstance; + } + + private AccessibilityUtils() { + // This class is not publicly instantiable. + } + + private void initInternal(Context context, SharedPreferences prefs) { + mAccessibilityManager = (AccessibilityManager) context + .getSystemService(Context.ACCESSIBILITY_SERVICE); + mCompatManager = new AccessibilityManagerCompatWrapper(mAccessibilityManager); + } + + /** + * Returns {@code true} if touch exploration is enabled. Currently, this + * means that the kill switch is off, the device supports touch exploration, + * and a spoken feedback service is turned on. + * + * @return {@code true} if touch exploration is enabled. + */ + public boolean isTouchExplorationEnabled() { + return ENABLE_ACCESSIBILITY + && AccessibilityEventCompatUtils.supportsTouchExploration() + && mAccessibilityManager.isEnabled() + && !mCompatManager.getEnabledAccessibilityServiceList( + AccessibilityServiceInfo.FEEDBACK_SPOKEN).isEmpty(); + } + + /** + * Returns {@true} if the provided event is a touch exploration (e.g. hover) + * event. This is used to determine whether the event should be processed by + * the touch exploration code within the keyboard. + * + * @param event The event to check. + * @return {@true} is the event is a touch exploration event + */ + public boolean isTouchExplorationEvent(MotionEvent event) { + final int action = event.getAction(); + + return action == MotionEventCompatUtils.ACTION_HOVER_ENTER + || action == MotionEventCompatUtils.ACTION_HOVER_EXIT + || action == MotionEventCompatUtils.ACTION_HOVER_MOVE; + } + + /** + * Sends the specified text to the {@link AccessibilityManager} to be + * spoken. + * + * @param text the text to speak + */ + public void speak(CharSequence text) { + if (!mAccessibilityManager.isEnabled()) { + Log.e(TAG, "Attempted to speak when accessibility was disabled!"); + return; + } + + // The following is a hack to avoid using the heavy-weight TextToSpeech + // class. Instead, we're just forcing a fake AccessibilityEvent into + // the screen reader to make it speak. + final AccessibilityEvent event = AccessibilityEvent + .obtain(AccessibilityEventCompatUtils.TYPE_VIEW_HOVER_ENTER); + + event.setPackageName(PACKAGE); + event.setClassName(CLASS); + event.setEventTime(SystemClock.uptimeMillis()); + event.setEnabled(true); + event.getText().add(text); + + mAccessibilityManager.sendAccessibilityEvent(event); + } +} diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java new file mode 100644 index 000000000..043266c70 --- /dev/null +++ b/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.accessibility; + +import android.content.SharedPreferences; +import android.inputmethodservice.InputMethodService; +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import android.text.TextUtils; +import android.view.inputmethod.ExtractedText; +import android.view.inputmethod.ExtractedTextRequest; + +import com.android.inputmethod.latin.R; + +public class AccessibleInputMethodServiceProxy implements AccessibleKeyboardActionListener { + private static final AccessibleInputMethodServiceProxy sInstance = + new AccessibleInputMethodServiceProxy(); + + /* + * Delay for the handler event that's fired when Accessibility is on and the + * user hovers outside of any valid keys. This is used to let the user know + * that if they lift their finger, nothing will be typed. + */ + private static final long DELAY_NO_HOVER_SELECTION = 250; + + private InputMethodService mInputMethod; + + private AccessibilityHandler mAccessibilityHandler; + + private class AccessibilityHandler extends Handler { + private static final int MSG_NO_HOVER_SELECTION = 0; + + public AccessibilityHandler(Looper looper) { + super(looper); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_NO_HOVER_SELECTION: + notifyNoHoverSelection(); + break; + } + } + + public void postNoHoverSelection() { + removeMessages(MSG_NO_HOVER_SELECTION); + sendEmptyMessageDelayed(MSG_NO_HOVER_SELECTION, DELAY_NO_HOVER_SELECTION); + } + + public void cancelNoHoverSelection() { + removeMessages(MSG_NO_HOVER_SELECTION); + } + } + + public static void init(InputMethodService inputMethod, SharedPreferences prefs) { + sInstance.initInternal(inputMethod, prefs); + } + + public static AccessibleInputMethodServiceProxy getInstance() { + return sInstance; + } + + private AccessibleInputMethodServiceProxy() { + // Not publicly instantiable. + } + + private void initInternal(InputMethodService inputMethod, SharedPreferences prefs) { + mInputMethod = inputMethod; + mAccessibilityHandler = new AccessibilityHandler(inputMethod.getMainLooper()); + } + + /** + * If touch exploration is enabled, cancels the event sent by + * {@link AccessibleInputMethodServiceProxy#onHoverExit(int)} because the + * user is currently hovering above a key. + */ + @Override + public void onHoverEnter(int primaryCode) { + mAccessibilityHandler.cancelNoHoverSelection(); + } + + /** + * If touch exploration is enabled, sends a delayed event to notify the user + * that they are not currently hovering above a key. + */ + @Override + public void onHoverExit(int primaryCode) { + mAccessibilityHandler.postNoHoverSelection(); + } + + /** + * When Accessibility is turned on, notifies the user that they are not + * currently hovering above a key. By default this will speak the currently + * entered text. + */ + private void notifyNoHoverSelection() { + final ExtractedText extracted = mInputMethod.getCurrentInputConnection().getExtractedText( + new ExtractedTextRequest(), 0); + + if (extracted == null) + return; + + final CharSequence text; + + if (TextUtils.isEmpty(extracted.text)) { + text = mInputMethod.getString(R.string.spoken_no_text_entered); + } else { + text = mInputMethod.getString(R.string.spoken_current_text_is, extracted.text); + } + + AccessibilityUtils.getInstance().speak(text); + } +} diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardActionListener.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardActionListener.java new file mode 100644 index 000000000..12c59d0fc --- /dev/null +++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardActionListener.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.accessibility; + +public interface AccessibleKeyboardActionListener { + /** + * Called when the user hovers inside a key. This is sent only when + * Accessibility is turned on. For keys that repeat, this is only called + * once. + * + * @param primaryCode the code of the key that was hovered over + */ + public void onHoverEnter(int primaryCode); + + /** + * Called when the user hovers outside a key. This is sent only when + * Accessibility is turned on. For keys that repeat, this is only called + * once. + * + * @param primaryCode the code of the key that was hovered over + */ + public void onHoverExit(int primaryCode); +} diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java new file mode 100644 index 000000000..96f7fc9f2 --- /dev/null +++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java @@ -0,0 +1,201 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.android.inputmethod.accessibility; + +import android.content.Context; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.graphics.Paint; +import android.util.Log; +import android.view.MotionEvent; +import android.view.ViewConfiguration; +import android.view.accessibility.AccessibilityEvent; + +import com.android.inputmethod.compat.AccessibilityEventCompatUtils; +import com.android.inputmethod.compat.MotionEventCompatUtils; +import com.android.inputmethod.keyboard.Key; +import com.android.inputmethod.keyboard.KeyDetector; +import com.android.inputmethod.keyboard.KeyboardView; +import com.android.inputmethod.keyboard.PointerTracker; + +public class AccessibleKeyboardViewProxy { + private static final String TAG = AccessibleKeyboardViewProxy.class.getSimpleName(); + private static final AccessibleKeyboardViewProxy sInstance = new AccessibleKeyboardViewProxy(); + + // Delay in milliseconds between key press DOWN and UP events + private static final long DELAY_KEY_PRESS = 10; + + private int mScaledEdgeSlop; + private KeyboardView mView; + private AccessibleKeyboardActionListener mListener; + + private int mLastHoverKeyIndex = KeyDetector.NOT_A_KEY; + private int mLastX = -1; + private int mLastY = -1; + + public static void init(Context context, SharedPreferences prefs) { + sInstance.initInternal(context, prefs); + sInstance.mListener = AccessibleInputMethodServiceProxy.getInstance(); + } + + public static AccessibleKeyboardViewProxy getInstance() { + return sInstance; + } + + public static void setView(KeyboardView view) { + sInstance.mView = view; + } + + private AccessibleKeyboardViewProxy() { + // Not publicly instantiable. + } + + private void initInternal(Context context, SharedPreferences prefs) { + final Paint paint = new Paint(); + paint.setTextAlign(Paint.Align.LEFT); + paint.setTextSize(14.0f); + paint.setAntiAlias(true); + paint.setColor(Color.YELLOW); + + mScaledEdgeSlop = ViewConfiguration.get(context).getScaledEdgeSlop(); + } + + public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event, + PointerTracker tracker) { + if (mView == null) { + Log.e(TAG, "No keyboard view set!"); + return false; + } + + switch (event.getEventType()) { + case AccessibilityEventCompatUtils.TYPE_VIEW_HOVER_ENTER: + final Key key = tracker.getKey(mLastHoverKeyIndex); + + if (key == null) + break; + + final CharSequence description = KeyCodeDescriptionMapper.getInstance() + .getDescriptionForKey(mView.getContext(), mView.getKeyboard(), key); + + if (description == null) + return false; + + event.getText().add(description); + + break; + } + + return true; + } + + /** + * Receives hover events when accessibility is turned on in API > 11. In + * earlier API levels, events are manually routed from onTouchEvent. + * + * @param event The hover event. + * @return {@code true} if the event is handled + */ + public boolean onHoverEvent(MotionEvent event, PointerTracker tracker) { + return onTouchExplorationEvent(event, tracker); + } + + public boolean dispatchTouchEvent(MotionEvent event) { + // Since touch exploration translates hover double-tap to a regular + // single-tap, we're going to drop non-touch exploration events. + if (!AccessibilityUtils.getInstance().isTouchExplorationEvent(event)) + return true; + + return false; + } + + /** + * Handles touch exploration events when Accessibility is turned on. + * + * @param event The touch exploration hover event. + * @return {@code true} if the event was handled + */ + private boolean onTouchExplorationEvent(MotionEvent event, PointerTracker tracker) { + final int x = (int) event.getX(); + final int y = (int) event.getY(); + + switch (event.getAction()) { + case MotionEventCompatUtils.ACTION_HOVER_ENTER: + case MotionEventCompatUtils.ACTION_HOVER_MOVE: + final int keyIndex = tracker.getKeyIndexOn(x, y); + + if (keyIndex != mLastHoverKeyIndex) { + fireKeyHoverEvent(tracker, mLastHoverKeyIndex, false); + mLastHoverKeyIndex = keyIndex; + mLastX = x; + mLastY = y; + fireKeyHoverEvent(tracker, mLastHoverKeyIndex, true); + } + + return true; + case MotionEventCompatUtils.ACTION_HOVER_EXIT: + final int width = mView.getWidth(); + final int height = mView.getHeight(); + + if (x < mScaledEdgeSlop || y < mScaledEdgeSlop || x >= (width - mScaledEdgeSlop) + || y >= (height - mScaledEdgeSlop)) { + fireKeyHoverEvent(tracker, mLastHoverKeyIndex, false); + mLastHoverKeyIndex = KeyDetector.NOT_A_KEY; + mLastX = -1; + mLastY = -1; + } else if (mLastHoverKeyIndex != KeyDetector.NOT_A_KEY) { + fireKeyPressEvent(tracker, mLastX, mLastY, event.getEventTime()); + } + + return true; + } + + return false; + } + + private void fireKeyHoverEvent(PointerTracker tracker, int keyIndex, boolean entering) { + if (mListener == null) { + Log.e(TAG, "No accessible keyboard action listener set!"); + return; + } + + if (mView == null) { + Log.e(TAG, "No keyboard view set!"); + return; + } + + if (keyIndex == KeyDetector.NOT_A_KEY) + return; + + final Key key = tracker.getKey(keyIndex); + + if (key == null) + return; + + if (entering) { + mListener.onHoverEnter(key.mCode); + mView.sendAccessibilityEvent(AccessibilityEventCompatUtils.TYPE_VIEW_HOVER_ENTER); + } else { + mListener.onHoverExit(key.mCode); + mView.sendAccessibilityEvent(AccessibilityEventCompatUtils.TYPE_VIEW_HOVER_EXIT); + } + } + + private void fireKeyPressEvent(PointerTracker tracker, int x, int y, long eventTime) { + tracker.onDownEvent(x, y, eventTime, null); + tracker.onUpEvent(x, y, eventTime + DELAY_KEY_PRESS, null); + } +} diff --git a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java new file mode 100644 index 000000000..154f4af91 --- /dev/null +++ b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java @@ -0,0 +1,226 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.accessibility; + +import android.content.Context; +import android.content.SharedPreferences; +import android.text.TextUtils; + +import com.android.inputmethod.keyboard.Key; +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.keyboard.KeyboardId; +import com.android.inputmethod.latin.R; + +import java.util.HashMap; + +public class KeyCodeDescriptionMapper { + private static KeyCodeDescriptionMapper sInstance = new KeyCodeDescriptionMapper(); + + // Map of key labels to spoken description resource IDs + private final HashMap<CharSequence, Integer> mKeyLabelMap; + + // Map of key codes to spoken description resource IDs + private final HashMap<Integer, Integer> mKeyCodeMap; + + // Map of shifted key codes to spoken description resource IDs + private final HashMap<Integer, Integer> mShiftedKeyCodeMap; + + // Map of shift-locked key codes to spoken description resource IDs + private final HashMap<Integer, Integer> mShiftLockedKeyCodeMap; + + public static void init(Context context, SharedPreferences prefs) { + sInstance.initInternal(context, prefs); + } + + public static KeyCodeDescriptionMapper getInstance() { + return sInstance; + } + + private KeyCodeDescriptionMapper() { + mKeyLabelMap = new HashMap<CharSequence, Integer>(); + mKeyCodeMap = new HashMap<Integer, Integer>(); + mShiftedKeyCodeMap = new HashMap<Integer, Integer>(); + mShiftLockedKeyCodeMap = new HashMap<Integer, Integer>(); + } + + private void initInternal(Context context, SharedPreferences prefs) { + // Manual label substitutions for key labels with no string resource + mKeyLabelMap.put(":-)", R.string.spoken_description_smiley); + + // Symbols that most TTS engines can't speak + mKeyCodeMap.put((int) '.', R.string.spoken_description_period); + mKeyCodeMap.put((int) ',', R.string.spoken_description_comma); + mKeyCodeMap.put((int) '(', R.string.spoken_description_left_parenthesis); + mKeyCodeMap.put((int) ')', R.string.spoken_description_right_parenthesis); + mKeyCodeMap.put((int) ':', R.string.spoken_description_colon); + mKeyCodeMap.put((int) ';', R.string.spoken_description_semicolon); + mKeyCodeMap.put((int) '!', R.string.spoken_description_exclamation_mark); + mKeyCodeMap.put((int) '?', R.string.spoken_description_question_mark); + mKeyCodeMap.put((int) '\"', R.string.spoken_description_double_quote); + mKeyCodeMap.put((int) '\'', R.string.spoken_description_single_quote); + mKeyCodeMap.put((int) '*', R.string.spoken_description_star); + mKeyCodeMap.put((int) '#', R.string.spoken_description_pound); + mKeyCodeMap.put((int) ' ', R.string.spoken_description_space); + + // Non-ASCII symbols (must use escape codes!) + mKeyCodeMap.put((int) '\u2022', R.string.spoken_description_dot); + mKeyCodeMap.put((int) '\u221A', R.string.spoken_description_square_root); + mKeyCodeMap.put((int) '\u03C0', R.string.spoken_description_pi); + mKeyCodeMap.put((int) '\u0394', R.string.spoken_description_delta); + mKeyCodeMap.put((int) '\u2122', R.string.spoken_description_trademark); + mKeyCodeMap.put((int) '\u2105', R.string.spoken_description_care_of); + mKeyCodeMap.put((int) '\u2026', R.string.spoken_description_ellipsis); + mKeyCodeMap.put((int) '\u201E', R.string.spoken_description_low_double_quote); + + // Special non-character codes defined in Keyboard + mKeyCodeMap.put(Keyboard.CODE_DELETE, R.string.spoken_description_delete); + mKeyCodeMap.put(Keyboard.CODE_ENTER, R.string.spoken_description_return); + mKeyCodeMap.put(Keyboard.CODE_SETTINGS, R.string.spoken_description_settings); + mKeyCodeMap.put(Keyboard.CODE_SHIFT, R.string.spoken_description_shift); + mKeyCodeMap.put(Keyboard.CODE_SHORTCUT, R.string.spoken_description_mic); + mKeyCodeMap.put(Keyboard.CODE_SWITCH_ALPHA_SYMBOL, R.string.spoken_description_to_symbol); + mKeyCodeMap.put(Keyboard.CODE_TAB, R.string.spoken_description_tab); + + // Shifted versions of non-character codes defined in Keyboard + mShiftedKeyCodeMap.put(Keyboard.CODE_SHIFT, R.string.spoken_description_shift_shifted); + + // Shift-locked versions of non-character codes defined in Keyboard + mShiftLockedKeyCodeMap.put(Keyboard.CODE_SHIFT, R.string.spoken_description_caps_lock); + } + + /** + * Returns the localized description of the action performed by a specified + * key based on the current keyboard state. + * <p> + * The order of precedence for key descriptions is: + * <ol> + * <li>Manually-defined based on the key label</li> + * <li>Automatic or manually-defined based on the key code</li> + * <li>Automatically based on the key label</li> + * <li>{code null} for keys with no label or key code defined</li> + * </p> + * + * @param context The package's context. + * @param keyboard The keyboard on which the key resides. + * @param key The key from which to obtain a description. + * @return a character sequence describing the action performed by pressing + * the key + */ + public CharSequence getDescriptionForKey(Context context, Keyboard keyboard, Key key) { + if (key.mCode == Keyboard.CODE_SWITCH_ALPHA_SYMBOL) { + final CharSequence description = getDescriptionForSwitchAlphaSymbol(context, keyboard); + if (description != null) + return description; + } + + if (!TextUtils.isEmpty(key.mLabel)) { + final String label = key.mLabel.toString().trim(); + + if (mKeyLabelMap.containsKey(label)) { + return context.getString(mKeyLabelMap.get(label)); + } else if (label.length() == 1 + || (keyboard.isManualTemporaryUpperCase() && !TextUtils + .isEmpty(key.mHintLetter))) { + return getDescriptionForKeyCode(context, keyboard, key); + } else { + return label; + } + } else if (key.mCode != Keyboard.CODE_DUMMY) { + return getDescriptionForKeyCode(context, keyboard, key); + } + + return null; + } + + /** + * Returns a context-specific description for the CODE_SWITCH_ALPHA_SYMBOL + * key or {@code null} if there is not a description provided for the + * current keyboard context. + * + * @param context The package's context. + * @param keyboard The keyboard on which the key resides. + * @return a character sequence describing the action performed by pressing + * the key + */ + private CharSequence getDescriptionForSwitchAlphaSymbol(Context context, Keyboard keyboard) { + final KeyboardId id = keyboard.mId; + + if (id.isAlphabetKeyboard()) { + return context.getString(R.string.spoken_description_to_symbol); + } else if (id.isSymbolsKeyboard()) { + return context.getString(R.string.spoken_description_to_alpha); + } else if (id.isPhoneSymbolsKeyboard()) { + return context.getString(R.string.spoken_description_to_numeric); + } else if (id.isPhoneKeyboard()) { + return context.getString(R.string.spoken_description_to_symbol); + } else { + return null; + } + } + + /** + * Returns the keycode for the specified key given the current keyboard + * state. + * + * @param keyboard The keyboard on which the key resides. + * @param key The key from which to obtain a key code. + * @return the key code for the specified key + */ + private int getCorrectKeyCode(Keyboard keyboard, Key key) { + if (keyboard.isManualTemporaryUpperCase() && !TextUtils.isEmpty(key.mHintLetter)) { + return key.mHintLetter.charAt(0); + } else { + return key.mCode; + } + } + + /** + * Returns a localized character sequence describing what will happen when + * the specified key is pressed based on its key code. + * <p> + * The order of precedence for key code descriptions is: + * <ol> + * <li>Manually-defined shift-locked description</li> + * <li>Manually-defined shifted description</li> + * <li>Manually-defined normal description</li> + * <li>Automatic based on the character represented by the key code</li> + * <li>Fall-back for undefined or control characters</li> + * </ol> + * </p> + * + * @param context The package's context. + * @param keyboard The keyboard on which the key resides. + * @param key The key from which to obtain a description. + * @return a character sequence describing the action performed by pressing + * the key + */ + private CharSequence getDescriptionForKeyCode(Context context, Keyboard keyboard, Key key) { + final int code = getCorrectKeyCode(keyboard, key); + + if (keyboard.isShiftLocked() && mShiftLockedKeyCodeMap.containsKey(code)) { + return context.getString(mShiftLockedKeyCodeMap.get(code)); + } else if (keyboard.isShiftedOrShiftLocked() && mShiftedKeyCodeMap.containsKey(code)) { + return context.getString(mShiftedKeyCodeMap.get(code)); + } else if (mKeyCodeMap.containsKey(code)) { + return context.getString(mKeyCodeMap.get(code)); + } else if (Character.isDefined(code) && !Character.isISOControl(code)) { + return Character.toString((char) code); + } else { + return context.getString(R.string.spoken_description_unknown, code); + } + } +} diff --git a/java/src/com/android/inputmethod/compat/AccessibilityEventCompatUtils.java b/java/src/com/android/inputmethod/compat/AccessibilityEventCompatUtils.java new file mode 100644 index 000000000..50057727a --- /dev/null +++ b/java/src/com/android/inputmethod/compat/AccessibilityEventCompatUtils.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +import android.view.accessibility.AccessibilityEvent; + +import java.lang.reflect.Field; + +public class AccessibilityEventCompatUtils { + public static final int TYPE_VIEW_HOVER_ENTER = 0x80; + public static final int TYPE_VIEW_HOVER_EXIT = 0x100; + + private static final Field FIELD_TYPE_VIEW_HOVER_ENTER = CompatUtils.getField( + AccessibilityEvent.class, "TYPE_VIEW_HOVER_ENTER"); + private static final Field FIELD_TYPE_VIEW_HOVER_EXIT = CompatUtils.getField( + AccessibilityEvent.class, "TYPE_VIEW_HOVER_EXIT"); + private static final Integer OBJ_TYPE_VIEW_HOVER_ENTER = (Integer) CompatUtils + .getFieldValue(null, null, FIELD_TYPE_VIEW_HOVER_ENTER); + private static final Integer OBJ_TYPE_VIEW_HOVER_EXIT = (Integer) CompatUtils + .getFieldValue(null, null, FIELD_TYPE_VIEW_HOVER_EXIT); + + public static boolean supportsTouchExploration() { + return OBJ_TYPE_VIEW_HOVER_ENTER != null && OBJ_TYPE_VIEW_HOVER_EXIT != null; + } +} diff --git a/java/src/com/android/inputmethod/compat/AccessibilityManagerCompatWrapper.java b/java/src/com/android/inputmethod/compat/AccessibilityManagerCompatWrapper.java new file mode 100644 index 000000000..4db1c7a24 --- /dev/null +++ b/java/src/com/android/inputmethod/compat/AccessibilityManagerCompatWrapper.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +import android.accessibilityservice.AccessibilityServiceInfo; +import android.view.accessibility.AccessibilityManager; + +import java.lang.reflect.Method; +import java.util.Collections; +import java.util.List; + +public class AccessibilityManagerCompatWrapper { + private static final Method METHOD_getEnabledAccessibilityServiceList = CompatUtils.getMethod( + AccessibilityManager.class, "getEnabledAccessibilityServiceList", int.class); + + private final AccessibilityManager mManager; + + public AccessibilityManagerCompatWrapper(AccessibilityManager manager) { + mManager = manager; + } + + @SuppressWarnings("unchecked") + public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType) { + return (List<AccessibilityServiceInfo>) CompatUtils.invoke(mManager, + Collections.<AccessibilityServiceInfo>emptyList(), + METHOD_getEnabledAccessibilityServiceList, feedbackType); + } +} diff --git a/java/src/com/android/inputmethod/compat/ArraysCompatUtils.java b/java/src/com/android/inputmethod/compat/ArraysCompatUtils.java new file mode 100644 index 000000000..f6afbcfe2 --- /dev/null +++ b/java/src/com/android/inputmethod/compat/ArraysCompatUtils.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +import java.lang.reflect.Method; +import java.util.Arrays; + +public class ArraysCompatUtils { + private static final Method METHOD_Arrays_binarySearch = CompatUtils + .getMethod(Arrays.class, "binarySearch", int[].class, int.class, int.class, int.class); + + public static int binarySearch(int[] array, int startIndex, int endIndex, int value) { + if (METHOD_Arrays_binarySearch != null) { + final Object index = CompatUtils.invoke(null, 0, METHOD_Arrays_binarySearch, + array, startIndex, endIndex, value); + return (Integer)index; + } else { + return compatBinarySearch(array, startIndex, endIndex, value); + } + } + + /* package */ static int compatBinarySearch(int[] array, int startIndex, int endIndex, + int value) { + if (startIndex > endIndex) throw new IllegalArgumentException(); + if (startIndex < 0 || endIndex > array.length) throw new ArrayIndexOutOfBoundsException(); + + final int work[] = new int[endIndex - startIndex]; + System.arraycopy(array, startIndex, work, 0, work.length); + final int index = Arrays.binarySearch(work, value); + if (index >= 0) { + return index + startIndex; + } else { + return ~(~index + startIndex); + } + } +} diff --git a/java/src/com/android/inputmethod/compat/CompatUtils.java b/java/src/com/android/inputmethod/compat/CompatUtils.java index 0b532f7f0..b42633cd9 100644 --- a/java/src/com/android/inputmethod/compat/CompatUtils.java +++ b/java/src/com/android/inputmethod/compat/CompatUtils.java @@ -22,7 +22,6 @@ import android.util.Log; import java.lang.reflect.Constructor; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -74,76 +73,73 @@ public class CompatUtils { return targetClass.getMethod(name, parameterTypes); } catch (SecurityException e) { // ignore - return null; } catch (NoSuchMethodException e) { // ignore - return null; } + return null; } public static Field getField(Class<?> targetClass, String name) { + if (targetClass == null || TextUtils.isEmpty(name)) return null; try { return targetClass.getField(name); } catch (SecurityException e) { // ignore - return null; } catch (NoSuchFieldException e) { // ignore - return null; } + return null; } - public static Constructor<?> getConstructor(Class<?> targetClass, Class<?>[] types) { + public static Constructor<?> getConstructor(Class<?> targetClass, Class<?> ... types) { if (targetClass == null || types == null) return null; try { return targetClass.getConstructor(types); } catch (SecurityException e) { // ignore - return null; } catch (NoSuchMethodException e) { // ignore - return null; } + return null; + } + + public static Object newInstance(Constructor<?> constructor, Object ... args) { + if (constructor == null) return null; + try { + return constructor.newInstance(args); + } catch (Exception e) { + Log.e(TAG, "Exception in newInstance: " + e.getClass().getSimpleName()); + } + return null; } public static Object invoke( Object receiver, Object defaultValue, Method method, Object... args) { - if (receiver == null || method == null) return defaultValue; + if (method == null) return defaultValue; try { return method.invoke(receiver, args); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Exception in invoke: IllegalArgumentException"); - return defaultValue; - } catch (IllegalAccessException e) { - Log.e(TAG, "Exception in invoke: IllegalAccessException"); - return defaultValue; - } catch (InvocationTargetException e) { - Log.e(TAG, "Exception in invoke: IllegalTargetException"); - return defaultValue; + } catch (Exception e) { + Log.e(TAG, "Exception in invoke: " + e.getClass().getSimpleName()); } + return defaultValue; } public static Object getFieldValue(Object receiver, Object defaultValue, Field field) { - if (receiver == null || field == null) return defaultValue; + if (field == null) return defaultValue; try { return field.get(receiver); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Exception in getFieldValue: IllegalArgumentException"); - return defaultValue; - } catch (IllegalAccessException e) { - Log.e(TAG, "Exception in getFieldValue: IllegalAccessException"); - return defaultValue; + } catch (Exception e) { + Log.e(TAG, "Exception in getFieldValue: " + e.getClass().getSimpleName()); } + return defaultValue; } public static void setFieldValue(Object receiver, Field field, Object value) { - if (receiver == null || field == null) return; + if (field == null) return; try { field.set(receiver, value); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Exception in setFieldValue: IllegalArgumentException"); - } catch (IllegalAccessException e) { - Log.e(TAG, "Exception in setFieldValue: IllegalAccessException"); + } catch (Exception e) { + Log.e(TAG, "Exception in setFieldValue: " + e.getClass().getSimpleName()); } } diff --git a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java index f6f4f7a59..bcdcef7dc 100644 --- a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java +++ b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java @@ -27,7 +27,7 @@ public class EditorInfoCompatUtils { private static final Field FIELD_IME_FLAG_NAVIGATE_PREVIOUS = CompatUtils.getField( EditorInfo.class, "IME_FLAG_NAVIGATE_PREVIOUS"); private static final Field FIELD_IME_ACTION_PREVIOUS = CompatUtils.getField( - EditorInfo.class, "IME_FLAG_ACTION_PREVIOUS"); + EditorInfo.class, "IME_ACTION_PREVIOUS"); private static final Integer OBJ_IME_FLAG_NAVIGATE_NEXT = (Integer) CompatUtils .getFieldValue(null, null, FIELD_IME_FLAG_NAVIGATE_NEXT); private static final Integer OBJ_IME_FLAG_NAVIGATE_PREVIOUS = (Integer) CompatUtils @@ -78,6 +78,9 @@ public class EditorInfoCompatUtils { case EditorInfo.IME_ACTION_SEND: action = "actionSend"; break; + case EditorInfo.IME_ACTION_NEXT: + action = "actionNext"; + break; case EditorInfo.IME_ACTION_DONE: action = "actionDone"; break; diff --git a/java/src/com/android/inputmethod/compat/FrameLayoutCompatUtils.java b/java/src/com/android/inputmethod/compat/FrameLayoutCompatUtils.java new file mode 100644 index 000000000..523bf7d0e --- /dev/null +++ b/java/src/com/android/inputmethod/compat/FrameLayoutCompatUtils.java @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewGroup.MarginLayoutParams; +import android.widget.FrameLayout; +import android.widget.RelativeLayout; + +public class FrameLayoutCompatUtils { + private static final boolean NEEDS_FRAME_LAYOUT_HACK = ( + android.os.Build.VERSION.SDK_INT < 11 /* Honeycomb */); + + public static ViewGroup getPlacer(ViewGroup container) { + if (NEEDS_FRAME_LAYOUT_HACK) { + // Insert RelativeLayout to be able to setMargin because pre-Honeycomb FrameLayout + // could not handle setMargin properly. + final ViewGroup placer = new RelativeLayout(container.getContext()); + container.addView(placer); + return placer; + } else { + return container; + } + } + + public static MarginLayoutParams newLayoutParam(ViewGroup placer, int width, int height) { + if (placer instanceof FrameLayout) { + return new FrameLayout.LayoutParams(width, height); + } else if (placer instanceof RelativeLayout) { + return new RelativeLayout.LayoutParams(width, height); + } else if (placer == null) { + throw new NullPointerException("placer is null"); + } else { + throw new IllegalArgumentException("placer is neither FrameLayout nor RelativeLayout: " + + placer.getClass().getName()); + } + } + + public static void placeViewAt(View view, int x, int y, int w, int h) { + final ViewGroup.LayoutParams lp = view.getLayoutParams(); + if (lp instanceof MarginLayoutParams) { + final MarginLayoutParams marginLayoutParams = (MarginLayoutParams)lp; + marginLayoutParams.width = w; + marginLayoutParams.height = h; + marginLayoutParams.setMargins(x, y, 0, 0); + } + } +} diff --git a/java/src/com/android/inputmethod/compat/InputConnectionCompatUtils.java b/java/src/com/android/inputmethod/compat/InputConnectionCompatUtils.java index c926be06f..7d00b6007 100644 --- a/java/src/com/android/inputmethod/compat/InputConnectionCompatUtils.java +++ b/java/src/com/android/inputmethod/compat/InputConnectionCompatUtils.java @@ -18,15 +18,12 @@ package com.android.inputmethod.compat; import com.android.inputmethod.latin.EditingUtils.SelectedWord; -import android.util.Log; import android.view.inputmethod.InputConnection; import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class InputConnectionCompatUtils { - private static final String TAG = InputConnectionCompatUtils.class.getSimpleName(); private static final Class<?> CLASS_CorrectionInfo = CompatUtils .getClass("android.view.inputmethod.CorrectionInfo"); private static final Class<?>[] INPUT_TYPE_CorrectionInfo = new Class<?>[] { int.class, @@ -53,18 +50,10 @@ public class InputConnectionCompatUtils { return; } Object[] args = { offset, oldText, newText }; - try { - Object correctionInfo = CONSTRUCTOR_CorrectionInfo.newInstance(args); + Object correctionInfo = CompatUtils.newInstance(CONSTRUCTOR_CorrectionInfo, args); + if (correctionInfo != null) { CompatUtils.invoke(ic, null, METHOD_InputConnection_commitCorrection, correctionInfo); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Error in commitCorrection: IllegalArgumentException"); - } catch (InstantiationException e) { - Log.e(TAG, "Error in commitCorrection: InstantiationException"); - } catch (IllegalAccessException e) { - Log.e(TAG, "Error in commitCorrection: IllegalAccessException"); - } catch (InvocationTargetException e) { - Log.e(TAG, "Error in commitCorrection: InvocationTargetException"); } } diff --git a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java index c04181b55..ec7250c2a 100644 --- a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java +++ b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java @@ -16,12 +16,12 @@ package com.android.inputmethod.compat; -import com.android.inputmethod.deprecated.LanguageSwitcherProxy; -import com.android.inputmethod.latin.SubtypeSwitcher; - import android.inputmethodservice.InputMethodService; // import android.view.inputmethod.InputMethodSubtype; +import com.android.inputmethod.deprecated.LanguageSwitcherProxy; +import com.android.inputmethod.latin.SubtypeSwitcher; + public class InputMethodServiceCompatWrapper extends InputMethodService { // CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED needs to be false if the API level is 10 // or previous. Note that InputMethodSubtype was added in the API level 11. diff --git a/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java index 806c355a9..667d86c42 100644 --- a/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java +++ b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatWrapper.java @@ -48,6 +48,8 @@ public final class InputMethodSubtypeCompatWrapper extends AbstractCompatWrapper CompatUtils.getMethod(CLASS_InputMethodSubtype, "containsExtraValueKey", String.class); private static final Method METHOD_getExtraValueOf = CompatUtils.getMethod(CLASS_InputMethodSubtype, "getExtraValueOf", String.class); + private static final Method METHOD_isAuxiliary = + CompatUtils.getMethod(CLASS_InputMethodSubtype, "isAuxiliary"); private final int mDummyNameResId; private final int mDummyIconResId; @@ -116,6 +118,10 @@ public final class InputMethodSubtypeCompatWrapper extends AbstractCompatWrapper return (String)CompatUtils.invoke(mObj, null, METHOD_getExtraValueOf, key); } + public boolean isAuxiliary() { + return (Boolean)CompatUtils.invoke(mObj, false, METHOD_isAuxiliary); + } + public boolean isDummy() { return !hasOriginalObject(); } diff --git a/java/src/com/android/inputmethod/compat/InputTypeCompatUtils.java b/java/src/com/android/inputmethod/compat/InputTypeCompatUtils.java index d85174188..6c2f0f799 100644 --- a/java/src/com/android/inputmethod/compat/InputTypeCompatUtils.java +++ b/java/src/com/android/inputmethod/compat/InputTypeCompatUtils.java @@ -37,6 +37,7 @@ public class InputTypeCompatUtils { (Integer) CompatUtils.getFieldValue(null, null, FIELD_InputType_TYPE_NUMBER_VARIATION_PASSWORD); private static final int WEB_TEXT_PASSWORD_INPUT_TYPE; + private static final int WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE; private static final int NUMBER_PASSWORD_INPUT_TYPE; private static final int TEXT_PASSWORD_INPUT_TYPE = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD; @@ -45,20 +46,35 @@ public class InputTypeCompatUtils { static { WEB_TEXT_PASSWORD_INPUT_TYPE = - OBJ_InputType_TYPE_TEXT_VARIATION_WEB_PASSWORD != null - ? InputType.TYPE_CLASS_TEXT | OBJ_InputType_TYPE_TEXT_VARIATION_WEB_PASSWORD - : 0; + OBJ_InputType_TYPE_TEXT_VARIATION_WEB_PASSWORD != null + ? InputType.TYPE_CLASS_TEXT | OBJ_InputType_TYPE_TEXT_VARIATION_WEB_PASSWORD + : 0; + WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE = + OBJ_InputType_TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS != null + ? InputType.TYPE_CLASS_TEXT + | OBJ_InputType_TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS + : 0; NUMBER_PASSWORD_INPUT_TYPE = OBJ_InputType_TYPE_NUMBER_VARIATION_PASSWORD != null ? InputType.TYPE_CLASS_NUMBER | OBJ_InputType_TYPE_NUMBER_VARIATION_PASSWORD : 0; } + private static boolean isWebEditTextInputType(int inputType) { + return inputType == (InputType.TYPE_CLASS_TEXT + | InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT); + } + private static boolean isWebPasswordInputType(int inputType) { return WEB_TEXT_PASSWORD_INPUT_TYPE != 0 && inputType == WEB_TEXT_PASSWORD_INPUT_TYPE; } + private static boolean isWebEmailAddressInputType(int inputType) { + return WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE != 0 + && inputType == WEB_TEXT_EMAIL_ADDRESS_INPUT_TYPE; + } + private static boolean isNumberPasswordInputType(int inputType) { return NUMBER_PASSWORD_INPUT_TYPE != 0 && inputType == NUMBER_PASSWORD_INPUT_TYPE; @@ -78,6 +94,13 @@ public class InputTypeCompatUtils { || isWebEmailAddressVariation(variation); } + public static boolean isWebInputType(int inputType) { + final int maskedInputType = + inputType & (InputType.TYPE_MASK_CLASS | InputType.TYPE_MASK_VARIATION); + return isWebEditTextInputType(maskedInputType) || isWebPasswordInputType(maskedInputType) + || isWebEmailAddressInputType(maskedInputType); + } + // Please refer to TextView.isPasswordInputType public static boolean isPasswordInputType(int inputType) { final int maskedInputType = diff --git a/java/src/com/android/inputmethod/compat/LinearLayoutCompatUtils.java b/java/src/com/android/inputmethod/compat/LinearLayoutCompatUtils.java new file mode 100644 index 000000000..674cbe74b --- /dev/null +++ b/java/src/com/android/inputmethod/compat/LinearLayoutCompatUtils.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.util.Log; + +import java.lang.reflect.Field; + +public class LinearLayoutCompatUtils { + private static final String TAG = LinearLayoutCompatUtils.class.getSimpleName(); + + private static final Class<?> CLASS_R_STYLEABLE = CompatUtils.getClass( + "com.android.internal.R$styleable"); + private static final Field STYLEABLE_VIEW = CompatUtils.getField( + CLASS_R_STYLEABLE, "View"); + private static final Field STYLEABLE_VIEW_BACKGROUND = CompatUtils.getField( + CLASS_R_STYLEABLE, "View_background"); + private static final Object VALUE_STYLEABLE_VIEW = CompatUtils.getFieldValue( + null, null, STYLEABLE_VIEW); + private static final Integer VALUE_STYLEABLE_VIEW_BACKGROUND = + (Integer)CompatUtils.getFieldValue(null, null, STYLEABLE_VIEW_BACKGROUND); + + public static Drawable getBackgroundDrawable(Context context, AttributeSet attrs, + int defStyleAttr, int defStyleRes) { + if (!(VALUE_STYLEABLE_VIEW instanceof int[]) || VALUE_STYLEABLE_VIEW_BACKGROUND == null) { + Log.w(TAG, "Can't get View background attribute using reflection"); + return null; + } + + final int[] styleableView = (int[])VALUE_STYLEABLE_VIEW; + final TypedArray a = context.obtainStyledAttributes( + attrs, styleableView, defStyleAttr, defStyleRes); + final Drawable background = a.getDrawable(VALUE_STYLEABLE_VIEW_BACKGROUND); + a.recycle(); + return background; + } +} diff --git a/java/src/com/android/inputmethod/compat/MotionEventCompatUtils.java b/java/src/com/android/inputmethod/compat/MotionEventCompatUtils.java new file mode 100644 index 000000000..8518a4a78 --- /dev/null +++ b/java/src/com/android/inputmethod/compat/MotionEventCompatUtils.java @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +public class MotionEventCompatUtils { + public static final int ACTION_HOVER_MOVE = 0x7; + public static final int ACTION_HOVER_ENTER = 0x9; + public static final int ACTION_HOVER_EXIT = 0xA; +} diff --git a/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java new file mode 100644 index 000000000..4929dd948 --- /dev/null +++ b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.compat; + +import com.android.inputmethod.latin.SuggestedWords; +import com.android.inputmethod.latin.SuggestionSpanPickedNotificationReceiver; + +import android.content.Context; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextUtils; + +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.Locale; + +public class SuggestionSpanUtils { + // TODO: Use reflection to get field values + public static final String ACTION_SUGGESTION_PICKED = + "android.text.style.SUGGESTION_PICKED"; + public static final String SUGGESTION_SPAN_PICKED_AFTER = "after"; + public static final String SUGGESTION_SPAN_PICKED_BEFORE = "before"; + public static final String SUGGESTION_SPAN_PICKED_HASHCODE = "hashcode"; + public static final int SUGGESTION_MAX_SIZE = 5; + public static final boolean SUGGESTION_SPAN_IS_SUPPORTED; + + private static final Class<?> CLASS_SuggestionSpan = CompatUtils + .getClass("android.text.style.SuggestionSpan"); + private static final Class<?>[] INPUT_TYPE_SuggestionSpan = new Class<?>[] { + Context.class, Locale.class, String[].class, int.class, Class.class }; + private static final Constructor<?> CONSTRUCTOR_SuggestionSpan = CompatUtils + .getConstructor(CLASS_SuggestionSpan, INPUT_TYPE_SuggestionSpan); + static { + SUGGESTION_SPAN_IS_SUPPORTED = + CLASS_SuggestionSpan != null && CONSTRUCTOR_SuggestionSpan != null; + } + + public static CharSequence getTextWithSuggestionSpan(Context context, + CharSequence pickedWord, SuggestedWords suggestedWords) { + if (TextUtils.isEmpty(pickedWord) || CONSTRUCTOR_SuggestionSpan == null + || suggestedWords == null || suggestedWords.size() == 0) { + return pickedWord; + } + + final Spannable spannable; + if (pickedWord instanceof Spannable) { + spannable = (Spannable) pickedWord; + } else { + spannable = new SpannableString(pickedWord); + } + final ArrayList<String> suggestionsList = new ArrayList<String>(); + for (int i = 0; i < suggestedWords.size(); ++i) { + if (suggestionsList.size() >= SUGGESTION_MAX_SIZE) { + break; + } + final CharSequence word = suggestedWords.getWord(i); + if (!TextUtils.equals(pickedWord, word)) { + suggestionsList.add(word.toString()); + } + } + + final Object[] args = + { context, null, suggestionsList.toArray(new String[suggestionsList.size()]), 0, + (Class<?>) SuggestionSpanPickedNotificationReceiver.class }; + final Object ss = CompatUtils.newInstance(CONSTRUCTOR_SuggestionSpan, args); + if (ss == null) { + return pickedWord; + } + spannable.setSpan(ss, 0, pickedWord.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + return spannable; + } +} diff --git a/java/src/com/android/inputmethod/deprecated/LanguageSwitcherProxy.java b/java/src/com/android/inputmethod/deprecated/LanguageSwitcherProxy.java index e14a49c49..290e6b554 100644 --- a/java/src/com/android/inputmethod/deprecated/LanguageSwitcherProxy.java +++ b/java/src/com/android/inputmethod/deprecated/LanguageSwitcherProxy.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. + * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/VoiceProxy.java b/java/src/com/android/inputmethod/deprecated/VoiceProxy.java index 753dceead..85993ea4d 100644 --- a/java/src/com/android/inputmethod/deprecated/VoiceProxy.java +++ b/java/src/com/android/inputmethod/deprecated/VoiceProxy.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -137,8 +137,8 @@ public class VoiceProxy implements VoiceInput.UiListener { @Override public void showHint(int viewResource) { View view = LayoutInflater.from(mService).inflate(viewResource, null); - mService.setCandidatesView(view); - mService.setCandidatesViewShown(true); +// mService.setCandidatesView(view); +// mService.setCandidatesViewShown(true); mIsShowingHint = true; } }); @@ -441,7 +441,7 @@ public class VoiceProxy implements VoiceInput.UiListener { } builder.setTypedWordValid(true).setHasMinimalSuggestion(true); mService.setSuggestions(builder.build()); - mService.setCandidatesViewShown(true); +// mService.setCandidatesViewShown(true); return true; } return false; @@ -526,7 +526,7 @@ public class VoiceProxy implements VoiceInput.UiListener { mHandler.post(new Runnable() { @Override public void run() { - mService.setCandidatesViewShown(false); +// mService.setCandidatesViewShown(false); mRecognizing = true; mVoiceInput.newView(); View v = mVoiceInput.getView(); @@ -536,7 +536,7 @@ public class VoiceProxy implements VoiceInput.UiListener { ((ViewGroup) p).removeView(v); } - View keyboardView = KeyboardSwitcher.getInstance().getInputView(); + View keyboardView = KeyboardSwitcher.getInstance().getKeyboardView(); // The full height of the keyboard is difficult to calculate // as the dimension is expressed in "mm" and not in "pixel" @@ -691,7 +691,7 @@ public class VoiceProxy implements VoiceInput.UiListener { if (mSubtypeSwitcher.isVoiceMode() && windowToken != null) { // Close keyboard view if it is been shown. if (KeyboardSwitcher.getInstance().isInputViewShown()) - KeyboardSwitcher.getInstance().getInputView().purgeKeyboardAndClosing(); + KeyboardSwitcher.getInstance().getKeyboardView().purgeKeyboardAndClosing(); startListening(false, windowToken); } // If we have no token, onAttachedToWindow will take care of showing dialog and start diff --git a/java/src/com/android/inputmethod/deprecated/languageswitcher/InputLanguageSelection.java b/java/src/com/android/inputmethod/deprecated/languageswitcher/InputLanguageSelection.java index b8655d112..cf6cd0f5e 100644 --- a/java/src/com/android/inputmethod/deprecated/languageswitcher/InputLanguageSelection.java +++ b/java/src/com/android/inputmethod/deprecated/languageswitcher/InputLanguageSelection.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008-2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -16,7 +16,7 @@ package com.android.inputmethod.deprecated.languageswitcher; -import com.android.inputmethod.keyboard.KeyboardParser; +import com.android.inputmethod.keyboard.internal.KeyboardParser; import com.android.inputmethod.latin.DictionaryFactory; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.Settings; diff --git a/java/src/com/android/inputmethod/deprecated/languageswitcher/LanguageSwitcher.java b/java/src/com/android/inputmethod/deprecated/languageswitcher/LanguageSwitcher.java index 5ef236e31..1eedb5ee1 100644 --- a/java/src/com/android/inputmethod/deprecated/languageswitcher/LanguageSwitcher.java +++ b/java/src/com/android/inputmethod/deprecated/languageswitcher/LanguageSwitcher.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -20,6 +20,7 @@ import com.android.inputmethod.latin.LatinIME; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.Settings; import com.android.inputmethod.latin.SharedPreferencesCompat; +import com.android.inputmethod.latin.Utils; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; @@ -125,8 +126,7 @@ public class LanguageSwitcher { private void constructLocales() { mLocales.clear(); for (final String lang : mSelectedLanguageArray) { - final Locale locale = new Locale(lang.substring(0, 2), - lang.length() > 4 ? lang.substring(3, 5) : ""); + final Locale locale = Utils.constructLocaleFromString(lang); mLocales.add(locale); } } diff --git a/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java b/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java index bf69d5ced..d40728d25 100644 --- a/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java +++ b/java/src/com/android/inputmethod/deprecated/recorrection/Recorrection.java @@ -17,6 +17,7 @@ package com.android.inputmethod.deprecated.recorrection; import com.android.inputmethod.compat.InputConnectionCompatUtils; +import com.android.inputmethod.compat.SuggestionSpanUtils; import com.android.inputmethod.deprecated.VoiceProxy; import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.latin.AutoCorrection; @@ -43,7 +44,6 @@ import java.util.ArrayList; * Manager of re-correction functionalities */ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeListener { - public static final boolean USE_LEGACY_RECORRECTION = true; private static final Recorrection sInstance = new Recorrection(); private LatinIME mService; @@ -70,7 +70,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL } private void initInternal(LatinIME context, SharedPreferences prefs) { - if (!USE_LEGACY_RECORRECTION) { + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED) { mRecorrectionEnabled = false; return; } @@ -80,7 +80,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL } public void checkRecorrectionOnStart() { - if (!USE_LEGACY_RECORRECTION || !mRecorrectionEnabled) return; + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED || !mRecorrectionEnabled) return; final InputConnection ic = mService.getCurrentInputConnection(); if (ic == null) return; @@ -110,7 +110,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL CandidateView candidateView, int candidatesStart, int candidatesEnd, int newSelStart, int newSelEnd, int oldSelStart, int lastSelectionStart, int lastSelectionEnd, boolean hasUncommittedTypedChars) { - if (!USE_LEGACY_RECORRECTION || !mRecorrectionEnabled) return; + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED || !mRecorrectionEnabled) return; if (!mService.isShowingSuggestionsStrip()) return; if (!keyboardSwitcher.isInputViewShown()) return; if (!mService.isSuggestionsRequested()) return; @@ -142,7 +142,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL } public void saveRecorrectionSuggestion(WordComposer word, CharSequence result) { - if (!USE_LEGACY_RECORRECTION || !mRecorrectionEnabled) return; + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED || !mRecorrectionEnabled) return; if (word.size() <= 1) { return; } @@ -170,7 +170,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL */ public boolean applyTypedAlternatives(WordComposer word, Suggest suggest, KeyboardSwitcher keyboardSwitcher, EditingUtils.SelectedWord touching) { - if (!USE_LEGACY_RECORRECTION || !mRecorrectionEnabled) return false; + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED || !mRecorrectionEnabled) return false; // If we didn't find a match, search for result in typed word history WordComposer foundWord = null; RecorrectionSuggestionEntries alternatives = null; @@ -218,12 +218,12 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL mService.showSuggestions(builder.build(), entries.getOriginalWord()); } - public void setRecorrectionSuggestions(VoiceProxy voiceProxy, CandidateView candidateView, - Suggest suggest, KeyboardSwitcher keyboardSwitcher, WordComposer word, - boolean hasUncommittedTypedChars, int lastSelectionStart, int lastSelectionEnd, - String wordSeparators) { + public void fetchAndDisplayRecorrectionSuggestions(VoiceProxy voiceProxy, + CandidateView candidateView, Suggest suggest, KeyboardSwitcher keyboardSwitcher, + WordComposer word, boolean hasUncommittedTypedChars, int lastSelectionStart, + int lastSelectionEnd, String wordSeparators) { if (!InputConnectionCompatUtils.RECORRECTION_SUPPORTED) return; - if (!USE_LEGACY_RECORRECTION || !mRecorrectionEnabled) return; + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED || !mRecorrectionEnabled) return; voiceProxy.setShowingVoiceSuggestions(false); if (candidateView != null && candidateView.isShowingAddToDictionaryHint()) { return; @@ -249,7 +249,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL ic.endBatchEdit(); } else { abortRecorrection(true); - mService.setPunctuationSuggestions(); // Show the punctuation suggestions list + mService.updateBigramPredictions(); } } else { abortRecorrection(true); @@ -257,7 +257,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL } public void abortRecorrection(boolean force) { - if (!USE_LEGACY_RECORRECTION) return; + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED) return; if (force || TextEntryState.isRecorrecting()) { TextEntryState.onAbortRecorrection(); mService.setCandidatesViewShown(mService.isCandidateStripVisible()); @@ -279,7 +279,7 @@ public class Recorrection implements SharedPreferences.OnSharedPreferenceChangeL @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { - if (!USE_LEGACY_RECORRECTION) return; + if (SuggestionSpanUtils.SUGGESTION_SPAN_IS_SUPPORTED) return; if (key.equals(Settings.PREF_RECORRECTION_ENABLED)) { updateRecorrectionEnabled(mService.getResources(), prefs); } diff --git a/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java b/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java index 914e2cbc1..5e6c87044 100644 --- a/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java +++ b/java/src/com/android/inputmethod/deprecated/recorrection/RecorrectionSuggestionEntries.java @@ -57,6 +57,6 @@ public class RecorrectionSuggestionEntries { private static SuggestedWords.Builder getTypedSuggestions( Suggest suggest, KeyboardSwitcher keyboardSwitcher, WordComposer word) { - return suggest.getSuggestedWordBuilder(keyboardSwitcher.getInputView(), word, null); + return suggest.getSuggestedWordBuilder(keyboardSwitcher.getKeyboardView(), word, null); } } diff --git a/java/src/com/android/inputmethod/deprecated/voice/FieldContext.java b/java/src/com/android/inputmethod/deprecated/voice/FieldContext.java index 0ef73d2d7..3c79cc218 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/FieldContext.java +++ b/java/src/com/android/inputmethod/deprecated/voice/FieldContext.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/voice/Hints.java b/java/src/com/android/inputmethod/deprecated/voice/Hints.java index 52a4f4e58..06b234381 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/Hints.java +++ b/java/src/com/android/inputmethod/deprecated/voice/Hints.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/voice/RecognitionView.java b/java/src/com/android/inputmethod/deprecated/voice/RecognitionView.java index b57c16f40..dcb826e8f 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/RecognitionView.java +++ b/java/src/com/android/inputmethod/deprecated/voice/RecognitionView.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/voice/SettingsUtil.java b/java/src/com/android/inputmethod/deprecated/voice/SettingsUtil.java index 7721fe268..855a09a1d 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/SettingsUtil.java +++ b/java/src/com/android/inputmethod/deprecated/voice/SettingsUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/voice/SoundIndicator.java b/java/src/com/android/inputmethod/deprecated/voice/SoundIndicator.java index 8cc79de1e..25b314085 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/SoundIndicator.java +++ b/java/src/com/android/inputmethod/deprecated/voice/SoundIndicator.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. + * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java index 7ee0de9c9..b718ebbb7 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java +++ b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -129,7 +129,7 @@ public class VoiceInput implements OnClickListener { private int mAfterVoiceInputSelectionSpan = 0; private int mState = DEFAULT; - + private final static int MSG_RESET = 1; private final Handler mHandler = new Handler() { @@ -192,7 +192,7 @@ public class VoiceInput implements OnClickListener { } mBlacklist = new Whitelist(); - mBlacklist.addApp("com.android.setupwizard"); + mBlacklist.addApp("com.google.android.setupwizard"); } public void setCursorPos(int pos) { diff --git a/java/src/com/android/inputmethod/deprecated/voice/VoiceInputLogger.java b/java/src/com/android/inputmethod/deprecated/voice/VoiceInputLogger.java index 87b943426..22e8207bf 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/VoiceInputLogger.java +++ b/java/src/com/android/inputmethod/deprecated/voice/VoiceInputLogger.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 Google Inc. + * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/voice/WaveformImage.java b/java/src/com/android/inputmethod/deprecated/voice/WaveformImage.java index a3025f252..8ed279f42 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/WaveformImage.java +++ b/java/src/com/android/inputmethod/deprecated/voice/WaveformImage.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2009 Google Inc. + * Copyright (C) 2008-2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/deprecated/voice/Whitelist.java b/java/src/com/android/inputmethod/deprecated/voice/Whitelist.java index 310689cb2..6c5f52ae2 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/Whitelist.java +++ b/java/src/com/android/inputmethod/deprecated/voice/Whitelist.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 33b55b5d3..2850c95df 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -16,10 +16,6 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.keyboard.KeyStyles.KeyStyle; -import com.android.inputmethod.keyboard.KeyboardParser.ParseException; -import com.android.inputmethod.latin.R; - import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; @@ -27,6 +23,15 @@ import android.graphics.drawable.Drawable; import android.text.TextUtils; import android.util.Xml; +import com.android.inputmethod.keyboard.internal.KeyStyles; +import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; +import com.android.inputmethod.keyboard.internal.KeyboardParser; +import com.android.inputmethod.keyboard.internal.PopupCharactersParser; +import com.android.inputmethod.keyboard.internal.Row; +import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle; +import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException; +import com.android.inputmethod.latin.R; + import java.util.ArrayList; /** @@ -37,25 +42,26 @@ public class Key { * The key code (unicode or custom code) that this key generates. */ public final int mCode; - /** The unicode that this key generates in manual temporary upper case mode. */ - public final int mManualTemporaryUpperCaseCode; /** Label to display */ public final CharSequence mLabel; + /** Hint letter to display on the key in conjunction with the label */ + public final CharSequence mHintLetter; /** Option of the label */ public final int mLabelOption; + public static final int LABEL_OPTION_ALIGN_LEFT = 0x01; + public static final int LABEL_OPTION_ALIGN_RIGHT = 0x02; + public static final int LABEL_OPTION_ALIGN_BOTTOM = 0x08; + public static final int LABEL_OPTION_FONT_NORMAL = 0x10; + public static final int LABEL_OPTION_FONT_FIXED_WIDTH = 0x20; + public static final int LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO = 0x40; + private static final int LABEL_OPTION_POPUP_HINT = 0x80; + private static final int LABEL_OPTION_HAS_UPPERCASE_LETTER = 0x100; /** Icon to display instead of a label. Icon takes precedence over a label */ private Drawable mIcon; /** Preview version of the icon, for the preview popup */ private Drawable mPreviewIcon; - /** Hint icon to display on the key in conjunction with the label */ - public final Drawable mHintIcon; - /** - * The hint icon to display on the key when keyboard is in manual temporary upper case - * mode. - */ - public final Drawable mManualTemporaryUpperCaseHintIcon; /** Width of the key, not including the gap */ public final int mWidth; @@ -95,11 +101,15 @@ public class Key { private final Keyboard mKeyboard; /** The current pressed state of this key */ - public boolean mPressed; + private boolean mPressed; /** If this is a sticky key, is its highlight on? */ - public boolean mHighlightOn; + private boolean mHighlightOn; /** Key is enabled and responds on press */ - public boolean mEnabled = true; + private boolean mEnabled = true; + + // keyWidth constants + private static final int KEYWIDTH_FILL_RIGHT = 0; + private static final int KEYWIDTH_FILL_BOTH = -1; private final static int[] KEY_STATE_NORMAL_ON = { android.R.attr.state_checkable, @@ -140,7 +150,7 @@ public class Key { }; /** - * This constructor is being used only for key in mini popup keyboard. + * This constructor is being used only for key in popup mini keyboard. */ public Key(Resources res, Keyboard keyboard, CharSequence popupCharacter, int x, int y, int width, int height, int edgeFlags) { @@ -150,9 +160,7 @@ public class Key { mVisualInsetsLeft = mVisualInsetsRight = 0; mWidth = width - mGap; mEdgeFlags = edgeFlags; - mHintIcon = null; - mManualTemporaryUpperCaseHintIcon = null; - mManualTemporaryUpperCaseCode = Keyboard.CODE_DUMMY; + mHintLetter = null; mLabelOption = 0; mFunctional = false; mSticky = false; @@ -163,7 +171,7 @@ public class Key { mLabel = PopupCharactersParser.getLabel(popupSpecification); mOutputText = PopupCharactersParser.getOutputText(popupSpecification); mCode = PopupCharactersParser.getCode(res, popupSpecification); - mIcon = PopupCharactersParser.getIcon(res, popupSpecification); + mIcon = keyboard.mIconsSet.getIcon(PopupCharactersParser.getIconId(popupSpecification)); // Horizontal gap is divided equally to both sides of the key. mX = x + mGap / 2; mY = y; @@ -178,6 +186,7 @@ public class Key { * @param x the x coordinate of the top-left * @param y the y coordinate of the top-left * @param parser the XML parser containing the attributes for this key + * @param keyStyles active key styles set */ public Key(Resources res, Row row, int x, int y, XmlResourceParser parser, KeyStyles keyStyles) { @@ -185,6 +194,7 @@ public class Key { final TypedArray keyboardAttr = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard); + int keyWidth; try { mHeight = KeyboardParser.getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_rowHeight, @@ -192,17 +202,13 @@ public class Key { mGap = KeyboardParser.getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_horizontalGap, mKeyboard.getDisplayWidth(), row.mDefaultHorizontalGap); - mWidth = KeyboardParser.getDimensionOrFraction(keyboardAttr, + keyWidth = KeyboardParser.getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_keyWidth, - mKeyboard.getDisplayWidth(), row.mDefaultWidth) - mGap; + mKeyboard.getDisplayWidth(), row.mDefaultWidth); } finally { keyboardAttr.recycle(); } - // Horizontal gap is divided equally to both sides of the key. - mX = x + mGap / 2; - mY = y; - final TypedArray keyAttr = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard_Key); try { @@ -216,6 +222,35 @@ public class Key { style = keyStyles.getEmptyKeyStyle(); } + final int keyboardWidth = mKeyboard.getDisplayWidth(); + int keyXPos = KeyboardParser.getDimensionOrFraction(keyAttr, + R.styleable.Keyboard_Key_keyXPos, keyboardWidth, x); + if (keyXPos < 0) { + // If keyXPos is negative, the actual x-coordinate will be k + keyXPos. + keyXPos += keyboardWidth; + if (keyXPos < x) { + // keyXPos shouldn't be less than x because drawable area for this key starts + // at x. Or, this key will overlaps the adjacent key on its left hand side. + keyXPos = x; + } + } + if (keyWidth == KEYWIDTH_FILL_RIGHT) { + // If keyWidth is zero, the actual key width will be determined to fill out the + // area up to the right edge of the keyboard. + keyWidth = keyboardWidth - keyXPos; + } else if (keyWidth <= KEYWIDTH_FILL_BOTH) { + // If keyWidth is negative, the actual key width will be determined to fill out the + // area between the nearest key on the left hand side and the right edge of the + // keyboard. + keyXPos = x; + keyWidth = keyboardWidth - keyXPos; + } + + // Horizontal gap is divided equally to both sides of the key. + mX = keyXPos + mGap / 2; + mY = y; + mWidth = keyWidth - mGap; + final CharSequence[] popupCharacters = style.getTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters); if (res.getBoolean(R.bool.config_digit_popup_characters_enabled)) { @@ -234,24 +269,23 @@ public class Key { mEdgeFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyEdgeFlags, 0) | row.mRowEdgeFlags; + final KeyboardIconsSet iconsSet = mKeyboard.mIconsSet; mVisualInsetsLeft = KeyboardParser.getDimensionOrFraction(keyAttr, R.styleable.Keyboard_Key_visualInsetsLeft, mKeyboard.getDisplayHeight(), 0); mVisualInsetsRight = KeyboardParser.getDimensionOrFraction(keyAttr, R.styleable.Keyboard_Key_visualInsetsRight, mKeyboard.getDisplayHeight(), 0); - mPreviewIcon = style.getDrawable(keyAttr, R.styleable.Keyboard_Key_iconPreview); + mPreviewIcon = iconsSet.getIcon(style.getInt( + keyAttr, R.styleable.Keyboard_Key_keyIconPreview, + KeyboardIconsSet.ICON_UNDEFINED)); Keyboard.setDefaultBounds(mPreviewIcon); - mIcon = style.getDrawable(keyAttr, R.styleable.Keyboard_Key_keyIcon); + mIcon = iconsSet.getIcon(style.getInt( + keyAttr, R.styleable.Keyboard_Key_keyIcon, + KeyboardIconsSet.ICON_UNDEFINED)); Keyboard.setDefaultBounds(mIcon); - mHintIcon = style.getDrawable(keyAttr, R.styleable.Keyboard_Key_keyHintIcon); - Keyboard.setDefaultBounds(mHintIcon); - mManualTemporaryUpperCaseHintIcon = style.getDrawable(keyAttr, - R.styleable.Keyboard_Key_manualTemporaryUpperCaseHintIcon); - Keyboard.setDefaultBounds(mManualTemporaryUpperCaseHintIcon); + mHintLetter = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter); mLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyLabel); mLabelOption = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption, 0); - mManualTemporaryUpperCaseCode = style.getInt(keyAttr, - R.styleable.Keyboard_Key_manualTemporaryUpperCaseCode, Keyboard.CODE_DUMMY); mOutputText = style.getText(keyAttr, R.styleable.Keyboard_Key_keyOutputText); // Choose the first letter of the label as primary code if not // specified. @@ -265,8 +299,9 @@ public class Key { mCode = Keyboard.CODE_DUMMY; } - final Drawable shiftedIcon = style.getDrawable(keyAttr, - R.styleable.Keyboard_Key_shiftedIcon); + final Drawable shiftedIcon = iconsSet.getIcon(style.getInt( + keyAttr, R.styleable.Keyboard_Key_keyIconShifted, + KeyboardIconsSet.ICON_UNDEFINED)); if (shiftedIcon != null) mKeyboard.getShiftedIcons().put(this, shiftedIcon); } finally { @@ -274,8 +309,16 @@ public class Key { } } + public boolean hasPopupHint() { + return (mLabelOption & LABEL_OPTION_POPUP_HINT) != 0; + } + + public boolean hasUppercaseLetter() { + return (mLabelOption & LABEL_OPTION_HAS_UPPERCASE_LETTER) != 0; + } + private static boolean isDigitPopupCharacter(CharSequence label) { - return label.length() == 1 && Character.isDigit(label.charAt(0)); + return label != null && label.length() == 1 && Character.isDigit(label.charAt(0)); } private static CharSequence[] filterOutDigitPopupCharacters(CharSequence[] popupCharacters) { @@ -338,6 +381,18 @@ public class Key { mPressed = false; } + public void setHighlightOn(boolean highlightOn) { + mHighlightOn = highlightOn; + } + + public boolean isEnabled() { + return mEnabled; + } + + public void setEnabled(boolean enabled) { + mEnabled = enabled; + } + /** * Detects if a point falls on this key. * @param x the x-coordinate of the point diff --git a/java/src/com/android/inputmethod/keyboard/KeyDetector.java b/java/src/com/android/inputmethod/keyboard/KeyDetector.java index 0b13afecb..7add43a6d 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyDetector.java +++ b/java/src/com/android/inputmethod/keyboard/KeyDetector.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index 492883caf..20327c5b2 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -16,15 +16,18 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.latin.R; - -import org.xmlpull.v1.XmlPullParserException; - import android.content.Context; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.util.Log; +import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; +import com.android.inputmethod.keyboard.internal.KeyboardParser; +import com.android.inputmethod.keyboard.internal.KeyboardShiftState; +import com.android.inputmethod.latin.R; + +import org.xmlpull.v1.XmlPullParserException; + import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -51,7 +54,7 @@ import java.util.Map; * </pre> */ public class Keyboard { - private static final String TAG = "Keyboard"; + private static final String TAG = Keyboard.class.getSimpleName(); public static final int EDGE_LEFT = 0x01; public static final int EDGE_RIGHT = 0x02; @@ -130,6 +133,8 @@ public class Keyboard { public final KeyboardId mId; + public final KeyboardIconsSet mIconsSet = new KeyboardIconsSet(); + // Variables for pre-computing nearest keys. // TODO: Change GRID_WIDTH and GRID_HEIGHT to private. @@ -151,16 +156,11 @@ public class Keyboard { * @param context the application or service context * @param xmlLayoutResId the resource file that contains the keyboard layout and keys. * @param id keyboard identifier + * @param width keyboard width */ - public Keyboard(Context context, int xmlLayoutResId, KeyboardId id) { - this(context, xmlLayoutResId, id, - context.getResources().getDisplayMetrics().widthPixels, - context.getResources().getDisplayMetrics().heightPixels); - } - private Keyboard(Context context, int xmlLayoutResId, KeyboardId id, int width, - int height) { - Resources res = context.getResources(); + public Keyboard(Context context, int xmlLayoutResId, KeyboardId id, int width) { + final Resources res = context.getResources(); GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width); GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height); GRID_SIZE = GRID_WIDTH * GRID_HEIGHT; @@ -168,15 +168,16 @@ public class Keyboard { final int horizontalEdgesPadding = (int)res.getDimension( R.dimen.keyboard_horizontal_edges_padding); mDisplayWidth = width - horizontalEdgesPadding * 2; - mDisplayHeight = height; + // TODO: Adjust the height by referring to the height of area available for drawing as well. + mDisplayHeight = res.getDisplayMetrics().heightPixels; mDefaultHorizontalGap = 0; setKeyWidth(mDisplayWidth / 10); mDefaultVerticalGap = 0; mDefaultHeight = mDefaultWidth; mId = id; - loadKeyboard(context, xmlLayoutResId); mProximityInfo = new ProximityInfo(GRID_WIDTH, GRID_HEIGHT); + loadKeyboard(context, xmlLayoutResId); } public int getProximityInfo() { @@ -295,7 +296,7 @@ public class Keyboard { public boolean setShiftLocked(boolean newShiftLockState) { final Map<Key, Drawable> shiftedIcons = getShiftedIcons(); for (final Key key : getShiftKeys()) { - key.mHighlightOn = newShiftLockState; + key.setHighlightOn(newShiftLockState); key.setIcon(newShiftLockState ? shiftedIcons.get(key) : mNormalShiftIcons.get(key)); } mShiftState.setShiftLocked(newShiftLockState); @@ -438,7 +439,7 @@ public class Keyboard { private void loadKeyboard(Context context, int xmlLayoutResId) { try { - KeyboardParser parser = new KeyboardParser(this, context.getResources()); + KeyboardParser parser = new KeyboardParser(this, context); parser.parseKeyboard(xmlLayoutResId); // mMinWidth is the width of this keyboard which is maximum width of row. mMinWidth = parser.getMaxRowWidth(); @@ -452,7 +453,7 @@ public class Keyboard { } } - protected static void setDefaultBounds(Drawable drawable) { + public static void setDefaultBounds(Drawable drawable) { if (drawable != null) drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java index 098af214e..7e67d6f6b 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java index f68b68f1d..9c63c198c 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -16,12 +16,12 @@ package com.android.inputmethod.keyboard; +import android.view.inputmethod.EditorInfo; + import com.android.inputmethod.compat.EditorInfoCompatUtils; import com.android.inputmethod.compat.InputTypeCompatUtils; import com.android.inputmethod.latin.R; -import android.view.inputmethod.EditorInfo; - import java.util.Arrays; import java.util.Locale; @@ -34,38 +34,55 @@ public class KeyboardId { public static final int MODE_URL = 1; public static final int MODE_EMAIL = 2; public static final int MODE_IM = 3; - public static final int MODE_WEB = 4; - public static final int MODE_PHONE = 5; - public static final int MODE_NUMBER = 6; + public static final int MODE_PHONE = 4; + public static final int MODE_NUMBER = 5; + + public static final int F2KEY_MODE_NONE = 0; + public static final int F2KEY_MODE_SETTINGS = 1; + public static final int F2KEY_MODE_SHORTCUT_IME = 2; + public static final int F2KEY_MODE_SHORTCUT_IME_OR_SETTINGS = 3; public final Locale mLocale; public final int mOrientation; + public final int mWidth; public final int mMode; public final int mXmlId; - public final int mColorScheme; + public final boolean mNavigateAction; public final boolean mPasswordInput; + // TODO: Clean up these booleans and modes. public final boolean mHasSettingsKey; + public final int mF2KeyMode; + public final boolean mClobberSettingsKey; public final boolean mVoiceKeyEnabled; public final boolean mHasVoiceKey; public final int mImeAction; public final boolean mEnableShiftLock; + public final String mXmlName; + public final EditorInfo mAttribute; private final int mHashCode; - public KeyboardId(String xmlName, int xmlId, int colorScheme, Locale locale, int orientation, - int mode, EditorInfo attribute, boolean hasSettingsKey, boolean voiceKeyEnabled, - boolean hasVoiceKey, boolean enableShiftLock) { + public KeyboardId(String xmlName, int xmlId, Locale locale, int orientation, int width, + int mode, EditorInfo attribute, boolean hasSettingsKey, int f2KeyMode, + boolean clobberSettingsKey, boolean voiceKeyEnabled, boolean hasVoiceKey, + boolean enableShiftLock) { final int inputType = (attribute != null) ? attribute.inputType : 0; final int imeOptions = (attribute != null) ? attribute.imeOptions : 0; this.mLocale = locale; this.mOrientation = orientation; + this.mWidth = width; this.mMode = mode; this.mXmlId = xmlId; - this.mColorScheme = colorScheme; + // Note: Turn off checking navigation flag to show TAB key for now. + this.mNavigateAction = InputTypeCompatUtils.isWebInputType(inputType); +// || EditorInfoCompatUtils.hasFlagNavigateNext(imeOptions) +// || EditorInfoCompatUtils.hasFlagNavigatePrevious(imeOptions); this.mPasswordInput = InputTypeCompatUtils.isPasswordInputType(inputType) || InputTypeCompatUtils.isVisiblePasswordInputType(inputType); this.mHasSettingsKey = hasSettingsKey; + this.mF2KeyMode = f2KeyMode; + this.mClobberSettingsKey = clobberSettingsKey; this.mVoiceKeyEnabled = voiceKeyEnabled; this.mHasVoiceKey = hasVoiceKey; // We are interested only in {@link EditorInfo#IME_MASK_ACTION} enum value and @@ -73,16 +90,21 @@ public class KeyboardId { this.mImeAction = imeOptions & ( EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION); this.mEnableShiftLock = enableShiftLock; + this.mXmlName = xmlName; + this.mAttribute = attribute; this.mHashCode = Arrays.hashCode(new Object[] { locale, orientation, + width, mode, xmlId, - colorScheme, + mNavigateAction, mPasswordInput, hasSettingsKey, + f2KeyMode, + clobberSettingsKey, voiceKeyEnabled, hasVoiceKey, mImeAction, @@ -90,6 +112,20 @@ public class KeyboardId { }); } + public KeyboardId cloneWithNewLayout(String xmlName, int xmlId) { + return new KeyboardId(xmlName, xmlId, mLocale, mOrientation, mWidth, mMode, mAttribute, + mHasSettingsKey, mF2KeyMode, mClobberSettingsKey, mVoiceKeyEnabled, mHasVoiceKey, + mEnableShiftLock); + } + + public KeyboardId cloneWithNewGeometry(int width) { + if (mWidth == width) + return this; + return new KeyboardId(mXmlName, mXmlId, mLocale, mOrientation, width, mMode, mAttribute, + mHasSettingsKey, mF2KeyMode, mClobberSettingsKey, mVoiceKeyEnabled, mHasVoiceKey, + mEnableShiftLock); + } + public int getXmlId() { return mXmlId; } @@ -99,13 +135,17 @@ public class KeyboardId { } public boolean isSymbolsKeyboard() { - return mXmlId == R.xml.kbd_symbols; + return mXmlId == R.xml.kbd_symbols || mXmlId == R.xml.kbd_symbols_shift; } public boolean isPhoneKeyboard() { return mMode == MODE_PHONE; } + public boolean isPhoneSymbolsKeyboard() { + return mXmlId == R.xml.kbd_phone_symbols; + } + public boolean isNumberKeyboard() { return mMode == MODE_NUMBER; } @@ -118,11 +158,14 @@ public class KeyboardId { boolean equals(KeyboardId other) { return other.mLocale.equals(this.mLocale) && other.mOrientation == this.mOrientation + && other.mWidth == this.mWidth && other.mMode == this.mMode && other.mXmlId == this.mXmlId - && other.mColorScheme == this.mColorScheme + && other.mNavigateAction == this.mNavigateAction && other.mPasswordInput == this.mPasswordInput && other.mHasSettingsKey == this.mHasSettingsKey + && other.mF2KeyMode == this.mF2KeyMode + && other.mClobberSettingsKey == this.mClobberSettingsKey && other.mVoiceKeyEnabled == this.mVoiceKeyEnabled && other.mHasVoiceKey == this.mHasVoiceKey && other.mImeAction == this.mImeAction @@ -136,18 +179,20 @@ public class KeyboardId { @Override public String toString() { - return String.format("[%s.xml %s %s %s imeAction=%s %s%s%s%s%s%s]", + return String.format("[%s.xml %s %s%d %s %s %s%s%s%s%s%s%s%s]", mXmlName, mLocale, - (mOrientation == 1 ? "port" : "land"), + (mOrientation == 1 ? "port" : "land"), mWidth, modeName(mMode), EditorInfoCompatUtils.imeOptionsName(mImeAction), + f2KeyModeName(mF2KeyMode), + (mClobberSettingsKey ? " clobberSettingsKey" : ""), + (mNavigateAction ? " navigateAction" : ""), (mPasswordInput ? " passwordInput" : ""), (mHasSettingsKey ? " hasSettingsKey" : ""), (mVoiceKeyEnabled ? " voiceKeyEnabled" : ""), (mHasVoiceKey ? " hasVoiceKey" : ""), - (mEnableShiftLock ? " enableShiftLock" : ""), - colorSchemeName(mColorScheme) + (mEnableShiftLock ? " enableShiftLock" : "") ); } @@ -157,18 +202,19 @@ public class KeyboardId { case MODE_URL: return "url"; case MODE_EMAIL: return "email"; case MODE_IM: return "im"; - case MODE_WEB: return "web"; case MODE_PHONE: return "phone"; case MODE_NUMBER: return "number"; + default: return null; } - return null; } - public static String colorSchemeName(int colorScheme) { - switch (colorScheme) { - case KeyboardView.COLOR_SCHEME_WHITE: return "white"; - case KeyboardView.COLOR_SCHEME_BLACK: return "black"; + public static String f2KeyModeName(int f2KeyMode) { + switch (f2KeyMode) { + case F2KEY_MODE_NONE: return "none"; + case F2KEY_MODE_SETTINGS: return "settings"; + case F2KEY_MODE_SHORTCUT_IME: return "shortcutIme"; + case F2KEY_MODE_SHORTCUT_IME_OR_SETTINGS: return "shortcutImeOrSettings"; + default: return null; } - return null; } } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java index 384139112..275e9d1fe 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -16,7 +16,20 @@ package com.android.inputmethod.keyboard; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.util.Log; +import android.view.ContextThemeWrapper; +import android.view.InflateException; +import android.view.LayoutInflater; +import android.view.View; +import android.view.inputmethod.EditorInfo; + +import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy; import com.android.inputmethod.compat.InputMethodManagerCompatWrapper; +import com.android.inputmethod.keyboard.internal.ModifierKeyState; +import com.android.inputmethod.keyboard.internal.ShiftKeyState; import com.android.inputmethod.latin.LatinIME; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; @@ -24,37 +37,30 @@ import com.android.inputmethod.latin.Settings; import com.android.inputmethod.latin.SubtypeSwitcher; import com.android.inputmethod.latin.Utils; -import android.content.Context; -import android.content.SharedPreferences; -import android.content.res.Resources; -import android.util.Log; -import android.view.InflateException; -import android.view.inputmethod.EditorInfo; - import java.lang.ref.SoftReference; import java.util.HashMap; import java.util.Locale; public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceChangeListener { - private static final String TAG = "KeyboardSwitcher"; - private static final boolean DEBUG = false; + private static final String TAG = KeyboardSwitcher.class.getSimpleName(); + private static final boolean DEBUG_CACHE = LatinImeLogger.sDBG; public static final boolean DEBUG_STATE = false; - private static String sConfigDefaultKeyboardThemeId; public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20100902"; private static final int[] KEYBOARD_THEMES = { - R.layout.input_basic, - R.layout.input_basic_highcontrast, - R.layout.input_stone_normal, - R.layout.input_stone_bold, - R.layout.input_gingerbread, - R.layout.input_honeycomb, + R.style.KeyboardTheme, + R.style.KeyboardTheme_HighContrast, + R.style.KeyboardTheme_Stone, + R.style.KeyboardTheme_Stone_Bold, + R.style.KeyboardTheme_Gingerbread, + R.style.KeyboardTheme_IceCreamSandwich, }; private SubtypeSwitcher mSubtypeSwitcher; private SharedPreferences mPrefs; - private LatinKeyboardView mInputView; + private View mCurrentInputView; + private LatinKeyboardView mKeyboardView; private LatinIME mInputMethodService; // TODO: Combine these key state objects with auto mode switch state. @@ -98,7 +104,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha // Default is SETTINGS_KEY_MODE_AUTO. private static final int DEFAULT_SETTINGS_KEY_MODE = SETTINGS_KEY_MODE_AUTO; - private int mLayoutId; + private int mThemeIndex = -1; + private Context mThemeContext; + private int mKeyboardWidth; private static final KeyboardSwitcher sInstance = new KeyboardSwitcher(); @@ -114,17 +122,30 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha sInstance.mInputMethodService = ims; sInstance.mPrefs = prefs; sInstance.mSubtypeSwitcher = SubtypeSwitcher.getInstance(); + sInstance.setContextThemeWrapper(ims, getKeyboardThemeIndex(ims, prefs)); + prefs.registerOnSharedPreferenceChangeListener(sInstance); + } + private static int getKeyboardThemeIndex(Context context, SharedPreferences prefs) { + final String defaultThemeId = context.getString(R.string.config_default_keyboard_theme_id); + final String themeId = prefs.getString(PREF_KEYBOARD_LAYOUT, defaultThemeId); try { - sConfigDefaultKeyboardThemeId = ims.getString( - R.string.config_default_keyboard_theme_id); - sInstance.mLayoutId = Integer.valueOf( - prefs.getString(PREF_KEYBOARD_LAYOUT, sConfigDefaultKeyboardThemeId)); + final int themeIndex = Integer.valueOf(themeId); + if (themeIndex >= 0 && themeIndex < KEYBOARD_THEMES.length) + return themeIndex; } catch (NumberFormatException e) { - sConfigDefaultKeyboardThemeId = "0"; - sInstance.mLayoutId = 0; + // Format error, keyboard theme is default to 0. + } + Log.w(TAG, "Illegal keyboard theme in preference: " + themeId + ", default to 0"); + return 0; + } + + private void setContextThemeWrapper(Context context, int themeIndex) { + if (mThemeIndex != themeIndex) { + mThemeIndex = themeIndex; + mThemeContext = new ContextThemeWrapper(context, KEYBOARD_THEMES[themeIndex]); + mKeyboardCache.clear(); } - prefs.registerOnSharedPreferenceChangeListener(sInstance); } public void loadKeyboard(EditorInfo attribute, boolean voiceKeyEnabled, @@ -142,7 +163,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha private void loadKeyboardInternal(EditorInfo attribute, boolean voiceButtonEnabled, boolean voiceButtonOnPrimary, boolean isSymbols) { - if (mInputView == null) return; + if (mKeyboardView == null) return; mAttribute = attribute; mVoiceKeyEnabled = voiceButtonEnabled; @@ -151,17 +172,39 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha // Update the settings key state because number of enabled IMEs could have been changed mSettingsKeyEnabledInSettings = getSettingsKeyMode(mPrefs, mInputMethodService); final KeyboardId id = getKeyboardId(attribute, isSymbols); - makeSymbolsKeyboardIds(id.mMode, attribute); - mCurrentId = id; - final Resources res = mInputMethodService.getResources(); - mInputView.setKeyPreviewPopupEnabled(Settings.Values.isKeyPreviewPopupEnabled(mPrefs, res), - Settings.Values.getKeyPreviewPopupDismissDelay(mPrefs, res)); + + // Note: This comment is only applied for phone number keyboard layout. + // On non-xlarge device, "@integer/key_switch_alpha_symbol" key code is used to switch + // between "phone keyboard" and "phone symbols keyboard". But on xlarge device, + // "@integer/key_shift" key code is used for that purpose in order to properly display + // "more" and "locked more" key labels. To achieve these behavior, we should initialize + // mSymbolsId and mSymbolsShiftedId to "phone keyboard" and "phone symbols keyboard" + // respectively here for xlarge device's layout switching. + mSymbolsId = makeSiblingKeyboardId(id, R.xml.kbd_symbols, R.xml.kbd_phone); + mSymbolsShiftedId = makeSiblingKeyboardId( + id, R.xml.kbd_symbols_shift, R.xml.kbd_phone_symbols); + setKeyboard(getKeyboard(id)); } + public void onSizeChanged() { + final int width = mInputMethodService.getWindow().getWindow().getDecorView().getWidth(); + if (width == 0 || mCurrentId == null) + return; + mKeyboardWidth = width; + // Set keyboard with new width. + final KeyboardId newId = mCurrentId.cloneWithNewGeometry(width); + setKeyboard(getKeyboard(newId)); + } + private void setKeyboard(final Keyboard newKeyboard) { - final Keyboard oldKeyboard = mInputView.getKeyboard(); - mInputView.setKeyboard(newKeyboard); + final Keyboard oldKeyboard = mKeyboardView.getKeyboard(); + mKeyboardView.setKeyboard(newKeyboard); + mCurrentId = newKeyboard.mId; + final Resources res = mInputMethodService.getResources(); + mKeyboardView.setKeyPreviewPopupEnabled( + Settings.Values.isKeyPreviewPopupEnabled(mPrefs, res), + Settings.Values.getKeyPreviewPopupDismissDelay(mPrefs, res)); final boolean localeChanged = (oldKeyboard == null) || !newKeyboard.mId.mLocale.equals(oldKeyboard.mId.mLocale); mInputMethodService.mHandler.startDisplayLanguageOnSpacebar(localeChanged); @@ -175,19 +218,19 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha final Locale savedLocale = Utils.setSystemLocale(res, mSubtypeSwitcher.getInputLocale()); - keyboard = new LatinKeyboard(mInputMethodService, id); + keyboard = new LatinKeyboard(mThemeContext, id, id.mWidth); if (id.mEnableShiftLock) { keyboard.enableShiftLock(); } mKeyboardCache.put(id, new SoftReference<LatinKeyboard>(keyboard)); - if (DEBUG) + if (DEBUG_CACHE) Log.d(TAG, "keyboard cache size=" + mKeyboardCache.size() + ": " + ((ref == null) ? "LOAD" : "GCed") + " id=" + id); Utils.setSystemLocale(res, savedLocale); - } else if (DEBUG) { + } else if (DEBUG_CACHE) { Log.d(TAG, "keyboard cache size=" + mKeyboardCache.size() + ": HIT id=" + id); } @@ -215,7 +258,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha private KeyboardId getKeyboardId(EditorInfo attribute, boolean isSymbols) { final int mode = Utils.getKeyboardMode(attribute); final boolean hasVoiceKey = hasVoiceKey(isSymbols); - final int charColorId = getColorScheme(); final int xmlId; final boolean enableShiftLock; @@ -242,35 +284,25 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } } final boolean hasSettingsKey = hasSettingsKey(attribute); + final int f2KeyMode = getF2KeyMode(mPrefs, mInputMethodService, attribute); + final boolean clobberSettingsKey = Utils.inPrivateImeOptions( + mInputMethodService.getPackageName(), LatinIME.IME_OPTION_NO_SETTINGS_KEY, + attribute); final Resources res = mInputMethodService.getResources(); final int orientation = res.getConfiguration().orientation; + if (mKeyboardWidth == 0) + mKeyboardWidth = res.getDisplayMetrics().widthPixels; final Locale locale = mSubtypeSwitcher.getInputLocale(); return new KeyboardId( - res.getResourceEntryName(xmlId), xmlId, charColorId, locale, orientation, mode, - attribute, hasSettingsKey, mVoiceKeyEnabled, hasVoiceKey, enableShiftLock); + res.getResourceEntryName(xmlId), xmlId, locale, orientation, mKeyboardWidth, + mode, attribute, hasSettingsKey, f2KeyMode, clobberSettingsKey, mVoiceKeyEnabled, + hasVoiceKey, enableShiftLock); } - private void makeSymbolsKeyboardIds(final int mode, EditorInfo attribute) { - final Locale locale = mSubtypeSwitcher.getInputLocale(); - final Resources res = mInputMethodService.getResources(); - final int orientation = res.getConfiguration().orientation; - final int colorScheme = getColorScheme(); - final boolean hasVoiceKey = mVoiceKeyEnabled && !mVoiceButtonOnPrimary; - final boolean hasSettingsKey = hasSettingsKey(attribute); - // Note: This comment is only applied for phone number keyboard layout. - // On non-xlarge device, "@integer/key_switch_alpha_symbol" key code is used to switch - // between "phone keyboard" and "phone symbols keyboard". But on xlarge device, - // "@integer/key_shift" key code is used for that purpose in order to properly display - // "more" and "locked more" key labels. To achieve these behavior, we should initialize - // mSymbolsId and mSymbolsShiftedId to "phone keyboard" and "phone symbols keyboard" - // respectively here for xlarge device's layout switching. - int xmlId = mode == KeyboardId.MODE_PHONE ? R.xml.kbd_phone : R.xml.kbd_symbols; - final String xmlName = res.getResourceEntryName(xmlId); - mSymbolsId = new KeyboardId(xmlName, xmlId, colorScheme, locale, orientation, mode, - attribute, hasSettingsKey, mVoiceKeyEnabled, hasVoiceKey, false); - xmlId = mode == KeyboardId.MODE_PHONE ? R.xml.kbd_phone_symbols : R.xml.kbd_symbols_shift; - mSymbolsShiftedId = new KeyboardId(xmlName, xmlId, colorScheme, locale, orientation, mode, - attribute, hasSettingsKey, mVoiceKeyEnabled, hasVoiceKey, false); + private KeyboardId makeSiblingKeyboardId(KeyboardId base, int alphabet, int phone) { + final int xmlId = base.mMode == KeyboardId.MODE_PHONE ? phone : alphabet; + final String xmlName = mInputMethodService.getResources().getResourceEntryName(xmlId); + return base.cloneWithNewLayout(xmlName, xmlId); } public int getKeyboardMode() { @@ -282,18 +314,18 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } public boolean isInputViewShown() { - return mInputView != null && mInputView.isShown(); + return mCurrentInputView != null && mCurrentInputView.isShown(); } public boolean isKeyboardAvailable() { - if (mInputView != null) - return mInputView.getKeyboard() != null; + if (mKeyboardView != null) + return mKeyboardView.getKeyboard() != null; return false; } public LatinKeyboard getLatinKeyboard() { - if (mInputView != null) { - final Keyboard keyboard = mInputView.getKeyboard(); + if (mKeyboardView != null) { + final Keyboard keyboard = mKeyboardView.getKeyboard(); if (keyboard instanceof LatinKeyboard) return (LatinKeyboard)keyboard; } @@ -346,7 +378,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha latinKeyboard.setShiftLocked(false); } if (latinKeyboard.setShifted(shifted)) { - mInputView.invalidateAllKeys(); + mKeyboardView.invalidateAllKeys(); } } } @@ -354,7 +386,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha private void setShiftLocked(boolean shiftLocked) { LatinKeyboard latinKeyboard = getLatinKeyboard(); if (latinKeyboard != null && latinKeyboard.setShiftLocked(shiftLocked)) { - mInputView.invalidateAllKeys(); + mKeyboardView.invalidateAllKeys(); } } @@ -396,7 +428,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha LatinKeyboard latinKeyboard = getLatinKeyboard(); if (latinKeyboard != null) { latinKeyboard.setAutomaticTemporaryUpperCase(); - mInputView.invalidateAllKeys(); + mKeyboardView.invalidateAllKeys(); } } @@ -491,7 +523,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha // To be able to turn off caps lock by "double tap" on shift key, we should ignore // the second tap of the "double tap" from now for a while because we just have // already turned off caps lock above. - mInputView.startIgnoringDoubleTap(); + mKeyboardView.startIgnoringDoubleTap(); } else if (isShiftedOrShiftLocked() && shiftKeyState.isPressingOnShifted() && !withSliding) { // Shift has been pressed without chording while shifted state. @@ -561,14 +593,12 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha return; final LatinKeyboard keyboard; if (mCurrentId.equals(mSymbolsId) || !mCurrentId.equals(mSymbolsShiftedId)) { - mCurrentId = mSymbolsShiftedId; - keyboard = getKeyboard(mCurrentId); + keyboard = getKeyboard(mSymbolsShiftedId); // Symbol shifted keyboard has an ALT key that has a caps lock style indicator. To // enable the indicator, we need to call setShiftLocked(true). keyboard.setShiftLocked(true); } else { - mCurrentId = mSymbolsId; - keyboard = getKeyboard(mCurrentId); + keyboard = getKeyboard(mSymbolsId); // Symbol keyboard has an ALT key that has a caps lock style indicator. To disable the // indicator, we need to call setShiftLocked(false). keyboard.setShiftLocked(false); @@ -582,11 +612,11 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } public boolean isVibrateAndSoundFeedbackRequired() { - return mInputView == null || !mInputView.isInSlidingKeyInput(); + return mKeyboardView == null || !mKeyboardView.isInSlidingKeyInput(); } private int getPointerCount() { - return mInputView == null ? 0 : mInputView.getPointerCount(); + return mKeyboardView == null ? 0 : mKeyboardView.getPointerCount(); } private void toggleKeyboardMode() { @@ -599,7 +629,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } public boolean hasDistinctMultitouch() { - return mInputView != null && mInputView.hasDistinctMultitouch(); + return mKeyboardView != null && mKeyboardView.hasDistinctMultitouch(); } private static boolean isSpaceCharacter(int c) { @@ -696,53 +726,58 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } } - public LatinKeyboardView getInputView() { - return mInputView; + public LatinKeyboardView getKeyboardView() { + return mKeyboardView; } - public LatinKeyboardView onCreateInputView() { - createInputViewInternal(mLayoutId, true); - return mInputView; + public View onCreateInputView() { + return createInputView(mThemeIndex, true); } - private void createInputViewInternal(int newLayout, boolean forceReset) { - int layoutId = newLayout; - if (mLayoutId != layoutId || mInputView == null || forceReset) { - if (mInputView != null) { - mInputView.closing(); - } - if (KEYBOARD_THEMES.length <= layoutId) { - layoutId = Integer.valueOf(sConfigDefaultKeyboardThemeId); - } + private View createInputView(final int newThemeIndex, final boolean forceRecreate) { + if (mCurrentInputView != null && mThemeIndex == newThemeIndex && !forceRecreate) + return mCurrentInputView; - Utils.GCUtils.getInstance().reset(); - boolean tryGC = true; - for (int i = 0; i < Utils.GCUtils.GC_TRY_LOOP_MAX && tryGC; ++i) { - try { - mInputView = (LatinKeyboardView) mInputMethodService.getLayoutInflater( - ).inflate(KEYBOARD_THEMES[layoutId], null); - tryGC = false; - } catch (OutOfMemoryError e) { - Log.w(TAG, "load keyboard failed: " + e); - tryGC = Utils.GCUtils.getInstance().tryGCOrWait( - mLayoutId + "," + layoutId, e); - } catch (InflateException e) { - Log.w(TAG, "load keyboard failed: " + e); - tryGC = Utils.GCUtils.getInstance().tryGCOrWait( - mLayoutId + "," + layoutId, e); - } + if (mKeyboardView != null) { + mKeyboardView.closing(); + } + + final int oldThemeIndex = mThemeIndex; + Utils.GCUtils.getInstance().reset(); + boolean tryGC = true; + for (int i = 0; i < Utils.GCUtils.GC_TRY_LOOP_MAX && tryGC; ++i) { + try { + setContextThemeWrapper(mInputMethodService, newThemeIndex); + mCurrentInputView = LayoutInflater.from(mThemeContext).inflate( + R.layout.input_view, null); + tryGC = false; + } catch (OutOfMemoryError e) { + Log.w(TAG, "load keyboard failed: " + e); + tryGC = Utils.GCUtils.getInstance().tryGCOrWait( + oldThemeIndex + "," + newThemeIndex, e); + } catch (InflateException e) { + Log.w(TAG, "load keyboard failed: " + e); + tryGC = Utils.GCUtils.getInstance().tryGCOrWait( + oldThemeIndex + "," + newThemeIndex, e); } - mInputView.setOnKeyboardActionListener(mInputMethodService); - mLayoutId = layoutId; } + + mKeyboardView = (LatinKeyboardView) mCurrentInputView.findViewById(R.id.keyboard_view); + mKeyboardView.setOnKeyboardActionListener(mInputMethodService); + + // This always needs to be set since the accessibility state can + // potentially change without the input view being re-created. + AccessibleKeyboardViewProxy.setView(mKeyboardView); + + return mCurrentInputView; } - private void postSetInputView() { + private void postSetInputView(final View newInputView) { mInputMethodService.mHandler.post(new Runnable() { @Override public void run() { - if (mInputView != null) { - mInputMethodService.setInputView(mInputView); + if (newInputView != null) { + mInputMethodService.setInputView(newInputView); } mInputMethodService.updateInputViewShown(); } @@ -752,43 +787,39 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (PREF_KEYBOARD_LAYOUT.equals(key)) { - final int layoutId = Integer.valueOf( - sharedPreferences.getString(key, sConfigDefaultKeyboardThemeId)); - createInputViewInternal(layoutId, false); - postSetInputView(); + final int layoutId = getKeyboardThemeIndex(mInputMethodService, sharedPreferences); + postSetInputView(createInputView(layoutId, false)); } else if (Settings.PREF_SETTINGS_KEY.equals(key)) { mSettingsKeyEnabledInSettings = getSettingsKeyMode(sharedPreferences, mInputMethodService); - createInputViewInternal(mLayoutId, true); - postSetInputView(); + postSetInputView(createInputView(mThemeIndex, true)); } } - private int getColorScheme() { - return (mInputView != null) - ? mInputView.getColorScheme() : KeyboardView.COLOR_SCHEME_WHITE; - } - public void onAutoCorrectionStateChanged(boolean isAutoCorrection) { - if (isAutoCorrection != mIsAutoCorrectionActive) { - LatinKeyboardView keyboardView = getInputView(); + if (mIsAutoCorrectionActive != isAutoCorrection) { mIsAutoCorrectionActive = isAutoCorrection; - keyboardView.invalidateKey(((LatinKeyboard) keyboardView.getKeyboard()) - .onAutoCorrectionStateChanged(isAutoCorrection)); + final LatinKeyboard keyboard = getLatinKeyboard(); + if (keyboard != null && keyboard.needsAutoCorrectionSpacebarLed()) { + final Key invalidatedKey = keyboard.onAutoCorrectionStateChanged(isAutoCorrection); + final LatinKeyboardView keyboardView = getKeyboardView(); + if (keyboardView != null) + keyboardView.invalidateKey(invalidatedKey); + } } } private static boolean getSettingsKeyMode(SharedPreferences prefs, Context context) { - Resources resources = context.getResources(); - final boolean showSettingsKeyOption = resources.getBoolean( + final Resources res = context.getResources(); + final boolean showSettingsKeyOption = res.getBoolean( R.bool.config_enable_show_settings_key_option); if (showSettingsKeyOption) { final String settingsKeyMode = prefs.getString(Settings.PREF_SETTINGS_KEY, - resources.getString(DEFAULT_SETTINGS_KEY_MODE)); + res.getString(DEFAULT_SETTINGS_KEY_MODE)); // We show the settings key when 1) SETTINGS_KEY_MODE_ALWAYS_SHOW or // 2) SETTINGS_KEY_MODE_AUTO and there are two or more enabled IMEs on the system - if (settingsKeyMode.equals(resources.getString(SETTINGS_KEY_MODE_ALWAYS_SHOW)) - || (settingsKeyMode.equals(resources.getString(SETTINGS_KEY_MODE_AUTO)) + if (settingsKeyMode.equals(res.getString(SETTINGS_KEY_MODE_ALWAYS_SHOW)) + || (settingsKeyMode.equals(res.getString(SETTINGS_KEY_MODE_AUTO)) && Utils.hasMultipleEnabledIMEsOrSubtypes( (InputMethodManagerCompatWrapper.getInstance(context))))) { return true; @@ -798,4 +829,21 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha // If the show settings key option is disabled, we always try showing the settings key. return true; } + + private static int getF2KeyMode(SharedPreferences prefs, Context context, + EditorInfo attribute) { + final boolean clobberSettingsKey = Utils.inPrivateImeOptions( + context.getPackageName(), LatinIME.IME_OPTION_NO_SETTINGS_KEY, attribute); + final Resources res = context.getResources(); + final String settingsKeyMode = prefs.getString(Settings.PREF_SETTINGS_KEY, + res.getString(DEFAULT_SETTINGS_KEY_MODE)); + if (settingsKeyMode.equals(res.getString(SETTINGS_KEY_MODE_AUTO))) { + return clobberSettingsKey ? KeyboardId.F2KEY_MODE_SHORTCUT_IME + : KeyboardId.F2KEY_MODE_SHORTCUT_IME_OR_SETTINGS; + } else if (settingsKeyMode.equals(res.getString(SETTINGS_KEY_MODE_ALWAYS_SHOW))) { + return clobberSettingsKey ? KeyboardId.F2KEY_MODE_NONE : KeyboardId.F2KEY_MODE_SETTINGS; + } else { // SETTINGS_KEY_MODE_ALWAYS_HIDE + return KeyboardId.F2KEY_MODE_SHORTCUT_IME; + } + } } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 4f85c0348..8d4bfd7a7 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -16,9 +16,6 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.latin.LatinImeLogger; -import com.android.inputmethod.latin.R; - import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; @@ -44,12 +41,19 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; -import android.view.ViewGroup.MarginLayoutParams; -import android.widget.FrameLayout; -import android.widget.LinearLayout; +import android.view.accessibility.AccessibilityEvent; import android.widget.PopupWindow; import android.widget.TextView; +import com.android.inputmethod.accessibility.AccessibilityUtils; +import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy; +import com.android.inputmethod.compat.FrameLayoutCompatUtils; +import com.android.inputmethod.keyboard.internal.MiniKeyboardBuilder; +import com.android.inputmethod.keyboard.internal.PointerTrackerQueue; +import com.android.inputmethod.keyboard.internal.SwipeTracker; +import com.android.inputmethod.latin.LatinImeLogger; +import com.android.inputmethod.latin.R; + import java.util.ArrayList; import java.util.HashMap; import java.util.WeakHashMap; @@ -59,17 +63,21 @@ import java.util.WeakHashMap; * presses and touch movements. * * @attr ref R.styleable#KeyboardView_backgroundDimAmount - * @attr ref R.styleable#KeyboardView_colorScheme * @attr ref R.styleable#KeyboardView_keyBackground * @attr ref R.styleable#KeyboardView_keyHysteresisDistance * @attr ref R.styleable#KeyboardView_keyLetterRatio - * @attr ref R.styleable#KeyboardView_keyLetterStyle + * @attr ref R.styleable#KeyboardView_keyLabelRatio + * @attr ref R.styleable#KeyboardView_keyHintLetterRatio + * @attr ref R.styleable#KeyboardView_keyUppercaseLetterRatio + * @attr ref R.styleable#KeyboardView_keyTextStyle * @attr ref R.styleable#KeyboardView_keyPreviewLayout * @attr ref R.styleable#KeyboardView_keyPreviewOffset * @attr ref R.styleable#KeyboardView_keyPreviewHeight * @attr ref R.styleable#KeyboardView_keyTextColor * @attr ref R.styleable#KeyboardView_keyTextColorDisabled - * @attr ref R.styleable#KeyboardView_labelTextRatio + * @attr ref R.styleable#KeyboardView_keyHintLetterColor + * @attr ref R.styleable#KeyboardView_keyUppercaseLetterInactivatedColor + * @attr ref R.styleable#KeyboardView_keyUppercaseLetterActivatedColor * @attr ref R.styleable#KeyboardView_verticalCorrection * @attr ref R.styleable#KeyboardView_popupLayout * @attr ref R.styleable#KeyboardView_shadowColor @@ -83,9 +91,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private static final boolean ENABLE_CAPSLOCK_BY_LONGPRESS = true; private static final boolean ENABLE_CAPSLOCK_BY_DOUBLETAP = true; - public static final int COLOR_SCHEME_WHITE = 0; - public static final int COLOR_SCHEME_BLACK = 1; - // Timing constants private final int mKeyRepeatInterval; @@ -96,10 +101,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { // XML attribute private final float mKeyLetterRatio; private final int mKeyTextColor; - private final int mKeyTextColorDisabled; - private final Typeface mKeyLetterStyle; - private final float mLabelTextRatio; - private final int mColorScheme; + private final int mKeyTextInactivatedColor; + private final Typeface mKeyTextStyle; + private final float mKeyLabelRatio; + private final float mKeyHintLetterRatio; + private final float mKeyUppercaseLetterRatio; private final int mShadowColor; private final float mShadowRadius; private final Drawable mKeyBackground; @@ -109,11 +115,17 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private final int mPreviewOffset; private final int mPreviewHeight; private final int mPopupLayout; + private final Drawable mKeyPopupHintIcon; + private final int mKeyHintLetterColor; + private final int mKeyUppercaseLetterInactivatedColor; + private final int mKeyUppercaseLetterActivatedColor; // Main keyboard private Keyboard mKeyboard; private int mKeyLetterSize; - private int mLabelTextSize; + private int mKeyLabelSize; + private int mKeyHintLetterSize; + private int mKeyUppercaseLetterSize; // Key preview private boolean mInForeground; @@ -121,7 +133,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private float mPreviewTextRatio; private int mPreviewTextSize; private boolean mShowKeyPreviewPopup = true; - private int mKeyPreviewPopupDisplayedY; private final int mDelayBeforePreview; private int mDelayAfterPreview; private ViewGroup mPreviewPlacer; @@ -168,18 +179,17 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private Bitmap mBuffer; /** The canvas for the above mutable keyboard bitmap */ private Canvas mCanvas; - private final Paint mPaint; - private final Rect mPadding; + private final Paint mPaint = new Paint(); + private final Rect mPadding = new Rect(); + private final Rect mTextBounds = new Rect(); // This map caches key label text height in pixel as value and key label text size as map key. private final HashMap<Integer, Integer> mTextHeightCache = new HashMap<Integer, Integer>(); + // This map caches key label text width in pixel as value and key label text size as map key. + private final HashMap<Integer, Integer> mTextWidthCache = new HashMap<Integer, Integer>(); // Distance from horizontal center of the key, proportional to key label text height and width. - private final float KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER = 0.45f; - private final float KEY_LABEL_VERTICAL_PADDING_FACTOR = 1.60f; - private final String KEY_LABEL_REFERENCE_CHAR = "H"; - private final int KEY_LABEL_OPTION_ALIGN_LEFT = 1; - private final int KEY_LABEL_OPTION_ALIGN_RIGHT = 2; - private final int KEY_LABEL_OPTION_ALIGN_BOTTOM = 8; - private final int KEY_LABEL_OPTION_FONT_NORMAL = 16; + private static final float KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER = 0.45f; + private static final float KEY_LABEL_VERTICAL_PADDING_FACTOR = 1.60f; + private static final String KEY_LABEL_REFERENCE_CHAR = "M"; private final int mKeyLabelHorizontalPadding; private final UIHandler mHandler = new UIHandler(); @@ -321,18 +331,27 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mPreviewOffset = a.getDimensionPixelOffset(R.styleable.KeyboardView_keyPreviewOffset, 0); mPreviewHeight = a.getDimensionPixelSize(R.styleable.KeyboardView_keyPreviewHeight, 80); mKeyLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLetterRatio); + mKeyLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLabelRatio); + mKeyHintLetterRatio = getRatio(a, R.styleable.KeyboardView_keyHintLetterRatio); + mKeyUppercaseLetterRatio = getRatio(a, + R.styleable.KeyboardView_keyUppercaseLetterRatio); mKeyTextColor = a.getColor(R.styleable.KeyboardView_keyTextColor, 0xFF000000); - mKeyTextColorDisabled = a.getColor( - R.styleable.KeyboardView_keyTextColorDisabled, 0xFF000000); - mLabelTextRatio = getRatio(a, R.styleable.KeyboardView_labelTextRatio); + mKeyTextInactivatedColor = a.getColor( + R.styleable.KeyboardView_keyTextInactivatedColor, 0xFF000000); + mKeyPopupHintIcon = a.getDrawable(R.styleable.KeyboardView_keyPopupHintIcon); + mKeyHintLetterColor = a.getColor(R.styleable.KeyboardView_keyHintLetterColor, 0); + mKeyUppercaseLetterInactivatedColor = a.getColor( + R.styleable.KeyboardView_keyUppercaseLetterInactivatedColor, 0); + mKeyUppercaseLetterActivatedColor = a.getColor( + R.styleable.KeyboardView_keyUppercaseLetterActivatedColor, 0); + mKeyTextStyle = Typeface.defaultFromStyle( + a.getInt(R.styleable.KeyboardView_keyTextStyle, Typeface.NORMAL)); mPopupLayout = a.getResourceId(R.styleable.KeyboardView_popupLayout, 0); mShadowColor = a.getColor(R.styleable.KeyboardView_shadowColor, 0); mShadowRadius = a.getFloat(R.styleable.KeyboardView_shadowRadius, 0f); // TODO: Use Theme (android.R.styleable.Theme_backgroundDimAmount) mBackgroundDimAmount = a.getFloat(R.styleable.KeyboardView_backgroundDimAmount, 0.5f); - mKeyLetterStyle = Typeface.defaultFromStyle( - a.getInt(R.styleable.KeyboardView_keyLetterStyle, Typeface.NORMAL)); - mColorScheme = a.getInt(R.styleable.KeyboardView_colorScheme, COLOR_SCHEME_WHITE); + a.recycle(); final Resources res = getResources(); @@ -347,12 +366,10 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mKeyLabelHorizontalPadding = (int)res.getDimension( R.dimen.key_label_horizontal_alignment_padding); - mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setTextAlign(Align.CENTER); mPaint.setAlpha(255); - mPadding = new Rect(0, 0, 0, 0); mKeyBackground.getPadding(mPadding); mSwipeThreshold = (int) (500 * res.getDisplayMetrics().density); @@ -462,6 +479,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { return mKeyboardActionListener; } + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + // TODO: Should notify InputMethodService instead? + KeyboardSwitcher.getInstance().onSizeChanged(); + } + /** * Attaches a keyboard to this view. The keyboard can be switched at any time and the * view will re-layout itself to accommodate the keyboard. @@ -490,7 +513,10 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mPopupPanelCache.clear(); final int keyHeight = keyboard.getRowHeight() - keyboard.getVerticalGap(); mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio); - mLabelTextSize = (int)(keyHeight * mLabelTextRatio); + mKeyLabelSize = (int)(keyHeight * mKeyLabelRatio); + mKeyHintLetterSize = (int)(keyHeight * mKeyHintLetterRatio); + mKeyUppercaseLetterSize = (int)( + keyHeight * mKeyUppercaseLetterRatio); mPreviewTextSize = (int)(keyHeight * mPreviewTextRatio); } @@ -533,10 +559,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { return mShowKeyPreviewPopup; } - public int getColorScheme() { - return mColorScheme; - } - /** * When enabled, calls to {@link KeyboardActionListener#onCodeInput} will include key * codes for adjacent keys. When disabled, only the primary key code will be @@ -597,8 +619,14 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mDirtyRect.union(0, 0, width, height); } if (mBuffer == null || mBuffer.getWidth() != width || mBuffer.getHeight() != height) { + if (mBuffer != null) + mBuffer.recycle(); mBuffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); - mCanvas = new Canvas(mBuffer); + if (mCanvas != null) { + mCanvas.setBitmap(mBuffer); + } else { + mCanvas = new Canvas(mBuffer); + } } final Canvas canvas = mCanvas; canvas.clipRect(mDirtyRect, Op.REPLACE); @@ -677,7 +705,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { // Vertical label text alignment. final float baseline; - if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_BOTTOM) != 0) { + if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_BOTTOM) != 0) { baseline = key.mHeight - labelCharHeight * KEY_LABEL_VERTICAL_PADDING_FACTOR; if (DEBUG_SHOW_ALIGN) drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000, @@ -691,12 +719,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { } // Horizontal label text alignment final int positionX; - if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_LEFT) != 0) { + if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) { positionX = mKeyLabelHorizontalPadding + padding.left; paint.setTextAlign(Align.LEFT); if (DEBUG_SHOW_ALIGN) drawVerticalLine(canvas, positionX, rowHeight, 0xc0800080, new Paint()); - } else if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_RIGHT) != 0) { + } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) { positionX = keyDrawWidth - mKeyLabelHorizontalPadding - padding.right; paint.setTextAlign(Align.RIGHT); if (DEBUG_SHOW_ALIGN) @@ -709,12 +737,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { drawVerticalLine(canvas, positionX, rowHeight, 0xc0008080, new Paint()); } } - if (key.mManualTemporaryUpperCaseHintIcon != null && isManualTemporaryUpperCase) { - paint.setColor(mKeyTextColorDisabled); + if (key.hasUppercaseLetter() && isManualTemporaryUpperCase) { + paint.setColor(mKeyTextInactivatedColor); } else { paint.setColor(mKeyTextColor); } - if (key.mEnabled) { + if (key.isEnabled()) { // Set a drop shadow for the text paint.setShadowLayer(mShadowRadius, 0, 0, mShadowColor); } else { @@ -726,6 +754,27 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { paint.setShadowLayer(0, 0, 0, 0); } + // Draw hint letter. + if (key.mHintLetter != null) { + final String label = key.mHintLetter.toString(); + final int textColor; + final int textSize; + if (key.hasUppercaseLetter()) { + textColor = isManualTemporaryUpperCase ? mKeyUppercaseLetterActivatedColor + : mKeyUppercaseLetterInactivatedColor; + textSize = mKeyUppercaseLetterSize; + } else { + textColor = mKeyHintLetterColor; + textSize = mKeyHintLetterSize; + } + paint.setColor(textColor); + paint.setTextSize(textSize); + // Note: padding.right for drawX? + final float drawX = keyDrawWidth - getLabelCharWidth(textSize, paint); + final float drawY = -paint.ascent() + padding.top; + canvas.drawText(label, drawX, drawY, paint); + } + // Draw key icon. final Drawable icon = key.getIcon(); if (key.mLabel == null && icon != null) { @@ -733,11 +782,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { final int drawableHeight = icon.getIntrinsicHeight(); final int drawableX; final int drawableY = (key.mHeight + padding.top - padding.bottom - drawableHeight) / 2; - if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_LEFT) != 0) { + if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) { drawableX = padding.left + mKeyLabelHorizontalPadding; if (DEBUG_SHOW_ALIGN) drawVerticalLine(canvas, drawableX, rowHeight, 0xc0800080, new Paint()); - } else if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_RIGHT) != 0) { + } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) { drawableX = keyDrawWidth - padding.right - mKeyLabelHorizontalPadding - drawableWidth; if (DEBUG_SHOW_ALIGN) @@ -755,15 +804,14 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { 0x80c00000, new Paint()); } - // Draw hint icon. - if (key.mHintIcon != null) { + // Draw popup hint icon "...". + // TODO: Draw "..." by text. + if (key.hasPopupHint()) { final int drawableWidth = keyDrawWidth; final int drawableHeight = key.mHeight; final int drawableX = 0; final int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL; - Drawable hintIcon = (isManualTemporaryUpperCase - && key.mManualTemporaryUpperCaseHintIcon != null) - ? key.mManualTemporaryUpperCaseHintIcon : key.mHintIcon; + final Drawable hintIcon = mKeyPopupHintIcon; drawIcon(canvas, hintIcon, drawableX, drawableY, drawableWidth, drawableHeight); if (DEBUG_SHOW_ALIGN) drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight, @@ -777,16 +825,18 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { // For characters, use large font. For labels like "Done", use small font. final int labelSize; final Typeface labelStyle; + if ((keyLabelOption & Key.LABEL_OPTION_FONT_NORMAL) != 0) { + labelStyle = Typeface.DEFAULT; + } else if ((keyLabelOption & Key.LABEL_OPTION_FONT_FIXED_WIDTH) != 0) { + labelStyle = Typeface.MONOSPACE; + } else { + labelStyle = mKeyTextStyle; + } if (label.length() > 1) { - labelSize = mLabelTextSize; - if ((keyLabelOption & KEY_LABEL_OPTION_FONT_NORMAL) != 0) { - labelStyle = Typeface.DEFAULT; - } else { - labelStyle = Typeface.DEFAULT_BOLD; - } + labelSize = (keyLabelOption & Key.LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO) != 0 + ? mKeyLetterSize : mKeyLabelSize; } else { labelSize = mKeyLetterSize; - labelStyle = mKeyLetterStyle; } paint.setTextSize(labelSize); paint.setTypeface(labelStyle); @@ -799,14 +849,26 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { if (labelHeightValue != null) { labelCharHeight = labelHeightValue; } else { - Rect textBounds = new Rect(); - paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, textBounds); - labelCharHeight = textBounds.height(); + paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); + labelCharHeight = mTextBounds.height(); mTextHeightCache.put(labelSize, labelCharHeight); } return labelCharHeight; } + private int getLabelCharWidth(int labelSize, Paint paint) { + Integer labelWidthValue = mTextWidthCache.get(labelSize); + final int labelCharWidth; + if (labelWidthValue != null) { + labelCharWidth = labelWidthValue; + } else { + paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); + labelCharWidth = mTextBounds.width(); + mTextWidthCache.put(labelSize, labelCharWidth); + } + return labelCharWidth; + } + private static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width, int height) { canvas.translate(x, y); @@ -873,27 +935,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { } private void addKeyPreview(TextView keyPreview) { - ViewGroup placer = mPreviewPlacer; - if (placer == null) { - final FrameLayout screenContent = (FrameLayout) getRootView().findViewById( - android.R.id.content); - if (android.os.Build.VERSION.SDK_INT >= /* HONEYCOMB */11) { - placer = screenContent; - } else { - // Insert LinearLayout to be able to setMargin because pre-Honeycomb FrameLayout - // could not handle setMargin properly. - placer = new LinearLayout(getContext()); - screenContent.addView(placer); - } - mPreviewPlacer = placer; - } - if (placer instanceof FrameLayout) { - // Honeycomb or later. - placer.addView(keyPreview, new FrameLayout.LayoutParams(0, 0)); - } else { - // Gingerbread or ealier. - placer.addView(keyPreview, new LinearLayout.LayoutParams(0, 0)); + if (mPreviewPlacer == null) { + mPreviewPlacer = FrameLayoutCompatUtils.getPlacer( + (ViewGroup)getRootView().findViewById(android.R.id.content)); } + final ViewGroup placer = mPreviewPlacer; + placer.addView(keyPreview, FrameLayoutCompatUtils.newLayoutParam(placer, 0, 0)); } // TODO: Introduce minimum duration for displaying key previews @@ -921,14 +968,14 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { if (key.mLabel != null) { // TODO Should take care of temporaryShiftLabel here. previewText.setCompoundDrawables(null, null, null, null); - previewText.setText(adjustCase(tracker.getPreviewText(key))); if (key.mLabel.length() > 1) { previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyLetterSize); previewText.setTypeface(Typeface.DEFAULT_BOLD); } else { previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSize); - previewText.setTypeface(mKeyLetterStyle); + previewText.setTypeface(mKeyTextStyle); } + previewText.setText(adjustCase(tracker.getPreviewText(key))); } else { final Drawable previewIcon = key.getPreviewIcon(); previewText.setCompoundDrawables(null, null, null, @@ -947,15 +994,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { getLocationInWindow(mCoordinates); final int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0]; final int previewY = key.mY - previewHeight + mCoordinates[1] + mPreviewOffset; - // Record key preview position to display mini-keyboard later at the same position - mKeyPreviewPopupDisplayedY = previewY; // Place the key preview. // TODO: Adjust position of key previews which touch screen edges - final MarginLayoutParams lp = (MarginLayoutParams)previewText.getLayoutParams(); - lp.width = previewWidth; - lp.height = previewHeight; - lp.setMargins(previewX, previewY, 0, 0); + FrameLayoutCompatUtils.placeViewAt( + previewText, previewX, previewY, previewWidth, previewHeight); previewText.setVisibility(VISIBLE); } @@ -1070,7 +1113,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { miniKeyboardView.setKeyboard(keyboard); container.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST), - MeasureSpec.makeMeasureSpec(getHeight(), MeasureSpec.AT_MOST)); + MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); return miniKeyboardView; } @@ -1099,7 +1142,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mPopupWindow.setClippingEnabled(false); } mPopupMiniKeyboardPanel = popupPanel; - popupPanel.showPanel(this, parentKey, tracker, mKeyPreviewPopupDisplayedY, mPopupWindow); + popupPanel.showPanel(this, parentKey, tracker, mPopupWindow); invalidateAllKeys(); return true; @@ -1278,4 +1321,37 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { public boolean handleBack() { return dismissMiniKeyboard(); } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) { + return AccessibleKeyboardViewProxy.getInstance().dispatchTouchEvent(event) + || super.dispatchTouchEvent(event); + } + + return super.dispatchTouchEvent(event); + } + + @Override + public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { + if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) { + final PointerTracker tracker = getPointerTracker(0); + return AccessibleKeyboardViewProxy.getInstance().dispatchPopulateAccessibilityEvent( + event, tracker) || super.dispatchPopulateAccessibilityEvent(event); + } + + return super.dispatchPopulateAccessibilityEvent(event); + } + + public boolean onHoverEvent(MotionEvent event) { + // Since reflection doesn't support calling superclass methods, this + // method checks for the existence of onHoverEvent() in the View class + // before returning a value. + if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) { + final PointerTracker tracker = getPointerTracker(0); + return AccessibleKeyboardViewProxy.getInstance().onHoverEvent(event, tracker); + } + + return false; + } } diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java index c279769f6..00bf348f2 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java @@ -16,9 +16,6 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.latin.R; -import com.android.inputmethod.latin.SubtypeSwitcher; - import android.content.Context; import android.content.res.Resources; import android.content.res.Resources.Theme; @@ -36,6 +33,10 @@ import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import com.android.inputmethod.keyboard.internal.SlidingLocaleDrawable; +import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.SubtypeSwitcher; + import java.lang.ref.SoftReference; import java.util.Arrays; import java.util.HashMap; @@ -49,7 +50,8 @@ public class LatinKeyboard extends Keyboard { public static final int CODE_NEXT_LANGUAGE = -100; public static final int CODE_PREV_LANGUAGE = -101; - private final Context mContext; + private final Resources mRes; + private final Theme mTheme; private final SubtypeSwitcher mSubtypeSwitcher = SubtypeSwitcher.getInstance(); /* Space key and its icons, drawables and colors. */ @@ -57,15 +59,16 @@ public class LatinKeyboard extends Keyboard { private final Drawable mSpaceIcon; private final Drawable mSpacePreviewIcon; private final int mSpaceKeyIndex; - private final Drawable mSpaceAutoCorrectionIndicator; - private final Drawable mButtonArrowLeftIcon; - private final Drawable mButtonArrowRightIcon; + private final boolean mAutoCorrectionSpacebarLedEnabled; + private final Drawable mAutoCorrectionSpacebarLedIcon; + private final Drawable mSpacebarArrowLeftIcon; + private final Drawable mSpacebarArrowRightIcon; private final int mSpacebarTextColor; private final int mSpacebarTextShadowColor; private float mSpacebarTextFadeFactor = 0.0f; private final int mSpacebarLanguageSwitchThreshold; private int mSpacebarSlidingLanguageSwitchDiff; - private SlidingLocaleDrawable mSlidingLocaleIcon; + private final SlidingLocaleDrawable mSlidingLocaleIcon; private final HashMap<Integer, SoftReference<BitmapDrawable>> mSpaceDrawableCache = new HashMap<Integer, SoftReference<BitmapDrawable>>(); @@ -78,7 +81,7 @@ public class LatinKeyboard extends Keyboard { // of the most common key width of this keyboard). private static final int SPACEBAR_DRAG_WIDTH = 3; // Minimum width of space key preview (proportional to keyboard width). - private static final float SPACEBAR_POPUP_MIN_RATIO = 0.4f; + private static final float SPACEBAR_POPUP_MIN_RATIO = 0.5f; // Height in space key the language name will be drawn. (proportional to space key height) public static final float SPACEBAR_LANGUAGE_BASELINE = 0.6f; // If the full language name needs to be smaller than this value to be drawn on space key, @@ -88,10 +91,10 @@ public class LatinKeyboard extends Keyboard { private static final String SMALL_TEXT_SIZE_OF_LANGUAGE_ON_SPACEBAR = "small"; private static final String MEDIUM_TEXT_SIZE_OF_LANGUAGE_ON_SPACEBAR = "medium"; - public LatinKeyboard(Context context, KeyboardId id) { - super(context, id.getXmlId(), id); - final Resources res = context.getResources(); - mContext = context; + public LatinKeyboard(Context context, KeyboardId id, int width) { + super(context, id.getXmlId(), id, width); + mRes = context.getResources(); + mTheme = context.getTheme(); final List<Key> keys = getKeys(); int spaceKeyIndex = -1; @@ -118,21 +121,35 @@ public class LatinKeyboard extends Keyboard { mShortcutKey = (shortcutKeyIndex >= 0) ? keys.get(shortcutKeyIndex) : null; mEnabledShortcutIcon = (mShortcutKey != null) ? mShortcutKey.getIcon() : null; - mSpacebarTextColor = res.getColor(R.color.latinkeyboard_bar_language_text); - if (id.mColorScheme == KeyboardView.COLOR_SCHEME_BLACK) { - mSpacebarTextShadowColor = res.getColor( - R.color.latinkeyboard_bar_language_shadow_black); - mDisabledShortcutIcon = res.getDrawable(R.drawable.sym_bkeyboard_voice_off); - } else { // default color scheme is KeyboardView.COLOR_SCHEME_WHITE - mSpacebarTextShadowColor = res.getColor( - R.color.latinkeyboard_bar_language_shadow_white); - mDisabledShortcutIcon = res.getDrawable(R.drawable.sym_keyboard_voice_off_holo); - } - mSpaceAutoCorrectionIndicator = res.getDrawable(R.drawable.sym_keyboard_space_led); - mButtonArrowLeftIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_left); - mButtonArrowRightIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_right); + final TypedArray a = context.obtainStyledAttributes( + null, R.styleable.LatinKeyboard, R.attr.latinKeyboardStyle, R.style.LatinKeyboard); + mAutoCorrectionSpacebarLedEnabled = a.getBoolean( + R.styleable.LatinKeyboard_autoCorrectionSpacebarLedEnabled, false); + mAutoCorrectionSpacebarLedIcon = a.getDrawable( + R.styleable.LatinKeyboard_autoCorrectionSpacebarLedIcon); + mDisabledShortcutIcon = a.getDrawable(R.styleable.LatinKeyboard_disabledShortcutIcon); + mSpacebarTextColor = a.getColor(R.styleable.LatinKeyboard_spacebarTextColor, 0); + mSpacebarTextShadowColor = a.getColor( + R.styleable.LatinKeyboard_spacebarTextShadowColor, 0); + mSpacebarArrowLeftIcon = a.getDrawable( + R.styleable.LatinKeyboard_spacebarArrowLeftIcon); + mSpacebarArrowRightIcon = a.getDrawable( + R.styleable.LatinKeyboard_spacebarArrowRightIcon); + a.recycle(); + // The threshold is "key width" x 1.25 mSpacebarLanguageSwitchThreshold = (getMostCommonKeyWidth() * 5) / 4; + + if (mSpaceKey != null && mSpacePreviewIcon != null) { + final int slidingIconWidth = Math.max(mSpaceKey.mWidth, + (int)(getMinWidth() * SPACEBAR_POPUP_MIN_RATIO)); + final int spaceKeyheight = mSpacePreviewIcon.getIntrinsicHeight(); + mSlidingLocaleIcon = new SlidingLocaleDrawable( + context, mSpacePreviewIcon, slidingIconWidth, spaceKeyheight); + mSlidingLocaleIcon.setBounds(0, 0, slidingIconWidth, spaceKeyheight); + } else { + mSlidingLocaleIcon = null; + } } public void setSpacebarTextFadeFactor(float fadeFactor, LatinKeyboardView view) { @@ -157,12 +174,16 @@ public class LatinKeyboard extends Keyboard { public void updateShortcutKey(boolean available, LatinKeyboardView view) { if (mShortcutKey == null) return; - mShortcutKey.mEnabled = available; + mShortcutKey.setEnabled(available); mShortcutKey.setIcon(available ? mEnabledShortcutIcon : mDisabledShortcutIcon); if (view != null) view.invalidateKey(mShortcutKey); } + public boolean needsAutoCorrectionSpacebarLed() { + return mAutoCorrectionSpacebarLedEnabled; + } + /** * @return a key which should be invalidated. */ @@ -193,7 +214,7 @@ public class LatinKeyboard extends Keyboard { } // Layout local language name and left and right arrow on spacebar. - private static String layoutSpacebar(Paint paint, Locale locale, Drawable lArrow, + private static String layoutSpacebar(Paint paint, Locale locale, Drawable icon, Drawable lArrow, Drawable rArrow, int width, int height, float origTextSize) { final float arrowWidth = lArrow.getIntrinsicWidth(); final float arrowHeight = lArrow.getIntrinsicHeight(); @@ -230,7 +251,9 @@ public class LatinKeyboard extends Keyboard { paint.setTextSize(textSize); // Place left and right arrow just before and after language text. - final float baseline = height * SPACEBAR_LANGUAGE_BASELINE; + final float textHeight = -paint.ascent() + paint.descent(); + final float baseline = (icon != null) ? height * SPACEBAR_LANGUAGE_BASELINE + : height / 2 + textHeight / 2; final int top = (int)(baseline - arrowHeight); final float remains = (width - textWidth) / 2; lArrow.setBounds((int)(remains - arrowWidth), top, (int)remains, (int)baseline); @@ -246,7 +269,7 @@ public class LatinKeyboard extends Keyboard { final SoftReference<BitmapDrawable> ref = mSpaceDrawableCache.get(hashCode); BitmapDrawable drawable = (ref == null) ? null : ref.get(); if (drawable == null) { - drawable = new BitmapDrawable(mContext.getResources(), drawSpacebar( + drawable = new BitmapDrawable(mRes, drawSpacebar( locale, isAutoCorrection, mSpacebarTextFadeFactor)); mSpaceDrawableCache.put(hashCode, new SoftReference<BitmapDrawable>(drawable)); } @@ -259,7 +282,7 @@ public class LatinKeyboard extends Keyboard { final int height = mSpaceIcon != null ? mSpaceIcon.getIntrinsicHeight() : mSpaceKey.mHeight; final Bitmap buffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(buffer); - final Resources res = mContext.getResources(); + final Resources res = mRes; canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); // If application locales are explicitly selected. @@ -281,9 +304,9 @@ public class LatinKeyboard extends Keyboard { defaultTextSize = 14; } - final String language = layoutSpacebar(paint, inputLocale, - mButtonArrowLeftIcon, mButtonArrowRightIcon, width, height, - getTextSizeFromTheme(mContext.getTheme(), textStyle, defaultTextSize)); + final String language = layoutSpacebar(paint, inputLocale, mSpaceIcon, + mSpacebarArrowLeftIcon, mSpacebarArrowRightIcon, width, height, + getTextSizeFromTheme(mTheme, textStyle, defaultTextSize)); // Draw language text with shadow // In case there is no space icon, we will place the language text at the center of @@ -303,21 +326,21 @@ public class LatinKeyboard extends Keyboard { if (mSubtypeSwitcher.useSpacebarLanguageSwitcher() && mSubtypeSwitcher.getEnabledKeyboardLocaleCount() > 1 && !(isPhoneKeyboard() || isNumberKeyboard())) { - mButtonArrowLeftIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor)); - mButtonArrowRightIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor)); - mButtonArrowLeftIcon.draw(canvas); - mButtonArrowRightIcon.draw(canvas); + mSpacebarArrowLeftIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor)); + mSpacebarArrowRightIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor)); + mSpacebarArrowLeftIcon.draw(canvas); + mSpacebarArrowRightIcon.draw(canvas); } } // Draw the spacebar icon at the bottom if (isAutoCorrection) { final int iconWidth = width * SPACE_LED_LENGTH_PERCENT / 100; - final int iconHeight = mSpaceAutoCorrectionIndicator.getIntrinsicHeight(); + final int iconHeight = mAutoCorrectionSpacebarLedIcon.getIntrinsicHeight(); int x = (width - iconWidth) / 2; int y = height - iconHeight; - mSpaceAutoCorrectionIndicator.setBounds(x, y, x + iconWidth, y + iconHeight); - mSpaceAutoCorrectionIndicator.draw(canvas); + mAutoCorrectionSpacebarLedIcon.setBounds(x, y, x + iconWidth, y + iconHeight); + mAutoCorrectionSpacebarLedIcon.draw(canvas); } else if (mSpaceIcon != null) { final int iconWidth = mSpaceIcon.getIntrinsicWidth(); final int iconHeight = mSpaceIcon.getIntrinsicHeight(); @@ -337,14 +360,8 @@ public class LatinKeyboard extends Keyboard { if (mSpacebarSlidingLanguageSwitchDiff == diff) return; mSpacebarSlidingLanguageSwitchDiff = diff; - if (mSlidingLocaleIcon == null) { - final int width = Math.max(mSpaceKey.mWidth, - (int)(getMinWidth() * SPACEBAR_POPUP_MIN_RATIO)); - final int height = mSpacePreviewIcon.getIntrinsicHeight(); - mSlidingLocaleIcon = - new SlidingLocaleDrawable(mContext, mSpacePreviewIcon, width, height); - mSlidingLocaleIcon.setBounds(0, 0, width, height); - } + if (mSlidingLocaleIcon == null) + return; mSlidingLocaleIcon.setDiff(diff); if (Math.abs(diff) == Integer.MAX_VALUE) { mSpaceKey.setPreviewIcon(mSpacePreviewIcon); @@ -399,7 +416,7 @@ public class LatinKeyboard extends Keyboard { Math.max(0, Math.min(y, getHeight() - 1))); } - private static int getTextSizeFromTheme(Theme theme, int style, int defValue) { + public static int getTextSizeFromTheme(Theme theme, int style, int defValue) { TypedArray array = theme.obtainStyledAttributes( style, new int[] { android.R.attr.textSize }); int textSize = array.getDimensionPixelSize(array.getResourceId(0, 0), defValue); diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java index 583b997ee..901df6ab7 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java @@ -16,10 +16,6 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.deprecated.VoiceProxy; -import com.android.inputmethod.latin.LatinImeLogger; -import com.android.inputmethod.latin.Utils; - import android.content.Context; import android.graphics.Canvas; import android.text.TextUtils; @@ -27,6 +23,10 @@ import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; +import com.android.inputmethod.deprecated.VoiceProxy; +import com.android.inputmethod.latin.LatinImeLogger; +import com.android.inputmethod.latin.Utils; + // TODO: We should remove this class public class LatinKeyboardView extends KeyboardView { private static final String TAG = LatinKeyboardView.class.getSimpleName(); @@ -47,7 +47,7 @@ public class LatinKeyboardView extends KeyboardView { private int mLastY; public LatinKeyboardView(Context context, AttributeSet attrs) { - this(context, attrs, 0); + super(context, attrs); } public LatinKeyboardView(Context context, AttributeSet attrs, int defStyle) { @@ -120,7 +120,7 @@ public class LatinKeyboardView extends KeyboardView { && keyboard.isShiftedOrShiftLocked() && !TextUtils.isEmpty(label) && label.length() < 3 && Character.isLowerCase(label.charAt(0))) { - return label.toString().toUpperCase(); + return label.toString().toUpperCase(keyboard.mId.mLocale); } return label; } diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java index 5dde15e94..2d6766f2d 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. + * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -23,8 +23,8 @@ import java.util.List; public class MiniKeyboard extends Keyboard { private int mDefaultKeyCoordX; - public MiniKeyboard(Context context, int xmlLayoutResId, KeyboardId id) { - super(context, xmlLayoutResId, id); + public MiniKeyboard(Context context, int xmlLayoutResId, Keyboard parentKeyboard) { + super(context, xmlLayoutResId, null, parentKeyboard.getMinWidth()); } public void setDefaultCoordX(int pos) { diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java index c4459f616..cc5c3bbfe 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index 953d487dc..c7620f946 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -16,15 +16,18 @@ package com.android.inputmethod.keyboard; +import android.content.res.Resources; +import android.os.SystemClock; +import android.util.Log; +import android.view.MotionEvent; + import com.android.inputmethod.keyboard.KeyboardView.UIHandler; +import com.android.inputmethod.keyboard.internal.PointerTrackerKeyState; +import com.android.inputmethod.keyboard.internal.PointerTrackerQueue; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.SubtypeSwitcher; -import android.content.res.Resources; -import android.util.Log; -import android.view.MotionEvent; - import java.util.Arrays; import java.util.List; @@ -146,7 +149,7 @@ public class PointerTracker { + " ignoreModifier=" + ignoreModifierKey); if (ignoreModifierKey) return false; - if (key.mEnabled) { + if (key.isEnabled()) { mListener.onPress(key.mCode, withSliding); final boolean keyboardLayoutHasBeenChanged = mKeyboardLayoutHasBeenChanged; mKeyboardLayoutHasBeenChanged = false; @@ -165,14 +168,14 @@ public class PointerTracker { + " ignoreModifier=" + ignoreModifierKey); if (ignoreModifierKey) return; - if (key.mEnabled) + if (key.isEnabled()) mListener.onCodeInput(primaryCode, keyCodes, x, y); } private void callListenerOnTextInput(Key key) { if (DEBUG_LISTENER) Log.d(TAG, "onTextInput: text=" + key.mOutputText); - if (key.mEnabled) + if (key.isEnabled()) mListener.onTextInput(key.mOutputText); } @@ -185,7 +188,7 @@ public class PointerTracker { + withSliding + " ignoreModifier=" + ignoreModifierKey); if (ignoreModifierKey) return; - if (key.mEnabled) + if (key.isEnabled()) mListener.onRelease(primaryCode, withSliding); } @@ -265,7 +268,7 @@ public class PointerTracker { private void setPressedKeyGraphics(int keyIndex) { final Key key = getKey(keyIndex); - if (key != null && key.mEnabled) { + if (key != null && key.isEnabled()) { key.onPressed(); mProxy.invalidateKey(key); } @@ -540,8 +543,11 @@ public class PointerTracker { public void onLongPressed(PointerTrackerQueue queue) { mKeyAlreadyProcessed = true; - if (queue != null) + if (queue != null) { + // TODO: Support chording + long-press input. + queue.releaseAllPointersExcept(this, SystemClock.uptimeMillis(), true); queue.remove(this); + } } public void onCancelEvent(int x, int y, long eventTime, PointerTrackerQueue queue) { @@ -611,7 +617,7 @@ public class PointerTracker { // The modifier key, such as shift key, should not show its key preview. private boolean isKeyPreviewNotRequired(int keyIndex) { final Key key = getKey(keyIndex); - if (!key.mEnabled) + if (key == null || !key.isEnabled()) return true; // Such as spacebar sliding language switch. if (mKeyboard.needSpacebarPreview(keyIndex)) @@ -633,12 +639,9 @@ public class PointerTracker { private void startLongPressTimer(int keyIndex) { Key key = getKey(keyIndex); - if (!key.mEnabled) - return; if (key.mCode == Keyboard.CODE_SHIFT) { mHandler.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this); - } else if (key.mManualTemporaryUpperCaseCode != Keyboard.CODE_DUMMY - && mKeyboard.isManualTemporaryUpperCase()) { + } else if (key.hasUppercaseLetter() && mKeyboard.isManualTemporaryUpperCase()) { // We need not start long press timer on the key which has manual temporary upper case // code defined and the keyboard is in manual temporary upper case mode. return; @@ -665,10 +668,9 @@ public class PointerTracker { mKeyDetector.getKeyIndexAndNearbyCodes(x, y, codes); // If keyboard is in manual temporary upper case state and key has manual temporary - // shift code, alternate character code should be sent. - if (mKeyboard.isManualTemporaryUpperCase() - && key.mManualTemporaryUpperCaseCode != Keyboard.CODE_DUMMY) { - code = key.mManualTemporaryUpperCaseCode; + // uppercase letter as key hint letter, alternate character code should be sent. + if (mKeyboard.isManualTemporaryUpperCase() && key.hasUppercaseLetter()) { + code = key.mHintLetter.charAt(0); codes[0] = code; } diff --git a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java index 561dcbcef..3b8c36487 100644 --- a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java @@ -16,8 +16,6 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.latin.R; - import android.content.Context; import android.content.res.Resources; import android.os.SystemClock; @@ -27,6 +25,8 @@ import android.view.MotionEvent; import android.view.View; import android.widget.PopupWindow; +import com.android.inputmethod.latin.R; + /** * A view that renders a virtual {@link MiniKeyboard}. It handles rendering of keys and detecting * key presses and touch movements. @@ -37,11 +37,10 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { private int mOriginX; private int mOriginY; - private int mTrackerId; private long mDownTime; public PopupMiniKeyboardView(Context context, AttributeSet attrs) { - this(context, attrs, R.attr.keyboardViewStyle); + this(context, attrs, R.attr.popupMiniKeyboardViewStyle); } public PopupMiniKeyboardView(Context context, AttributeSet attrs, int defStyle) { @@ -67,7 +66,7 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { @Override public void showPanel(KeyboardView parentKeyboardView, Key parentKey, - PointerTracker tracker, int keyPreviewY, PopupWindow window) { + PointerTracker tracker, PopupWindow window) { final View container = (View)getParent(); final MiniKeyboard miniKeyboard = (MiniKeyboard)getKeyboard(); final Keyboard parentKeyboard = parentKeyboardView.getKeyboard(); @@ -76,15 +75,14 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { final int pointX = (mConfigShowMiniKeyboardAtTouchedPoint) ? tracker.getLastX() : parentKey.mX + parentKey.mWidth / 2; final int pointY = parentKey.mY; - final int miniKeyboardX = pointX - miniKeyboard.getDefaultCoordX() - - container.getPaddingLeft() - + parentKeyboardView.getPaddingLeft() + mCoordinates[0]; - final int miniKeyboardY = pointY - parentKeyboard.getVerticalGap() + final int miniKeyboardLeft = pointX - miniKeyboard.getDefaultCoordX() + + parentKeyboardView.getPaddingLeft(); + final int x = Math.max(0, Math.min(miniKeyboardLeft, + parentKeyboardView.getWidth() - miniKeyboard.getMinWidth())) + - container.getPaddingLeft() + mCoordinates[0]; + final int y = pointY - parentKeyboard.getVerticalGap() - (container.getMeasuredHeight() - container.getPaddingBottom()) + parentKeyboardView.getPaddingTop() + mCoordinates[1]; - final int x = miniKeyboardX; - final int y = parentKeyboardView.isKeyPreviewPopupEnabled() && - miniKeyboard.isOneRowKeyboard() ? keyPreviewY : miniKeyboardY; if (miniKeyboard.setShifted(parentKeyboard.isShiftedOrShiftLocked())) { invalidateAllKeys(); @@ -96,30 +94,19 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { mOriginX = x + container.getPaddingLeft() - mCoordinates[0]; mOriginY = y + container.getPaddingTop() - mCoordinates[1]; - mTrackerId = tracker.mPointerId; mDownTime = SystemClock.uptimeMillis(); // Inject down event on the key to mini keyboard. - final MotionEvent downEvent = translateMotionEvent(MotionEvent.ACTION_DOWN, pointX, - pointY + parentKey.mHeight / 2, mDownTime); + final MotionEvent downEvent = MotionEvent.obtain(mDownTime, mDownTime, + MotionEvent.ACTION_DOWN, pointX - mOriginX, + pointY + parentKey.mHeight / 2 - mOriginY, 0); onTouchEvent(downEvent); downEvent.recycle(); } - private MotionEvent translateMotionEvent(int action, float x, float y, long eventTime) { - return MotionEvent.obtain(mDownTime, eventTime, action, x - mOriginX, y - mOriginY, 0); - } - @Override public boolean onTouchEvent(MotionEvent me) { - final int index = me.getActionIndex(); - final int id = me.getPointerId(index); - if (id == mTrackerId) { - final MotionEvent translated = translateMotionEvent(me.getAction(), me.getX(index), - me.getY(index), me.getEventTime()); - super.onTouchEvent(translated); - translated.recycle(); - } - return true; + me.offsetLocation(-mOriginX, -mOriginY); + return super.onTouchEvent(me); } } diff --git a/java/src/com/android/inputmethod/keyboard/PopupPanel.java b/java/src/com/android/inputmethod/keyboard/PopupPanel.java index 6f2b16148..386e11f2c 100644 --- a/java/src/com/android/inputmethod/keyboard/PopupPanel.java +++ b/java/src/com/android/inputmethod/keyboard/PopupPanel.java @@ -25,11 +25,10 @@ public interface PopupPanel { * @param parentKeyboardView the parent KeyboardView that has the parent key. * @param parentKey the parent key that is the source of this popup panel * @param tracker the pointer tracker that pressesd the parent key - * @param keyPreviewY the Y-coordinate of key preview * @param window PopupWindow to be used to show this popup panel */ public void showPanel(KeyboardView parentKeyboardView, Key parentKey, - PointerTracker tracker, int keyPreviewY, PopupWindow window); + PointerTracker tracker, PopupWindow window); /** * Check if the pointer is in siding key input mode. diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java index 80d6de952..33acc6907 100644 --- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java +++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Google Inc. + * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/keyboard/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java index d464c2029..983f0649d 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyStyles.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,16 +14,15 @@ * the License. */ -package com.android.inputmethod.keyboard; - -import com.android.inputmethod.keyboard.KeyboardParser.ParseException; -import com.android.inputmethod.latin.R; +package com.android.inputmethod.keyboard.internal; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; -import android.graphics.drawable.Drawable; import android.util.Log; +import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException; +import com.android.inputmethod.latin.R; + import java.util.ArrayList; import java.util.HashMap; @@ -37,7 +36,6 @@ public class KeyStyles { public interface KeyStyle { public CharSequence[] getTextArray(TypedArray a, int index); - public Drawable getDrawable(TypedArray a, int index); public CharSequence getText(TypedArray a, int index); public int getInt(TypedArray a, int index, int defaultValue); public int getFlag(TypedArray a, int index, int defaultValue); @@ -55,11 +53,6 @@ public class KeyStyles { } @Override - public Drawable getDrawable(TypedArray a, int index) { - return a.getDrawable(index); - } - - @Override public CharSequence getText(TypedArray a, int index) { return a.getText(index); } @@ -140,12 +133,6 @@ public class KeyStyles { } @Override - public Drawable getDrawable(TypedArray a, int index) { - return a.hasValue(index) - ? super.getDrawable(a, index) : (Drawable)mAttributes.get(index); - } - - @Override public CharSequence getText(TypedArray a, int index) { return a.hasValue(index) ? super.getText(a, index) : (CharSequence)mAttributes.get(index); @@ -177,25 +164,20 @@ public class KeyStyles { // TODO: Currently not all Key attributes can be declared as style. readInt(keyAttr, R.styleable.Keyboard_Key_code); readText(keyAttr, R.styleable.Keyboard_Key_keyLabel); - readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption); + readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText); + readText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter); readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters); + readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption); + readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon); + readInt(keyAttr, R.styleable.Keyboard_Key_keyIconPreview); + readInt(keyAttr, R.styleable.Keyboard_Key_keyIconShifted); readInt(keyAttr, R.styleable.Keyboard_Key_maxPopupKeyboardColumn); - readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText); - readDrawable(keyAttr, R.styleable.Keyboard_Key_keyIcon); - readDrawable(keyAttr, R.styleable.Keyboard_Key_iconPreview); - readDrawable(keyAttr, R.styleable.Keyboard_Key_keyHintIcon); - readDrawable(keyAttr, R.styleable.Keyboard_Key_shiftedIcon); readBoolean(keyAttr, R.styleable.Keyboard_Key_isFunctional); readBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky); readBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable); readBoolean(keyAttr, R.styleable.Keyboard_Key_enabled); } - private void readDrawable(TypedArray a, int index) { - if (a.hasValue(index)) - mAttributes.put(index, a.getDrawable(index)); - } - private void readText(TypedArray a, int index) { if (a.hasValue(index)) mAttributes.put(index, a.getText(index)); diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java new file mode 100644 index 000000000..37b36825a --- /dev/null +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java @@ -0,0 +1,146 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.android.inputmethod.keyboard.internal; + +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; +import android.util.Log; + +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.latin.R; + +public class KeyboardIconsSet { + private static final String TAG = KeyboardIconsSet.class.getSimpleName(); + + public static final int ICON_UNDEFINED = 0; + + // This should be aligned with Keyboard.keyIcon enum. + private static final int ICON_SHIFT_KEY = 1; + private static final int ICON_TO_SYMBOL_KEY = 2; + private static final int ICON_TO_SYMBOL_KEY_WITH_SHORTCUT = 3; + private static final int ICON_DELETE_KEY = 4; + private static final int ICON_SETTINGS_KEY = 5; + private static final int ICON_SHORTCUT_KEY = 6; + private static final int ICON_SPACE_KEY = 7; + private static final int ICON_RETURN_KEY = 8; + private static final int ICON_SEARCH_KEY = 9; + private static final int ICON_TAB_KEY = 10; + private static final int ICON_NUM1_KEY = 11; + private static final int ICON_NUM2_KEY = 12; + private static final int ICON_NUM3_KEY = 13; + private static final int ICON_NUM4_KEY = 14; + private static final int ICON_NUM5_KEY = 15; + private static final int ICON_NUM6_KEY = 16; + private static final int ICON_NUM7_KEY = 17; + private static final int ICON_NUM8_KEY = 18; + private static final int ICON_NUM9_KEY = 19; + private static final int ICON_NUM0_KEY = 20; + // This should be aligned with Keyboard.keyIconShifted enum. + private static final int ICON_SHIFTED_SHIFT_KEY = 21; + // This should be aligned with Keyboard.keyIconPreview enum. + private static final int ICON_PREVIEW_SPACE_KEY = 22; + private static final int ICON_PREVIEW_TAB_KEY = 23; + private static final int ICON_PREVIEW_SETTINGS_KEY = 24; + private static final int ICON_PREVIEW_SHORTCUT_KEY = 25; + + private static final int ICON_LAST = 25; + + private final Drawable mIcons[] = new Drawable[ICON_LAST + 1]; + + private static final int getIconId(int attrIndex) { + switch (attrIndex) { + case R.styleable.Keyboard_iconShiftKey: + return ICON_SHIFT_KEY; + case R.styleable.Keyboard_iconToSymbolKey: + return ICON_TO_SYMBOL_KEY; + case R.styleable.Keyboard_iconToSymbolKeyWithShortcut: + return ICON_TO_SYMBOL_KEY_WITH_SHORTCUT; + case R.styleable.Keyboard_iconDeleteKey: + return ICON_DELETE_KEY; + case R.styleable.Keyboard_iconSettingsKey: + return ICON_SETTINGS_KEY; + case R.styleable.Keyboard_iconShortcutKey: + return ICON_SHORTCUT_KEY; + case R.styleable.Keyboard_iconSpaceKey: + return ICON_SPACE_KEY; + case R.styleable.Keyboard_iconReturnKey: + return ICON_RETURN_KEY; + case R.styleable.Keyboard_iconSearchKey: + return ICON_SEARCH_KEY; + case R.styleable.Keyboard_iconTabKey: + return ICON_TAB_KEY; + case R.styleable.Keyboard_iconNum1Key: + return ICON_NUM1_KEY; + case R.styleable.Keyboard_iconNum2Key: + return ICON_NUM2_KEY; + case R.styleable.Keyboard_iconNum3Key: + return ICON_NUM3_KEY; + case R.styleable.Keyboard_iconNum4Key: + return ICON_NUM4_KEY; + case R.styleable.Keyboard_iconNum5Key: + return ICON_NUM5_KEY; + case R.styleable.Keyboard_iconNum6Key: + return ICON_NUM6_KEY; + case R.styleable.Keyboard_iconNum7Key: + return ICON_NUM7_KEY; + case R.styleable.Keyboard_iconNum8Key: + return ICON_NUM8_KEY; + case R.styleable.Keyboard_iconNum9Key: + return ICON_NUM9_KEY; + case R.styleable.Keyboard_iconNum0Key: + return ICON_NUM0_KEY; + case R.styleable.Keyboard_iconShiftedShiftKey: + return ICON_SHIFTED_SHIFT_KEY; + case R.styleable.Keyboard_iconPreviewSpaceKey: + return ICON_PREVIEW_SPACE_KEY; + case R.styleable.Keyboard_iconPreviewTabKey: + return ICON_PREVIEW_TAB_KEY; + case R.styleable.Keyboard_iconPreviewSettingsKey: + return ICON_PREVIEW_SETTINGS_KEY; + case R.styleable.Keyboard_iconPreviewShortcutKey: + return ICON_PREVIEW_SHORTCUT_KEY; + default: + return ICON_UNDEFINED; + } + } + + public void loadIcons(TypedArray keyboardAttrs) { + final int count = keyboardAttrs.getIndexCount(); + for (int i = 0; i < count; i++) { + final int attrIndex = keyboardAttrs.getIndex(i); + final int iconId = getIconId(attrIndex); + if (iconId != ICON_UNDEFINED) { + try { + final Drawable icon = keyboardAttrs.getDrawable(attrIndex); + Keyboard.setDefaultBounds(icon); + mIcons[iconId] = icon; + } catch (Resources.NotFoundException e) { + Log.w(TAG, "Drawable resource for icon #" + iconId + " not found"); + } + } + } + } + + public Drawable getIcon(int iconId) { + if (iconId == ICON_UNDEFINED) + return null; + if (iconId < 0 || iconId >= mIcons.length) + throw new IllegalArgumentException("icon id is out of range: " + iconId); + return mIcons[iconId]; + } +} diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParser.java index 31fd0bfa3..a6708171f 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParser.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,13 +14,7 @@ * the License. */ -package com.android.inputmethod.keyboard; - -import com.android.inputmethod.compat.EditorInfoCompatUtils; -import com.android.inputmethod.latin.R; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +package com.android.inputmethod.keyboard.internal; import android.content.Context; import android.content.res.Resources; @@ -31,6 +25,15 @@ import android.util.TypedValue; import android.util.Xml; import android.view.InflateException; +import com.android.inputmethod.compat.EditorInfoCompatUtils; +import com.android.inputmethod.keyboard.Key; +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.keyboard.KeyboardId; +import com.android.inputmethod.latin.R; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + import java.io.IOException; import java.util.Arrays; import java.util.List; @@ -88,14 +91,14 @@ import java.util.List; * You can declare Key style and specify styles within Key tags. * <pre> * >switch< - * >case colorScheme="white"< - * >key-style styleName="shift-key" parentStyle="modifier-key" - * keyIcon="@drawable/sym_keyboard_shift" + * >case mode="email"< + * >key-style styleName="f1-key" parentStyle="modifier-key" + * keyLabel=".com" * /< * >/case< - * >case colorScheme="black"< - * >key-style styleName="shift-key" parentStyle="modifier-key" - * keyIcon="@drawable/sym_bkeyboard_shift" + * >case mode="url"< + * >key-style styleName="f1-key" parentStyle="modifier-key" + * keyLabel="http://" * /< * >/case< * >/switch< @@ -121,8 +124,11 @@ public class KeyboardParser { public static final String TAG_KEY_STYLE = "key-style"; private final Keyboard mKeyboard; + private final Context mContext; private final Resources mResources; + private int mKeyboardTopPadding; + private int mKeyboardBottomPadding; private int mHorizontalEdgesPadding; private int mCurrentX = 0; private int mCurrentY = 0; @@ -131,8 +137,10 @@ public class KeyboardParser { private Row mCurrentRow = null; private final KeyStyles mKeyStyles = new KeyStyles(); - public KeyboardParser(Keyboard keyboard, Resources res) { + public KeyboardParser(Keyboard keyboard, Context context) { mKeyboard = keyboard; + mContext = context; + final Resources res = context.getResources(); mResources = res; mHorizontalEdgesPadding = (int)res.getDimension(R.dimen.keyboard_horizontal_edges_padding); } @@ -187,8 +195,9 @@ public class KeyboardParser { private void parseKeyboardAttributes(XmlResourceParser parser) { final Keyboard keyboard = mKeyboard; - final TypedArray keyboardAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser), - R.styleable.Keyboard); + final TypedArray keyboardAttr = mContext.obtainStyledAttributes( + Xml.asAttributeSet(parser), R.styleable.Keyboard, R.attr.keyboardStyle, + R.style.Keyboard); final TypedArray keyAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard_Key); try { @@ -226,6 +235,12 @@ public class KeyboardParser { keyboard.setMaxPopupKeyboardColumn(keyAttr.getInt( R.styleable.Keyboard_Key_maxPopupKeyboardColumn, 5)); + + mKeyboard.mIconsSet.loadIcons(keyboardAttr); + mKeyboardTopPadding = keyboardAttr.getDimensionPixelSize( + R.styleable.Keyboard_keyboardTopPadding, 0); + mKeyboardBottomPadding = keyboardAttr.getDimensionPixelSize( + R.styleable.Keyboard_keyboardBottomPadding, 0); } finally { keyAttr.recycle(); keyboardAttr.recycle(); @@ -280,7 +295,7 @@ public class KeyboardParser { if (TAG_KEY.equals(tag)) { parseKey(parser, row, keys); } else if (TAG_SPACER.equals(tag)) { - parseSpacer(parser, keys); + parseSpacer(parser, row, keys); } else if (TAG_INCLUDE.equals(tag)) { parseIncludeRowContent(parser, row, keys); } else if (TAG_SWITCH.equals(tag)) { @@ -317,7 +332,7 @@ public class KeyboardParser { } else { Key key = new Key(mResources, row, mCurrentX, mCurrentY, parser, mKeyStyles); if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d popupCharacters=%s />", - TAG_KEY, (key.mEnabled ? "" : " disabled"), key.mLabel, key.mCode, + TAG_KEY, (key.isEnabled() ? "" : " disabled"), key.mLabel, key.mCode, Arrays.toString(key.mPopupCharacters))); checkEndTag(TAG_KEY, parser); keys.add(key); @@ -327,19 +342,32 @@ public class KeyboardParser { } } - private void parseSpacer(XmlResourceParser parser, List<Key> keys) + private void parseSpacer(XmlResourceParser parser, Row row, List<Key> keys) throws XmlPullParserException, IOException { if (keys == null) { checkEndTag(TAG_SPACER, parser); } else { if (DEBUG) Log.d(TAG, String.format("<%s />", TAG_SPACER)); - final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser), + final TypedArray keyboardAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard); - final int gap = getDimensionOrFraction(a, R.styleable.Keyboard_horizontalGap, - mKeyboard.getDisplayWidth(), 0); - a.recycle(); + if (keyboardAttr.hasValue(R.styleable.Keyboard_horizontalGap)) + throw new IllegalAttribute(parser, "horizontalGap"); + final int defaultWidth = (row != null) ? row.mDefaultWidth : 0; + final int keyWidth = getDimensionOrFraction(keyboardAttr, R.styleable.Keyboard_keyWidth, + mKeyboard.getDisplayWidth(), defaultWidth); + keyboardAttr.recycle(); + + final TypedArray keyAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser), + R.styleable.Keyboard_Key); + int keyXPos = KeyboardParser.getDimensionOrFraction(keyAttr, + R.styleable.Keyboard_Key_keyXPos, mKeyboard.getDisplayWidth(), mCurrentX); + if (keyXPos < 0) { + // If keyXPos is negative, the actual x-coordinate will be display_width + keyXPos. + keyXPos += mKeyboard.getDisplayWidth(); + } + checkEndTag(TAG_SPACER, parser); - setSpacer(gap); + setSpacer(keyXPos, keyWidth); } } @@ -454,44 +482,53 @@ public class KeyboardParser { final TypedArray viewAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.KeyboardView); try { - final boolean modeMatched = matchInteger(a, - R.styleable.Keyboard_Case_mode, id.mMode); + final boolean modeMatched = matchTypedValue(a, + R.styleable.Keyboard_Case_mode, id.mMode, KeyboardId.modeName(id.mMode)); + final boolean navigateActionMatched = matchBoolean(a, + R.styleable.Keyboard_Case_navigateAction, id.mNavigateAction); final boolean passwordInputMatched = matchBoolean(a, R.styleable.Keyboard_Case_passwordInput, id.mPasswordInput); - final boolean settingsKeyMatched = matchBoolean(a, + final boolean hasSettingsKeyMatched = matchBoolean(a, R.styleable.Keyboard_Case_hasSettingsKey, id.mHasSettingsKey); + final boolean f2KeyModeMatched = matchInteger(a, + R.styleable.Keyboard_Case_f2KeyMode, id.mF2KeyMode); + final boolean clobberSettingsKeyMatched = matchBoolean(a, + R.styleable.Keyboard_Case_clobberSettingsKey, id.mClobberSettingsKey); final boolean voiceEnabledMatched = matchBoolean(a, R.styleable.Keyboard_Case_voiceKeyEnabled, id.mVoiceKeyEnabled); final boolean voiceKeyMatched = matchBoolean(a, R.styleable.Keyboard_Case_hasVoiceKey, id.mHasVoiceKey); - final boolean colorSchemeMatched = matchInteger(viewAttr, - R.styleable.KeyboardView_colorScheme, id.mColorScheme); // As noted at {@link KeyboardId} class, we are interested only in enum value masked by // {@link android.view.inputmethod.EditorInfo#IME_MASK_ACTION} and // {@link android.view.inputmethod.EditorInfo#IME_FLAG_NO_ENTER_ACTION}. So matching // this attribute with id.mImeOptions as integer value is enough for our purpose. final boolean imeActionMatched = matchInteger(a, R.styleable.Keyboard_Case_imeAction, id.mImeAction); + final boolean localeCodeMatched = matchString(a, + R.styleable.Keyboard_Case_localeCode, id.mLocale.toString()); final boolean languageCodeMatched = matchString(a, R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage()); final boolean countryCodeMatched = matchString(a, R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry()); - final boolean selected = modeMatched && passwordInputMatched && settingsKeyMatched - && voiceEnabledMatched && voiceKeyMatched && colorSchemeMatched - && imeActionMatched && languageCodeMatched && countryCodeMatched; - - if (DEBUG) Log.d(TAG, String.format("<%s%s%s%s%s%s%s%s%s%s> %s", TAG_CASE, - textAttr(KeyboardId.modeName( - a.getInt(R.styleable.Keyboard_Case_mode, -1)), "mode"), - textAttr(KeyboardId.colorSchemeName( - viewAttr.getInt( - R.styleable.KeyboardView_colorScheme, -1)), "colorSchemeName"), + final boolean selected = modeMatched && navigateActionMatched && passwordInputMatched + && hasSettingsKeyMatched && f2KeyModeMatched && clobberSettingsKeyMatched + && voiceEnabledMatched && voiceKeyMatched && imeActionMatched && + localeCodeMatched && languageCodeMatched && countryCodeMatched; + + if (DEBUG) Log.d(TAG, String.format("<%s%s%s%s%s%s%s%s%s%s%s%s%s> %s", TAG_CASE, + textAttr(a.getString(R.styleable.Keyboard_Case_mode), "mode"), + booleanAttr(a, R.styleable.Keyboard_Case_navigateAction, "navigateAction"), booleanAttr(a, R.styleable.Keyboard_Case_passwordInput, "passwordInput"), booleanAttr(a, R.styleable.Keyboard_Case_hasSettingsKey, "hasSettingsKey"), + textAttr(KeyboardId.f2KeyModeName( + a.getInt(R.styleable.Keyboard_Case_f2KeyMode, -1)), "f2KeyMode"), + booleanAttr(a, R.styleable.Keyboard_Case_clobberSettingsKey, + "clobberSettingsKey"), booleanAttr(a, R.styleable.Keyboard_Case_voiceKeyEnabled, "voiceKeyEnabled"), booleanAttr(a, R.styleable.Keyboard_Case_hasVoiceKey, "hasVoiceKey"), textAttr(EditorInfoCompatUtils.imeOptionsName( a.getInt(R.styleable.Keyboard_Case_imeAction, -1)), "imeAction"), + textAttr(a.getString(R.styleable.Keyboard_Case_localeCode), "localeCode"), textAttr(a.getString(R.styleable.Keyboard_Case_languageCode), "languageCode"), textAttr(a.getString(R.styleable.Keyboard_Case_countryCode), "countryCode"), Boolean.toString(selected))); @@ -518,7 +555,30 @@ public class KeyboardParser { private static boolean matchString(TypedArray a, int index, String value) { // If <case> does not have "index" attribute, that means this <case> is wild-card for the // attribute. - return !a.hasValue(index) || a.getString(index).equals(value); + return !a.hasValue(index) || stringArrayContains(a.getString(index).split("\\|"), value); + } + + private static boolean matchTypedValue(TypedArray a, int index, int intValue, String strValue) { + // If <case> does not have "index" attribute, that means this <case> is wild-card for the + // attribute. + final TypedValue v = a.peekValue(index); + if (v == null) + return true; + + if (isIntegerValue(v)) { + return intValue == a.getInt(index, 0); + } else if (isStringValue(v)) { + return stringArrayContains(a.getString(index).split("\\|"), strValue); + } + return false; + } + + private static boolean stringArrayContains(String[] array, String value) { + for (final String elem : array) { + if (elem.equals(value)) + return true; + } + return false; } private boolean parseDefault(XmlResourceParser parser, Row row, List<Key> keys) @@ -557,19 +617,19 @@ public class KeyboardParser { } private void startKeyboard() { - mCurrentY += (int)mResources.getDimension(R.dimen.keyboard_top_padding); + mCurrentY += mKeyboardTopPadding; } private void startRow(Row row) { mCurrentX = 0; - setSpacer(mHorizontalEdgesPadding); + setSpacer(mCurrentX, mHorizontalEdgesPadding); mCurrentRow = row; } private void endRow() { if (mCurrentRow == null) throw new InflateException("orphant end row tag"); - setSpacer(mHorizontalEdgesPadding); + setSpacer(mCurrentX, mHorizontalEdgesPadding); if (mCurrentX > mMaxRowWidth) mMaxRowWidth = mCurrentX; mCurrentY += mCurrentRow.mDefaultHeight; @@ -577,31 +637,50 @@ public class KeyboardParser { } private void endKey(Key key) { - mCurrentX += key.mGap + key.mWidth; + mCurrentX = key.mX - key.mGap / 2 + key.mWidth + key.mGap; } private void endKeyboard(int defaultVerticalGap) { - mCurrentY += (int)mResources.getDimension(R.dimen.keyboard_bottom_padding); + mCurrentY += mKeyboardBottomPadding; mTotalHeight = mCurrentY - defaultVerticalGap; } - private void setSpacer(int gap) { - mCurrentX += gap; + private void setSpacer(int keyXPos, int width) { + mCurrentX = keyXPos + width; } public static int getDimensionOrFraction(TypedArray a, int index, int base, int defValue) { final TypedValue value = a.peekValue(index); if (value == null) return defValue; - if (value.type == TypedValue.TYPE_DIMENSION) { - return a.getDimensionPixelOffset(index, defValue); - } else if (value.type == TypedValue.TYPE_FRACTION) { + if (isFractionValue(value)) { // Round it to avoid values like 47.9999 from getting truncated return Math.round(a.getFraction(index, base, base, defValue)); + } else if (isDimensionValue(value)) { + return a.getDimensionPixelOffset(index, defValue); + } else if (isIntegerValue(value)) { + // For enum value. + return a.getInt(index, defValue); } return defValue; } + private static boolean isFractionValue(TypedValue v) { + return v.type == TypedValue.TYPE_FRACTION; + } + + private static boolean isDimensionValue(TypedValue v) { + return v.type == TypedValue.TYPE_DIMENSION; + } + + private static boolean isIntegerValue(TypedValue v) { + return v.type >= TypedValue.TYPE_FIRST_INT && v.type <= TypedValue.TYPE_LAST_INT; + } + + private static boolean isStringValue(TypedValue v) { + return v.type == TypedValue.TYPE_STRING; + } + @SuppressWarnings("serial") public static class ParseException extends InflateException { public ParseException(String msg, XmlResourceParser parser) { @@ -624,6 +703,13 @@ public class KeyboardParser { } @SuppressWarnings("serial") + private static class IllegalAttribute extends ParseException { + public IllegalAttribute(XmlResourceParser parser, String attribute) { + super("Tag " + parser.getName() + " has illegal attribute " + attribute, parser); + } + } + + @SuppressWarnings("serial") private static class NonEmptyTag extends ParseException { public NonEmptyTag(String tag, XmlResourceParser parser) { super(tag + " must be empty tag", parser); diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardShiftState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardShiftState.java index d5412791d..0cde4e5b5 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardShiftState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardShiftState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,10 +14,12 @@ * the License. */ -package com.android.inputmethod.keyboard; +package com.android.inputmethod.keyboard.internal; import android.util.Log; +import com.android.inputmethod.keyboard.KeyboardSwitcher; + public class KeyboardShiftState { private static final String TAG = "KeyboardShiftState"; private static final boolean DEBUG = KeyboardSwitcher.DEBUG_STATE; diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java index 2b83c3ff5..040c16ded 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,15 +14,19 @@ * the License. */ -package com.android.inputmethod.keyboard; - -import com.android.inputmethod.latin.R; +package com.android.inputmethod.keyboard.internal; import android.content.Context; import android.content.res.Resources; import android.graphics.Paint; import android.graphics.Rect; +import com.android.inputmethod.keyboard.Key; +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.keyboard.KeyboardView; +import com.android.inputmethod.keyboard.MiniKeyboard; +import com.android.inputmethod.latin.R; + import java.util.List; public class MiniKeyboardBuilder { @@ -185,7 +189,8 @@ public class MiniKeyboardBuilder { Keyboard parentKeyboard) { final Context context = view.getContext(); mRes = context.getResources(); - final MiniKeyboard keyboard = new MiniKeyboard(context, layoutTemplateResId, null); + final MiniKeyboard keyboard = new MiniKeyboard( + context, layoutTemplateResId, parentKeyboard); mKeyboard = keyboard; mPopupCharacters = parentKey.mPopupCharacters; diff --git a/java/src/com/android/inputmethod/keyboard/ModifierKeyState.java b/java/src/com/android/inputmethod/keyboard/internal/ModifierKeyState.java index f215db876..dae73c4e4 100644 --- a/java/src/com/android/inputmethod/keyboard/ModifierKeyState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/ModifierKeyState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,10 +14,12 @@ * the License. */ -package com.android.inputmethod.keyboard; +package com.android.inputmethod.keyboard.internal; import android.util.Log; +import com.android.inputmethod.keyboard.KeyboardSwitcher; + public class ModifierKeyState { protected static final String TAG = "ModifierKeyState"; protected static final boolean DEBUG = KeyboardSwitcher.DEBUG_STATE; diff --git a/java/src/com/android/inputmethod/keyboard/PointerTrackerKeyState.java b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerKeyState.java index b3ed1e26f..ddadb1338 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTrackerKeyState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerKeyState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,12 +14,15 @@ * the License. */ -package com.android.inputmethod.keyboard; +package com.android.inputmethod.keyboard.internal; + +import com.android.inputmethod.keyboard.KeyDetector; +import com.android.inputmethod.keyboard.PointerTracker; /** * This class keeps track of a key index and a position where {@link PointerTracker} is. */ -/* package */ class PointerTrackerKeyState { +public class PointerTrackerKeyState { private final KeyDetector mKeyDetector; // The position and time at which first down event occurred. diff --git a/java/src/com/android/inputmethod/keyboard/PointerTrackerQueue.java b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java index 68de8df8a..f87cd869e 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTrackerQueue.java +++ b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,7 +14,9 @@ * the License. */ -package com.android.inputmethod.keyboard; +package com.android.inputmethod.keyboard.internal; + +import com.android.inputmethod.keyboard.PointerTracker; import java.util.LinkedList; diff --git a/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java b/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java index 32c25801d..8276f5d78 100644 --- a/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java +++ b/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,13 +14,14 @@ * the License. */ -package com.android.inputmethod.keyboard; - -import com.android.inputmethod.latin.R; +package com.android.inputmethod.keyboard.internal; import android.content.res.Resources; -import android.graphics.drawable.Drawable; import android.text.TextUtils; +import android.util.Log; + +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.latin.R; /** * String parser of popupCharacters attribute of Key. @@ -28,16 +29,19 @@ import android.text.TextUtils; * Each popup key text is one of the following: * - A single letter (Letter) * - Label optionally followed by keyOutputText or code (keyLabel|keyOutputText). - * - Icon followed by keyOutputText or code (@drawable/icon|@integer/key_code) + * - Icon followed by keyOutputText or code (@icon/icon_number|@integer/key_code) * Special character, comma ',' backslash '\', and bar '|' can be escaped by '\' * character. * Note that the character '@' and '\' are also parsed by XML parser and CSV parser as well. + * See {@link KeyboardIconsSet} about icon_number. */ public class PopupCharactersParser { + private static final String TAG = PopupCharactersParser.class.getSimpleName(); + private static final char ESCAPE = '\\'; private static final String LABEL_END = "|"; private static final String PREFIX_AT = "@"; - private static final String PREFIX_ICON = PREFIX_AT + "drawable/"; + private static final String PREFIX_ICON = PREFIX_AT + "icon/"; private static final String PREFIX_CODE = PREFIX_AT + "integer/"; private PopupCharactersParser() { @@ -150,13 +154,18 @@ public class PopupCharactersParser { return Keyboard.CODE_DUMMY; } - public static Drawable getIcon(Resources res, String popupSpec) { + public static int getIconId(String popupSpec) { if (hasIcon(popupSpec)) { int end = popupSpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1); - int resId = getResourceId(res, popupSpec.substring(PREFIX_AT.length(), end)); - return res.getDrawable(resId); + final String iconId = popupSpec.substring(PREFIX_ICON.length(), end); + try { + return Integer.valueOf(iconId); + } catch (NumberFormatException e) { + Log.w(TAG, "illegal icon id specified: " + iconId); + return KeyboardIconsSet.ICON_UNDEFINED; + } } - return null; + return KeyboardIconsSet.ICON_UNDEFINED; } private static int getResourceId(Resources res, String name) { diff --git a/java/src/com/android/inputmethod/keyboard/Row.java b/java/src/com/android/inputmethod/keyboard/internal/Row.java index 3618c0448..06aadcc05 100644 --- a/java/src/com/android/inputmethod/keyboard/Row.java +++ b/java/src/com/android/inputmethod/keyboard/internal/Row.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,15 +14,16 @@ * the License. */ -package com.android.inputmethod.keyboard; - -import com.android.inputmethod.latin.R; +package com.android.inputmethod.keyboard.internal; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; import android.util.Xml; +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.latin.R; + /** * Container for keys in the keyboard. All keys in a row are at the same Y-coordinate. * Some of the key size defaults can be overridden per row from what the {@link Keyboard} diff --git a/java/src/com/android/inputmethod/keyboard/ShiftKeyState.java b/java/src/com/android/inputmethod/keyboard/internal/ShiftKeyState.java index 9229208a9..6617b917f 100644 --- a/java/src/com/android/inputmethod/keyboard/ShiftKeyState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/ShiftKeyState.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,7 +14,7 @@ * the License. */ -package com.android.inputmethod.keyboard; +package com.android.inputmethod.keyboard.internal; import android.util.Log; diff --git a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java b/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java index b279c1c7e..df4b575f1 100644 --- a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java +++ b/java/src/com/android/inputmethod/keyboard/internal/SlidingLocaleDrawable.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,41 +14,42 @@ * the License. */ -package com.android.inputmethod.keyboard; - -import com.android.inputmethod.latin.R; -import com.android.inputmethod.latin.SubtypeSwitcher; +package com.android.inputmethod.keyboard.internal; import android.content.Context; -import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Paint; -import android.graphics.PixelFormat; import android.graphics.Paint.Align; +import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; import android.text.TextPaint; import android.view.ViewConfiguration; +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.keyboard.LatinKeyboard; +import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.SubtypeSwitcher; + /** * Animation to be displayed on the spacebar preview popup when switching languages by swiping the * spacebar. It draws the current, previous and next languages and moves them by the delta of touch * movement on the spacebar. */ public class SlidingLocaleDrawable extends Drawable { - - private final Context mContext; - private final Resources mRes; + private static final int SLIDE_SPEED_MULTIPLIER_RATIO = 150; private final int mWidth; private final int mHeight; private final Drawable mBackground; + private final int mSpacebarTextColor; private final TextPaint mTextPaint; private final int mMiddleX; private final Drawable mLeftDrawable; private final Drawable mRightDrawable; private final int mThreshold; + private int mDiff; private boolean mHitThreshold; private String mCurrentLanguage; @@ -56,41 +57,36 @@ public class SlidingLocaleDrawable extends Drawable { private String mPrevLanguage; public SlidingLocaleDrawable(Context context, Drawable background, int width, int height) { - mContext = context; - mRes = context.getResources(); mBackground = background; Keyboard.setDefaultBounds(mBackground); mWidth = width; mHeight = height; final TextPaint textPaint = new TextPaint(); - textPaint.setTextSize(getTextSizeFromTheme(android.R.style.TextAppearance_Medium, 18)); + textPaint.setTextSize(LatinKeyboard.getTextSizeFromTheme( + context.getTheme(), android.R.style.TextAppearance_Medium, 18)); textPaint.setColor(Color.TRANSPARENT); textPaint.setTextAlign(Align.CENTER); textPaint.setAntiAlias(true); mTextPaint = textPaint; mMiddleX = (mWidth - mBackground.getIntrinsicWidth()) / 2; - final Resources res = mRes; - mLeftDrawable = res.getDrawable( - R.drawable.sym_keyboard_feedback_language_arrows_left); - mRightDrawable = res.getDrawable( - R.drawable.sym_keyboard_feedback_language_arrows_right); - mThreshold = ViewConfiguration.get(mContext).getScaledTouchSlop(); - } - private int getTextSizeFromTheme(int style, int defValue) { - TypedArray array = mContext.getTheme().obtainStyledAttributes( - style, new int[] { android.R.attr.textSize }); - int textSize = array.getDimensionPixelSize(array.getResourceId(0, 0), defValue); - return textSize; + final TypedArray a = context.obtainStyledAttributes( + null, R.styleable.LatinKeyboard, R.attr.latinKeyboardStyle, R.style.LatinKeyboard); + mSpacebarTextColor = a.getColor(R.styleable.LatinKeyboard_spacebarTextColor, 0); + mLeftDrawable = a.getDrawable(R.styleable.LatinKeyboard_spacebarArrowPreviewLeftIcon); + mRightDrawable = a.getDrawable(R.styleable.LatinKeyboard_spacebarArrowPreviewRightIcon); + a.recycle(); + + mThreshold = ViewConfiguration.get(context).getScaledTouchSlop(); } - void setDiff(int diff) { + public void setDiff(int diff) { if (diff == Integer.MAX_VALUE) { mHitThreshold = false; mCurrentLanguage = null; return; } - mDiff = diff; + mDiff = Math.max(diff, diff * SLIDE_SPEED_MULTIPLIER_RATIO / 100); if (mDiff > mWidth) mDiff = mWidth; if (mDiff < -mWidth) mDiff = -mWidth; if (Math.abs(mDiff) > mThreshold) mHitThreshold = true; @@ -118,7 +114,7 @@ public class SlidingLocaleDrawable extends Drawable { // Draw language text with shadow final float baseline = mHeight * LatinKeyboard.SPACEBAR_LANGUAGE_BASELINE - paint.descent(); - paint.setColor(mRes.getColor(R.color.latinkeyboard_feedback_language_text)); + paint.setColor(mSpacebarTextColor); canvas.drawText(mCurrentLanguage, width / 2 + diff, baseline, paint); canvas.drawText(mNextLanguage, diff - width / 2, baseline, paint); canvas.drawText(mPrevLanguage, diff + width + width / 2, baseline, paint); diff --git a/java/src/com/android/inputmethod/keyboard/SwipeTracker.java b/java/src/com/android/inputmethod/keyboard/internal/SwipeTracker.java index 730cdc390..8d192c2f0 100644 --- a/java/src/com/android/inputmethod/keyboard/SwipeTracker.java +++ b/java/src/com/android/inputmethod/keyboard/internal/SwipeTracker.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -14,7 +14,7 @@ * the License. */ -package com.android.inputmethod.keyboard; +package com.android.inputmethod.keyboard.internal; import android.view.MotionEvent; diff --git a/java/src/com/android/inputmethod/latin/AutoDictionary.java b/java/src/com/android/inputmethod/latin/AutoDictionary.java index 307b81d43..460930f16 100644 --- a/java/src/com/android/inputmethod/latin/AutoDictionary.java +++ b/java/src/com/android/inputmethod/latin/AutoDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -41,13 +41,8 @@ public class AutoDictionary extends ExpandableDictionary { static final int FREQUENCY_FOR_PICKED = 3; // Weight added to a user typing a new word that doesn't get corrected (or is reverted) static final int FREQUENCY_FOR_TYPED = 1; - // A word that is frequently typed and gets promoted to the user dictionary, uses this - // frequency. - static final int FREQUENCY_FOR_AUTO_ADD = 250; // If the user touches a typed word 2 times or more, it will become valid. private static final int VALIDITY_THRESHOLD = 2 * FREQUENCY_FOR_PICKED; - // If the user touches a typed word 4 times or more, it will be added to the user dict. - private static final int PROMOTION_THRESHOLD = 4 * FREQUENCY_FOR_PICKED; private LatinIME mIme; // Locale for which this auto dictionary is storing words @@ -151,11 +146,6 @@ public class AutoDictionary extends ExpandableDictionary { freq = freq < 0 ? addFrequency : freq + addFrequency; super.addWord(word, freq); - if (freq >= PROMOTION_THRESHOLD) { - mIme.promoteToUserDictionary(word, FREQUENCY_FOR_AUTO_ADD); - 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)); diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index d95fb9638..9748d6006 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -196,8 +196,9 @@ public class BinaryDictionary extends Dictionary { Arrays.fill(outputChars, (char) 0); Arrays.fill(scores, 0); + final int proximityInfo = keyboard == null ? 0 : keyboard.getProximityInfo(); return getSuggestionsNative( - mNativeDict, keyboard.getProximityInfo(), + mNativeDict, proximityInfo, codes.getXCoordinates(), codes.getYCoordinates(), mInputCodes, codesSize, mFlags, outputChars, scores); } diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java index 562580d41..7ce92920d 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java @@ -78,16 +78,20 @@ class BinaryDictionaryGetter { } else { try { // If that was no-go, try to find a publicly exported dictionary. - return BinaryDictionaryFileDumper.getDictSetFromContentProvider(locale, context); + List<AssetFileAddress> listFromContentProvider = + BinaryDictionaryFileDumper.getDictSetFromContentProvider(locale, context); + if (null != listFromContentProvider) { + return listFromContentProvider; + } + // If the list is null, fall through and return the fallback } catch (FileNotFoundException e) { Log.e(TAG, "Unable to create dictionary file from provider for locale " + locale.toString() + ": falling back to internal dictionary"); - return Arrays.asList(loadFallbackResource(context, fallbackResId)); } catch (IOException e) { Log.e(TAG, "Unable to read source data for locale " + locale.toString() + ": falling back to internal dictionary"); - return Arrays.asList(loadFallbackResource(context, fallbackResId)); } + return Arrays.asList(loadFallbackResource(context, fallbackResId)); } } } diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java index abdf30e6b..09fd3b473 100644 --- a/java/src/com/android/inputmethod/latin/CandidateView.java +++ b/java/src/com/android/inputmethod/latin/CandidateView.java @@ -16,10 +16,9 @@ package com.android.inputmethod.latin; -import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; - import android.content.Context; import android.content.res.Resources; +import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.Typeface; import android.os.Handler; @@ -45,28 +44,53 @@ import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.TextView; +import com.android.inputmethod.compat.FrameLayoutCompatUtils; +import com.android.inputmethod.compat.LinearLayoutCompatUtils; +import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; + import java.util.ArrayList; import java.util.List; public class CandidateView extends LinearLayout implements OnClickListener, OnLongClickListener { + public interface Listener { + public boolean addWordToDictionary(String word); + public void pickSuggestionManually(int index, CharSequence word); + } + private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD); private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan(); - private static final int MAX_SUGGESTIONS = 16; + // The maximum number of suggestions available. See {@link Suggest#mPrefMaxSuggestions}. + private static final int MAX_SUGGESTIONS = 18; + private static final int UNSPECIFIED_MEASURESPEC = MeasureSpec.makeMeasureSpec( + 0, MeasureSpec.UNSPECIFIED); private static final boolean DBG = LatinImeLogger.sDBG; - private final ArrayList<View> mWords = new ArrayList<View>(); - private final boolean mConfigCandidateHighlightFontColorEnabled; + private static final int NUM_CANDIDATES_IN_STRIP = 3; + private final ImageView mExpandCandidatesPane; + private final ImageView mCloseCandidatesPane; + private ViewGroup mCandidatesPane; + private ViewGroup mCandidatesPaneContainer; + private View mKeyboardView; + private final ArrayList<TextView> mWords = new ArrayList<TextView>(); + private final ArrayList<TextView> mInfos = new ArrayList<TextView>(); + private final ArrayList<View> mDividers = new ArrayList<View>(); + private final int mCandidatePadding; + private final int mCandidateStripHeight; private final CharacterStyle mInvertedForegroundColorSpan; private final CharacterStyle mInvertedBackgroundColorSpan; - private final int mColorNormal; - private final int mColorRecommended; - private final int mColorOther; + private final int mAutoCorrectHighlight; + private static final int AUTO_CORRECT_BOLD = 0x01; + private static final int AUTO_CORRECT_UNDERLINE = 0x02; + private static final int AUTO_CORRECT_INVERT = 0x04; + private final int mColorTypedWord; + private final int mColorAutoCorrect; + private final int mColorSuggestedCandidate; private final PopupWindow mPreviewPopup; private final TextView mPreviewText; - private LatinIME mService; + private Listener mListener; private SuggestedWords mSuggestions = SuggestedWords.EMPTY; private boolean mShowingAutoCorrectionInverted; private boolean mShowingAddToDictionary; @@ -123,46 +147,113 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo * @param attrs */ public CandidateView(Context context, AttributeSet attrs) { + this(context, attrs, R.attr.candidateViewStyle); + } + + public CandidateView(Context context, AttributeSet attrs, int defStyle) { + // Note: Up to version 10 (Gingerbread) of the API, LinearLayout doesn't have 3-argument + // constructor. + // TODO: Call 3-argument constructor, super(context, attrs, defStyle), when we abandon + // backward compatibility with the version 10 or earlier of the API. super(context, attrs); + if (defStyle != R.attr.candidateViewStyle) { + throw new IllegalArgumentException( + "can't accept defStyle other than R.attr.candidayeViewStyle: defStyle=" + + defStyle); + } + setBackgroundDrawable(LinearLayoutCompatUtils.getBackgroundDrawable( + context, attrs, defStyle, R.style.CandidateViewStyle)); Resources res = context.getResources(); - mPreviewPopup = new PopupWindow(context); LayoutInflater inflater = LayoutInflater.from(context); + inflater.inflate(R.layout.candidates_strip, this); + + mPreviewPopup = new PopupWindow(context); mPreviewText = (TextView) inflater.inflate(R.layout.candidate_preview, null); mPreviewPopup.setWindowLayoutMode(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); mPreviewPopup.setContentView(mPreviewText); mPreviewPopup.setBackgroundDrawable(null); - mConfigCandidateHighlightFontColorEnabled = - res.getBoolean(R.bool.config_candidate_highlight_font_color_enabled); - mColorNormal = res.getColor(R.color.candidate_normal); - mColorRecommended = res.getColor(R.color.candidate_recommended); - mColorOther = res.getColor(R.color.candidate_other); - mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorNormal ^ 0x00ffffff); - mInvertedBackgroundColorSpan = new BackgroundColorSpan(mColorNormal); + mCandidatePadding = res.getDimensionPixelOffset(R.dimen.candidate_padding); + mCandidateStripHeight = res.getDimensionPixelOffset(R.dimen.candidate_strip_height); for (int i = 0; i < MAX_SUGGESTIONS; i++) { - View v = inflater.inflate(R.layout.candidate, null); - TextView tv = (TextView)v.findViewById(R.id.candidate_word); - tv.setTag(i); - tv.setOnClickListener(this); + final TextView word, info; + switch (i) { + case 0: + word = (TextView)findViewById(R.id.word_left); + word.setPadding(mCandidatePadding, 0, 0, 0); + info = (TextView)findViewById(R.id.info_left); + break; + case 1: + word = (TextView)findViewById(R.id.word_center); + info = (TextView)findViewById(R.id.info_center); + break; + case 2: + word = (TextView)findViewById(R.id.word_right); + info = (TextView)findViewById(R.id.info_right); + break; + default: + word = (TextView)inflater.inflate(R.layout.candidate_word, null); + info = (TextView)inflater.inflate(R.layout.candidate_info, null); + break; + } + word.setTag(i); + word.setOnClickListener(this); if (i == 0) - tv.setOnLongClickListener(this); - ImageView divider = (ImageView)v.findViewById(R.id.candidate_divider); - // Do not display divider of first candidate. - divider.setVisibility(i == 0 ? INVISIBLE : VISIBLE); - mWords.add(v); + word.setOnLongClickListener(this); + mWords.add(word); + mInfos.add(info); + if (i > 0) { + final View divider = inflater.inflate(R.layout.candidate_divider, null); + divider.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC); + mDividers.add(divider); + } } - scrollTo(0, getScrollY()); + final TypedArray a = context.obtainStyledAttributes( + attrs, R.styleable.CandidateView, defStyle, R.style.CandidateViewStyle); + mAutoCorrectHighlight = a.getInt(R.styleable.CandidateView_autoCorrectHighlight, 0); + mColorTypedWord = a.getColor(R.styleable.CandidateView_colorTypedWord, 0); + mColorAutoCorrect = a.getColor(R.styleable.CandidateView_colorAutoCorrect, 0); + mColorSuggestedCandidate = a.getColor(R.styleable.CandidateView_colorSuggested, 0); + mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorTypedWord ^ 0x00ffffff); + mInvertedBackgroundColorSpan = new BackgroundColorSpan(mColorTypedWord); + + mExpandCandidatesPane = (ImageView)findViewById(R.id.expand_candidates_pane); + mExpandCandidatesPane.setImageDrawable( + a.getDrawable(R.styleable.CandidateView_iconExpandPane)); + mExpandCandidatesPane.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + expandCandidatesPane(); + } + }); + mCloseCandidatesPane = (ImageView)findViewById(R.id.close_candidates_pane); + mCloseCandidatesPane.setImageDrawable( + a.getDrawable(R.styleable.CandidateView_iconClosePane)); + mCloseCandidatesPane.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + closeCandidatesPane(); + } + }); + + a.recycle(); } /** - * A connection back to the service to communicate with the text field + * A connection back to the input method. * @param listener */ - public void setService(LatinIME listener) { - mService = listener; + public void setListener(Listener listener, View inputView) { + mListener = listener; + mKeyboardView = inputView.findViewById(R.id.keyboard_view); + mCandidatesPane = FrameLayoutCompatUtils.getPlacer( + (ViewGroup)inputView.findViewById(R.id.candidates_pane)); + mCandidatesPane.setOnClickListener(this); + mCandidatesPaneContainer = (ViewGroup)inputView.findViewById( + R.id.candidates_pane_container); } public void setSuggestions(SuggestedWords suggestions) { @@ -176,80 +267,170 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo } } + private CharSequence getStyledCandidateWord(CharSequence word, boolean isAutoCorrect) { + if (!isAutoCorrect) + return word; + final Spannable spannedWord = new SpannableString(word); + if ((mAutoCorrectHighlight & AUTO_CORRECT_BOLD) != 0) + spannedWord.setSpan(BOLD_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + if ((mAutoCorrectHighlight & AUTO_CORRECT_UNDERLINE) != 0) + spannedWord.setSpan(UNDERLINE_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return spannedWord; + } + + private int getCandidateTextColor(boolean isAutoCorrect, boolean isSuggestedCandidate, + SuggestedWordInfo info) { + final int color; + if (isAutoCorrect) { + color = mColorAutoCorrect; + } else if (isSuggestedCandidate) { + color = mColorSuggestedCandidate; + } else { + color = mColorTypedWord; + } + if (info != null && info.isPreviousSuggestedWord()) { + final int newAlpha = (int)(Color.alpha(color) * 0.5f); + return Color.argb(newAlpha, Color.red(color), Color.green(color), Color.blue(color)); + } else { + return color; + } + } + private void updateSuggestions() { final SuggestedWords suggestions = mSuggestions; + final List<SuggestedWordInfo> suggestedWordInfoList = suggestions.mSuggestedWordInfoList; + clear(); + final int paneWidth = getWidth(); + final int dividerWidth = mDividers.get(0).getMeasuredWidth(); + final int dividerHeight = mDividers.get(0).getMeasuredHeight(); + int x = 0; + int y = 0; + int fromIndex = NUM_CANDIDATES_IN_STRIP; final int count = Math.min(mWords.size(), suggestions.size()); + closeCandidatesPane(); + mExpandCandidatesPane.setEnabled(count >= NUM_CANDIDATES_IN_STRIP); for (int i = 0; i < count; i++) { - CharSequence word = suggestions.getWord(i); - if (word == null) continue; - final int wordLength = word.length(); - final List<SuggestedWordInfo> suggestedWordInfoList = - suggestions.mSuggestedWordInfoList; - - final View v = mWords.get(i); - final TextView tv = (TextView)v.findViewById(R.id.candidate_word); - final TextView dv = (TextView)v.findViewById(R.id.candidate_debug_info); - tv.setTextColor(mColorNormal); - // TODO: Needs safety net? - if (suggestions.mHasMinimalSuggestion + final CharSequence suggestion = suggestions.getWord(i); + if (suggestion == null) continue; + + final SuggestedWordInfo suggestionInfo = (suggestedWordInfoList != null) + ? suggestedWordInfoList.get(i) : null; + final boolean isAutoCorrect = suggestions.mHasMinimalSuggestion && ((i == 1 && !suggestions.mTypedWordValid) - || (i == 0 && suggestions.mTypedWordValid))) { - final CharacterStyle style; - if (mConfigCandidateHighlightFontColorEnabled) { - style = BOLD_SPAN; - tv.setTextColor(mColorRecommended); - } else { - style = UNDERLINE_SPAN; - } - final Spannable spannedWord = new SpannableString(word); - spannedWord.setSpan(style, 0, wordLength, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); - word = spannedWord; - } else if (i != 0 || (wordLength == 1 && count > 1)) { - // HACK: even if i == 0, we use mColorOther when this - // suggestion's length is 1 - // and there are multiple suggestions, such as the default - // punctuation list. - if (mConfigCandidateHighlightFontColorEnabled) - tv.setTextColor(mColorOther); + || (i == 0 && suggestions.mTypedWordValid)); + // HACK: even if i == 0, we use mColorOther when this suggestion's length is 1 + // and there are multiple suggestions, such as the default punctuation list. + // TODO: Need to revisit this logic with bigram suggestions + final boolean isSuggestedCandidate = (i != 0); + final boolean isPunctuationSuggestions = (suggestion.length() == 1 && count > 1); + + final TextView word = mWords.get(i); + // TODO: Reorder candidates in strip as appropriate. The center candidate should hold + // the word when space is typed (valid typed word or auto corrected word). + word.setTextColor(getCandidateTextColor(isAutoCorrect, + isSuggestedCandidate || isPunctuationSuggestions, suggestionInfo)); + word.setText(getStyledCandidateWord(suggestion, isAutoCorrect)); + // TODO: call TextView.setTextScaleX() to fit the candidate in single line. + word.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC); + final int width = word.getMeasuredWidth(); + final int height = word.getMeasuredHeight(); + + final TextView info; + if (DBG && suggestionInfo != null + && !TextUtils.isEmpty(suggestionInfo.getDebugString())) { + info = mInfos.get(i); + info.setText(suggestionInfo.getDebugString()); + info.setVisibility(View.VISIBLE); + info.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC); + } else { + info = null; } - tv.setText(word); - tv.setClickable(true); - - if (suggestedWordInfoList != null && suggestedWordInfoList.get(i) != null) { - final SuggestedWordInfo info = suggestedWordInfoList.get(i); - if (info.isPreviousSuggestedWord()) { - int color = tv.getCurrentTextColor(); - tv.setTextColor(Color.argb((int)(Color.alpha(color) * 0.5f), Color.red(color), - Color.green(color), Color.blue(color))); - } - final String debugString = info.getDebugString(); - if (DBG) { - if (TextUtils.isEmpty(debugString)) { - dv.setVisibility(GONE); - } else { - dv.setText(debugString); - dv.setVisibility(VISIBLE); - } - } else { - dv.setVisibility(GONE); + + if (i < NUM_CANDIDATES_IN_STRIP) { + if (info != null) { + final int infoWidth = info.getMeasuredWidth(); + FrameLayoutCompatUtils.placeViewAt( + info, x + width - infoWidth, y, infoWidth, info.getMeasuredHeight()); } } else { - dv.setVisibility(GONE); + // TODO: Handle overflow case. + if (dividerWidth + x + width >= paneWidth) { + centeringCandidates(fromIndex, i - 1, x, paneWidth); + x = 0; + y += mCandidateStripHeight; + fromIndex = i; + } + if (x != 0) { + final View divider = mDividers.get(i - NUM_CANDIDATES_IN_STRIP); + mCandidatesPane.addView(divider); + FrameLayoutCompatUtils.placeViewAt( + divider, x, y + (mCandidateStripHeight - dividerHeight) / 2, + dividerWidth, dividerHeight); + x += dividerWidth; + } + mCandidatesPane.addView(word); + FrameLayoutCompatUtils.placeViewAt( + word, x, y + (mCandidateStripHeight - height) / 2, width, height); + if (info != null) { + mCandidatesPane.addView(info); + final int infoWidth = info.getMeasuredWidth(); + FrameLayoutCompatUtils.placeViewAt( + info, x + width - infoWidth, y, infoWidth, info.getMeasuredHeight()); + } + x += width; } - addView(v); } + if (x != 0) { + // Centering last candidates row. + centeringCandidates(fromIndex, count - 1, x, paneWidth); + } + } + + private void centeringCandidates(int from, int to, int width, int paneWidth) { + final ViewGroup pane = mCandidatesPane; + final int fromIndex = pane.indexOfChild(mWords.get(from)); + final int toIndex; + if (mInfos.get(to).getParent() != null) { + toIndex = pane.indexOfChild(mInfos.get(to)); + } else { + toIndex = pane.indexOfChild(mWords.get(to)); + } + final int offset = (paneWidth - width) / 2; + for (int index = fromIndex; index <= toIndex; index++) { + offsetMargin(pane.getChildAt(index), offset, 0); + } + } + + private static void offsetMargin(View v, int dx, int dy) { + if (v == null) + return; + final ViewGroup.LayoutParams lp = v.getLayoutParams(); + if (lp instanceof ViewGroup.MarginLayoutParams) { + final ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams)lp; + mlp.setMargins(mlp.leftMargin + dx, mlp.topMargin + dy, 0, 0); + } + } + + private void expandCandidatesPane() { + mExpandCandidatesPane.setVisibility(View.GONE); + mCloseCandidatesPane.setVisibility(View.VISIBLE); + mCandidatesPaneContainer.setMinimumHeight(mKeyboardView.getMeasuredHeight()); + mCandidatesPaneContainer.setVisibility(View.VISIBLE); + mKeyboardView.setVisibility(View.GONE); + } - scrollTo(0, getScrollY()); - requestLayout(); + private void closeCandidatesPane() { + mExpandCandidatesPane.setVisibility(View.VISIBLE); + mCloseCandidatesPane.setVisibility(View.GONE); + mCandidatesPaneContainer.setVisibility(View.GONE); + mKeyboardView.setVisibility(View.VISIBLE); } public void onAutoCorrectionInverted(CharSequence autoCorrectedWord) { - // Displaying auto corrected word as inverted is enabled only when highlighting candidate - // with color is disabled. - if (mConfigCandidateHighlightFontColorEnabled) + if ((mAutoCorrectHighlight & AUTO_CORRECT_INVERT) == 0) return; - final TextView tv = (TextView)mWords.get(1).findViewById(R.id.candidate_word); + final TextView tv = mWords.get(1); final Spannable word = new SpannableString(autoCorrectedWord); final int wordLength = word.length(); word.setSpan(mInvertedBackgroundColorSpan, 0, wordLength, @@ -260,10 +441,6 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo mShowingAutoCorrectionInverted = true; } - public boolean isConfigCandidateHighlightFontColorEnabled() { - return mConfigCandidateHighlightFontColorEnabled; - } - public boolean isShowingAddToDictionaryHint() { return mShowingAddToDictionary; } @@ -275,7 +452,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo setSuggestions(builder.build()); mShowingAddToDictionary = true; // Disable R.string.hint_add_to_dictionary button - TextView tv = (TextView)getChildAt(1).findViewById(R.id.candidate_word); + TextView tv = mWords.get(1); tv.setClickable(false); } @@ -292,7 +469,11 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo public void clear() { mShowingAddToDictionary = false; mShowingAutoCorrectionInverted = false; - removeAllViews(); + for (int i = 0; i < NUM_CANDIDATES_IN_STRIP; i++) { + mWords.get(i).setText(null); + mInfos.get(i).setVisibility(View.GONE); + } + mCandidatesPane.removeAllViews(); } private void hidePreview() { @@ -304,11 +485,11 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo return; final TextView previewText = mPreviewText; - previewText.setTextColor(mColorNormal); + previewText.setTextColor(mColorTypedWord); previewText.setText(word); previewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); - View v = getChildAt(index); + View v = mWords.get(index); final int[] offsetInWindow = new int[2]; v.getLocationInWindow(offsetInWindow); final int posX = offsetInWindow[0]; @@ -324,15 +505,21 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo } private void addToDictionary(CharSequence word) { - if (mService.addWordToDictionary(word.toString())) { + if (mListener.addWordToDictionary(word.toString())) { showPreview(0, getContext().getString(R.string.added_word, word)); } } @Override public boolean onLongClick(View view) { - int index = (Integer) view.getTag(); - CharSequence word = mSuggestions.getWord(index); + final Object tag = view.getTag(); + if (!(tag instanceof Integer)) + return true; + final int index = (Integer) tag; + if (index >= mSuggestions.size()) + return true; + + final CharSequence word = mSuggestions.getWord(index); if (word.length() < 2) return false; addToDictionary(word); @@ -341,13 +528,22 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo @Override public void onClick(View view) { - int index = (Integer) view.getTag(); - CharSequence word = mSuggestions.getWord(index); + final Object tag = view.getTag(); + if (!(tag instanceof Integer)) + return; + final int index = (Integer) tag; + if (index >= mSuggestions.size()) + return; + + final CharSequence word = mSuggestions.getWord(index); if (mShowingAddToDictionary && index == 0) { addToDictionary(word); } else { - mService.pickSuggestionManually(index, word); + mListener.pickSuggestionManually(index, word); } + // Because some punctuation letters are not treated as word separator depending on locale, + // {@link #setSuggestions} might not be called and candidates pane left opened. + closeCandidatesPane(); } @Override diff --git a/java/src/com/android/inputmethod/latin/ContactsDictionary.java b/java/src/com/android/inputmethod/latin/ContactsDictionary.java index b057cf4e3..66a041508 100644 --- a/java/src/com/android/inputmethod/latin/ContactsDictionary.java +++ b/java/src/com/android/inputmethod/latin/ContactsDictionary.java @@ -40,7 +40,7 @@ public class ContactsDictionary extends ExpandableDictionary { /** * Frequency for contacts information into the dictionary */ - private static final int FREQUENCY_FOR_CONTACTS = 128; + private static final int FREQUENCY_FOR_CONTACTS = 40; private static final int FREQUENCY_FOR_CONTACTS_BIGRAM = 90; private static final int INDEX_NAME = 1; @@ -114,7 +114,7 @@ public class ContactsDictionary extends ExpandableDictionary { while (!cursor.isAfterLast()) { String name = cursor.getString(INDEX_NAME); - if (name != null) { + if (name != null && -1 == name.indexOf('@')) { int len = name.length(); String prevWord = null; @@ -143,8 +143,6 @@ public class ContactsDictionary extends ExpandableDictionary { if (wordLen < maxWordLength && wordLen > 1) { super.addWord(word, FREQUENCY_FOR_CONTACTS); if (!TextUtils.isEmpty(prevWord)) { - // TODO Do not add email address - // Not so critical super.setBigram(prevWord, word, FREQUENCY_FOR_CONTACTS_BIGRAM); } diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java index 3fcb6ed55..5e7de3e6b 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java +++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java @@ -54,8 +54,8 @@ public class DictionaryCollection extends Dictionary { @Override public boolean isValidWord(CharSequence word) { - for (final Dictionary dict : mDictionaries) - if (dict.isValidWord(word)) return true; + for (int i = mDictionaries.size() - 1; i >= 0; --i) + if (mDictionaries.get(i).isValidWord(word)) return true; return false; } diff --git a/java/src/com/android/inputmethod/latin/EditingUtils.java b/java/src/com/android/inputmethod/latin/EditingUtils.java index 39e7e402f..e56aa695d 100644 --- a/java/src/com/android/inputmethod/latin/EditingUtils.java +++ b/java/src/com/android/inputmethod/latin/EditingUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Google Inc. + * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of diff --git a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java index 26391fe46..97a4a1816 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java @@ -229,6 +229,7 @@ public class ExpandableDictionary extends Dictionary { * Returns the word's frequency or -1 if not found */ protected int getWordFrequency(CharSequence word) { + // Case-sensitive search Node node = searchNode(mRoots, word, 0, word.length()); return (node == null) ? -1 : node.mFrequency; } @@ -366,12 +367,16 @@ public class ExpandableDictionary extends Dictionary { /** * Adds bigrams to the in-memory trie structure that is being used to retrieve any word - * @param frequency frequency for this bigrams - * @param addFrequency if true, it adds to current frequency + * @param frequency frequency for this bigram + * @param addFrequency if true, it adds to current frequency, else it overwrites the old value * @return returns the final frequency */ private int addOrSetBigram(String word1, String word2, int frequency, boolean addFrequency) { - Node firstWord = searchWord(mRoots, word1, 0, null); + // We don't want results to be different according to case of the looked up left hand side + // word. We do want however to return the correct case for the right hand side. + // So we want to squash the case of the left hand side, and preserve that of the right + // hand side word. + Node firstWord = searchWord(mRoots, word1.toLowerCase(), 0, null); Node secondWord = searchWord(mRoots, word2, 0, null); LinkedList<NextWord> bigram = firstWord.mNGrams; if (bigram == null || bigram.size() == 0) { @@ -437,8 +442,12 @@ public class ExpandableDictionary extends Dictionary { } } - private void runReverseLookUp(final CharSequence previousWord, final WordCallback callback) { - Node prevWord = searchNode(mRoots, previousWord, 0, previousWord.length()); + private void runBigramReverseLookUp(final CharSequence previousWord, + final WordCallback callback) { + // Search for the lowercase version of the word only, because that's where bigrams + // store their sons. + Node prevWord = searchNode(mRoots, previousWord.toString().toLowerCase(), 0, + previousWord.length()); if (prevWord != null && prevWord.mNGrams != null) { reverseLookUp(prevWord.mNGrams, callback); } @@ -448,7 +457,7 @@ public class ExpandableDictionary extends Dictionary { public void getBigrams(final WordComposer codes, final CharSequence previousWord, final WordCallback callback) { if (!reloadDictionaryIfRequired()) { - runReverseLookUp(previousWord, callback); + runBigramReverseLookUp(previousWord, callback); } } @@ -494,14 +503,20 @@ public class ExpandableDictionary extends Dictionary { } /** - * Search for the terminal node of the word + * Recursively search for the terminal node of the word. + * + * One iteration takes the full word to search for and the current index of the recursion. + * + * @param children the node of the trie to search under. + * @param word the word to search for. Only read [offset..length] so there may be trailing chars + * @param offset the index in {@code word} this recursion should operate on. + * @param length the length of the input word. * @return Returns the terminal node of the word if the word exists */ private Node searchNode(final NodeArray children, final CharSequence word, final int offset, final int length) { - // TODO Consider combining with addWordRec final int count = children.mLength; - char currentChar = word.charAt(offset); + final char currentChar = word.charAt(offset); for (int j = 0; j < count; j++) { final Node node = children.mData[j]; if (node.mCode == currentChar) { diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 2c39eba55..9c6465dd2 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -16,22 +16,6 @@ package com.android.inputmethod.latin; -import com.android.inputmethod.compat.CompatUtils; -import com.android.inputmethod.compat.EditorInfoCompatUtils; -import com.android.inputmethod.compat.InputConnectionCompatUtils; -import com.android.inputmethod.compat.InputMethodManagerCompatWrapper; -import com.android.inputmethod.compat.InputMethodServiceCompatWrapper; -import com.android.inputmethod.compat.InputTypeCompatUtils; -import com.android.inputmethod.deprecated.LanguageSwitcherProxy; -import com.android.inputmethod.deprecated.VoiceProxy; -import com.android.inputmethod.deprecated.recorrection.Recorrection; -import com.android.inputmethod.keyboard.Keyboard; -import com.android.inputmethod.keyboard.KeyboardActionListener; -import com.android.inputmethod.keyboard.KeyboardSwitcher; -import com.android.inputmethod.keyboard.KeyboardView; -import com.android.inputmethod.keyboard.LatinKeyboard; -import com.android.inputmethod.keyboard.LatinKeyboardView; - import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; @@ -59,7 +43,6 @@ import android.util.PrintWriterPrinter; import android.util.Printer; import android.view.HapticFeedbackConstants; import android.view.KeyEvent; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; @@ -69,7 +52,24 @@ import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.InputConnection; -import android.widget.LinearLayout; + +import com.android.inputmethod.accessibility.AccessibilityUtils; +import com.android.inputmethod.compat.CompatUtils; +import com.android.inputmethod.compat.EditorInfoCompatUtils; +import com.android.inputmethod.compat.InputConnectionCompatUtils; +import com.android.inputmethod.compat.InputMethodManagerCompatWrapper; +import com.android.inputmethod.compat.InputMethodServiceCompatWrapper; +import com.android.inputmethod.compat.InputTypeCompatUtils; +import com.android.inputmethod.compat.SuggestionSpanUtils; +import com.android.inputmethod.deprecated.LanguageSwitcherProxy; +import com.android.inputmethod.deprecated.VoiceProxy; +import com.android.inputmethod.deprecated.recorrection.Recorrection; +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.keyboard.KeyboardActionListener; +import com.android.inputmethod.keyboard.KeyboardSwitcher; +import com.android.inputmethod.keyboard.KeyboardView; +import com.android.inputmethod.keyboard.LatinKeyboard; +import com.android.inputmethod.keyboard.LatinKeyboardView; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -78,11 +78,12 @@ import java.util.Locale; /** * Input method implementation for Qwerty'ish keyboard. */ -public class LatinIME extends InputMethodServiceCompatWrapper implements KeyboardActionListener { +public class LatinIME extends InputMethodServiceCompatWrapper implements KeyboardActionListener, + CandidateView.Listener { private static final String TAG = LatinIME.class.getSimpleName(); private static final boolean PERF_DEBUG = false; private static final boolean TRACE = false; - private static boolean DEBUG = LatinImeLogger.sDBG; + private static boolean DEBUG; /** * The private IME option used to indicate that no microphone should be @@ -155,7 +156,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar private UserDictionary mUserDictionary; private UserBigramDictionary mUserBigramDictionary; - private ContactsDictionary mContactsDictionary; private AutoDictionary mAutoDictionary; // TODO: Create an inner class to group options and pseudo-options to improve readability. @@ -173,6 +173,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // Magic space: a space that should disappear on space/apostrophe insertion, move after the // punctuation on punctuation insertion, and become a real space on alpha char insertion. private boolean mJustAddedMagicSpace; // This indicates whether the last char is a magic space. + // This indicates whether the last keypress resulted in processing of double space replacement + // with period-space. + private boolean mJustReplacedDoubleSpace; private int mCorrectionMode; private int mCommittedLength; @@ -181,8 +184,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar private int mLastSelectionStart; private int mLastSelectionEnd; - // Indicates whether the suggestion strip is to be on in landscape - private boolean mJustAccepted; + // Whether we are expecting an onUpdateSelection event to fire. If it does when we don't + // "expect" it, it means the user actually moved the cursor. + private boolean mExpectingUpdateSelection; private int mDeleteCount; private long mLastKeyTime; @@ -217,15 +221,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar @Override public void handleMessage(Message msg) { final KeyboardSwitcher switcher = mKeyboardSwitcher; - final LatinKeyboardView inputView = switcher.getInputView(); + final LatinKeyboardView inputView = switcher.getKeyboardView(); switch (msg.what) { case MSG_UPDATE_SUGGESTIONS: updateSuggestions(); break; case MSG_UPDATE_OLD_SUGGESTIONS: - mRecorrection.setRecorrectionSuggestions(mVoiceProxy, mCandidateView, mSuggest, - mKeyboardSwitcher, mWord, mHasUncommittedTypedChars, mLastSelectionStart, - mLastSelectionEnd, mSettingsValues.mWordSeparators); + mRecorrection.fetchAndDisplayRecorrectionSuggestions(mVoiceProxy, mCandidateView, + mSuggest, mKeyboardSwitcher, mWord, mHasUncommittedTypedChars, + mLastSelectionStart, mLastSelectionEnd, mSettingsValues.mWordSeparators); break; case MSG_UPDATE_SHIFT_STATE: switcher.updateShiftState(); @@ -307,7 +311,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void startDisplayLanguageOnSpacebar(boolean localeChanged) { removeMessages(MSG_FADEOUT_LANGUAGE_ON_SPACEBAR); removeMessages(MSG_DISMISS_LANGUAGE_ON_SPACEBAR); - final LatinKeyboardView inputView = mKeyboardSwitcher.getInputView(); + final LatinKeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); if (inputView != null) { final LatinKeyboard keyboard = mKeyboardSwitcher.getLatinKeyboard(); // The language is always displayed when the delay is negative. @@ -350,6 +354,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar SubtypeSwitcher.init(this, prefs); KeyboardSwitcher.init(this, prefs); Recorrection.init(this, prefs); + AccessibilityUtils.init(this, prefs); super.onCreate(); @@ -358,6 +363,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mSubtypeSwitcher = SubtypeSwitcher.getInstance(); mKeyboardSwitcher = KeyboardSwitcher.getInstance(); mRecorrection = Recorrection.getInstance(); + DEBUG = LatinImeLogger.sDBG; loadSettings(); @@ -402,11 +408,12 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (null == mPrefs) mPrefs = PreferenceManager.getDefaultSharedPreferences(this); if (null == mSubtypeSwitcher) mSubtypeSwitcher = SubtypeSwitcher.getInstance(); mSettingsValues = new Settings.Values(mPrefs, this, mSubtypeSwitcher.getInputLocaleStr()); + resetContactsDictionary(); } private void initSuggest() { final String localeStr = mSubtypeSwitcher.getInputLocaleStr(); - final Locale keyboardLocale = new Locale(localeStr); + final Locale keyboardLocale = Utils.constructLocaleFromString(localeStr); final Resources res = mResources; final Locale savedLocale = Utils.setSystemLocale(res, keyboardLocale); @@ -424,8 +431,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mUserDictionary = new UserDictionary(this, localeStr); mSuggest.setUserDictionary(mUserDictionary); - mContactsDictionary = new ContactsDictionary(this, Suggest.DIC_CONTACTS); - mSuggest.setContactsDictionary(mContactsDictionary); + resetContactsDictionary(); mAutoDictionary = new AutoDictionary(this, this, localeStr, Suggest.DIC_AUTO); mSuggest.setAutoDictionary(mAutoDictionary); @@ -438,9 +444,16 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar Utils.setSystemLocale(res, savedLocale); } + private void resetContactsDictionary() { + if (null == mSuggest) return; + ContactsDictionary contactsDictionary = mSettingsValues.mUseContactsDict + ? new ContactsDictionary(this, Suggest.DIC_CONTACTS) : null; + mSuggest.setContactsDictionary(contactsDictionary); + } + /* package private */ void resetSuggestMainDict() { final String localeStr = mSubtypeSwitcher.getInputLocaleStr(); - final Locale keyboardLocale = new Locale(localeStr); + final Locale keyboardLocale = Utils.constructLocaleFromString(localeStr); int mainDicResId = Utils.getMainDictionaryResourceId(mResources); mSuggest.resetMainDict(this, mainDicResId, keyboardLocale); } @@ -487,24 +500,29 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } @Override - public View onCreateCandidatesView() { - LayoutInflater inflater = getLayoutInflater(); - LinearLayout container = (LinearLayout)inflater.inflate(R.layout.candidates, null); - mCandidateViewContainer = container; + public void setInputView(View view) { + super.setInputView(view); + mCandidateViewContainer = view.findViewById(R.id.candidates_container); + mCandidateView = (CandidateView) view.findViewById(R.id.candidates); + mCandidateView.setListener(this, view); mCandidateStripHeight = (int)mResources.getDimension(R.dimen.candidate_strip_height); - mCandidateView = (CandidateView) container.findViewById(R.id.candidates); - mCandidateView.setService(this); - setCandidatesViewShown(true); - return container; + } + + @Override + public void setCandidatesView(View view) { + // To ensure that CandidatesView will never be set. + return; } @Override public void onStartInputView(EditorInfo attribute, boolean restarting) { final KeyboardSwitcher switcher = mKeyboardSwitcher; - LatinKeyboardView inputView = switcher.getInputView(); + LatinKeyboardView inputView = switcher.getKeyboardView(); if (DEBUG) { - Log.d(TAG, "onStartInputView: " + inputView); + Log.d(TAG, "onStartInputView: attribute:" + ((attribute == null) ? "none" + : String.format("inputType=0x%08x imeOptions=0x%08x", + attribute.inputType, attribute.imeOptions))); } // In landscape mode, this method gets called without the input view being created. if (inputView == null) { @@ -530,6 +548,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mHasUncommittedTypedChars = false; mDeleteCount = 0; mJustAddedMagicSpace = false; + mJustReplacedDoubleSpace = false; loadSettings(); updateCorrectionMode(); @@ -550,7 +569,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar switcher.updateShiftState(); } - setCandidatesViewShownInternal(isCandidateStripVisible(), false /* needsInputViewShown */ ); + setSuggestionStripShownInternal(isCandidateStripVisible(), /* needsInputViewShown */ false); // Delay updating suggestions because keyboard input view may not be shown at this point. mHandler.postUpdateSuggestions(); @@ -624,6 +643,13 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } @Override + public void onWindowHidden() { + super.onWindowHidden(); + KeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); + if (inputView != null) inputView.closing(); + } + + @Override public void onFinishInput() { super.onFinishInput(); @@ -632,7 +658,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mVoiceProxy.flushVoiceInputLogs(mConfigurationChanging); - KeyboardView inputView = mKeyboardSwitcher.getInputView(); + KeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); if (inputView != null) inputView.closing(); if (mAutoDictionary != null) mAutoDictionary.flushPendingWrites(); if (mUserBigramDictionary != null) mUserBigramDictionary.flushPendingWrites(); @@ -641,7 +667,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar @Override public void onFinishInputView(boolean finishingInput) { super.onFinishInputView(finishingInput); - KeyboardView inputView = mKeyboardSwitcher.getInputView(); + KeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); if (inputView != null) inputView.setForeground(false); // Remove pending messages related to update suggestions mHandler.cancelUpdateSuggestions(); @@ -702,14 +728,17 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar ic.finishComposingText(); } mVoiceProxy.setVoiceInputHighlighted(false); - } else if (!mHasUncommittedTypedChars && !mJustAccepted) { + } else if (!mHasUncommittedTypedChars && !mExpectingUpdateSelection) { if (TextEntryState.isAcceptedDefault() || TextEntryState.isSpaceAfterPicked()) { if (TextEntryState.isAcceptedDefault()) TextEntryState.reset(); - mJustAddedMagicSpace = false; // The user moved the cursor. } } - mJustAccepted = false; + if (!mExpectingUpdateSelection) { + mJustAddedMagicSpace = false; // The user moved the cursor. + mJustReplacedDoubleSpace = false; + } + mExpectingUpdateSelection = false; mHandler.postUpdateShiftKeyState(); // Make a note of the cursor position @@ -797,11 +826,11 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // When in fullscreen mode, show completions generated by the application setSuggestions(builder.build()); mBestWord = null; - setCandidatesViewShown(true); + setSuggestionStripShown(true); } } - private void setCandidatesViewShownInternal(boolean shown, boolean needsInputViewShown) { + private void setSuggestionStripShownInternal(boolean shown, boolean needsInputViewShown) { // TODO: Modify this if we support candidates with hard keyboard if (onEvaluateInputViewShown()) { final boolean shouldShowCandidates = shown @@ -809,27 +838,26 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (isExtractViewShown()) { // No need to have extra space to show the key preview. mCandidateViewContainer.setMinimumHeight(0); - super.setCandidatesViewShown(shown); + mCandidateViewContainer.setVisibility( + shouldShowCandidates ? View.VISIBLE : View.GONE); } else { // We must control the visibility of the suggestion strip in order to avoid clipped // key previews, even when we don't show the suggestion strip. mCandidateViewContainer.setVisibility( shouldShowCandidates ? View.VISIBLE : View.INVISIBLE); - super.setCandidatesViewShown(true); } } } - @Override - public void setCandidatesViewShown(boolean shown) { - setCandidatesViewShownInternal(shown, true /* needsInputViewShown */ ); + private void setSuggestionStripShown(boolean shown) { + setSuggestionStripShownInternal(shown, /* needsInputViewShown */true); } @Override public void onComputeInsets(InputMethodService.Insets outInsets) { super.onComputeInsets(outInsets); - final KeyboardView inputView = mKeyboardSwitcher.getInputView(); - if (inputView == null) + final KeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); + if (inputView == null || mCandidateViewContainer == null) return; final int containerHeight = mCandidateViewContainer.getHeight(); int touchY = containerHeight; @@ -870,8 +898,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: - if (event.getRepeatCount() == 0 && mKeyboardSwitcher.getInputView() != null) { - if (mKeyboardSwitcher.getInputView().handleBack()) { + if (event.getRepeatCount() == 0 && mKeyboardSwitcher.getKeyboardView() != null) { + if (mKeyboardSwitcher.getKeyboardView().handleBack()) { return true; } } @@ -960,6 +988,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar ic.commitText(". ", 1); ic.endBatchEdit(); mKeyboardSwitcher.updateShiftState(); + mJustReplacedDoubleSpace = true; } else { mHandler.startDoubleSpacesTimer(); } @@ -990,6 +1019,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } } + @Override public boolean addWordToDictionary(String word) { mUserDictionary.addWord(word, 128); // Suggestion strip should be updated after the operation of adding word to the @@ -1007,14 +1037,14 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } private void onSettingsKeyPressed() { - if (!isShowingOptionDialog()) { - if (!mSettingsValues.mEnableShowSubtypeSettings) { - showSubtypeSelectorAndSettings(); - } else if (Utils.hasMultipleEnabledIMEsOrSubtypes(mImm)) { - showOptionsMenu(); - } else { - launchSettings(); - } + if (isShowingOptionDialog()) + return; + if (InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) { + showSubtypeSelectorAndSettings(); + } else if (Utils.hasMultipleEnabledIMEsOrSubtypes(mImm)) { + showOptionsMenu(); + } else { + launchSettings(); } } @@ -1042,10 +1072,13 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mLastKeyTime = when; KeyboardSwitcher switcher = mKeyboardSwitcher; final boolean distinctMultiTouch = switcher.hasDistinctMultitouch(); + final boolean lastStateOfJustReplacedDoubleSpace = mJustReplacedDoubleSpace; + mJustReplacedDoubleSpace = false; switch (primaryCode) { case Keyboard.CODE_DELETE: - handleBackspace(); + handleBackspace(lastStateOfJustReplacedDoubleSpace); mDeleteCount++; + mExpectingUpdateSelection = true; LatinImeLogger.logOnDelete(); break; case Keyboard.CODE_SHIFT: @@ -1083,6 +1116,14 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar break; case Keyboard.CODE_TAB: handleTab(); + // There are two cases for tab. Either we send a "next" event, that may change the + // focus but will never move the cursor. Or, we send a real tab keycode, which some + // applications may accept or ignore, and we don't know whether this will move the + // cursor or not. So actually, we don't really know. + // So to go with the safer option, we'd rather behave as if the user moved the + // cursor when they didn't than the opposite. We also expect that most applications + // will actually use tab only for focus movement. + // To sum it up: do not update mExpectingUpdateSelection here. break; default: if (mSettingsValues.isWordSeparator(primaryCode)) { @@ -1090,6 +1131,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } else { handleCharacter(primaryCode, keyCodes, x, y); } + mExpectingUpdateSelection = true; + break; } switcher.onKey(primaryCode); // Reset after any single keystroke @@ -1119,7 +1162,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar mKeyboardSwitcher.onCancelInput(); } - private void handleBackspace() { + private void handleBackspace(boolean justReplacedDoubleSpace) { if (mVoiceProxy.logAndRevertVoiceInput()) return; final InputConnection ic = getCurrentInputConnection(); @@ -1160,6 +1203,12 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar ic.endBatchEdit(); return; } + if (justReplacedDoubleSpace) { + if (revertDoubleSpace()) { + ic.endBatchEdit(); + return; + } + } if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) { ic.deleteSurroundingText(mEnteredText.length(), 0); @@ -1200,7 +1249,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (EditorInfoCompatUtils.hasFlagNavigateNext(imeOptions) && !isManualTemporaryUpperCase) { EditorInfoCompatUtils.performEditorActionNext(ic); - ic.performEditorAction(EditorInfo.IME_ACTION_NEXT); } else if (EditorInfoCompatUtils.hasFlagNavigatePrevious(imeOptions) && isManualTemporaryUpperCase) { EditorInfoCompatUtils.performEditorActionPrevious(ic); @@ -1228,7 +1276,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar clearSuggestions(); } } - KeyboardSwitcher switcher = mKeyboardSwitcher; + final KeyboardSwitcher switcher = mKeyboardSwitcher; if (switcher.isShiftedOrShiftLocked()) { if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT || keyCodes[0] > Character.MAX_CODE_POINT) { @@ -1236,13 +1284,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } code = keyCodes[0]; if (switcher.isAlphabetMode() && Character.isLowerCase(code)) { - int upperCaseCode = Character.toUpperCase(code); - if (upperCaseCode != code) { - code = upperCaseCode; + // In some locales, such as Turkish, Character.toUpperCase() may return a wrong + // character because it doesn't take care of locale. + final String upperCaseString = new String(new int[] {code}, 0, 1) + .toUpperCase(mSubtypeSwitcher.getInputLocale()); + if (upperCaseString.codePointCount(0, upperCaseString.length()) == 1) { + code = upperCaseString.codePointAt(0); } else { // Some keys, such as [eszett], have upper case as multi-characters. - String upperCase = new String(new int[] {code}, 0, 1).toUpperCase(); - onTextInput(upperCase); + onTextInput(upperCaseString); return; } } @@ -1358,7 +1408,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar commitTyped(getCurrentInputConnection()); mVoiceProxy.handleClose(); requestHideSelf(0); - LatinKeyboardView inputView = mKeyboardSwitcher.getInputView(); + LatinKeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); if (inputView != null) inputView.closing(); } @@ -1394,7 +1444,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (DEBUG) { Log.d(TAG, "Switch to keyboard view."); } - View v = mKeyboardSwitcher.getInputView(); + View v = mKeyboardSwitcher.getKeyboardView(); if (v != null) { // Confirms that the keyboard view doesn't have parent view. ViewParent p = v.getParent(); @@ -1403,7 +1453,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } setInputView(v); } - setCandidatesViewShown(isCandidateStripVisible()); + setSuggestionStripShown(isCandidateStripVisible()); updateInputViewShown(); mHandler.postUpdateSuggestions(); } @@ -1413,16 +1463,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } public void setSuggestions(SuggestedWords words) { - if (mVoiceProxy.getAndResetIsShowingHint()) { - setCandidatesView(mCandidateViewContainer); - } - if (mCandidateView != null) { mCandidateView.setSuggestions(words); - if (mCandidateView.isConfigCandidateHighlightFontColorEnabled()) { - mKeyboardSwitcher.onAutoCorrectionStateChanged( - words.hasWordAboveAutoCorrectionScoreThreshold()); - } + mKeyboardSwitcher.onAutoCorrectionStateChanged( + words.hasWordAboveAutoCorrectionScoreThreshold()); } } @@ -1445,7 +1489,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar CharSequence prevWord = EditingUtils.getPreviousWord(getCurrentInputConnection(), mSettingsValues.mWordSeparators); SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder( - mKeyboardSwitcher.getInputView(), word, prevWord); + mKeyboardSwitcher.getKeyboardView(), word, prevWord); boolean correctionAvailable = !mInputTypeNoAutoCorrect && mSuggest.hasAutoCorrection(); final CharSequence typedWord = word.getTypedWord(); @@ -1494,7 +1538,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } else { mBestWord = null; } - setCandidatesViewShown(isCandidateStripVisible()); + setSuggestionStripShown(isCandidateStripVisible()); } private boolean pickDefaultSuggestion(int separatorCode) { @@ -1505,8 +1549,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } if (mBestWord != null && mBestWord.length() > 0) { TextEntryState.acceptedDefault(mWord.getTypedWord(), mBestWord, separatorCode); - mJustAccepted = true; - pickSuggestion(mBestWord); + mExpectingUpdateSelection = true; + commitBestWord(mBestWord); // Add the word to the auto dictionary if it's not a known word addToAutoAndUserBigramDictionaries(mBestWord, AutoDictionary.FREQUENCY_FOR_TYPED); return true; @@ -1514,6 +1558,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar return false; } + @Override public void pickSuggestionManually(int index, CharSequence suggestion) { SuggestedWords suggestions = mCandidateView.getSuggestions(); mVoiceProxy.flushAndLogAllTextModificationCounters(index, suggestion, @@ -1553,7 +1598,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // a magic space even if it was a normal space. This is meant to help in case the user // pressed space on purpose of displaying the suggestion strip punctuation. final char primaryCode = suggestion.charAt(0); - final CharSequence beforeText = ic.getTextBeforeCursor(1, 0); + final CharSequence beforeText = ic != null ? ic.getTextBeforeCursor(1, 0) : ""; final int toLeft = (ic == null || TextUtils.isEmpty(beforeText)) ? 0 : beforeText.charAt(0); final boolean oldMagicSpace = mJustAddedMagicSpace; @@ -1572,8 +1617,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // context - no user input. We should reset the word composer. mWord.reset(); } - mJustAccepted = true; - pickSuggestion(suggestion); + mExpectingUpdateSelection = true; + commitBestWord(suggestion); // Add the word to the auto dictionary if it's not a known word if (index == 0) { addToAutoAndUserBigramDictionaries(suggestion, AutoDictionary.FREQUENCY_FOR_PICKED); @@ -1613,8 +1658,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (!showingAddToDictionaryHint) { // If we're not showing the "Touch again to save", then show corrections again. // In case the cursor position doesn't change, make sure we show the suggestions again. - clearSuggestions(); - mHandler.postUpdateOldSuggestions(); + updateBigramPredictions(); + // Updating the predictions right away may be slow and feel unresponsive on slower + // terminals. On the other hand if we just postUpdateBigramPredictions() it will + // take a noticeable delay to update them which may feel uneasy. } if (showingAddToDictionaryHint) { mCandidateView.showAddToDictionaryHint(suggestion); @@ -1627,25 +1674,25 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar /** * Commits the chosen word to the text field and saves it for later * retrieval. - * @param suggestion the suggestion picked by the user to be committed to - * the text field */ - private void pickSuggestion(CharSequence suggestion) { + private void commitBestWord(CharSequence bestWord) { KeyboardSwitcher switcher = mKeyboardSwitcher; if (!switcher.isKeyboardAvailable()) return; InputConnection ic = getCurrentInputConnection(); if (ic != null) { - mVoiceProxy.rememberReplacedWord(suggestion, mSettingsValues.mWordSeparators); - ic.commitText(suggestion, 1); + mVoiceProxy.rememberReplacedWord(bestWord, mSettingsValues.mWordSeparators); + SuggestedWords suggestedWords = mCandidateView.getSuggestions(); + ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan( + this, bestWord, suggestedWords), 1); } - mRecorrection.saveRecorrectionSuggestion(mWord, suggestion); + mRecorrection.saveRecorrectionSuggestion(mWord, bestWord); mHasUncommittedTypedChars = false; - mCommittedLength = suggestion.length(); + mCommittedLength = bestWord.length(); } private static final WordComposer sEmptyWordComposer = new WordComposer(); - private void updateBigramPredictions() { + public void updateBigramPredictions() { if (mSuggest == null || !isSuggestionsRequested()) return; @@ -1657,7 +1704,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar final CharSequence prevWord = EditingUtils.getThisWord(getCurrentInputConnection(), mSettingsValues.mWordSeparators); SuggestedWords.Builder builder = mSuggest.getSuggestedWordBuilder( - mKeyboardSwitcher.getInputView(), sEmptyWordComposer, prevWord); + mKeyboardSwitcher.getKeyboardView(), sEmptyWordComposer, prevWord); if (builder.size() > 0) { // Explicitly supply an empty typed word (the no-second-arg version of @@ -1670,7 +1717,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void setPunctuationSuggestions() { setSuggestions(mSettingsValues.mSuggestPuncList); - setCandidatesViewShown(isCandidateStripVisible()); + setSuggestionStripShown(isCandidateStripVisible()); } private void addToAutoAndUserBigramDictionaries(CharSequence suggestion, int frequencyDelta) { @@ -1780,6 +1827,21 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } } + public boolean revertDoubleSpace() { + mHandler.cancelDoubleSpacesTimer(); + final InputConnection ic = getCurrentInputConnection(); + // Here we test whether we indeed have a period and a space before us. This should not + // be needed, but it's there just in case something went wrong. + final CharSequence textBeforeCursor = ic.getTextBeforeCursor(2, 0); + if (!". ".equals(textBeforeCursor)) + return false; + ic.beginBatchEdit(); + ic.deleteSurroundingText(2, 0); + ic.commitText(" ", 1); + ic.endBatchEdit(); + return true; + } + public boolean isWordSeparator(int code) { return mSettingsValues.isWordSeparator(code); } @@ -1813,7 +1875,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } // The following is necessary because on API levels < 10, we don't get notified when // subtype changes. - onRefreshKeyboard(); + if (!CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) + onRefreshKeyboard(); } @Override @@ -1879,7 +1942,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // if mAudioManager is null, we don't have the ringer state yet // mAudioManager will be set by updateRingerMode if (mAudioManager == null) { - if (mKeyboardSwitcher.getInputView() != null) { + if (mKeyboardSwitcher.getKeyboardView() != null) { updateRingerMode(); } } @@ -1906,7 +1969,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar if (!mSettingsValues.mVibrateOn) { return; } - LatinKeyboardView inputView = mKeyboardSwitcher.getInputView(); + LatinKeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); if (inputView != null) { inputView.performHapticFeedback( HapticFeedbackConstants.KEYBOARD_TAP, @@ -1914,11 +1977,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } } - public void promoteToUserDictionary(String word, int frequency) { - if (mUserDictionary.isValidWord(word)) return; - mUserDictionary.addWord(word, frequency); - } - public WordComposer getCurrentWord() { return mWord; } @@ -2030,7 +2088,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar private void showOptionsMenuInternal(CharSequence title, CharSequence[] items, DialogInterface.OnClickListener listener) { - final IBinder windowToken = mKeyboardSwitcher.getInputView().getWindowToken(); + final IBinder windowToken = mKeyboardSwitcher.getKeyboardView().getWindowToken(); if (windowToken == null) return; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setCancelable(true); diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java index 7c323c155..3ad2a5965 100644 --- a/java/src/com/android/inputmethod/latin/Settings.java +++ b/java/src/com/android/inputmethod/latin/Settings.java @@ -79,6 +79,8 @@ public class Settings extends PreferenceActivity public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = "pref_key_preview_popup_dismiss_delay"; + public static final String PREF_KEY_USE_CONTACTS_DICT = + "pref_key_use_contacts_dict"; public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode"; @@ -87,7 +89,6 @@ public class Settings extends PreferenceActivity public static class Values { // From resources: - public final boolean mEnableShowSubtypeSettings; public final boolean mSwipeDownDismissKeyboardEnabled; public final int mDelayBeforeFadeoutLanguageOnSpacebar; public final int mDelayUpdateSuggestions; @@ -115,21 +116,20 @@ public class Settings extends PreferenceActivity public final boolean mBigramSuggestionEnabled; // Prediction: use bigrams to predict the next word when there is no input for it yet public final boolean mBigramPredictionEnabled; + public final boolean mUseContactsDict; public Values(final SharedPreferences prefs, final Context context, final String localeStr) { final Resources res = context.getResources(); final Locale savedLocale; if (null != localeStr) { - final Locale keyboardLocale = new Locale(localeStr); + final Locale keyboardLocale = Utils.constructLocaleFromString(localeStr); savedLocale = Utils.setSystemLocale(res, keyboardLocale); } else { savedLocale = null; } // Get the resources - mEnableShowSubtypeSettings = res.getBoolean( - R.bool.config_enable_show_subtype_settings); mSwipeDownDismissKeyboardEnabled = res.getBoolean( R.bool.config_swipe_down_dismiss_keyboard_enabled); mDelayBeforeFadeoutLanguageOnSpacebar = res.getInteger( @@ -178,6 +178,8 @@ public class Settings extends PreferenceActivity mAutoCorrectionThreshold = getAutoCorrectionThreshold(prefs, res); + mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true); + Utils.setSystemLocale(res, savedLocale); } @@ -354,8 +356,6 @@ public class Settings extends PreferenceActivity (PreferenceGroup) findPreference(PREF_GENERAL_SETTINGS_KEY); final PreferenceGroup textCorrectionGroup = (PreferenceGroup) findPreference(PREF_CORRECTION_SETTINGS_KEY); - final PreferenceGroup bigramGroup = - (PreferenceGroup) findPreference(PREF_NGRAM_SETTINGS_KEY); final boolean showSettingsKeyOption = res.getBoolean( R.bool.config_enable_show_settings_key_option); @@ -373,10 +373,7 @@ public class Settings extends PreferenceActivity generalSettings.removePreference(findPreference(PREF_VIBRATE_ON)); } - final boolean showSubtypeSettings = res.getBoolean( - R.bool.config_enable_show_subtype_settings); - if (InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED - && !showSubtypeSettings) { + if (InputMethodServiceCompatWrapper.CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED) { generalSettings.removePreference(findPreference(PREF_SUBTYPES)); } @@ -499,7 +496,6 @@ public class Settings extends PreferenceActivity } private void updateSettingsKeySummary() { - final ListPreference lp = mSettingsKeyPreference; mSettingsKeyPreference.setSummary( getResources().getStringArray(R.array.settings_key_modes) [mSettingsKeyPreference.findIndexOfValue(mSettingsKeyPreference.getValue())]); diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java index d8012087b..6ca12c0c5 100644 --- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java +++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java @@ -92,10 +92,9 @@ public class SubtypeSwitcher { } public static void init(LatinIME service, SharedPreferences prefs) { + SubtypeLocale.init(service); sInstance.initialize(service, prefs); sInstance.updateAllParameters(); - - SubtypeLocale.init(service); } private SubtypeSwitcher() { @@ -281,14 +280,8 @@ public class SubtypeSwitcher { // "en_US" --> language: en & country: US // "en" --> language: en // "" --> the system locale - mLocaleSplitter.setString(inputLocaleStr); - if (mLocaleSplitter.hasNext()) { - String language = mLocaleSplitter.next(); - if (mLocaleSplitter.hasNext()) { - mInputLocale = new Locale(language, mLocaleSplitter.next()); - } else { - mInputLocale = new Locale(language); - } + if (!TextUtils.isEmpty(inputLocaleStr)) { + mInputLocale = Utils.constructLocaleFromString(inputLocaleStr); mInputLocaleStr = inputLocaleStr; } else { mInputLocale = mSystemLocale; @@ -420,7 +413,7 @@ public class SubtypeSwitcher { final KeyboardSwitcher switcher = KeyboardSwitcher.getInstance(); final LatinKeyboard keyboard = switcher.getLatinKeyboard(); if (keyboard != null) { - keyboard.updateShortcutKey(isShortcutImeReady(), switcher.getInputView()); + keyboard.updateShortcutKey(isShortcutImeReady(), switcher.getKeyboardView()); } } @@ -510,7 +503,7 @@ public class SubtypeSwitcher { private void triggerVoiceIME() { if (!mService.isInputViewShown()) return; VoiceProxy.getInstance().startListening(false, - KeyboardSwitcher.getInstance().getInputView().getWindowToken()); + KeyboardSwitcher.getInstance().getKeyboardView().getWindowToken()); } ////////////////////////////////////// @@ -549,12 +542,12 @@ public class SubtypeSwitcher { || mEnabledKeyboardSubtypesOfCurrentInputMethod.size() == 0) return; mCurrentKeyboardSubtypeIndex = getCurrentIndex(); mNextKeyboardSubtype = getNextKeyboardSubtypeInternal(mCurrentKeyboardSubtypeIndex); - Locale locale = new Locale(mNextKeyboardSubtype.getLocale()); - mNextLanguage = getDisplayLanguage(locale); + Locale locale = Utils.constructLocaleFromString(mNextKeyboardSubtype.getLocale()); + mNextLanguage = getFullDisplayName(locale, true); mPreviousKeyboardSubtype = getPreviousKeyboardSubtypeInternal( mCurrentKeyboardSubtypeIndex); - locale = new Locale(mPreviousKeyboardSubtype.getLocale()); - mPreviousLanguage = getDisplayLanguage(locale); + locale = Utils.constructLocaleFromString(mPreviousKeyboardSubtype.getLocale()); + mPreviousLanguage = getFullDisplayName(locale, true); } private int normalize(int index) { @@ -584,29 +577,30 @@ public class SubtypeSwitcher { public static String getFullDisplayName(Locale locale, boolean returnsNameInThisLocale) { if (returnsNameInThisLocale) { - return toTitleCase(SubtypeLocale.getFullDisplayName(locale)); + return toTitleCase(SubtypeLocale.getFullDisplayName(locale), locale); } else { - return toTitleCase(locale.getDisplayName()); + return toTitleCase(locale.getDisplayName(), locale); } } public static String getDisplayLanguage(Locale locale) { - return toTitleCase(locale.getDisplayLanguage(locale)); + return toTitleCase(SubtypeLocale.getFullDisplayName(locale), locale); } public static String getMiddleDisplayLanguage(Locale locale) { - return toTitleCase((new Locale(locale.getLanguage()).getDisplayLanguage(locale))); + return toTitleCase((Utils.constructLocaleFromString( + locale.getLanguage()).getDisplayLanguage(locale)), locale); } public static String getShortDisplayLanguage(Locale locale) { - return toTitleCase(locale.getLanguage()); + return toTitleCase(locale.getLanguage(), locale); } - private static String toTitleCase(String s) { + private static String toTitleCase(String s, Locale locale) { if (s.length() == 0) { return s; } - return Character.toUpperCase(s.charAt(0)) + s.substring(1); + return s.toUpperCase(locale).charAt(0) + s.substring(1); } public String getInputLanguageName() { diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index ca75866c0..eb5ed5a65 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -84,7 +84,7 @@ public class Suggest implements Dictionary.WordCallback { private final Map<String, Dictionary> mUnigramDictionaries = new HashMap<String, Dictionary>(); private final Map<String, Dictionary> mBigramDictionaries = new HashMap<String, Dictionary>(); - private int mPrefMaxSuggestions = 12; + private int mPrefMaxSuggestions = 18; private static final int PREF_MAX_BIGRAMS = 60; @@ -117,30 +117,31 @@ public class Suggest implements Dictionary.WordCallback { } private void init(Context context, Dictionary mainDict) { - if (mainDict != null) { - mMainDict = mainDict; - mUnigramDictionaries.put(DICT_KEY_MAIN, mainDict); - mBigramDictionaries.put(DICT_KEY_MAIN, mainDict); - } + mMainDict = mainDict; + addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_MAIN, mainDict); + addOrReplaceDictionary(mBigramDictionaries, DICT_KEY_MAIN, mainDict); mWhiteListDictionary = WhitelistDictionary.init(context); - if (mWhiteListDictionary != null) { - mUnigramDictionaries.put(DICT_KEY_WHITELIST, mWhiteListDictionary); - } + addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_WHITELIST, mWhiteListDictionary); mAutoCorrection = new AutoCorrection(); initPool(); } + private void addOrReplaceDictionary(Map<String, Dictionary> dictionaries, String key, + Dictionary dict) { + final Dictionary oldDict = (dict == null) + ? dictionaries.remove(key) + : dictionaries.put(key, dict); + if (oldDict != null && dict != oldDict) { + oldDict.close(); + } + } + public void resetMainDict(Context context, int dictionaryResId, Locale locale) { final Dictionary newMainDict = DictionaryFactory.createDictionaryFromManager( context, locale, dictionaryResId); mMainDict = newMainDict; - if (null == newMainDict) { - mUnigramDictionaries.remove(DICT_KEY_MAIN); - mBigramDictionaries.remove(DICT_KEY_MAIN); - } else { - mUnigramDictionaries.put(DICT_KEY_MAIN, newMainDict); - mBigramDictionaries.put(DICT_KEY_MAIN, newMainDict); - } + addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_MAIN, newMainDict); + addOrReplaceDictionary(mBigramDictionaries, DICT_KEY_MAIN, newMainDict); } private void initPool() { @@ -179,28 +180,25 @@ public class Suggest implements Dictionary.WordCallback { * before the main dictionary, if set. */ public void setUserDictionary(Dictionary userDictionary) { - if (userDictionary != null) - mUnigramDictionaries.put(DICT_KEY_USER, userDictionary); + addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_USER, userDictionary); } /** - * Sets an optional contacts dictionary resource to be loaded. + * Sets an optional contacts dictionary resource to be loaded. It is also possible to remove + * the contacts dictionary by passing null to this method. In this case no contacts dictionary + * won't be used. */ public void setContactsDictionary(Dictionary contactsDictionary) { - if (contactsDictionary != null) { - mUnigramDictionaries.put(DICT_KEY_CONTACTS, contactsDictionary); - mBigramDictionaries.put(DICT_KEY_CONTACTS, contactsDictionary); - } + addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_CONTACTS, contactsDictionary); + addOrReplaceDictionary(mBigramDictionaries, DICT_KEY_CONTACTS, contactsDictionary); } public void setAutoDictionary(Dictionary autoDictionary) { - if (autoDictionary != null) - mUnigramDictionaries.put(DICT_KEY_AUTO, autoDictionary); + addOrReplaceDictionary(mUnigramDictionaries, DICT_KEY_AUTO, autoDictionary); } public void setUserBigramDictionary(Dictionary userBigramDictionary) { - if (userBigramDictionary != null) - mBigramDictionaries.put(DICT_KEY_USER_BIGRAM, userBigramDictionary); + addOrReplaceDictionary(mBigramDictionaries, DICT_KEY_USER_BIGRAM, userBigramDictionary); } public void setAutoCorrectionThreshold(double threshold) { @@ -252,6 +250,7 @@ public class Suggest implements Dictionary.WordCallback { poolSize > 0 ? (StringBuilder) mStringPool.remove(poolSize - 1) : new StringBuilder(getApproxMaxWordLength()); sb.setLength(0); + // TODO: Must pay attention to locale when changing case. if (all) { sb.append(word.toString().toUpperCase()); } else if (first) { @@ -317,6 +316,7 @@ public class Suggest implements Dictionary.WordCallback { } else { // Word entered: return only bigrams that match the first char of the typed word final char currentChar = typedWord.charAt(0); + // TODO: Must pay attention to locale when changing case. final char currentCharUpper = Character.toUpperCase(currentChar); int count = 0; final int bigramSuggestionSize = mBigramSuggestions.size(); @@ -520,6 +520,7 @@ public class Suggest implements Dictionary.WordCallback { StringBuilder sb = poolSize > 0 ? (StringBuilder) mStringPool.remove(poolSize - 1) : new StringBuilder(getApproxMaxWordLength()); sb.setLength(0); + // TODO: Must pay attention to locale when changing case. if (mIsAllUpperCase) { sb.append(new String(word, offset, length).toUpperCase()); } else if (mIsFirstCharCapitalized) { diff --git a/java/src/com/android/inputmethod/latin/SuggestionSpanPickedNotificationReceiver.java b/java/src/com/android/inputmethod/latin/SuggestionSpanPickedNotificationReceiver.java new file mode 100644 index 000000000..4a3f42d5d --- /dev/null +++ b/java/src/com/android/inputmethod/latin/SuggestionSpanPickedNotificationReceiver.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.latin; + +import com.android.inputmethod.compat.SuggestionSpanUtils; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +public class SuggestionSpanPickedNotificationReceiver extends BroadcastReceiver { + private static final boolean DBG = LatinImeLogger.sDBG; + private static final String TAG = + SuggestionSpanPickedNotificationReceiver.class.getSimpleName(); + + @Override + public void onReceive(Context context, Intent intent) { + if (SuggestionSpanUtils.ACTION_SUGGESTION_PICKED.equals(intent.getAction())) { + if (DBG) { + final String before = intent.getStringExtra( + SuggestionSpanUtils.SUGGESTION_SPAN_PICKED_BEFORE); + final String after = intent.getStringExtra( + SuggestionSpanUtils.SUGGESTION_SPAN_PICKED_AFTER); + Log.d(TAG, "Received notification picked: " + before + "," + after); + } + } + } +} diff --git a/java/src/com/android/inputmethod/latin/UserBigramDictionary.java b/java/src/com/android/inputmethod/latin/UserBigramDictionary.java index a32a6461a..5b615ca29 100644 --- a/java/src/com/android/inputmethod/latin/UserBigramDictionary.java +++ b/java/src/com/android/inputmethod/latin/UserBigramDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Google Inc. + * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -158,7 +158,7 @@ public class UserBigramDictionary extends ExpandableDictionary { * Pair will be added to the userbigram database. */ public int addBigrams(String word1, String word2) { - // remove caps + // remove caps if second word is autocapitalized if (mIme != null && mIme.getCurrentWord().isAutoCapitalized()) { word2 = Character.toLowerCase(word2.charAt(0)) + word2.substring(1); } diff --git a/java/src/com/android/inputmethod/latin/Utils.java b/java/src/com/android/inputmethod/latin/Utils.java index 47890e643..245fc20bc 100644 --- a/java/src/com/android/inputmethod/latin/Utils.java +++ b/java/src/com/android/inputmethod/latin/Utils.java @@ -18,6 +18,7 @@ package com.android.inputmethod.latin; import com.android.inputmethod.compat.InputMethodInfoCompatWrapper; import com.android.inputmethod.compat.InputMethodManagerCompatWrapper; +import com.android.inputmethod.compat.InputMethodSubtypeCompatWrapper; import com.android.inputmethod.compat.InputTypeCompatUtils; import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.KeyboardId; @@ -43,7 +44,10 @@ import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; +import java.util.List; import java.util.Locale; public class Utils { @@ -108,7 +112,34 @@ public class Utils { } public static boolean hasMultipleEnabledIMEsOrSubtypes(InputMethodManagerCompatWrapper imm) { - return imm.getEnabledInputMethodList().size() > 1 + final List<InputMethodInfoCompatWrapper> enabledImis = imm.getEnabledInputMethodList(); + + // Filters out IMEs that have auxiliary subtypes only (including either implicitly or + // explicitly enabled ones). + final ArrayList<InputMethodInfoCompatWrapper> filteredImis = + new ArrayList<InputMethodInfoCompatWrapper>(); + + outerloop: + for (InputMethodInfoCompatWrapper imi : enabledImis) { + // We can return true immediately after we find two or more filtered IMEs. + if (filteredImis.size() > 1) return true; + final List<InputMethodSubtypeCompatWrapper> subtypes = + imm.getEnabledInputMethodSubtypeList(imi, true); + // IMEs that have no subtypes should be included. + if (subtypes.isEmpty()) { + filteredImis.add(imi); + continue; + } + // IMEs that have one or more non-auxiliary subtypes should be included. + for (InputMethodSubtypeCompatWrapper subtype : subtypes) { + if (!subtype.isAuxiliary()) { + filteredImis.add(imi); + continue outerloop; + } + } + } + + return filteredImis.size() > 1 // imm.getEnabledInputMethodSubtypeList(null, false) will return the current IME's enabled // input method subtype (The current IME should be LatinIME.) || imm.getEnabledInputMethodSubtypeList(null, false).size() > 1; @@ -537,8 +568,6 @@ public class Utils { return KeyboardId.MODE_IM; } else if (variation == InputType.TYPE_TEXT_VARIATION_FILTER) { return KeyboardId.MODE_TEXT; - } else if (variation == InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT) { - return KeyboardId.MODE_WEB; } else { return KeyboardId.MODE_TEXT; } @@ -662,4 +691,28 @@ public class Utils { res.updateConfiguration(conf, res.getDisplayMetrics()); return saveLocale; } + + private static final HashMap<String, Locale> sLocaleCache = new HashMap<String, Locale>(); + + public static Locale constructLocaleFromString(String localeStr) { + if (localeStr == null) + return null; + synchronized (sLocaleCache) { + if (sLocaleCache.containsKey(localeStr)) + return sLocaleCache.get(localeStr); + Locale retval = null; + String[] localeParams = localeStr.split("_", 3); + if (localeParams.length == 1) { + retval = new Locale(localeParams[0]); + } else if (localeParams.length == 2) { + retval = new Locale(localeParams[0], localeParams[1]); + } else if (localeParams.length == 3) { + retval = new Locale(localeParams[0], localeParams[1], localeParams[2]); + } + if (retval != null) { + sLocaleCache.put(localeStr, retval); + } + return retval; + } + } } diff --git a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java index 2389d4e3c..4377373d2 100644 --- a/java/src/com/android/inputmethod/latin/WhitelistDictionary.java +++ b/java/src/com/android/inputmethod/latin/WhitelistDictionary.java @@ -39,6 +39,7 @@ public class WhitelistDictionary extends Dictionary { public static WhitelistDictionary init(Context context) { synchronized (sInstance) { if (context != null) { + // Wordlist is initialized by the proper language in Suggestion.java#init sInstance.initWordlist( context.getResources().getStringArray(R.array.wordlist_whitelist)); } else { diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SpellChecker.java b/java/src/com/android/inputmethod/latin/spellcheck/SpellChecker.java new file mode 100644 index 000000000..63c6d69d7 --- /dev/null +++ b/java/src/com/android/inputmethod/latin/spellcheck/SpellChecker.java @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.android.inputmethod.latin.spellcheck; + +import android.content.Context; +import android.content.res.Resources; + +import com.android.inputmethod.compat.ArraysCompatUtils; +import com.android.inputmethod.latin.Dictionary; +import com.android.inputmethod.latin.Dictionary.DataType; +import com.android.inputmethod.latin.Dictionary.WordCallback; +import com.android.inputmethod.latin.DictionaryFactory; +import com.android.inputmethod.latin.Utils; +import com.android.inputmethod.latin.WordComposer; + +import java.util.LinkedList; +import java.util.List; +import java.util.Locale; + +/** + * Implements spell checking methods. + */ +public class SpellChecker { + + public final Dictionary mDictionary; + + public SpellChecker(final Context context, final Locale locale) { + final Resources resources = context.getResources(); + final int fallbackResourceId = Utils.getMainDictionaryResourceId(resources); + mDictionary = DictionaryFactory.createDictionaryFromManager(context, locale, + fallbackResourceId); + } + + // Note : this must be reentrant + /** + * Finds out whether a word is in the dictionary or not. + * + * @param text the sequence containing the word to check for. + * @param start the index of the first character of the word in text. + * @param end the index of the next-to-last character in text. + * @return true if the word is in the dictionary, false otherwise. + */ + public boolean isCorrect(final CharSequence text, final int start, final int end) { + return mDictionary.isValidWord(text.subSequence(start, end)); + } + + private static class SuggestionsGatherer implements WordCallback { + private final int DEFAULT_SUGGESTION_LENGTH = 16; + private final List<String> mSuggestions = new LinkedList<String>(); + private int[] mScores = new int[DEFAULT_SUGGESTION_LENGTH]; + private int mLength = 0; + + @Override + synchronized public boolean addWord(char[] word, int wordOffset, int wordLength, int score, + int dicTypeId, DataType dataType) { + if (mLength >= mScores.length) { + final int newLength = mScores.length * 2; + mScores = new int[newLength]; + } + final int positionIndex = ArraysCompatUtils.binarySearch(mScores, 0, mLength, score); + // binarySearch returns the index if the element exists, and -<insertion index> - 1 + // if it doesn't. See documentation for binarySearch. + final int insertionIndex = positionIndex >= 0 ? positionIndex : -positionIndex - 1; + System.arraycopy(mScores, insertionIndex, mScores, insertionIndex + 1, + mLength - insertionIndex); + mLength += 1; + mScores[insertionIndex] = score; + mSuggestions.add(insertionIndex, new String(word, wordOffset, wordLength)); + return true; + } + + public List<String> getGatheredSuggestions() { + return mSuggestions; + } + } + + // Note : this must be reentrant + /** + * Gets a list of suggestions for a specific string. + * + * This returns a list of possible corrections for the text passed as an + * arguments. It may split or group words, and even perform grammatical + * analysis. + * + * @param text the sequence containing the word to check for. + * @param start the index of the first character of the word in text. + * @param end the index of the next-to-last character in text. + * @return a list of possible suggestions to replace the text. + */ + public List<String> getSuggestions(final CharSequence text, final int start, final int end) { + final SuggestionsGatherer suggestionsGatherer = new SuggestionsGatherer(); + final WordComposer composer = new WordComposer(); + for (int i = start; i < end; ++i) { + int character = text.charAt(i); + composer.add(character, new int[] { character }, + WordComposer.NOT_A_COORDINATE, WordComposer.NOT_A_COORDINATE); + } + mDictionary.getWords(composer, suggestionsGatherer); + return suggestionsGatherer.getGatheredSuggestions(); + } +} |