diff options
Diffstat (limited to 'java')
301 files changed, 4680 insertions, 3274 deletions
diff --git a/java/res/xml-sw768dp-land/kbd_phone.xml b/java/res/color/emoji_tab_label_color_gb.xml index 890518210..e1d2f715e 100644 --- a/java/res/xml-sw768dp-land/kbd_phone.xml +++ b/java/res/color/emoji_tab_label_color_gb.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,13 +18,16 @@ */ --> -<Keyboard - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardLeftPadding="10%p" - latin:keyboardRightPadding="10%p" - latin:keyWidth="13.250%p" - latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" -> - <include - latin:keyboardLayout="@xml/rows_phone" /> -</Keyboard> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:color="@color/key_text_color_gb" /> + <item + android:state_pressed="true" + android:color="@color/key_text_color_gb" /> + <item + android:state_selected="true" + android:color="@color/key_text_color_gb" /> + <item + android:color="@color/key_text_inactivated_color_gb" /> +</selector> diff --git a/java/res/xml-sw768dp-land/kbd_phone_symbols.xml b/java/res/color/emoji_tab_label_color_ics.xml index 6038b1f1e..36e1d3020 100644 --- a/java/res/xml-sw768dp-land/kbd_phone_symbols.xml +++ b/java/res/color/emoji_tab_label_color_ics.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,14 +18,16 @@ */ --> -<Keyboard - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardLeftPadding="10%p" - latin:keyboardRightPadding="10%p" - latin:keyWidth="13.250%p" - latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" -> - <!-- Tablet doesn't have phone symbols keyboard --> - <include - latin:keyboardLayout="@xml/rows_phone" /> -</Keyboard> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:color="@color/key_text_color_ics" /> + <item + android:state_pressed="true" + android:color="@color/key_text_color_ics" /> + <item + android:state_selected="true" + android:color="@color/key_text_color_ics" /> + <item + android:color="@color/key_text_inactivated_color_ics" /> +</selector> diff --git a/java/res/drawable-hdpi/ic_emoji_dark.png b/java/res/drawable-hdpi/ic_emoji_dark.png Binary files differdeleted file mode 100644 index a9f18cde0..000000000 --- a/java/res/drawable-hdpi/ic_emoji_dark.png +++ /dev/null diff --git a/java/res/drawable-hdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-hdpi/ic_emoji_nature_light_activated.png Binary files differnew file mode 100644 index 000000000..5525df2f7 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_nature_light_activated.png diff --git a/java/res/drawable-hdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-hdpi/ic_emoji_nature_light_normal.png Binary files differnew file mode 100644 index 000000000..34e16b9de --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_nature_light_normal.png diff --git a/java/res/drawable-hdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-hdpi/ic_emoji_objects_light_activated.png Binary files differnew file mode 100644 index 000000000..c3c7ec1b8 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_objects_light_activated.png diff --git a/java/res/drawable-hdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-hdpi/ic_emoji_objects_light_normal.png Binary files differnew file mode 100644 index 000000000..f012d7707 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_objects_light_normal.png diff --git a/java/res/drawable-hdpi/ic_emoji_people_light_activated.png b/java/res/drawable-hdpi/ic_emoji_people_light_activated.png Binary files differnew file mode 100644 index 000000000..cfacbc2e7 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_people_light_activated.png diff --git a/java/res/drawable-hdpi/ic_emoji_people_light_normal.png b/java/res/drawable-hdpi/ic_emoji_people_light_normal.png Binary files differnew file mode 100644 index 000000000..c54dbc1f5 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_people_light_normal.png diff --git a/java/res/drawable-hdpi/ic_emoji_places_light_activated.png b/java/res/drawable-hdpi/ic_emoji_places_light_activated.png Binary files differnew file mode 100644 index 000000000..959dfdfd5 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_places_light_activated.png diff --git a/java/res/drawable-hdpi/ic_emoji_places_light_normal.png b/java/res/drawable-hdpi/ic_emoji_places_light_normal.png Binary files differnew file mode 100644 index 000000000..fc0d9711d --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_places_light_normal.png diff --git a/java/res/drawable-hdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-hdpi/ic_emoji_recent_light_activated.png Binary files differnew file mode 100644 index 000000000..de570a185 --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_recent_light_activated.png diff --git a/java/res/drawable-hdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-hdpi/ic_emoji_recent_light_normal.png Binary files differnew file mode 100644 index 000000000..b2562088d --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_recent_light_normal.png diff --git a/java/res/drawable-hdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-hdpi/ic_emoji_symbols_light_activated.png Binary files differnew file mode 100644 index 000000000..af1fd27ec --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_symbols_light_activated.png diff --git a/java/res/drawable-hdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-hdpi/ic_emoji_symbols_light_normal.png Binary files differnew file mode 100644 index 000000000..02b84d51b --- /dev/null +++ b/java/res/drawable-hdpi/ic_emoji_symbols_light_normal.png diff --git a/java/res/drawable-hdpi/ic_ime_light.png b/java/res/drawable-hdpi/ic_ime_light.png Binary files differnew file mode 100644 index 000000000..4fd3ba126 --- /dev/null +++ b/java/res/drawable-hdpi/ic_ime_light.png diff --git a/java/res/drawable-hdpi/tab_selected.9.png b/java/res/drawable-hdpi/tab_selected.9.png Binary files differnew file mode 100644 index 000000000..84e63df17 --- /dev/null +++ b/java/res/drawable-hdpi/tab_selected.9.png diff --git a/java/res/drawable-hdpi/tab_unselected.9.png b/java/res/drawable-hdpi/tab_unselected.9.png Binary files differnew file mode 100644 index 000000000..bbcfb2c64 --- /dev/null +++ b/java/res/drawable-hdpi/tab_unselected.9.png diff --git a/java/res/drawable-mdpi/ic_emoji_dark.png b/java/res/drawable-mdpi/ic_emoji_dark.png Binary files differdeleted file mode 100644 index d0047a437..000000000 --- a/java/res/drawable-mdpi/ic_emoji_dark.png +++ /dev/null diff --git a/java/res/drawable-mdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-mdpi/ic_emoji_nature_light_activated.png Binary files differnew file mode 100644 index 000000000..d4c8d8da8 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_nature_light_activated.png diff --git a/java/res/drawable-mdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-mdpi/ic_emoji_nature_light_normal.png Binary files differnew file mode 100644 index 000000000..1555aa7a9 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_nature_light_normal.png diff --git a/java/res/drawable-mdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-mdpi/ic_emoji_objects_light_activated.png Binary files differnew file mode 100644 index 000000000..081dc66c2 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_objects_light_activated.png diff --git a/java/res/drawable-mdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-mdpi/ic_emoji_objects_light_normal.png Binary files differnew file mode 100644 index 000000000..58e6f6e75 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_objects_light_normal.png diff --git a/java/res/drawable-mdpi/ic_emoji_people_light_activated.png b/java/res/drawable-mdpi/ic_emoji_people_light_activated.png Binary files differnew file mode 100644 index 000000000..067ad5496 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_people_light_activated.png diff --git a/java/res/drawable-mdpi/ic_emoji_people_light_normal.png b/java/res/drawable-mdpi/ic_emoji_people_light_normal.png Binary files differnew file mode 100644 index 000000000..d835d4ec7 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_people_light_normal.png diff --git a/java/res/drawable-mdpi/ic_emoji_places_light_activated.png b/java/res/drawable-mdpi/ic_emoji_places_light_activated.png Binary files differnew file mode 100644 index 000000000..1aecec598 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_places_light_activated.png diff --git a/java/res/drawable-mdpi/ic_emoji_places_light_normal.png b/java/res/drawable-mdpi/ic_emoji_places_light_normal.png Binary files differnew file mode 100644 index 000000000..c70e484e1 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_places_light_normal.png diff --git a/java/res/drawable-mdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-mdpi/ic_emoji_recent_light_activated.png Binary files differnew file mode 100644 index 000000000..8009e932f --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_recent_light_activated.png diff --git a/java/res/drawable-mdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-mdpi/ic_emoji_recent_light_normal.png Binary files differnew file mode 100644 index 000000000..c2e598dfb --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_recent_light_normal.png diff --git a/java/res/drawable-mdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-mdpi/ic_emoji_symbols_light_activated.png Binary files differnew file mode 100644 index 000000000..caea87191 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_symbols_light_activated.png diff --git a/java/res/drawable-mdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-mdpi/ic_emoji_symbols_light_normal.png Binary files differnew file mode 100644 index 000000000..0edada626 --- /dev/null +++ b/java/res/drawable-mdpi/ic_emoji_symbols_light_normal.png diff --git a/java/res/drawable-mdpi/ic_ime_light.png b/java/res/drawable-mdpi/ic_ime_light.png Binary files differnew file mode 100644 index 000000000..d94ad6f7e --- /dev/null +++ b/java/res/drawable-mdpi/ic_ime_light.png diff --git a/java/res/drawable-mdpi/tab_selected.9.png b/java/res/drawable-mdpi/tab_selected.9.png Binary files differnew file mode 100644 index 000000000..4b00f350a --- /dev/null +++ b/java/res/drawable-mdpi/tab_selected.9.png diff --git a/java/res/drawable-mdpi/tab_unselected.9.png b/java/res/drawable-mdpi/tab_unselected.9.png Binary files differnew file mode 100644 index 000000000..bb45ab960 --- /dev/null +++ b/java/res/drawable-mdpi/tab_unselected.9.png diff --git a/java/res/drawable-xhdpi/ic_emoji_dark.png b/java/res/drawable-xhdpi/ic_emoji_dark.png Binary files differdeleted file mode 100644 index 22daec22e..000000000 --- a/java/res/drawable-xhdpi/ic_emoji_dark.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_nature_light_activated.png Binary files differnew file mode 100644 index 000000000..3e6744343 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_nature_light_activated.png diff --git a/java/res/drawable-xhdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_nature_light_normal.png Binary files differnew file mode 100644 index 000000000..5344a9ee9 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_nature_light_normal.png diff --git a/java/res/drawable-xhdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_objects_light_activated.png Binary files differnew file mode 100644 index 000000000..75695d43d --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_objects_light_activated.png diff --git a/java/res/drawable-xhdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_objects_light_normal.png Binary files differnew file mode 100644 index 000000000..2adb186e6 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_objects_light_normal.png diff --git a/java/res/drawable-xhdpi/ic_emoji_people_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_people_light_activated.png Binary files differnew file mode 100644 index 000000000..e6baa2e59 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_people_light_activated.png diff --git a/java/res/drawable-xhdpi/ic_emoji_people_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_people_light_normal.png Binary files differnew file mode 100644 index 000000000..c26aa4efb --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_people_light_normal.png diff --git a/java/res/drawable-xhdpi/ic_emoji_places_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_places_light_activated.png Binary files differnew file mode 100644 index 000000000..eaa3b86cf --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_places_light_activated.png diff --git a/java/res/drawable-xhdpi/ic_emoji_places_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_places_light_normal.png Binary files differnew file mode 100644 index 000000000..d6e1eaa35 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_places_light_normal.png diff --git a/java/res/drawable-xhdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_recent_light_activated.png Binary files differnew file mode 100644 index 000000000..06003b82d --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_recent_light_activated.png diff --git a/java/res/drawable-xhdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_recent_light_normal.png Binary files differnew file mode 100644 index 000000000..da2effedb --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_recent_light_normal.png diff --git a/java/res/drawable-xhdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_symbols_light_activated.png Binary files differnew file mode 100644 index 000000000..438fde2b4 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_symbols_light_activated.png diff --git a/java/res/drawable-xhdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_symbols_light_normal.png Binary files differnew file mode 100644 index 000000000..757863233 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_emoji_symbols_light_normal.png diff --git a/java/res/drawable-xhdpi/ic_ime_light.png b/java/res/drawable-xhdpi/ic_ime_light.png Binary files differnew file mode 100644 index 000000000..9d2caeda6 --- /dev/null +++ b/java/res/drawable-xhdpi/ic_ime_light.png diff --git a/java/res/drawable-xhdpi/tab_selected.9.png b/java/res/drawable-xhdpi/tab_selected.9.png Binary files differnew file mode 100644 index 000000000..95e5f4341 --- /dev/null +++ b/java/res/drawable-xhdpi/tab_selected.9.png diff --git a/java/res/drawable-xhdpi/tab_unselected.9.png b/java/res/drawable-xhdpi/tab_unselected.9.png Binary files differnew file mode 100644 index 000000000..8cede8d5e --- /dev/null +++ b/java/res/drawable-xhdpi/tab_unselected.9.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_light.png b/java/res/drawable-xxhdpi/ic_emoji_light.png Binary files differnew file mode 100644 index 000000000..7480e5294 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_light.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_nature_light_activated.png Binary files differnew file mode 100644 index 000000000..470fd695c --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_nature_light_activated.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_nature_light_normal.png Binary files differnew file mode 100644 index 000000000..a7fde0ec5 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_nature_light_normal.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_objects_light_activated.png Binary files differnew file mode 100644 index 000000000..c582b704a --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_objects_light_activated.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_objects_light_normal.png Binary files differnew file mode 100644 index 000000000..acc95d725 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_objects_light_normal.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_people_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_people_light_activated.png Binary files differnew file mode 100644 index 000000000..5973ac355 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_people_light_activated.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_people_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_people_light_normal.png Binary files differnew file mode 100644 index 000000000..22e06f808 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_people_light_normal.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_places_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_places_light_activated.png Binary files differnew file mode 100644 index 000000000..690e95fd5 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_places_light_activated.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_places_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_places_light_normal.png Binary files differnew file mode 100644 index 000000000..ced4b08cf --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_places_light_normal.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_recent_light_activated.png Binary files differnew file mode 100644 index 000000000..25e847ef3 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_recent_light_activated.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_recent_light_normal.png Binary files differnew file mode 100644 index 000000000..c86368d73 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_recent_light_normal.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_activated.png Binary files differnew file mode 100644 index 000000000..29dfc7118 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_activated.png diff --git a/java/res/drawable-xxhdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_normal.png Binary files differnew file mode 100644 index 000000000..0570567cf --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_normal.png diff --git a/java/res/drawable-xxhdpi/ic_ime_light.png b/java/res/drawable-xxhdpi/ic_ime_light.png Binary files differnew file mode 100644 index 000000000..0309635d2 --- /dev/null +++ b/java/res/drawable-xxhdpi/ic_ime_light.png diff --git a/java/res/drawable-xxhdpi/tab_selected.9.png b/java/res/drawable-xxhdpi/tab_selected.9.png Binary files differnew file mode 100644 index 000000000..e5efc5828 --- /dev/null +++ b/java/res/drawable-xxhdpi/tab_selected.9.png diff --git a/java/res/drawable-xxhdpi/tab_unselected.9.png b/java/res/drawable-xxhdpi/tab_unselected.9.png Binary files differnew file mode 100644 index 000000000..389188695 --- /dev/null +++ b/java/res/drawable-xxhdpi/tab_unselected.9.png diff --git a/java/res/drawable/btn_keyboard_key_functional_gb.xml b/java/res/drawable/btn_keyboard_key_functional_gb.xml new file mode 100644 index 000000000..431359c20 --- /dev/null +++ b/java/res/drawable/btn_keyboard_key_functional_gb.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 The Android Open 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"> + <!-- Functional keys. --> + <item android:state_pressed="true" + android:drawable="@drawable/btn_keyboard_key_dark_pressed" /> + <item android:drawable="@drawable/btn_keyboard_key_dark_normal" /> +</selector> diff --git a/java/res/drawable/btn_keyboard_key_functional_ics.xml b/java/res/drawable/btn_keyboard_key_functional_ics.xml new file mode 100644 index 000000000..5dcde5fa9 --- /dev/null +++ b/java/res/drawable/btn_keyboard_key_functional_ics.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 The Android Open 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"> + <!-- Functional keys. --> + <item android:state_pressed="true" + android:drawable="@drawable/btn_keyboard_key_dark_pressed_holo" /> + <item android:drawable="@drawable/btn_keyboard_key_dark_normal_holo" /> +</selector> diff --git a/java/res/drawable/ic_emoji_nature_light.xml b/java/res/drawable/ic_emoji_nature_light.xml new file mode 100644 index 000000000..543409e03 --- /dev/null +++ b/java/res/drawable/ic_emoji_nature_light.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:drawable="@drawable/ic_emoji_nature_light_activated" /> + <item + android:state_pressed="true" + android:drawable="@drawable/ic_emoji_nature_light_activated" /> + <item + android:state_selected="true" + android:drawable="@drawable/ic_emoji_nature_light_activated" /> + <item + android:drawable="@drawable/ic_emoji_nature_light_normal" /> +</selector> diff --git a/java/res/drawable/ic_emoji_objects_light.xml b/java/res/drawable/ic_emoji_objects_light.xml new file mode 100644 index 000000000..4096e695b --- /dev/null +++ b/java/res/drawable/ic_emoji_objects_light.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:drawable="@drawable/ic_emoji_objects_light_activated" /> + <item + android:state_pressed="true" + android:drawable="@drawable/ic_emoji_objects_light_activated" /> + <item + android:state_selected="true" + android:drawable="@drawable/ic_emoji_objects_light_activated" /> + <item android:drawable="@drawable/ic_emoji_objects_light_normal" /> +</selector> diff --git a/java/res/xml-sw768dp-land/kbd_number.xml b/java/res/drawable/ic_emoji_people_light.xml index 1cb775ef7..ea9e406a4 100644 --- a/java/res/xml-sw768dp-land/kbd_number.xml +++ b/java/res/drawable/ic_emoji_people_light.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,13 +18,15 @@ */ --> -<Keyboard - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyboardLeftPadding="10%p" - latin:keyboardRightPadding="10%p" - latin:keyWidth="13.250%p" - latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" -> - <include - latin:keyboardLayout="@xml/rows_number" /> -</Keyboard> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:drawable="@drawable/ic_emoji_people_light_activated" /> + <item + android:state_pressed="true" + android:drawable="@drawable/ic_emoji_people_light_activated" /> + <item + android:state_selected="true" + android:drawable="@drawable/ic_emoji_people_light_activated" /> + <item android:drawable="@drawable/ic_emoji_people_light_normal" /> +</selector> diff --git a/java/res/drawable/ic_emoji_places_light.xml b/java/res/drawable/ic_emoji_places_light.xml new file mode 100644 index 000000000..312cad9c3 --- /dev/null +++ b/java/res/drawable/ic_emoji_places_light.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:drawable="@drawable/ic_emoji_places_light_activated" /> + <item + android:state_pressed="true" + android:drawable="@drawable/ic_emoji_places_light_activated" /> + <item + android:state_selected="true" + android:drawable="@drawable/ic_emoji_places_light_activated" /> + <item android:drawable="@drawable/ic_emoji_places_light_normal" /> +</selector> diff --git a/java/res/drawable/ic_emoji_recent_light.xml b/java/res/drawable/ic_emoji_recent_light.xml new file mode 100644 index 000000000..8c2123f83 --- /dev/null +++ b/java/res/drawable/ic_emoji_recent_light.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:drawable="@drawable/ic_emoji_recent_light_activated" /> + <item + android:state_pressed="true" + android:drawable="@drawable/ic_emoji_recent_light_activated" /> + <item + android:state_selected="true" + android:drawable="@drawable/ic_emoji_recent_light_activated" /> + <item android:drawable="@drawable/ic_emoji_recent_light_normal" /> +</selector> diff --git a/java/res/drawable/ic_emoji_symbols_light.xml b/java/res/drawable/ic_emoji_symbols_light.xml new file mode 100644 index 000000000..79aaf0fc5 --- /dev/null +++ b/java/res/drawable/ic_emoji_symbols_light.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:state_focused="true" + android:drawable="@drawable/ic_emoji_symbols_light_activated" /> + <item + android:state_pressed="true" + android:drawable="@drawable/ic_emoji_symbols_light_activated" /> + <item + android:state_selected="true" + android:drawable="@drawable/ic_emoji_symbols_light_activated" /> + <item android:drawable="@drawable/ic_emoji_symbols_light_normal" /> +</selector> diff --git a/java/res/layout/emoji_keyboard_page.xml b/java/res/layout/emoji_keyboard_page.xml new file mode 100644 index 000000000..e0b752b32 --- /dev/null +++ b/java/res/layout/emoji_keyboard_page.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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.internal.ScrollViewWithNotifier + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/emoji_keyboard_scroller" + android:clipToPadding="false" + android:layout_width="match_parent" + android:layout_height="match_parent" +> + <com.android.inputmethod.keyboard.internal.ScrollKeyboardView + android:id="@+id/emoji_keyboard_page" + android:layoutDirection="ltr" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> +</com.android.inputmethod.keyboard.internal.ScrollViewWithNotifier> diff --git a/java/res/xml-sw768dp-land/kbd_more_keys_keyboard_template.xml b/java/res/layout/emoji_keyboard_tab_icon.xml index f593fa944..d79276eb9 100644 --- a/java/res/xml-sw768dp-land/kbd_more_keys_keyboard_template.xml +++ b/java/res/layout/emoji_keyboard_tab_icon.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,9 +18,9 @@ */ --> -<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="3.5%p" - latin:rowHeight="@dimen/popup_key_height" - style="?attr/moreKeysKeyboardStyle" - > -</Keyboard> +<ImageView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="0dip" + android:layout_weight="1.0" + android:layout_height="wrap_content" + android:gravity="center" +/> diff --git a/java/res/xml-sw768dp/kbd_more_keys_keyboard_template.xml b/java/res/layout/emoji_keyboard_tab_label.xml index f89a0a673..62c552dd8 100644 --- a/java/res/xml-sw768dp/kbd_more_keys_keyboard_template.xml +++ b/java/res/layout/emoji_keyboard_tab_label.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2008, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,9 +18,9 @@ */ --> -<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="5.0%p" - latin:rowHeight="@dimen/popup_key_height" - style="?attr/moreKeysKeyboardStyle" - > -</Keyboard> +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="0dip" + android:layout_weight="1.0" + android:layout_height="wrap_content" + android:gravity="center" +/> diff --git a/java/res/layout/emoji_keyboard_view.xml b/java/res/layout/emoji_keyboard_view.xml new file mode 100644 index 000000000..ccbcfdc6f --- /dev/null +++ b/java/res/layout/emoji_keyboard_view.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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.EmojiKeyboardView + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/emoji_keyboard_view" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content" + style="?attr/emojiKeyboardViewStyle" +> + <LinearLayout + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="@dimen/suggestions_strip_height" + > + <TabHost + android:id="@+id/emoji_category_tabhost" + android:layout_width="0dip" + android:layout_weight="87.5" + android:layout_height="match_parent" + > + <TabWidget + android:id="@android:id/tabs" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/tab_selected" + android:divider="@null" + android:tabStripEnabled="true" + android:tabStripLeft="@drawable/tab_unselected" + android:tabStripRight="@drawable/tab_unselected" /> + <FrameLayout + android:id="@android:id/tabcontent" + android:layout_width="0dip" + android:layout_height="0dip" + > + <!-- Empty placeholder that TabHost requires. But we don't use it to actually + display anything. We monitor the tab changes and change the ViewPager. + Similarly the ViewPager swipes are intercepted and passed to the TabHost. --> + <View + android:id="@+id/emoji_keyboard_dummy" + android:layout_width="0dip" + android:layout_height="0dip" + android:visibility="gone" /> + </FrameLayout> + </TabHost> + <ImageButton + android:id="@+id/emoji_keyboard_delete" + android:layout_width="0dip" + android:layout_weight="12.5" + android:layout_height="match_parent" + android:src="@drawable/sym_keyboard_delete_holo" /> + </LinearLayout> + <android.support.v4.view.ViewPager + android:id="@+id/emoji_keyboard_pager" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + <LinearLayout + android:id="@+id/emoji_action_bar" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="@dimen/suggestions_strip_height" + > + <ImageButton + android:id="@+id/emoji_keyboard_alphabet" + android:layout_width="0dip" + android:layout_weight="0.825" + android:layout_height="match_parent" + android:src="@drawable/ic_ime_light" /> + <ImageButton + android:id="@+id/emoji_keyboard_send" + android:layout_width="0dip" + android:layout_weight="0.125" + android:layout_height="match_parent" + android:src="@drawable/sym_keyboard_return_holo" /> + </LinearLayout> +</com.android.inputmethod.keyboard.EmojiKeyboardView> diff --git a/java/res/layout/hint_add_to_dictionary.xml b/java/res/layout/hint_add_to_dictionary.xml index 63d4001ad..68a9faf19 100644 --- a/java/res/layout/hint_add_to_dictionary.xml +++ b/java/res/layout/hint_add_to_dictionary.xml @@ -33,4 +33,4 @@ android:clickable="false" android:singleLine="true" android:ellipsize="none" - android:background="?attr/suggestionBackground" /> + style="?attr/suggestionWordStyle" /> diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml index 51133b289..0b682d198 100644 --- a/java/res/layout/input_view.xml +++ b/java/res/layout/input_view.xml @@ -20,27 +20,41 @@ <com.android.inputmethod.latin.InputView xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="bottom|center_horizontal" -> - <!-- To ensure that key preview popup is correctly placed when the current system locale is - one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. --> - <com.android.inputmethod.latin.suggestions.SuggestionStripView - android:id="@+id/suggestion_strip_view" - android:layoutDirection="ltr" + android:orientation="vertical" > + <!-- The height of key_preview_backing view will automatically be determined by code. --> + <View + android:id="@+id/key_preview_backing" android:layout_width="match_parent" - android:layout_height="@dimen/suggestions_strip_height" - android:paddingRight="@dimen/suggestions_strip_padding" - android:paddingLeft="@dimen/suggestions_strip_padding" - android:background="?attr/suggestionStripBackground" - style="?attr/suggestionStripViewStyle" /> - <!-- To ensure that key preview popup is correctly placed when the current system locale is - one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. --> - <com.android.inputmethod.keyboard.MainKeyboardView - android:id="@+id/keyboard_view" - android:layoutDirection="ltr" + android:layout_height="0dp" /> + <LinearLayout + android:id="@+id/main_keyboard_frame" android:layout_width="wrap_content" - android:layout_height="wrap_content" /> + android:layout_height="wrap_content" + android:orientation="vertical" > + + <!-- To ensure that key preview popup is correctly placed when the current system locale is + one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. --> + <com.android.inputmethod.latin.suggestions.SuggestionStripView + android:id="@+id/suggestion_strip_view" + android:layoutDirection="ltr" + android:layout_width="match_parent" + android:layout_height="@dimen/suggestions_strip_height" + android:gravity="center_vertical" + android:paddingRight="@dimen/suggestions_strip_padding" + android:paddingLeft="@dimen/suggestions_strip_padding" + style="?attr/suggestionStripViewStyle" /> + + <!-- To ensure that key preview popup is correctly placed when the current system locale is + one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. --> + <com.android.inputmethod.keyboard.MainKeyboardView + android:id="@+id/keyboard_view" + android:layoutDirection="ltr" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + </LinearLayout> + <include + layout="@layout/emoji_keyboard_view" /> </com.android.inputmethod.latin.InputView> diff --git a/java/res/layout/more_keys_keyboard.xml b/java/res/layout/more_keys_keyboard.xml index cab3abcd9..6637117e0 100644 --- a/java/res/layout/more_keys_keyboard.xml +++ b/java/res/layout/more_keys_keyboard.xml @@ -23,7 +23,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" - android:background="?attr/moreKeysKeyboardBackground" + style="?attr/moreKeysKeyboardContainerStyle" > <com.android.inputmethod.keyboard.MoreKeysKeyboardView xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" diff --git a/java/res/layout/more_suggestions.xml b/java/res/layout/more_suggestions.xml index 0ec0ed1b3..8659f0761 100644 --- a/java/res/layout/more_suggestions.xml +++ b/java/res/layout/more_suggestions.xml @@ -23,7 +23,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" - android:background="?attr/moreKeysKeyboardBackground" + style="?attr/moreKeysKeyboardContainerStyle" > <com.android.inputmethod.latin.suggestions.MoreSuggestionsView xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" diff --git a/java/res/layout/suggestion_info.xml b/java/res/layout/suggestion_info.xml index 8b0ee3484..0aa26000d 100644 --- a/java/res/layout/suggestion_info.xml +++ b/java/res/layout/suggestion_info.xml @@ -24,4 +24,4 @@ android:layout_height="wrap_content" android:textSize="6dp" android:textColor="@android:color/white" - android:background="?attr/suggestionBackground" /> + style="?attr/suggestionWordStyle" /> diff --git a/java/res/layout/suggestion_word.xml b/java/res/layout/suggestion_word.xml index e32e6952b..c82a13c99 100644 --- a/java/res/layout/suggestion_word.xml +++ b/java/res/layout/suggestion_word.xml @@ -36,4 +36,4 @@ android:clickable="false" android:singleLine="true" android:ellipsize="none" - android:background="?attr/suggestionBackground" /> + style="?attr/suggestionWordStyle" /> diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml index fc71368f0..294ac569f 100644 --- a/java/res/values-af/strings.xml +++ b/java/res/values-af/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Gepasmaakte invoerstyle"</string> <string name="add_style" msgid="6163126614514489951">"Voeg styl by"</string> <string name="add" msgid="8299699805688017798">"Voeg by"</string> diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml index 93f9a6000..a890b56f2 100644 --- a/java/res/values-am/strings.xml +++ b/java/res/values-am/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"ፊደላት (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ፊደላት (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ፊደላት (ፒሲ)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"የተበጁ የግቤት ስታይሎች"</string> <string name="add_style" msgid="6163126614514489951">"ስታይል አክል"</string> <string name="add" msgid="8299699805688017798">"አክል"</string> diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml index efb294985..2001f988d 100644 --- a/java/res/values-ar/strings.xml +++ b/java/res/values-ar/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"الأبجدية (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"الأبجدية (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"الأبجدية (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"أنماط الإدخال المخصصة"</string> <string name="add_style" msgid="6163126614514489951">"إضافة نمط"</string> <string name="add" msgid="8299699805688017798">"إضافة"</string> diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml index 21adcca17..d71a953bb 100644 --- a/java/res/values-be/strings.xml +++ b/java/res/values-be/strings.xml @@ -160,6 +160,8 @@ <skip /> <!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) --> <skip /> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Карыстальніцкія стылі ўводу"</string> <string name="add_style" msgid="6163126614514489951">"Дадаць стыль"</string> <string name="add" msgid="8299699805688017798">"Дадаць"</string> diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml index 301f84e38..3f0bdaacb 100644 --- a/java/res/values-bg/strings.xml +++ b/java/res/values-bg/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Латиница (Дворак)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиница (Коулмак)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиница (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Персон. стилове за въвежд."</string> <string name="add_style" msgid="6163126614514489951">"+ стил"</string> <string name="add" msgid="8299699805688017798">"Добавяне"</string> diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml index 37e7d569c..0fbcfbd97 100644 --- a/java/res/values-ca/strings.xml +++ b/java/res/values-ca/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Estils d\'entrada personalitzats"</string> <string name="add_style" msgid="6163126614514489951">"Afeg. estil"</string> <string name="add" msgid="8299699805688017798">"Afegeix"</string> diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml index 8aeaf73ff..e02a403fe 100644 --- a/java/res/values-cs/strings.xml +++ b/java/res/values-cs/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Latinka (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinka (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinka (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Vlastní styl zadávání"</string> <string name="add_style" msgid="6163126614514489951">"Přidat styl"</string> <string name="add" msgid="8299699805688017798">"Přidat"</string> diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml index afd92658f..2ac654b3b 100644 --- a/java/res/values-da/strings.xml +++ b/java/res/values-da/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Tilpasset inputtypografi"</string> <string name="add_style" msgid="6163126614514489951">"Tilføj typografi"</string> <string name="add" msgid="8299699805688017798">"Tilføj"</string> diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml index 12386d8e2..14faeea5b 100644 --- a/java/res/values-de/strings.xml +++ b/java/res/values-de/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Lat. Alphabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Lat. Alphabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Lat. Alphabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Benutzerdefinierte Eingabestile"</string> <string name="add_style" msgid="6163126614514489951">"Stil hinzufügen"</string> <string name="add" msgid="8299699805688017798">"Hinzufügen"</string> diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml index b010e44e6..705cfcf38 100644 --- a/java/res/values-el/strings.xml +++ b/java/res/values-el/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Αλφάβητο (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Αλφάβητο (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Αλφάβητο (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Προσαρμοσ. στυλ εισαγ."</string> <string name="add_style" msgid="6163126614514489951">"Προσθ. στυλ"</string> <string name="add" msgid="8299699805688017798">"Προσθήκη"</string> diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml index 130572a92..f7199f457 100644 --- a/java/res/values-en-rGB/strings.xml +++ b/java/res/values-en-rGB/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alphabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alphabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Customised input styles"</string> <string name="add_style" msgid="6163126614514489951">"Add style"</string> <string name="add" msgid="8299699805688017798">"Add"</string> diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml index 52abe8259..009b3a914 100644 --- a/java/res/values-es-rUS/strings.xml +++ b/java/res/values-es-rUS/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos de entrada personalizados"</string> <string name="add_style" msgid="6163126614514489951">"Agr. estilo"</string> <string name="add" msgid="8299699805688017798">"Agregar"</string> diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml index c25058c25..993060a21 100644 --- a/java/res/values-es/strings.xml +++ b/java/res/values-es/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos de entrada personalizados"</string> <string name="add_style" msgid="6163126614514489951">"Añadir estilo"</string> <string name="add" msgid="8299699805688017798">"Añadir"</string> diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml index 9b9c93a7b..7f0ca23ea 100644 --- a/java/res/values-et-rEE/strings.xml +++ b/java/res/values-et-rEE/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Tähestik (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Tähestik (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Tähestik (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Kohandage sisendlaadid"</string> <string name="add_style" msgid="6163126614514489951">"Lisage laad"</string> <string name="add" msgid="8299699805688017798">"Lisa"</string> diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml index 6d8365926..7f8df696a 100644 --- a/java/res/values-fa/strings.xml +++ b/java/res/values-fa/strings.xml @@ -154,6 +154,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"حروف الفبا (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"حروف الفبا (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"حروف الفبا (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"سبکهای ورودی سفارشی"</string> <string name="add_style" msgid="6163126614514489951">"افزودن سبک"</string> <string name="add" msgid="8299699805688017798">"افزودن"</string> diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml index 74e1232a4..34cf13708 100644 --- a/java/res/values-fi/strings.xml +++ b/java/res/values-fi/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Aakkoset (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Aakkoset (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Aakkoset (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Muokatut syöttötyylit"</string> <string name="add_style" msgid="6163126614514489951">"Lisää tyyli"</string> <string name="add" msgid="8299699805688017798">"Lisää"</string> diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml index edabdb3ee..7f32f8332 100644 --- a/java/res/values-fr/strings.xml +++ b/java/res/values-fr/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alphabet latin (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alphabet latin (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet latin (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Styles saisie personnalisés"</string> <string name="add_style" msgid="6163126614514489951">"Ajouter style"</string> <string name="add" msgid="8299699805688017798">"Ajouter"</string> diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml index 2e38974da..c737398a1 100644 --- a/java/res/values-hi/strings.xml +++ b/java/res/values-hi/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"वर्णाक्षर (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"वर्णाक्षर (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"वर्णाक्षर (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"कस्टम इनपुट शैलियां"</string> <string name="add_style" msgid="6163126614514489951">"शैली जोड़ें"</string> <string name="add" msgid="8299699805688017798">"जोड़ें"</string> diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml index 084d5b6fb..8f4b31af6 100644 --- a/java/res/values-hr/strings.xml +++ b/java/res/values-hr/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abeceda (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abeceda (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abeceda (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Prilagođeni stilovi unosa"</string> <string name="add_style" msgid="6163126614514489951">"Dodaj stil"</string> <string name="add" msgid="8299699805688017798">"Dodaj"</string> diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml index a335aa957..eaf449a5d 100644 --- a/java/res/values-hu/strings.xml +++ b/java/res/values-hu/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Ábécé (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Ábécé (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Ábécé (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Egyedi bevitelstílusok"</string> <string name="add_style" msgid="6163126614514489951">"Új stílus"</string> <string name="add" msgid="8299699805688017798">"Hozzáadás"</string> diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index 229cf8586..c309da0e3 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abjad (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abjad (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abjad (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Gaya masukan khusus"</string> <string name="add_style" msgid="6163126614514489951">"Tambah gaya"</string> <string name="add" msgid="8299699805688017798">"Tambahkan"</string> diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml index 310ffee63..7fd9dfc95 100644 --- a/java/res/values-it/strings.xml +++ b/java/res/values-it/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Stili personalizzati"</string> <string name="add_style" msgid="6163126614514489951">"Aggiungi stile"</string> <string name="add" msgid="8299699805688017798">"Aggiungi"</string> diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml index 00436a0c1..22af3d64d 100644 --- a/java/res/values-iw/strings.xml +++ b/java/res/values-iw/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"אלף-בית (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"אלף-בית (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"אלף-בית (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"סגנונות קלט מותאמים אישית"</string> <string name="add_style" msgid="6163126614514489951">"הוסף סגנון"</string> <string name="add" msgid="8299699805688017798">"הוסף"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 594220613..251baf1f0 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"アルファベット(Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"アルファベット(Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"アルファベット(PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"カスタム入力スタイル"</string> <string name="add_style" msgid="6163126614514489951">"スタイル追加"</string> <string name="add" msgid="8299699805688017798">"追加"</string> diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml index b2832643b..9b6afd145 100644 --- a/java/res/values-ka-rGE/strings.xml +++ b/java/res/values-ka-rGE/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"ანბანი (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ანბანი (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ანბანი (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"შეყვანის სტილების კონფიგურაცია"</string> <string name="add_style" msgid="6163126614514489951">"სტილის დამატება"</string> <string name="add" msgid="8299699805688017798">"დამატება"</string> diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml index e729fc60d..570e9c979 100644 --- a/java/res/values-ko/strings.xml +++ b/java/res/values-ko/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"알파벳(드보락)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"알파벳(콜맥)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"알파벳(PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"맞춤 입력 스타일"</string> <string name="add_style" msgid="6163126614514489951">"스타일 추가"</string> <string name="add" msgid="8299699805688017798">"추가"</string> diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml index 44e01a977..3bd11cb6a 100644 --- a/java/res/values-lt/strings.xml +++ b/java/res/values-lt/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abėcėlė (Dvorako)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abėcėlė („Colemak“)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abėcėlė (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Pasirinkti įvesties stilių"</string> <string name="add_style" msgid="6163126614514489951">"Prid. stilių"</string> <string name="add" msgid="8299699805688017798">"Pridėti"</string> diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml index 152ed856d..77c5ad9ac 100644 --- a/java/res/values-lv/strings.xml +++ b/java/res/values-lv/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabēts (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabēts (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabēts (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Pielāg. ievades stili"</string> <string name="add_style" msgid="6163126614514489951">"Piev. stilu"</string> <string name="add" msgid="8299699805688017798">"Pievienot"</string> diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml index 22f64edfa..d9e241390 100644 --- a/java/res/values-mn-rMN/strings.xml +++ b/java/res/values-mn-rMN/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Цагаан толгой (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Цагаан толгой (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Цагаан толгой (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Өөрийн оруулах загвар"</string> <string name="add_style" msgid="6163126614514489951">"Загвар нэмэх"</string> <string name="add" msgid="8299699805688017798">"Нэмэх"</string> diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml index 50be96948..21f149fa9 100644 --- a/java/res/values-ms-rMY/strings.xml +++ b/java/res/values-ms-rMY/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abjad (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abjad (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abjad (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Gaya input peribadi"</string> <string name="add_style" msgid="6163126614514489951">"Tambah gaya"</string> <string name="add" msgid="8299699805688017798">"Tambah"</string> diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index 1f9dbed41..6101108d9 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Egendefinerte inndata"</string> <string name="add_style" msgid="6163126614514489951">"Legg til stil"</string> <string name="add" msgid="8299699805688017798">"Legg til"</string> diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml index 3eed154f7..46094fb92 100644 --- a/java/res/values-nl/strings.xml +++ b/java/res/values-nl/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (pc)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Aangep. invoerstijlen"</string> <string name="add_style" msgid="6163126614514489951">"Stijl toev."</string> <string name="add" msgid="8299699805688017798">"Toevoegen"</string> diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml index b4f261213..ff82f69b1 100644 --- a/java/res/values-pl/strings.xml +++ b/java/res/values-pl/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Style niestandardowe"</string> <string name="add_style" msgid="6163126614514489951">"Dodaj styl"</string> <string name="add" msgid="8299699805688017798">"Dodaj"</string> diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml index cacc3970e..25c3fc412 100644 --- a/java/res/values-pt-rPT/strings.xml +++ b/java/res/values-pt-rPT/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos entrada pers."</string> <string name="add_style" msgid="6163126614514489951">"Adic. estilo"</string> <string name="add" msgid="8299699805688017798">"Adicionar"</string> diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml index e319255f2..962aa7fbf 100644 --- a/java/res/values-pt/strings.xml +++ b/java/res/values-pt/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos personalizados"</string> <string name="add_style" msgid="6163126614514489951">"Adic. estilo"</string> <string name="add" msgid="8299699805688017798">"Adicionar"</string> diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml index 1d14b8f4c..741430a7f 100644 --- a/java/res/values-rm/strings.xml +++ b/java/res/values-rm/strings.xml @@ -268,6 +268,8 @@ <skip /> <!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) --> <skip /> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <!-- no translation found for custom_input_styles_title (8429952441821251512) --> <skip /> <!-- no translation found for add_style (6163126614514489951) --> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index 56ff8b433..f9dcfef30 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Stiluri personalizate"</string> <string name="add_style" msgid="6163126614514489951">"Stil"</string> <string name="add" msgid="8299699805688017798">"Adăugaţi"</string> diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml index b7539d13a..6a8b9cca7 100644 --- a/java/res/values-ru/strings.xml +++ b/java/res/values-ru/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Латиница (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиница (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиница (ПК)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Персонализированные стили"</string> <string name="add_style" msgid="6163126614514489951">"Добавить стиль"</string> <string name="add" msgid="8299699805688017798">"Добавить"</string> diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml index c4e5a06b5..f7557d01f 100644 --- a/java/res/values-sk/strings.xml +++ b/java/res/values-sk/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Latinka (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinka (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinka (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Vlastné štýly vstupu"</string> <string name="add_style" msgid="6163126614514489951">"Pridať štýl"</string> <string name="add" msgid="8299699805688017798">"Pridať"</string> diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml index c6e7c24dd..0fb4255f0 100644 --- a/java/res/values-sl/strings.xml +++ b/java/res/values-sl/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Latinica (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinica (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinica (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Slogi vnosa po meri"</string> <string name="add_style" msgid="6163126614514489951">"Dodaj slog"</string> <string name="add" msgid="8299699805688017798">"Dodaj"</string> diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml index cb3e32bbe..c304b349b 100644 --- a/java/res/values-sr/strings.xml +++ b/java/res/values-sr/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Абецеда (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Абецеда (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Абецеда (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Прилаг. стилови уноса"</string> <string name="add_style" msgid="6163126614514489951">"Додав. стила"</string> <string name="add" msgid="8299699805688017798">"Додај"</string> diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml index 5b34b2f02..877f0693b 100644 --- a/java/res/values-sv/strings.xml +++ b/java/res/values-sv/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Anpassade indatastilar"</string> <string name="add_style" msgid="6163126614514489951">"Ny stil"</string> <string name="add" msgid="8299699805688017798">"Lägg till"</string> diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml index 94759b683..d5834e7f6 100644 --- a/java/res/values-sw/strings.xml +++ b/java/res/values-sw/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeti (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeti (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeti (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Mitindo maalum ya ingizo"</string> <string name="add_style" msgid="6163126614514489951">"Ongeza mtindo"</string> <string name="add" msgid="8299699805688017798">"Ongeza"</string> diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml index 58faeb00c..01f86000a 100644 --- a/java/res/values-th/strings.xml +++ b/java/res/values-th/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"ตัวอักษร (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ตัวอักษร (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ตัวอักษร (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"รูปแบบอินพุตกำหนดเอง"</string> <string name="add_style" msgid="6163126614514489951">"เพิ่มสไตล์"</string> <string name="add" msgid="8299699805688017798">"เพิ่ม"</string> diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml index 1c27ffdd8..deb3bac63 100644 --- a/java/res/values-tl/strings.xml +++ b/java/res/values-tl/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alpabeto (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alpabeto (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alpabeto (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Custom style ng input"</string> <string name="add_style" msgid="6163126614514489951">"Dagdag style"</string> <string name="add" msgid="8299699805688017798">"Idagdag"</string> diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml index 6d4653373..8aadaa23d 100644 --- a/java/res/values-tr/strings.xml +++ b/java/res/values-tr/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabe (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabe (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabe (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Özel giriş stilleri"</string> <string name="add_style" msgid="6163126614514489951">"Stil ekle"</string> <string name="add" msgid="8299699805688017798">"Ekle"</string> diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml index affce86c9..0aa55b09c 100644 --- a/java/res/values-uk/strings.xml +++ b/java/res/values-uk/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Латиниця (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиниця (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиниця (ПК)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Персональні стилі введення"</string> <string name="add_style" msgid="6163126614514489951">"Додати стиль"</string> <string name="add" msgid="8299699805688017798">"Додати"</string> diff --git a/java/res/values-v18/emoji-categories.xml b/java/res/values-v18/emoji-categories.xml index 17a2053d2..2ea08159b 100644 --- a/java/res/values-v18/emoji-categories.xml +++ b/java/res/values-v18/emoji-categories.xml @@ -17,19 +17,6 @@ <!-- Note: This emoji code point list is valid on JB-MR2 (API == 18). There is another emoji code point list for KLP and later under res/xml/values-v19. --> <resources> - <!-- Dummy codeArrays for recents emoji keyboard. - Do not remove these keys, because they are used as a template. --> - <array - name="emoji_recents" - format="string" - > - <item>52</item> - <item>45</item> - <item>43</item> - <item>45</item> - <item>4E</item> - <item>54</item> - </array> <array name="emoji_nature" format="string" diff --git a/java/res/values-v19/emoji-categories.xml b/java/res/values-v19/emoji-categories.xml index a6affc421..658bbfa83 100644 --- a/java/res/values-v19/emoji-categories.xml +++ b/java/res/values-v19/emoji-categories.xml @@ -17,19 +17,6 @@ <!-- Note: This emoji code point list is valid on KLP and later (API >= 19). There is another emoji code point list for JB-MR2 under res/xml/values and values-v18.--> <resources> - <!-- Dummy codeArrays for recents emoji keyboard. - Do not remove these keys, because they are used as a template. --> - <array - name="emoji_recents" - format="string" - > - <item>52</item> - <item>45</item> - <item>43</item> - <item>45</item> - <item>4E</item> - <item>54</item> - </array> <array name="emoji_nature" format="string" diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml index 67b140ef3..d1d0a3594 100644 --- a/java/res/values-vi/strings.xml +++ b/java/res/values-vi/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Bảng chữ cái (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Bảng chữ cái (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Bảng chữ cái (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Kiểu nhập tùy chỉnh"</string> <string name="add_style" msgid="6163126614514489951">"Thêm kiểu"</string> <string name="add" msgid="8299699805688017798">"Thêm"</string> diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml index 461d326b1..d094dc164 100644 --- a/java/res/values-zh-rCN/strings.xml +++ b/java/res/values-zh-rCN/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"字母 (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"字母 (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"字母 (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"自定义输入风格"</string> <string name="add_style" msgid="6163126614514489951">"添加样式"</string> <string name="add" msgid="8299699805688017798">"添加"</string> diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml index 3fa5cddc7..9449358b0 100644 --- a/java/res/values-zh-rTW/strings.xml +++ b/java/res/values-zh-rTW/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"字母 (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"字母 (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"字母 (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"自訂輸入樣式"</string> <string name="add_style" msgid="6163126614514489951">"新增樣式"</string> <string name="add" msgid="8299699805688017798">"新增"</string> diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml index 38a5c27bf..46e6f52b6 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -150,6 +150,8 @@ <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabhethi (Dvorak)"</string> <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabhethi (Colemak)"</string> <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabhethi (PC)"</string> + <!-- no translation found for subtype_emoji (7483586578074549196) --> + <skip /> <string name="custom_input_styles_title" msgid="8429952441821251512">"Izitayela zokufaka ngokwezifiso"</string> <string name="add_style" msgid="6163126614514489951">"Engeza isitayela"</string> <string name="add" msgid="8299699805688017798">"Engeza"</string> diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 159a64adc..631c35d87 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -26,16 +26,18 @@ <attr name="keyboardViewStyle" format="reference" /> <!-- MainKeyboardView style --> <attr name="mainKeyboardViewStyle" format="reference" /> + <!-- EmojiKeyboardView style --> + <attr name="emojiKeyboardViewStyle" format="reference" /> <!-- MoreKeysKeyboard style --> <attr name="moreKeysKeyboardStyle" format="reference" /> <!-- MoreKeysKeyboardView style --> <attr name="moreKeysKeyboardViewStyle" format="reference" /> + <!-- MoreKeysKeyboardView container style --> + <attr name="moreKeysKeyboardContainerStyle" format="reference" /> <!-- Suggestions strip style --> <attr name="suggestionStripViewStyle" format="reference" /> - <!-- Styled attributes for android:background --> - <attr name="moreKeysKeyboardBackground" format="reference" /> - <attr name="suggestionStripBackground" format="reference" /> - <attr name="suggestionBackground" format="reference" /> + <!-- Suggestion word style --> + <attr name="suggestionWordStyle" format="reference" /> </declare-styleable> <declare-styleable name="KeyboardView"> @@ -163,6 +165,10 @@ <attr name="suppressKeyPreviewAfterBatchInputDuration" format="integer" /> </declare-styleable> + <declare-styleable name="EmojiKeyboardView"> + <attr name="emojiTabLabelColor" format="reference" /> + </declare-styleable> + <declare-styleable name="SuggestionStripView"> <attr name="suggestionStripOption" format="integer"> <!-- This should be aligned with SuggestionStripLayoutHelper.AUTO_CORRECT_* and etc. --> @@ -217,6 +223,7 @@ <attr name="iconLanguageSwitchKey" format="reference" /> <attr name="iconZwnjKey" format="reference" /> <attr name="iconZwjKey" format="reference" /> + <attr name="iconImeKey" format="reference" /> <attr name="iconEmojiKey" format="reference" /> </declare-styleable> @@ -372,6 +379,7 @@ </declare-styleable> <declare-styleable name="Keyboard_Case"> + <attr name="keyboardLayoutSet" format="string" /> <!-- This should be aligned with KeyboardLayoutSet_Element's elementName. --> <attr name="keyboardLayoutSetElement" format="enum|string"> <enum name="alphabet" value="0" /> diff --git a/java/res/values/emoji-categories.xml b/java/res/values/emoji-categories.xml index 99d7b2389..ce82a8b40 100644 --- a/java/res/values/emoji-categories.xml +++ b/java/res/values/emoji-categories.xml @@ -28,37 +28,81 @@ name="emoji_recents" format="string" > - <item>52</item> - <item>45</item> - <item>43</item> - <item>45</item> - <item>4E</item> - <item>54</item> + <!-- These code point should be aligned with {@link RecentsKeyboard#TEMPLATE_KEY_CODE_*. --> + <item>30</item> + <item>31</item> </array> <array name="emoji_nature" format="string" > + <item>2744</item> <!-- SNOWFLAKE --> </array> <array name="emoji_symbols" format="string" > + <item>2460</item> <!-- CIRCLED DIGIT ONE --> + <item>2461</item> <!-- CIRCLED DIGIT TWO --> + <item>2462</item> <!-- CIRCLED DIGIT THREE --> + <item>2463</item> <!-- CIRCLED DIGIT FOUR --> + <item>2464</item> <!-- CIRCLED DIGIT FIVE --> + <item>2465</item> <!-- CIRCLED DIGIT SIX --> + <item>2466</item> <!-- CIRCLED DIGIT SEVEN --> + <item>2467</item> <!-- CIRCLED DIGIT EIGHT --> + <item>2468</item> <!-- CIRCLED DIGIT NINE --> + <item>2469</item> <!-- CIRCLED DIGIT TEN --> + <item>00ae</item> <!-- REGISTERED SIGN --> + <item>00a9</item> <!-- COPYRIGHT SIGN --> + <item>2122</item> <!-- TRADE MARK SIGN --> + <item>2734</item> <!-- EIGHT POINTED BLACK STAR --> + <item>2733</item> <!-- EIGHT POINTED PINWHEEL STAR --> + <item>2716</item> <!-- HEAVY MULTIPLICATION MARK --> + <item>2195</item> <!-- UP DOWN ARROW --> + <item>2197</item> <!-- NORTH EAST ARROW --> + <item>27a1</item> <!-- BLACK RIGHTWARDS ARROW --> + <item>2198</item> <!-- SOUTH EAST ARROW --> + <item>2199</item> <!-- SOUTH WEST ARROW --> + <item>2196</item> <!-- NORTH EAST ARROW --> + <item>2194</item> <!-- LEFT RIGHT ARROW --> + <item>25c0</item> <!-- BLACK LEFT-POINTING TRIANGLE --> + <item>25b6</item> <!-- BLACK ROGHT-POINTING TRIANGLE --> + <item>2747</item> <!-- SPARKLE --> + <item>25aa</item> <!-- BLACK SMALL SQUARE --> + <item>203c</item> <!-- DOUBLE EXCLAMATION MARK --> + <item>2660</item> <!-- BLACK SPADE SUIT --> + <item>2665</item> <!-- BLACK HEART SUIT --> + <item>2663</item> <!-- BLACK CLUB SUIT --> + <item>2666</item> <!-- BLACK DIAMOND SUIT --> + <item>21a9</item> <!-- LEFTWARDS ARROW WITH HOOK --> + <item>21aa</item> <!-- RIGHTWARDS ARROW WITH HOOK --> </array> <array name="emoji_faces" format="string" > + <item>270C</item> <!-- VICTORY HAND --> + <item>2764</item> <!-- HEAVY BLACK HEART --> </array> <array name="emoji_objects" format="string" > + <item>260e</item> <!-- BLACK TELEPHONE --> + <item>2709</item> <!-- ENVELOPE --> + <item>2712</item> <!-- BLACK NIB --> + <item>270f</item> <!-- PENCIL --> + <item>2702</item> <!-- BLACK SCISSORS --> + <item>2669</item> <!-- QUARTER NOTE --> + <item>266a</item> <!-- EIGHTH NOTE --> + <item>266c</item> <!-- BEAMED SIXTEENTH NOTES --> </array> <array name="emoji_places" format="string" > + <item>2708</item> <!-- AIRPLANE --> + <item>2668</item> <!-- HOT SPRINGS --> </array> <array name="emoji_emoticons" diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml index 390f72bfa..69da1e862 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -371,6 +371,8 @@ <!-- Description for Spanish (United States) keyboard subtype with explicit keyboard layout [CHAR LIMIT=25] This should be identical to subtype_es_US aside from the trailing (%s). --> <string name="subtype_with_layout_es_US">Spanish (US) (<xliff:g id="layout">%s</xliff:g>)</string> + <!-- Description for Nepali (Traditional) keyboard subtype [CHAR LIMIT=25] --> + <string name="subtype_nepali_traditional"><xliff:g id="language">%s</xliff:g> (Traditional)</string> <!-- TODO: Uncomment once we can handle IETF language tag with script name specified. Description for Serbian Cyrillic keyboard subtype [CHAR LIMIT=25] <string name="subtype_serbian_cyrillic">Serbian (Cyrillic)</string> @@ -457,6 +459,8 @@ language among those that use the Latin alphabet. This keyboard is laid out in t disposition that offers additional keys, but smaller keys compared to other common dispositions for mobile devices. [CHAR LIMIT=25] --> <string name="subtype_no_language_pcqwerty">Alphabet (PC)</string> + <!-- Description for Emoji keyboard subtype [CHAR LIMIT=25] --> + <string name="subtype_emoji">Emoji</string> <!-- Title of the preference settings for custom input styles (language and keyboard layout pairs) [CHAR LIMIT=35]--> <string name="custom_input_styles_title">Custom input styles</string> diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml index c9334ce5f..8e9cfc90b 100644 --- a/java/res/values/themes-common.xml +++ b/java/res/values/themes-common.xml @@ -30,6 +30,7 @@ <item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item> </style> <style name="KeyboardView"> + <item name="keyBackground">@drawable/btn_keyboard_key_ics</item> <item name="keyLetterSize">@fraction/key_letter_ratio</item> <item name="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item> <item name="keyLabelSize">@fraction/key_label_ratio</item> @@ -100,15 +101,31 @@ <item name="gestureRecognitionSpeedThreshold">@fraction/config_gesture_recognition_speed_threshold</item> <item name="suppressKeyPreviewAfterBatchInputDuration">@integer/config_suppress_key_preview_after_batch_input_duration</item> </style> - <style name="MainKeyboardView" /> - <style name="MoreKeysKeyboard" /> - <style name="MoreKeysKeyboardView" /> <style - name="SuggestionStripView" + name="MainKeyboardView" + parent="KeyboardView" /> + <!-- Though {@link EmojiKeyboardView} doesn't extend {@link KeyboardView}, some views inside it, + for instance delete button, need themed {@link KeyboardView} attributes. --> + <style + name="EmojiKeyboardView" + parent="KeyboardView" > + <item name="emojiTabLabelColor">@color/emoji_tab_label_color_ics</item> + </style> + <style name="MoreKeysKeyboard" /> + <style + name="MoreKeysKeyboardView" + parent="MainKeyboardView" /> + <style name="MoreKeysKeyboardContainer" /> + <style name="SuggestionStripView"> <item name="suggestionsCountInStrip">@integer/suggestions_count_in_strip</item> <item name="centerSuggestionPercentile">@fraction/center_suggestion_percentile</item> <item name="maxMoreSuggestionsRow">@integer/max_more_suggestions_row</item> <item name="minMoreSuggestionsWidth">@fraction/min_more_suggestions_width</item> </style> -</resources> + <style name="SuggestionWord" /> + <style name="MoreKeysKeyboardAnimation"> + <item name="android:windowEnterAnimation">@anim/more_keys_keyboard_fadein</item> + <item name="android:windowExitAnimation">@anim/more_keys_keyboard_fadeout</item> + </style> +</resources>
\ No newline at end of file diff --git a/java/res/values/themes-gb.xml b/java/res/values/themes-gb.xml index b430eeafd..7f8dd235b 100644 --- a/java/res/values/themes-gb.xml +++ b/java/res/values/themes-gb.xml @@ -23,12 +23,12 @@ <item name="keyboardStyle">@style/Keyboard.GB</item> <item name="keyboardViewStyle">@style/KeyboardView.GB</item> <item name="mainKeyboardViewStyle">@style/MainKeyboardView.GB</item> + <item name="emojiKeyboardViewStyle">@style/EmojiKeyboardView.GB</item> <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.GB</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.GB</item> + <item name="moreKeysKeyboardContainerStyle">@style/MoreKeysKeyboardContainer.GB</item> <item name="suggestionStripViewStyle">@style/SuggestionStripView.GB</item> - <item name="moreKeysKeyboardBackground">@drawable/keyboard_popup_panel_background_gb</item> - <item name="suggestionStripBackground">@drawable/keyboard_suggest_strip_gb</item> - <item name="suggestionBackground">@drawable/btn_suggestion_gb</item> + <item name="suggestionWordStyle">@style/SuggestionWord.GB</item> </style> <style name="KeyboardIcons.GB"> <!-- Keyboard icons --> @@ -50,7 +50,7 @@ <!-- TODO: Needs dedicated black theme ZWNJ and ZWJ icons --> <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo</item> <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo</item> - <item name="iconEmojiKey">@drawable/ic_emoji_dark</item> + <item name="iconEmojiKey">@drawable/ic_emoji_light</item> </style> <style name="Keyboard.GB" @@ -96,6 +96,15 @@ <item name="spacebarTextColor">@color/spacebar_text_color_gb</item> <item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_gb</item> </style> + <!-- Though {@link EmojiKeyboardView} doesn't extend {@link KeyboardView}, some views inside it, + for instance delete button, need themed {@link KeyboardView} attributes. --> + <style + name="EmojiKeyboardView.GB" + parent="KeyboardView.GB" + > + <item name="keyBackground">@drawable/btn_keyboard_key_functional_gb</item> + <item name="emojiTabLabelColor">@color/emoji_tab_label_color_gb</item> + </style> <style name="MoreKeysKeyboard.GB" parent="Keyboard.GB" @@ -115,9 +124,15 @@ <item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_gb</item> </style> <style + name="MoreKeysKeyboardContainer.GB" + > + <item name="android:background">@drawable/keyboard_popup_panel_background_gb</item> + </style> + <style name="SuggestionStripView.GB" parent="SuggestionStripView" > + <item name="android:background">@drawable/keyboard_suggest_strip_gb</item> <item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item> <item name="colorValidTypedWord">@color/highlight_color_gb</item> <item name="colorTypedWord">@color/typed_word_color_gb</item> @@ -125,4 +140,7 @@ <item name="colorSuggested">@color/highlight_color_gb</item> <item name="alphaObsoleted">50%</item> </style> + <style name="SuggestionWord.GB"> + <item name="android:background">@drawable/btn_suggestion_gb</item> + </style> </resources> diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml index 5ca0665ad..f3b6b1321 100644 --- a/java/res/values/themes-ics.xml +++ b/java/res/values/themes-ics.xml @@ -18,17 +18,17 @@ */ --> -<resources> +<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="KeyboardTheme.ICS" parent="KeyboardIcons.ICS"> <item name="keyboardStyle">@style/Keyboard.ICS</item> <item name="keyboardViewStyle">@style/KeyboardView.ICS</item> <item name="mainKeyboardViewStyle">@style/MainKeyboardView.ICS</item> + <item name="emojiKeyboardViewStyle">@style/EmojiKeyboardView.ICS</item> <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.ICS</item> <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.ICS</item> + <item name="moreKeysKeyboardContainerStyle">@style/MoreKeysKeyboardContainer.ICS</item> <item name="suggestionStripViewStyle">@style/SuggestionStripView.ICS</item> - <item name="moreKeysKeyboardBackground">@drawable/keyboard_popup_panel_background_holo</item> - <item name="suggestionStripBackground">@drawable/keyboard_suggest_strip_holo</item> - <item name="suggestionBackground">@drawable/btn_suggestion_ics</item> + <item name="suggestionWordStyle">@style/SuggestionWord.ICS</item> </style> <style name="KeyboardIcons.ICS"> <!-- Keyboard icons --> @@ -97,6 +97,15 @@ <item name="spacebarTextColor">@color/spacebar_text_color_ics</item> <item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_ics</item> </style> + <!-- Though {@link EmojiKeyboardView} doesn't extend {@link KeyboardView}, some views inside it, + for instance delete button, need themed {@link KeyboardView} attributes. --> + <style + name="EmojiKeyboardView.ICS" + parent="KeyboardView.ICS" + > + <item name="keyBackground">@drawable/btn_keyboard_key_functional_ics</item> + <item name="emojiTabLabelColor">@color/emoji_tab_label_color_ics</item> + </style> <style name="MoreKeysKeyboard.ICS" parent="Keyboard.ICS" @@ -116,9 +125,15 @@ <item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_ics</item> </style> <style + name="MoreKeysKeyboardContainer.ICS" + > + <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item> + </style> + <style name="SuggestionStripView.ICS" parent="SuggestionStripView" > + <item name="android:background">@drawable/keyboard_suggest_strip_holo</item> <item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item> <item name="colorValidTypedWord">@color/typed_word_color_ics</item> <item name="colorTypedWord">@color/typed_word_color_ics</item> @@ -126,8 +141,7 @@ <item name="colorSuggested">@color/suggested_word_color_ics</item> <item name="alphaObsoleted">70%</item> </style> - <style name="MoreKeysKeyboardAnimation"> - <item name="android:windowEnterAnimation">@anim/more_keys_keyboard_fadein</item> - <item name="android:windowExitAnimation">@anim/more_keys_keyboard_fadeout</item> + <style name="SuggestionWord.ICS"> + <item name="android:background">@drawable/btn_suggestion_ics</item> </style> </resources> diff --git a/java/res/xml-sw600dp/key_apostrophe.xml b/java/res/xml-sw600dp/key_apostrophe.xml deleted file mode 100644 index 2aec34729..000000000 --- a/java/res/xml-sw600dp/key_apostrophe.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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|url" - > - <Key - latin:keyLabel="-" /> - </case> - <case - latin:languageCode="fa" - > - <Key - latin:keyLabel="!text/keylabel_for_apostrophe" - latin:keyHintLabel="!text/keyhintlabel_for_apostrophe" - latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="!text/more_keys_for_apostrophe" - latin:keyStyle="hasShiftedLetterHintStyle" /> - </case> - <default> - <Key - latin:keyLabel="!text/keylabel_for_apostrophe" - latin:keyHintLabel="!text/keyhintlabel_for_apostrophe" - latin:moreKeys="!text/more_keys_for_apostrophe" - latin:keyStyle="hasShiftedLetterHintStyle" /> - </default> - </switch> -</merge> diff --git a/java/res/xml-sw600dp/key_dash.xml b/java/res/xml-sw600dp/key_dash.xml deleted file mode 100644 index b139c29c8..000000000 --- a/java/res/xml-sw600dp/key_dash.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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|url" - > - <Key - latin:keyLabel="_" /> - </case> - <case - latin:languageCode="ar|fa" - > - <Key - latin:keyLabel="." - latin:keyHintLabel="!text/keyhintlabel_for_arabic_diacritics" - latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="!text/more_keys_for_arabic_diacritics" - latin:keyStyle="hasShiftedLetterHintStyle" /> - </case> - <default> - <Key - latin:keyLabel="-" - latin:keyHintLabel="_" - latin:moreKeys="_" - latin:keyStyle="hasShiftedLetterHintStyle" /> - </default> - </switch> -</merge> diff --git a/java/res/xml-sw600dp/key_f1.xml b/java/res/xml-sw600dp/key_f1.xml index 77afe4e64..ac0053236 100644 --- a/java/res/xml-sw600dp/key_f1.xml +++ b/java/res/xml-sw600dp/key_f1.xml @@ -53,10 +53,7 @@ </case> <default> <Key - latin:keyLabel="/" - latin:keyHintLabel="\@" - latin:moreKeys="\@" - latin:keyStyle="hasShiftedLetterHintStyle" /> + latin:keyLabel="/" /> </default> </switch> </merge> diff --git a/java/res/xml-sw600dp/key_f2.xml b/java/res/xml-sw600dp/key_f2.xml index ca3b30b54..674153ae3 100644 --- a/java/res/xml-sw600dp/key_f2.xml +++ b/java/res/xml-sw600dp/key_f2.xml @@ -28,18 +28,9 @@ <Key latin:keyStyle="comKeyStyle" /> </case> - <case - latin:imeAction="actionSearch" - > - <Key - latin:keyLabel=":" - latin:keyHintLabel="+" - latin:moreKeys="+" - latin:keyStyle="hasShiftedLetterHintStyle" /> - </case> <default> <Key - latin:keyStyle="smileyKeyStyle" /> + latin:keyStyle="emojiKeyStyle" /> </default> </switch> </merge> diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml index fc9342b91..3b20281be 100644 --- a/java/res/xml-sw600dp/key_styles_common.xml +++ b/java/res/xml-sw600dp/key_styles_common.xml @@ -123,7 +123,8 @@ latin:styleName="emojiKeyStyle" latin:code="!code/key_emoji" latin:keyIcon="!icon/emoji_key" - latin:keyActionFlags="noKeyPreview" /> + latin:keyActionFlags="noKeyPreview" + latin:backgroundType="functional" /> <key-style latin:styleName="settingsKeyStyle" latin:code="!code/key_settings" diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/keys_comma_period.xml index 752f75b5f..a6008390e 100644 --- a/java/res/xml-sw600dp/keys_comma_period.xml +++ b/java/res/xml-sw600dp/keys_comma_period.xml @@ -23,24 +23,59 @@ > <switch> <case - latin:mode="email" + latin:mode="email|url" > <Key - latin:keyLabel="," /> + latin:keyLabel="." + latin:keyHintLabel="_" + latin:moreKeys="_" + latin:keyStyle="hasShiftedLetterHintStyle" /> <Key - latin:keyLabel="." /> + latin:keyLabel="," + latin:keyHintLabel="-" + latin:moreKeys="-" + latin:keyStyle="hasShiftedLetterHintStyle" /> </case> - <default> + <case + latin:languageCode="ar" + > <Key - latin:keyLabel="!text/keylabel_for_tablet_comma" - latin:keyHintLabel="!text/keyhintlabel_for_tablet_comma" - latin:moreKeys="!text/more_keys_for_tablet_comma" + latin:keyLabel="!text/keylabel_for_apostrophe" + latin:keyHintLabel="!text/keyhintlabel_for_apostrophe" + latin:moreKeys="!text/more_keys_for_apostrophe" latin:keyStyle="hasShiftedLetterHintStyle" /> <Key latin:keyLabel="." - latin:keyHintLabel="!text/keyhintlabel_for_tablet_period" - latin:moreKeys="!text/more_keys_for_tablet_period" + latin:keyHintLabel="!text/keyhintlabel_for_arabic_diacritics" + latin:keyLabelFlags="hasPopupHint" + latin:moreKeys="!text/more_keys_for_arabic_diacritics" latin:keyStyle="hasShiftedLetterHintStyle" /> + </case> + <case + latin:languageCode="fa" + > + <Key + latin:keyLabel="!text/keylabel_for_apostrophe" + latin:keyHintLabel="!text/keyhintlabel_for_apostrophe" + latin:keyLabelFlags="hasPopupHint" + latin:moreKeys="!text/more_keys_for_apostrophe" + latin:keyStyle="hasShiftedLetterHintStyle" /> + <Key + latin:keyLabel="." + latin:keyHintLabel="!text/keyhintlabel_for_arabic_diacritics" + latin:keyLabelFlags="hasPopupHint" + latin:moreKeys="!text/more_keys_for_arabic_diacritics" + latin:keyStyle="hasShiftedLetterHintStyle" /> + </case> + <default> + <Key + latin:keyLabel="." + latin:keyHintLabel="!text/keyhintlabel_for_tablet_period" + latin:moreKeys="!text/more_keys_for_tablet_period" /> + <Key + latin:keyLabel="!text/keylabel_for_tablet_comma" + latin:keyHintLabel="!text/keyhintlabel_for_tablet_comma" + latin:moreKeys="!text/more_keys_for_tablet_comma" /> </default> </switch> </merge> diff --git a/java/res/xml-sw768dp/kbd_number.xml b/java/res/xml-sw600dp/keys_exclamation_question.xml index 1b46edd50..983ef3897 100644 --- a/java/res/xml-sw768dp/kbd_number.xml +++ b/java/res/xml-sw600dp/keys_exclamation_question.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,11 +18,11 @@ */ --> -<Keyboard +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="13.250%p" - latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" > - <include - latin:keyboardLayout="@xml/rows_number" /> -</Keyboard> + <Key + latin:keyLabel="\?" /> + <Key + latin:keyLabel="!" /> +</merge> diff --git a/java/res/xml-sw600dp/row_dvorak4.xml b/java/res/xml-sw600dp/row_dvorak4.xml index 969cc145e..1dfb3f462 100644 --- a/java/res/xml-sw600dp/row_dvorak4.xml +++ b/java/res/xml-sw600dp/row_dvorak4.xml @@ -38,8 +38,11 @@ latin:backgroundType="normal" /> <include latin:keyboardLayout="@xml/key_question_exclamation" /> - <include - latin:keyboardLayout="@xml/key_dash" /> + <Key + latin:keyLabel="-" + latin:keyHintLabel="_" + latin:moreKeys="_" + latin:keyStyle="hasShiftedLetterHintStyle" /> <include latin:keyboardLayout="@xml/key_f2" /> </Row> diff --git a/java/res/xml-sw600dp/row_hebrew4.xml b/java/res/xml-sw600dp/row_hebrew4.xml deleted file mode 100644 index f429f97fb..000000000 --- a/java/res/xml-sw600dp/row_hebrew4.xml +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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:backgroundType="functional" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyWidth="10.0%p" /> - <include - latin:keyboardLayout="@xml/key_shortcut" /> - <include - latin:keyboardLayout="@xml/key_f1" /> - <include - latin:keyXPos="28.0%p" - latin:keyboardLayout="@xml/key_space" - latin:backgroundType="normal" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <include - latin:keyboardLayout="@xml/key_f2" /> - </Row> -</merge> diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml index fa433635e..16d373108 100644 --- a/java/res/xml-sw600dp/row_qwerty4.xml +++ b/java/res/xml-sw600dp/row_qwerty4.xml @@ -37,9 +37,7 @@ latin:keyboardLayout="@xml/key_space" latin:backgroundType="normal" /> <include - latin:keyboardLayout="@xml/key_apostrophe" /> - <include - latin:keyboardLayout="@xml/key_dash" /> + latin:keyboardLayout="@xml/keys_comma_period" /> <include latin:keyboardLayout="@xml/key_f2" /> </Row> diff --git a/java/res/xml-sw768dp/rows_colemak.xml b/java/res/xml-sw600dp/rows_armenian_phonetic.xml index 073f812e5..9bc2a1821 100644 --- a/java/res/xml-sw768dp/rows_colemak.xml +++ b/java/res/xml-sw600dp/rows_armenian_phonetic.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -24,43 +24,43 @@ <include latin:keyboardLayout="@xml/key_styles_common" /> <Row - latin:keyWidth="8.282%p" + latin:keyWidth="9.0%p" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_colemak1" /> <include - latin:keyboardLayout="@xml/key_colemak_colon" /> + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic1" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" /> + </Row> + <Row + latin:keyWidth="9.0%p" + > + <include + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic2" /> + <include + latin:keyboardLayout="@xml/key_armenian_xeh" /> </Row> <Row - latin:keyWidth="8.125%p" + latin:keyWidth="9.0%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="10.167%p" /> <include - latin:keyboardLayout="@xml/rowkeys_colemak2" /> + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic3" /> + <include + latin:keyboardLayout="@xml/key_armenian_sha" /> <Key latin:keyStyle="enterKeyStyle" latin:keyWidth="fillRight" /> </Row> <Row - latin:keyWidth="8.047%p" + latin:keyWidth="8.8889%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> + latin:keyWidth="10.0%p" /> <include - latin:keyboardLayout="@xml/rowkeys_colemak3" /> + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic4" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_azerty.xml b/java/res/xml-sw600dp/rows_azerty.xml index 5a5a7d12f..cdc91857f 100644 --- a/java/res/xml-sw600dp/rows_azerty.xml +++ b/java/res/xml-sw600dp/rows_azerty.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_azerty3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_bulgarian.xml b/java/res/xml-sw600dp/rows_bulgarian.xml index 263562095..c73aa1c1a 100644 --- a/java/res/xml-sw600dp/rows_bulgarian.xml +++ b/java/res/xml-sw600dp/rows_bulgarian.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_bulgarian3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_bulgarian_bds.xml b/java/res/xml-sw600dp/rows_bulgarian_bds.xml index 9439a6346..bc773ee58 100644 --- a/java/res/xml-sw600dp/rows_bulgarian_bds.xml +++ b/java/res/xml-sw600dp/rows_bulgarian_bds.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_bulgarian_bds3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml-sw600dp/rows_colemak.xml b/java/res/xml-sw600dp/rows_colemak.xml index 98a24e451..ab059da83 100644 --- a/java/res/xml-sw600dp/rows_colemak.xml +++ b/java/res/xml-sw600dp/rows_colemak.xml @@ -52,7 +52,7 @@ <include latin:keyboardLayout="@xml/rowkeys_colemak3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_east_slavic.xml b/java/res/xml-sw600dp/rows_east_slavic.xml index b4160d64b..c5045fffc 100644 --- a/java/res/xml-sw600dp/rows_east_slavic.xml +++ b/java/res/xml-sw600dp/rows_east_slavic.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_east_slavic3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml-sw600dp/rows_georgian.xml b/java/res/xml-sw600dp/rows_georgian.xml index b0e9e35fd..891cbc109 100644 --- a/java/res/xml-sw600dp/rows_georgian.xml +++ b/java/res/xml-sw600dp/rows_georgian.xml @@ -51,7 +51,7 @@ <include latin:keyboardLayout="@xml/rowkeys_georgian3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_greek.xml b/java/res/xml-sw600dp/rows_greek.xml index de214c67f..066dc47fb 100644 --- a/java/res/xml-sw600dp/rows_greek.xml +++ b/java/res/xml-sw600dp/rows_greek.xml @@ -53,7 +53,7 @@ <include latin:keyboardLayout="@xml/rowkeys_greek3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_hebrew.xml b/java/res/xml-sw600dp/rows_hebrew.xml index 9945dee35..852e17683 100644 --- a/java/res/xml-sw600dp/rows_hebrew.xml +++ b/java/res/xml-sw600dp/rows_hebrew.xml @@ -49,5 +49,5 @@ latin:keyXPos="10.0%p" /> </Row> <include - latin:keyboardLayout="@xml/row_hebrew4" /> + latin:keyboardLayout="@xml/row_qwerty4" /> </merge> diff --git a/java/res/xml-sw600dp/rows_hindi.xml b/java/res/xml-sw600dp/rows_hindi.xml index 2a9a419f8..ca581be14 100644 --- a/java/res/xml-sw600dp/rows_hindi.xml +++ b/java/res/xml-sw600dp/rows_hindi.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_hindi3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml-sw600dp/rows_mongolian.xml b/java/res/xml-sw600dp/rows_mongolian.xml index dc0c1fe5c..8e39e625a 100644 --- a/java/res/xml-sw600dp/rows_mongolian.xml +++ b/java/res/xml-sw600dp/rows_mongolian.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_mongolian3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml-sw768dp/rows_farsi.xml b/java/res/xml-sw600dp/rows_nepali_romanized.xml index 8d3fb0579..21d1dc6e0 100644 --- a/java/res/xml-sw768dp/rows_farsi.xml +++ b/java/res/xml-sw600dp/rows_nepali_romanized.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2012, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -24,37 +24,33 @@ <include latin:keyboardLayout="@xml/key_styles_common" /> <Row - latin:keyWidth="7.375%p" + latin:keyWidth="8.182%p" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> <include - latin:keyboardLayout="@xml/rowkeys_farsi1" /> + latin:keyboardLayout="@xml/rowkeys_nepali_romanized1" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" /> </Row> <Row - latin:keyWidth="7.227%p" + latin:keyWidth="8.182%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> <include - latin:keyboardLayout="@xml/rowkeys_farsi2" /> + latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" /> <Key latin:keyStyle="enterKeyStyle" latin:keyWidth="fillRight" /> </Row> <Row - latin:keyWidth="7.227%p" + latin:keyWidth="8.182%p" > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.0%p" /> + <include + latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" /> <include - latin:keyboardLayout="@xml/rowkeys_farsi3" - latin:keyXPos="13.829%p" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml-sw768dp/rows_arabic.xml b/java/res/xml-sw600dp/rows_nepali_traditional.xml index 204f6d590..90703da76 100644 --- a/java/res/xml-sw768dp/rows_arabic.xml +++ b/java/res/xml-sw600dp/rows_nepali_traditional.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -24,38 +24,34 @@ <include latin:keyboardLayout="@xml/key_styles_common" /> <Row - latin:keyWidth="7.375%p" + latin:keyWidth="8.182%p" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> <include - latin:keyboardLayout="@xml/rowkeys_arabic1" /> + latin:keyboardLayout="@xml/rowkeys_nepali_traditional1" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" /> </Row> <Row - latin:keyWidth="7.227%p" + latin:keyWidth="8.182%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> <include - latin:keyboardLayout="@xml/rowkeys_arabic2" /> + latin:keyboardLayout="@xml/rowkeys_nepali_traditional2" /> <Key latin:keyStyle="enterKeyStyle" latin:keyWidth="fillRight" /> </Row> <Row - latin:keyWidth="7.227%p" + latin:keyWidth="8.182%p" > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.0%p" /> <include - latin:keyboardLayout="@xml/rowkeys_arabic3" - latin:keyXPos="6.602%p" /> - </Row> + latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_left6" /> + <include + latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_right5" /> + </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> </merge> diff --git a/java/res/xml-sw600dp/rows_nordic.xml b/java/res/xml-sw600dp/rows_nordic.xml index 299bf8908..56fa4066f 100644 --- a/java/res/xml-sw600dp/rows_nordic.xml +++ b/java/res/xml-sw600dp/rows_nordic.xml @@ -52,7 +52,7 @@ <include latin:keyboardLayout="@xml/rowkeys_qwerty3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyXPos="-10.0%p" diff --git a/java/res/xml-sw600dp/rows_qwerty.xml b/java/res/xml-sw600dp/rows_qwerty.xml index 722f9d138..58ba1d713 100644 --- a/java/res/xml-sw600dp/rows_qwerty.xml +++ b/java/res/xml-sw600dp/rows_qwerty.xml @@ -51,7 +51,7 @@ <include latin:keyboardLayout="@xml/rowkeys_qwerty3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_qwertz.xml b/java/res/xml-sw600dp/rows_qwertz.xml index f2f832ce7..3b59dec54 100644 --- a/java/res/xml-sw600dp/rows_qwertz.xml +++ b/java/res/xml-sw600dp/rows_qwertz.xml @@ -51,7 +51,7 @@ <include latin:keyboardLayout="@xml/rowkeys_qwertz3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_south_slavic.xml b/java/res/xml-sw600dp/rows_south_slavic.xml index 6ef664342..5053988cc 100644 --- a/java/res/xml-sw600dp/rows_south_slavic.xml +++ b/java/res/xml-sw600dp/rows_south_slavic.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_south_slavic3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml-sw600dp/rows_spanish.xml b/java/res/xml-sw600dp/rows_spanish.xml index bca9bba3a..1092c268e 100644 --- a/java/res/xml-sw600dp/rows_spanish.xml +++ b/java/res/xml-sw600dp/rows_spanish.xml @@ -50,7 +50,7 @@ <include latin:keyboardLayout="@xml/rowkeys_qwerty3" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="fillRight" /> diff --git a/java/res/xml-sw600dp/rows_thai.xml b/java/res/xml-sw600dp/rows_thai.xml index bc89640ac..cfcaf6815 100644 --- a/java/res/xml-sw600dp/rows_thai.xml +++ b/java/res/xml-sw600dp/rows_thai.xml @@ -60,7 +60,7 @@ <include latin:keyboardLayout="@xml/rowkeys_thai4" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml-sw768dp/kbd_phone_symbols.xml b/java/res/xml-sw768dp/kbd_phone_symbols.xml deleted file mode 100644 index dd9a6aebd..000000000 --- a/java/res/xml-sw768dp/kbd_phone_symbols.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2010, The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ ---> - -<Keyboard - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="13.250%p" - latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" -> - <!-- Tablet doesn't have phone symbols keyboard --> - <include - latin:keyboardLayout="@xml/rows_phone" /> -</Keyboard> diff --git a/java/res/xml-sw768dp/key_shortcut.xml b/java/res/xml-sw768dp/key_shortcut.xml deleted file mode 100644 index 2d09ebbfc..000000000 --- a/java/res/xml-sw768dp/key_shortcut.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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:shortcutKeyEnabled="true" - > - <Key - latin:keyStyle="shortcutKeyStyle" /> - </case> - <default> - <!-- The empty space instead of shortcut key. --> - <Spacer /> - </default> - </switch> -</merge> diff --git a/java/res/xml-sw768dp/key_space.xml b/java/res/xml-sw768dp/key_space.xml deleted file mode 100644 index 58e71d807..000000000 --- a/java/res/xml-sw768dp/key_space.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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:languageCode="fa" - latin:languageSwitchKeyEnabled="true" - > - <Key - latin:keyStyle="languageSwitchKeyStyle" /> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="24.141%p" /> - <Key - latin:keyStyle="zwnjKeyStyle" /> - </case> - <case - latin:languageCode="fa" - latin:languageSwitchKeyEnabled="false" - > - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="32.188%p" /> - <Key - latin:keyStyle="zwnjKeyStyle" /> - </case> - <case - latin:languageSwitchKeyEnabled="true" - > - <Key - latin:keyStyle="languageSwitchKeyStyle" /> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="32.188%p" /> - </case> - <!-- languageSwitchKeyEnabled="false" --> - <default> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyWidth="40.235%p" /> - </default> - </switch> -</merge> diff --git a/java/res/xml-sw768dp/key_styles_common.xml b/java/res/xml-sw768dp/key_styles_common.xml deleted file mode 100644 index 538930948..000000000 --- a/java/res/xml-sw768dp/key_styles_common.xml +++ /dev/null @@ -1,176 +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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted" - > - <key-style - latin:styleName="hasShiftedLetterHintStyle" - latin:keyLabelFlags="hasShiftedLetterHint|shiftedLetterActivated" /> - </case> - <default> - <key-style - latin:styleName="hasShiftedLetterHintStyle" - latin:keyLabelFlags="hasShiftedLetterHint" /> - </default> - </switch> - <!-- Base style for shift key. A single space is used for dummy label in moreKeys. --> - <key-style - latin:styleName="baseForShiftKeyStyle" - latin:code="!code/key_shift" - latin:keyActionFlags="noKeyPreview" - latin:keyLabelFlags="preserveCase" - latin:moreKeys="!noPanelAutoMoreKey!, |!code/key_capslock" /> - <switch> - <case - latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetAutomaticShifted" - > - <key-style - latin:styleName="shiftKeyStyle" - latin:keyIcon="!icon/shift_key_shifted" - latin:backgroundType="stickyOff" - latin:parentStyle="baseForShiftKeyStyle" /> - </case> - <case - latin:keyboardLayoutSetElement="alphabetShiftLocked|alphabetShiftLockShifted" - > - <key-style - latin:styleName="shiftKeyStyle" - latin:keyIcon="!icon/shift_key_shifted" - latin:backgroundType="stickyOn" - latin:parentStyle="baseForShiftKeyStyle" /> - </case> - <default> - <key-style - latin:styleName="shiftKeyStyle" - latin:keyIcon="!icon/shift_key" - latin:backgroundType="stickyOff" - latin:parentStyle="baseForShiftKeyStyle" /> - </default> - </switch> - <key-style - latin:styleName="deleteKeyStyle" - latin:code="!code/key_delete" - latin:keyIcon="!icon/delete_key" - latin:keyActionFlags="isRepeatable|noKeyPreview" - latin:backgroundType="functional" /> - <include - latin:keyboardLayout="@xml/key_styles_enter" /> - <key-style - latin:styleName="spaceKeyStyle" - latin:code="!code/key_space" - latin:keyActionFlags="noKeyPreview|enableLongPress" /> - <!-- U+200C: ZERO WIDTH NON-JOINER - U+200D: ZERO WIDTH JOINER --> - <key-style - latin:styleName="zwnjKeyStyle" - latin:code="0x200C" - latin:keyIcon="!icon/zwnj_key" - latin:moreKeys="!icon/zwj_key|‍" - latin:keyLabelFlags="hasPopupHint" - latin:keyActionFlags="noKeyPreview" /> - <key-style - latin:styleName="smileyKeyStyle" - latin:keyLabel=":-)" - latin:keyOutputText=":-) " - latin:keyLabelFlags="hasPopupHint|preserveCase" - latin:moreKeys="!text/more_keys_for_smiley" /> - <key-style - latin:styleName="shortcutKeyStyle" - latin:code="!code/key_shortcut" - latin:keyIcon="!icon/shortcut_key" - latin:keyIconDisabled="!icon/shortcut_key_disabled" - latin:keyActionFlags="noKeyPreview" - latin:backgroundType="functional" /> - <key-style - latin:styleName="languageSwitchKeyStyle" - latin:code="!code/key_language_switch" - latin:keyIcon="!icon/language_switch_key" - latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress" - latin:altCode="!code/key_space" /> - <key-style - latin:styleName="emojiKeyStyle" - latin:code="!code/key_emoji" - latin:keyIcon="!icon/emoji_key" - latin:keyActionFlags="noKeyPreview" /> - <key-style - latin:styleName="settingsKeyStyle" - latin:code="!code/key_settings" - latin:keyIcon="!icon/settings_key" - latin:keyActionFlags="noKeyPreview" - latin:backgroundType="functional" /> - <switch> - <case - latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted" - latin:navigatePrevious="true" - > - <key-style - latin:styleName="tabKeyStyle" - latin:code="!code/key_action_previous" - latin:keyLabel="!text/label_tab_key" - latin:keyLabelFlags="fontNormal|preserveCase" - latin:backgroundType="functional" /> - </case> - <case - latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted|alphabetShiftLocked" - latin:navigateNext="true" - > - <key-style - latin:styleName="tabKeyStyle" - latin:code="!code/key_action_next" - latin:keyLabel="!text/label_tab_key" - latin:keyLabelFlags="fontNormal|preserveCase" - latin:backgroundType="functional" /> - </case> - <default> - <key-style - latin:styleName="tabKeyStyle" - latin:code="!code/key_tab" - latin:keyLabel="!text/label_tab_key" - latin:keyLabelFlags="fontNormal|preserveCase" - latin:backgroundType="functional" /> - </default> - </switch> - <key-style - latin:styleName="baseForLayoutSwitchKeyStyle" - latin:keyLabelFlags="fontNormal|preserveCase" - latin:keyActionFlags="noKeyPreview" - latin:backgroundType="functional" /> - <key-style - latin:styleName="toSymbolKeyStyle" - latin:code="!code/key_switch_alpha_symbol" - latin:keyLabel="!text/label_to_symbol_key" - latin:parentStyle="baseForLayoutSwitchKeyStyle" /> - <key-style - latin:styleName="toAlphaKeyStyle" - latin:code="!code/key_switch_alpha_symbol" - latin:keyLabel="!text/label_to_alpha_key" - latin:parentStyle="baseForLayoutSwitchKeyStyle" /> - <key-style - latin:styleName="comKeyStyle" - latin:keyLabel="!text/keylabel_for_popular_domain" - latin:keyLabelFlags="fontNormal|hasPopupHint|preserveCase" - latin:keyOutputText="!text/keylabel_for_popular_domain" - latin:moreKeys="!text/more_keys_for_popular_domain" /> -</merge> diff --git a/java/res/xml-sw768dp/row_dvorak4.xml b/java/res/xml-sw768dp/row_dvorak4.xml deleted file mode 100644 index 8f9230d4a..000000000 --- a/java/res/xml-sw768dp/row_dvorak4.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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" - latin:backgroundType="functional" - > - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="5.782%p" /> - <include - latin:keyboardLayout="@xml/key_settings" /> - <include - latin:keyboardLayout="@xml/key_shortcut" /> - <include - latin:keyboardLayout="@xml/key_f1" /> - <include - latin:keyXPos="29.923%p" - latin:keyboardLayout="@xml/key_space" - latin:backgroundType="normal" /> - <include - latin:keyboardLayout="@xml/key_question_exclamation" /> - <include - latin:keyboardLayout="@xml/key_dash" /> - <include - latin:keyboardLayout="@xml/key_f2" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer - latin:keyWidth="fillRight" /> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/row_hebrew4.xml b/java/res/xml-sw768dp/row_hebrew4.xml deleted file mode 100644 index ae14f0296..000000000 --- a/java/res/xml-sw768dp/row_hebrew4.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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" - latin:backgroundType="functional" - > - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="5.782%p" /> - <include - latin:keyboardLayout="@xml/key_settings" /> - <include - latin:keyboardLayout="@xml/key_shortcut" /> - <include - latin:keyboardLayout="@xml/key_f1" /> - <include - latin:keyXPos="29.923%p" - latin:keyboardLayout="@xml/key_space" - latin:backgroundType="normal" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <include - latin:keyboardLayout="@xml/key_f2" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer - latin:keyWidth="fillRight" /> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/row_pcqwerty5.xml b/java/res/xml-sw768dp/row_pcqwerty5.xml deleted file mode 100644 index 6bfd6463a..000000000 --- a/java/res/xml-sw768dp/row_pcqwerty5.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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" - > - <switch> - <case - latin:languageSwitchKeyEnabled="true" - > - <Key - latin:keyStyle="languageSwitchKeyStyle" - latin:backgroundType="functional" /> - </case> - </switch> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyXPos="25.5%p" - latin:keyWidth="49.0%p" /> - <switch> - <case - latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted" - > - <include - latin:keyXPos="-8.047%p" - latin:keyboardLayout="@xml/key_shortcut" /> - </case> - <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" --> - <default> - <include - latin:keyXPos="-8.047%p" - latin:backgroundType="functional" - latin:keyboardLayout="@xml/key_symbols_period" /> - </default> - </switch> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/row_qwerty4.xml b/java/res/xml-sw768dp/row_qwerty4.xml deleted file mode 100644 index f1f4214ca..000000000 --- a/java/res/xml-sw768dp/row_qwerty4.xml +++ /dev/null @@ -1,51 +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" -> - <Row - latin:keyWidth="8.047%p" - latin:backgroundType="functional" - > - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="5.782%p" /> - <include - latin:keyboardLayout="@xml/key_settings" /> - <include - latin:keyboardLayout="@xml/key_shortcut" /> - <include - latin:keyboardLayout="@xml/key_f1" /> - <include - latin:keyXPos="29.923%p" - latin:keyboardLayout="@xml/key_space" - latin:backgroundType="normal" /> - <include - latin:keyboardLayout="@xml/key_apostrophe" /> - <include - latin:keyboardLayout="@xml/key_dash" /> - <include - latin:keyboardLayout="@xml/key_f2" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer - latin:keyWidth="fillRight" /> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/row_symbols4.xml b/java/res/xml-sw768dp/row_symbols4.xml deleted file mode 100644 index 49340b8ae..000000000 --- a/java/res/xml-sw768dp/row_symbols4.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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" - latin:backgroundType="functional" - > - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="13.829%p" /> - <include - latin:keyXPos="29.923%p" - latin:keyboardLayout="@xml/key_space" - latin:backgroundType="normal" /> - <Spacer /> - <Spacer /> - <include - latin:keyboardLayout="@xml/key_f2" /> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml b/java/res/xml-sw768dp/rows_10_10_7_symbols.xml deleted file mode 100644 index 967b90359..000000000 --- a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_symbols1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toAlphaKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="10.167%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_symbols2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <include - latin:keyXPos="5.782%p" - latin:keyboardLayout="@xml/rowkeys_symbols3" /> - <Key - latin:keyLabel="," /> - <include - latin:keyboardLayout="@xml/key_symbols_period" - latin:backgroundType="normal" /> - </Row> - <include - latin:keyboardLayout="@xml/row_symbols4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_azerty.xml b/java/res/xml-sw768dp/rows_azerty.xml deleted file mode 100644 index cf4bc92fa..000000000 --- a/java/res/xml-sw768dp/rows_azerty.xml +++ /dev/null @@ -1,68 +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" -> - <include - latin:keyboardLayout="@xml/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_azerty1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="10.167%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_azerty2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_azerty3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_bulgarian.xml b/java/res/xml-sw768dp/rows_bulgarian.xml deleted file mode 100644 index bdc1262f3..000000000 --- a/java/res/xml-sw768dp/rows_bulgarian.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="7.375%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_bulgarian1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.227%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_bulgarian2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.186%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_bulgarian3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_bulgarian_bds.xml b/java/res/xml-sw768dp/rows_bulgarian_bds.xml deleted file mode 100644 index 58c46113e..000000000 --- a/java/res/xml-sw768dp/rows_bulgarian_bds.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="7.375%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_bulgarian_bds1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.227%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_bulgarian_bds2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.000%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_bulgarian_bds3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_dvorak.xml b/java/res/xml-sw768dp/rows_dvorak.xml deleted file mode 100644 index 60d5dd604..000000000 --- a/java/res/xml-sw768dp/rows_dvorak.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_dvorak1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="10.167%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_dvorak2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_dvorak3" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_dvorak4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_east_slavic.xml b/java/res/xml-sw768dp/rows_east_slavic.xml deleted file mode 100644 index 420307d3e..000000000 --- a/java/res/xml-sw768dp/rows_east_slavic.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?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/key_styles_common" /> - <Row - latin:keyWidth="7.000%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_east_slavic1" /> - <Key - latin:keyLabel="!text/keylabel_for_east_slavic_row1_12" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.000%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_east_slavic2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.000%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_east_slavic3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_georgian.xml b/java/res/xml-sw768dp/rows_georgian.xml deleted file mode 100644 index 3f8bd4569..000000000 --- a/java/res/xml-sw768dp/rows_georgian.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_georgian1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight"/> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_georgian2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_georgian3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_greek.xml b/java/res/xml-sw768dp/rows_greek.xml deleted file mode 100644 index 9e1e00b73..000000000 --- a/java/res/xml-sw768dp/rows_greek.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/key_greek_semicolon" /> - <include - latin:keyboardLayout="@xml/rowkeys_greek1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight"/> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_greek2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_greek3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_mongolian.xml b/java/res/xml-sw768dp/rows_mongolian.xml deleted file mode 100644 index 5f37f8773..000000000 --- a/java/res/xml-sw768dp/rows_mongolian.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="7.375%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_mongolian1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.227%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_mongolian2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.000%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_mongolian3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_nordic.xml b/java/res/xml-sw768dp/rows_nordic.xml deleted file mode 100644 index 13d9399e8..000000000 --- a/java/res/xml-sw768dp/rows_nordic.xml +++ /dev/null @@ -1,71 +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" -> - <include - latin:keyboardLayout="@xml/key_styles_common" /> - <Row - latin:keyWidth="7.375%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_nordic1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.227%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_nordic2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.227%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <Spacer - latin:keyWidth="3.689%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_qwerty3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyXPos="-13.750%p" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_number_normal.xml b/java/res/xml-sw768dp/rows_number_normal.xml deleted file mode 100644 index de49aba91..000000000 --- a/java/res/xml-sw768dp/rows_number_normal.xml +++ /dev/null @@ -1,175 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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> - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <Key - latin:keyLabel="-" - latin:keyStyle="numKeyStyle" - latin:keyXPos="13.829%p" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel="+" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel="." - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel="1" - latin:keyStyle="numKeyStyle" - latin:keyXPos="43.125%p" /> - <Key - latin:keyLabel="2" - latin:keyStyle="numKeyStyle" /> - <Key - latin:keyLabel="3" - latin:keyStyle="numKeyStyle" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyXPos="-11.172%p" - latin:keyWidth="fillRight" /> - </Row> - <Row> - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="13.829%p" /> - <Key - latin:keyStyle="numStarKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel="/" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <switch> - <case - latin:mode="time|datetime" - > - <Key - latin:keyLabel="," - latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="!text/more_keys_for_am_pm" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - </case> - <default> - <Key - latin:keyLabel="," - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - </default> - </switch> - <Key - latin:keyLabel="4" - latin:keyStyle="numKeyStyle" - latin:keyXPos="43.125%p" /> - <Key - latin:keyLabel="5" - latin:keyStyle="numKeyStyle" /> - <Key - latin:keyLabel="6" - latin:keyStyle="numKeyStyle" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyXPos="-11.172%p" - latin:keyWidth="fillRight" /> - </Row> - <Row> - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="13.829%p" /> - <Key - latin:keyLabel="(" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel=")" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <switch> - <case - latin:mode="time|datetime" - > - <Key - latin:keyLabel=":" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - </case> - <default> - <Key - latin:keyLabel="=" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - </default> - </switch> - <Key - latin:keyLabel="7" - latin:keyStyle="numKeyStyle" - latin:keyXPos="43.125%p" /> - <Key - latin:keyLabel="8" - latin:keyStyle="numKeyStyle" /> - <Key - latin:keyLabel="9" - latin:keyStyle="numKeyStyle" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer /> - </Row> - <Row> - <include - latin:keyboardLayout="@xml/key_settings" - latin:keyWidth="8.047%p" /> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyXPos="13.829%p" - latin:keyWidth="24.140%p" - latin:backgroundType="functional" /> - <Key - latin:keyStyle="numStarKeyStyle" - latin:keyXPos="43.125%p" /> - <Key - latin:keyLabel="0" - latin:keyStyle="numKeyStyle" /> - <Key - latin:keyLabel="\#" - latin:keyStyle="numKeyStyle" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer - latin:keyWidth="fillRight" /> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/rows_number_password.xml b/java/res/xml-sw768dp/rows_number_password.xml deleted file mode 100644 index cfa221491..000000000 --- a/java/res/xml-sw768dp/rows_number_password.xml +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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> - <Key - latin:keyStyle="numTabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <Key - latin:keyStyle="num1KeyStyle" - latin:keyXPos="32.076%p" /> - <Key - latin:keyStyle="num2KeyStyle" /> - <Key - latin:keyStyle="num3KeyStyle" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyXPos="-11.172%p" - latin:keyWidth="fillRight" /> - </Row> - <Row> - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="32.076%p" /> - <Key - latin:keyStyle="num4KeyStyle" /> - <Key - latin:keyStyle="num5KeyStyle" /> - <Key - latin:keyStyle="num6KeyStyle" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyXPos="-11.172%p" - latin:keyWidth="fillRight" /> - </Row> - <Row> - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="32.076%p" /> - <Key - latin:keyStyle="num7KeyStyle" /> - <Key - latin:keyStyle="num8KeyStyle" /> - <Key - latin:keyStyle="num9KeyStyle" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer /> - </Row> - <Row> - <include - latin:keyboardLayout="@xml/key_settings" - latin:keyWidth="8.047%p" /> - <Key - latin:keyXPos="45.326%p" - latin:keyStyle="num0KeyStyle" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer /> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/rows_pcqwerty.xml b/java/res/xml-sw768dp/rows_pcqwerty.xml deleted file mode 100644 index 5f721a224..000000000 --- a/java/res/xml-sw768dp/rows_pcqwerty.xml +++ /dev/null @@ -1,80 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="7.0%p" - > - <switch> - <case - latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted" - > - <include - latin:keyboardLayout="@xml/rowkeys_pcqwerty1" /> - </case> - <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" --> - <default> - <include - latin:keyboardLayout="@xml/rowkeys_pcqwerty1_shift" /> - </default> - </switch> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.0%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyWidth="9.0%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_pcqwerty2" /> - </Row> - <Row - latin:keyWidth="7.0%p" - > - <Spacer - latin:keyWidth="12.0%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_pcqwerty3" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.0%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="15.0%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_pcqwerty4" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_pcqwerty5" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_phone.xml b/java/res/xml-sw768dp/rows_phone.xml deleted file mode 100644 index d06a63b2c..000000000 --- a/java/res/xml-sw768dp/rows_phone.xml +++ /dev/null @@ -1,138 +0,0 @@ -<?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/key_styles_common" /> - <include - latin:keyboardLayout="@xml/key_styles_number" /> - <Row> - <Key - latin:keyStyle="numTabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <Key - latin:keyLabel="-" - latin:keyStyle="numKeyStyle" - latin:keyXPos="13.829%p" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel="+" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyStyle="numPauseKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <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" /> - </Row> - <Row> - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="13.829%p" /> - <Key - latin:keyLabel="," - latin:keyStyle="numKeyStyle" - latin:keyXPos="13.829%p" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel="." - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyStyle="numWaitKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyStyle="num4KeyStyle" - latin:keyXPos="43.125%p" /> - <Key - latin:keyStyle="num5KeyStyle" /> - <Key - latin:keyStyle="num6KeyStyle" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyXPos="-11.172%p" - latin:keyWidth="fillRight" /> - </Row> - <Row> - <!-- Note: This Spacer prevents the below key from being marked as a left edge key. --> - <Spacer - latin:keyWidth="13.829%p" /> - <Key - latin:keyLabel="(" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel=")" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyLabel="N" - latin:keyStyle="numKeyStyle" - latin:keyWidth="8.047%p" - latin:backgroundType="functional" /> - <Key - latin:keyStyle="num7KeyStyle" - latin:keyXPos="43.125%p" /> - <Key - latin:keyStyle="num8KeyStyle" /> - <Key - latin:keyStyle="num9KeyStyle" /> - <!-- Note: This Spacer prevents the above key from being marked as a right edge key. --> - <Spacer /> - </Row> - <Row> - <include - latin:keyboardLayout="@xml/key_settings" - latin:keyWidth="8.047%p" /> - <Key - latin:keyStyle="spaceKeyStyle" - latin:keyXPos="13.829%p" - latin:keyWidth="24.140%p" - latin:backgroundType="functional" /> - <Key - latin:keyStyle="numStarKeyStyle" - latin:keyXPos="43.125%p" /> - <Key - latin:keyStyle="num0KeyStyle" /> - <Key - latin:keyLabel="\#" - latin:keyStyle="numKeyStyle" /> - </Row> -</merge> diff --git a/java/res/xml-sw768dp/rows_qwerty.xml b/java/res/xml-sw768dp/rows_qwerty.xml deleted file mode 100644 index 8af18ed72..000000000 --- a/java/res/xml-sw768dp/rows_qwerty.xml +++ /dev/null @@ -1,68 +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" -> - <include - latin:keyboardLayout="@xml/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_qwerty1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight"/> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_qwerty2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_qwerty3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_qwertz.xml b/java/res/xml-sw768dp/rows_qwertz.xml deleted file mode 100644 index 0dd206d45..000000000 --- a/java/res/xml-sw768dp/rows_qwertz.xml +++ /dev/null @@ -1,68 +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" -> - <include - latin:keyboardLayout="@xml/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_qwertz1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight"/> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_qwerty2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_qwertz3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_south_slavic.xml b/java/res/xml-sw768dp/rows_south_slavic.xml deleted file mode 100644 index 6b44c4e6a..000000000 --- a/java/res/xml-sw768dp/rows_south_slavic.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?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/key_styles_common" /> - <Row - latin:keyWidth="7.375%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_south_slavic1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.227%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_south_slavic2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.000%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_south_slavic3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_spanish.xml b/java/res/xml-sw768dp/rows_spanish.xml deleted file mode 100644 index 4520c100d..000000000 --- a/java/res/xml-sw768dp/rows_spanish.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?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/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_qwerty1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight"/> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="10.167%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_spanish2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_qwerty3" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyXPos="-13.750%p" - latin:keyWidth="fillRight" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_symbols.xml b/java/res/xml-sw768dp/rows_symbols.xml deleted file mode 100644 index 57944cb8e..000000000 --- a/java/res/xml-sw768dp/rows_symbols.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?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/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_symbols1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toAlphaKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_symbols2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <include - latin:keyXPos="5.782%p" - latin:keyboardLayout="@xml/rowkeys_symbols3" /> - <Key - latin:keyLabel="," /> - <include - latin:keyboardLayout="@xml/key_symbols_period" - latin:backgroundType="normal" /> - </Row> - <include - latin:keyboardLayout="@xml/row_symbols4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_thai.xml b/java/res/xml-sw768dp/rows_thai.xml deleted file mode 100644 index 5f9b383f8..000000000 --- a/java/res/xml-sw768dp/rows_thai.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="7.079%p" - > - <include - latin:keyboardLayout="@xml/rowkeys_thai1" - latin:keyXPos="3.799%p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight"/> - </Row> - <Row - latin:keyWidth="7.079%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_thai2" /> - <include - latin:keyboardLayout="@xml/key_thai_kho_khuat" /> - </Row> - <Row - latin:keyWidth="7.079%p" - > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_thai3" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="7.181%p" - > - <Key - latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p"/> - <include - latin:keyboardLayout="@xml/rowkeys_thai4" /> - <include - latin:keyboardLayout="@xml/keys_comma_period" /> - </Row> - <include - latin:keyboardLayout="@xml/row_qwerty4" /> -</merge> diff --git a/java/res/xml-sw768dp/rows_thai_symbols.xml b/java/res/xml-sw768dp/rows_thai_symbols.xml deleted file mode 100644 index 15fb4e177..000000000 --- a/java/res/xml-sw768dp/rows_thai_symbols.xml +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2012, The Android Open 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/key_styles_common" /> - <Row - latin:keyWidth="8.282%p" - > - <include - latin:keyboardLayout="@xml/rowkeys_thai_digits" - latin:keyXPos="7.969%p" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.282%p" - > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_symbols1" /> - </Row> - <Row - latin:keyWidth="8.125%p" - > - <Key - latin:keyStyle="toAlphaKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> - <include - latin:keyboardLayout="@xml/rowkeys_symbols2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> - <Row - latin:keyWidth="8.047%p" - > - <include - latin:keyXPos="5.782%p" - latin:keyboardLayout="@xml/rowkeys_symbols3" /> - <Key - latin:keyLabel="," /> - <include - latin:keyboardLayout="@xml/key_symbols_period" - latin:backgroundType="normal" /> - </Row> - <include - latin:keyboardLayout="@xml/row_symbols4" /> -</merge> diff --git a/java/res/xml-v16/key_hindi3_shift_left.xml b/java/res/xml-v16/key_devanagari_sign_anusvara.xml index 1eb1768a1..27c7bff5a 100644 --- a/java/res/xml-v16/key_hindi3_shift_left.xml +++ b/java/res/xml-v16/key_devanagari_sign_anusvara.xml @@ -20,15 +20,13 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU - U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E --> + <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA --> <Key - latin:keyLabel="ँ" - latin:moreKeys="ॅ" + latin:keyLabel="ं" latin:keyLabelFlags="fontNormal" /> </merge> diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml new file mode 100644 index 000000000..03017dd78 --- /dev/null +++ b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU + U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E --> + <key-style + latin:styleName="moreKeysDevanagariSignCandrabindu" + latin:moreKeys="ॅ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariSignCandrabindu" /> + </default> + </switch> + <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU --> + <Key + latin:keyStyle="moreKeysDevanagariSignCandrabindu" + latin:keyLabel="ँ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/key_hindi3_right.xml b/java/res/xml-v16/key_devanagari_sign_nukta.xml index 232810f98..09c347706 100644 --- a/java/res/xml-v16/key_hindi3_right.xml +++ b/java/res/xml-v16/key_devanagari_sign_nukta.xml @@ -20,17 +20,30 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- U+093C: "़" DEVANAGARI SIGN NUKTA - U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP - U+0970: "॰" DEVANAGARI ABBREVIATION SIGN - U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP + U+0970: "॰" DEVANAGARI ABBREVIATION SIGN + U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <key-style + latin:styleName="moreKeysDevanagariSignNukta" + latin:moreKeys="ॽ,॰,ऽ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariSignNukta" /> + </default> + </switch> + <!-- U+093C: "़" DEVANAGARI SIGN NUKTA --> <Key + latin:keyStyle="moreKeysDevanagariSignNukta" latin:keyLabel="़" - latin:moreKeys="ॽ,॰,ऽ" latin:keyLabelFlags="fontNormal" /> </merge> diff --git a/java/res/xml-v16/keys_hindi3_left2.xml b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml index 9474c1763..0316a7bde 100644 --- a/java/res/xml-v16/keys_hindi3_left2.xml +++ b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml @@ -20,8 +20,8 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > @@ -29,8 +29,4 @@ <Key latin:keyLabel="ॉ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="ं" - latin:keyLabelFlags="fontNormal" /> </merge> diff --git a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml new file mode 100644 index 000000000..4dd3e85cc --- /dev/null +++ b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignVocalicR" + latin:moreKeys="ॄ" /> + </case> + <case + latin:keyboardLayoutSet="nepali_traditional" + > + <!-- U+0913: "ओ" DEVANAGARI LETTER O --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignVocalicR" + latin:moreKeys="ओ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignVocalicR" /> + </default> + </switch> + <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R --> + <Key + latin:keyStyle="moreKeysDevanagariVowelSignVocalicR" + latin:keyLabel="ृ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keys_hindi1_left5.xml b/java/res/xml-v16/keys_hindi1_left5.xml deleted file mode 100644 index e3ad299ff..000000000 --- a/java/res/xml-v16/keys_hindi1_left5.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2013, The Android Open 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. -*/ ---> - -<!-- The code point U+25CC for key label is needed because the font rendering system prior to - API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> -<merge - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU - U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA - U+0967: "१" DEVANAGARI DIGIT ONE --> - <Key - latin:keyLabel="ौ" - latin:moreKeys="ौं,%" - latin:keyHintLabel="1" - latin:additionalMoreKeys="१,1" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI - U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA - U+0968: "२" DEVANAGARI DIGIT TWO --> - <Key - latin:keyLabel="ै" - latin:moreKeys="ैं,%" - latin:keyHintLabel="2" - latin:additionalMoreKeys="२,2" - latin:keyLabelFlags="fontNormal" /> - <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA - U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA - U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU - U+0969: "३" DEVANAGARI DIGIT THREE --> - <Key - latin:keyLabel="ा" - latin:moreKeys="ां,ाँ,%" - latin:keyHintLabel="3" - latin:additionalMoreKeys="३,3" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II - U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA - U+096A: "४" DEVANAGARI DIGIT FOUR --> - <Key - latin:keyLabel="ी" - latin:moreKeys="ीं,%" - latin:keyHintLabel="4" - latin:additionalMoreKeys="४,4" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU - U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA - U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU - U+096B: "५" DEVANAGARI DIGIT FIVE --> - <Key - latin:keyLabel="ू" - latin:moreKeys="ूं,ूँ,%" - latin:keyHintLabel="5" - latin:additionalMoreKeys="५,5" - latin:keyLabelFlags="fontNormal" /> -</merge> diff --git a/java/res/xml-v16/keys_hindi2_left5.xml b/java/res/xml-v16/keys_hindi2_left5.xml deleted file mode 100644 index 05c4f57e9..000000000 --- a/java/res/xml-v16/keys_hindi2_left5.xml +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2013, The Android Open 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. -*/ ---> - -<!-- The code point U+25CC for key label is needed because the font rendering system prior to - API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> -<merge - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O - U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA - U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O - U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O --> - <Key - latin:keyLabel="ो" - latin:moreKeys="ों,ॉ,ॊ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E - U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="े" - latin:moreKeys="ें" - latin:keyLabelFlags="fontNormal" /> - <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA --> - <Key - latin:keyLabel="्" - latin:keyLabelFlags="fontNormal" /> - <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I - U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="ि" - latin:moreKeys="िं" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U - U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA - U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU --> - <Key - latin:keyLabel="ु" - latin:moreKeys="ुं,ुँ" - latin:keyLabelFlags="fontNormal" /> -</merge> diff --git a/java/res/xml-v16/key_hindi3_shift_right.xml b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml index 0f26cb55c..a2fbf53d3 100644 --- a/java/res/xml-v16/key_hindi3_shift_right.xml +++ b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml @@ -20,15 +20,14 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R - U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR --> - <Key - latin:keyLabel="ृ" - latin:moreKeys="ॄ" + <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA --> + <key-style + latin:styleName="baseKeyDevanagariSignVirama" + latin:keyLabel="्" latin:keyLabelFlags="fontNormal" /> </merge> diff --git a/java/res/xml-v16/key_hindi1_shift.xml b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml index 19b964367..ac56cb77b 100644 --- a/java/res/xml-v16/key_hindi1_shift.xml +++ b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml @@ -20,13 +20,14 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA --> - <Key + <key-style + latin:styleName="baseKeyDevanagariSignVisarga" latin:keyLabel="ः" latin:keyLabelFlags="fontNormal" /> </merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml new file mode 100644 index 000000000..8e256032c --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA + U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAa" + latin:moreKeys="ां,ाँ,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAa" /> + </default> + </switch> + <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignAa" + latin:parentStyle="moreKeysDevanagariVowelSignAa" + latin:keyLabel="ा" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml new file mode 100644 index 000000000..e79033971 --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAi" + latin:moreKeys="ैं,%" /> + </case> + <case + latin:keyboardLayoutSet="nepali_traditional" + > + <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAi" + latin:moreKeys="श्र" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAi" /> + </default> + </switch> + <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignAi" + latin:parentStyle="moreKeysDevanagariVowelSignAi" + latin:keyLabel="ै" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml new file mode 100644 index 000000000..43387a388 --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!--U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAu" + latin:moreKeys="ौं,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAu" /> + </default> + </switch> + <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignAu" + latin:parentStyle="moreKeysDevanagariVowelSignAu" + latin:keyLabel="ौ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml new file mode 100644 index 000000000..c70d9d944 --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignE" + latin:moreKeys="ें" /> + </case> + <case + latin:keyboardLayoutSet="nepali_traditional" + > + <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA + U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignE" + latin:moreKeys="ः,ऽ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignE" /> + </default> + </switch> + <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignE" + latin:parentStyle="moreKeysDevanagariVowelSignE" + latin:keyLabel="े" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml new file mode 100644 index 000000000..845c1b02e --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignI" + latin:moreKeys="िं" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignI" /> + </default> + </switch> + <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignI" + latin:parentStyle="moreKeysDevanagariVowelSignI" + latin:keyLabel="ि" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml new file mode 100644 index 000000000..0de9650be --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignIi" + latin:moreKeys="ीं,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignIi" /> + </default> + </switch> + <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignIi" + latin:parentStyle="moreKeysDevanagariVowelSignIi" + latin:keyLabel="ी" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml new file mode 100644 index 000000000..06f07fac9 --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA + U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O + U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignO" + latin:moreKeys="ों,ॉ,ॊ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignO" /> + </default> + </switch> + <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignO" + latin:parentStyle="moreKeysDevanagariVowelSignO" + latin:keyLabel="ो" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml new file mode 100644 index 000000000..469a27bdf --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA + U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignU" + latin:moreKeys="ुं,ुँ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignU" /> + </default> + </switch> + <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignU" + latin:parentStyle="moreKeysDevanagariVowelSignU" + latin:keyLabel="ु" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml new file mode 100644 index 000000000..25867c086 --- /dev/null +++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA + U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignUu" + latin:moreKeys="ूं,ूँ,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignUu" /> + </default> + </switch> + <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignUu" + latin:parentStyle="moreKeysDevanagariVowelSignUu" + latin:keyLabel="ू" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-sw768dp/kbd_thai_symbols.xml b/java/res/xml/kbd_armenian_phonetic.xml index 5ddf57446..1eb3c7e7d 100644 --- a/java/res/xml-sw768dp/kbd_thai_symbols.xml +++ b/java/res/xml/kbd_armenian_phonetic.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2012, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,5 +27,5 @@ latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" > <include - latin:keyboardLayout="@xml/rows_thai_symbols" /> + latin:keyboardLayout="@xml/rows_armenian_phonetic" /> </Keyboard> diff --git a/java/res/xml/kbd_emoji_category6.xml b/java/res/xml/kbd_emoji_category6.xml index a07966b07..838f3f52c 100644 --- a/java/res/xml/kbd_emoji_category6.xml +++ b/java/res/xml/kbd_emoji_category6.xml @@ -22,6 +22,7 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" latin:keyWidth="@fraction/emoji_keyboard_key_width" latin:keyLetterSize="90%p" + latin:keyLabelSize="60%p" > <GridRows latin:textsArray="@array/emoji_emoticons" diff --git a/java/res/xml/kbd_emoji_recents.xml b/java/res/xml/kbd_emoji_recents.xml index 8b4fa958c..f56b79ab7 100644 --- a/java/res/xml/kbd_emoji_recents.xml +++ b/java/res/xml/kbd_emoji_recents.xml @@ -22,6 +22,7 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" latin:keyWidth="@fraction/emoji_keyboard_key_width" latin:keyLetterSize="90%p" + latin:keyLabelSize="60%p" > <GridRows latin:codesArray="@array/emoji_recents" diff --git a/java/res/xml-sw768dp/kbd_10_10_7_symbols.xml b/java/res/xml/kbd_nepali_romanized.xml index dd545b5ef..9e4381364 100644 --- a/java/res/xml-sw768dp/kbd_10_10_7_symbols.xml +++ b/java/res/xml/kbd_nepali_romanized.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2012, The Android Open Source Project +** Copyright 2013, The Android Open 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,8 +20,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" > <include - latin:keyboardLayout="@xml/rows_10_10_7_symbols" /> + latin:keyboardLayout="@xml/rows_nepali_romanized" /> </Keyboard> diff --git a/java/res/xml-sw768dp/kbd_phone.xml b/java/res/xml/kbd_nepali_traditional.xml index 947ede050..6854e32bd 100644 --- a/java/res/xml-sw768dp/kbd_phone.xml +++ b/java/res/xml/kbd_nepali_traditional.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2010, The Android Open Source Project +** Copyright 2013, The Android Open 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,9 +20,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:keyWidth="13.250%p" - latin:touchPositionCorrectionData="@array/touch_position_correction_data_default" > <include - latin:keyboardLayout="@xml/rows_phone" /> + latin:keyboardLayout="@xml/rows_nepali_traditional" /> </Keyboard> diff --git a/java/res/xml-sw768dp/key_settings.xml b/java/res/xml/key_armenian_sha.xml index 0d3bb59a4..3865c1984 100644 --- a/java/res/xml-sw768dp/key_settings.xml +++ b/java/res/xml/key_armenian_sha.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2012, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -21,15 +21,8 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <switch> - <case - latin:clobberSettingsKey="false" - > - <Key - latin:keyStyle="settingsKeyStyle" /> - </case> - <default> - <Spacer /> - </default> - </switch> + <!-- U+0577: "շ" ARMENIAN SMALL LETTER SHA --> + <Key + latin:keyLabel="շ" + latin:keyLabelFlags="fontNormal" /> </merge> diff --git a/java/res/xml/key_armenian_xeh.xml b/java/res/xml/key_armenian_xeh.xml new file mode 100644 index 000000000..007a5802d --- /dev/null +++ b/java/res/xml/key_armenian_xeh.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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" +> + <!-- U+056D: "խ" ARMENIAN SMALL LETTER XEH --> + <Key + latin:keyLabel="խ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml/key_hindi3_shift_left.xml b/java/res/xml/key_devanagari_sign_anusvara.xml index c5e2f1386..0acd3bcd4 100644 --- a/java/res/xml/key_hindi3_shift_left.xml +++ b/java/res/xml/key_devanagari_sign_anusvara.xml @@ -20,17 +20,15 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <!-- U+25CC: "◌" DOTTED CIRCLE - U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU - U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E --> + U+0902: "ं" DEVANAGARI SIGN ANUSVARA --> <Key - latin:keyLabel="◌ँ" - latin:code="0x0901" - latin:moreKeys="◌ॅ|ॅ" + latin:keyLabel="◌ं" + latin:code="0x0902" latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> </merge> diff --git a/java/res/xml/key_hindi3_right.xml b/java/res/xml/key_devanagari_sign_candrabindu.xml index 5a97355f6..df0c4e054 100644 --- a/java/res/xml/key_hindi3_right.xml +++ b/java/res/xml/key_devanagari_sign_candrabindu.xml @@ -20,19 +20,31 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E --> + <key-style + latin:styleName="moreKeysDevanagariSignCandrabindu" + latin:moreKeys="◌ॅ|ॅ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariSignCandrabindu" /> + </default> + </switch> <!-- U+25CC: "◌" DOTTED CIRCLE - U+093C: "़" DEVANAGARI SIGN NUKTA - U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP - U+0970: "॰" DEVANAGARI ABBREVIATION SIGN - U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU --> <Key - latin:keyLabel="◌़" - latin:code="0x093C" - latin:moreKeys="◌ॽ|ॽ,◌॰|॰,◌ऽ|ऽ" + latin:keyStyle="moreKeysDevanagariSignCandrabindu" + latin:keyLabel="◌ँ" + latin:code="0x0901" latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> </merge> diff --git a/java/res/xml/key_devanagari_sign_nukta.xml b/java/res/xml/key_devanagari_sign_nukta.xml new file mode 100644 index 000000000..f7a03ee90 --- /dev/null +++ b/java/res/xml/key_devanagari_sign_nukta.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP + U+0970: "॰" DEVANAGARI ABBREVIATION SIGN + U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <key-style + latin:styleName="moreKeysDevanagariSignNukta" + latin:moreKeys="◌ॽ|ॽ,◌॰|॰,◌ऽ|ऽ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariSignNukta" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093C: "़" DEVANAGARI SIGN NUKTA --> + <Key + latin:keyStyle="moreKeysDevanagariSignNukta" + latin:keyLabel="◌़" + latin:code="0x093C" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keys_hindi3_left2.xml b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml index 4f1ad16ef..370fc5405 100644 --- a/java/res/xml/keys_hindi3_left2.xml +++ b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml @@ -20,8 +20,8 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > @@ -31,10 +31,4 @@ latin:keyLabel="◌ॉ" latin:code="0x0949" latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+0902: "ं" DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="◌ं" - latin:code="0x0902" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> </merge> diff --git a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml new file mode 100644 index 000000000..f150d7ed9 --- /dev/null +++ b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignVocalicR" + latin:moreKeys="◌ॄ|ॄ" /> + </case> + <case + latin:keyboardLayoutSet="nepali_traditional" + > + <!-- U+0913: "ओ" DEVANAGARI LETTER O --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignVocalicR" + latin:moreKeys="ओ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignVocalicR" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R --> + <Key + latin:keyStyle="moreKeysDevanagariVowelSignVocalicR" + latin:keyLabel="◌ृ" + latin:code="0x0943" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/key_nepali_traditional_period.xml b/java/res/xml/key_nepali_traditional_period.xml new file mode 100644 index 000000000..0f575c50b --- /dev/null +++ b/java/res/xml/key_nepali_traditional_period.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <Key + latin:keyLabel="," + latin:backgroundType="functional" /> + </case> + <default> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVirama" + latin:keyLabelFlags="hasPopupHint" + latin:moreKeys="!fixedColumnOrder!4,.,!text/more_keys_for_punctuation" + latin:backgroundType="functional" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml index dabe1e7eb..c1c2c3e06 100644 --- a/java/res/xml/key_styles_common.xml +++ b/java/res/xml/key_styles_common.xml @@ -67,30 +67,6 @@ latin:backgroundType="functional" /> <include latin:keyboardLayout="@xml/key_styles_enter" /> - <switch> - <!-- Shift + Enter in textMultiLine field. --> - <case - latin:isMultiLine="true" - latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted" - > - <key-style - latin:styleName="enterKeyStyle" - latin:parentStyle="shiftEnterKeyStyle" /> - </case> - <!-- Smiley in textShortMessage field. - Overrides common enter key style. --> - <case - latin:mode="im" - > - <key-style - latin:styleName="enterKeyStyle" - latin:keyLabel=":-)" - latin:keyOutputText=":-) " - latin:keyLabelFlags="hasPopupHint" - latin:moreKeys="!text/more_keys_for_smiley" - latin:backgroundType="functional" /> - </case> - </switch> <key-style latin:styleName="spaceKeyStyle" latin:code="!code/key_space" @@ -129,7 +105,8 @@ latin:styleName="emojiKeyStyle" latin:code="!code/key_emoji" latin:keyIcon="!icon/emoji_key" - latin:keyActionFlags="noKeyPreview" /> + latin:keyActionFlags="noKeyPreview" + latin:backgroundType="functional" /> <key-style latin:styleName="tabKeyStyle" latin:code="!code/key_tab" diff --git a/java/res/xml/keyboard_layout_set_armenian_phonetic.xml b/java/res/xml/keyboard_layout_set_armenian_phonetic.xml new file mode 100644 index 000000000..b374fae3b --- /dev/null +++ b/java/res/xml/keyboard_layout_set_armenian_phonetic.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<KeyboardLayoutSet + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <Element + latin:elementName="alphabet" + latin:elementKeyboard="@xml/kbd_armenian_phonetic" + latin:enableProximityCharsCorrection="true" /> + <Element + latin:elementName="symbols" + latin:elementKeyboard="@xml/kbd_symbols" /> + <Element + latin:elementName="phone" + latin:elementKeyboard="@xml/kbd_phone" /> + <Element + latin:elementName="phoneSymbols" + latin:elementKeyboard="@xml/kbd_phone_symbols" /> + <Element + latin:elementName="number" + latin:elementKeyboard="@xml/kbd_number" /> +</KeyboardLayoutSet> diff --git a/java/res/xml/keyboard_layout_set_nepali_romanized.xml b/java/res/xml/keyboard_layout_set_nepali_romanized.xml new file mode 100644 index 000000000..82f36cfbd --- /dev/null +++ b/java/res/xml/keyboard_layout_set_nepali_romanized.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<KeyboardLayoutSet + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <Element + latin:elementName="alphabet" + latin:elementKeyboard="@xml/kbd_nepali_romanized" + latin:enableProximityCharsCorrection="true" /> + <Element + latin:elementName="alphabetAutomaticShifted" + latin:elementKeyboard="@xml/kbd_nepali_romanized" + latin:enableProximityCharsCorrection="true" /> + <!-- On these shifted alphabet layouts the proximity characters correction should be disabled + because the letters on these layouts aren't the ones in different case of the above + unshifted layouts. --> + <Element + latin:elementName="alphabetManualShifted" + latin:elementKeyboard="@xml/kbd_nepali_romanized" /> + <Element + latin:elementName="alphabetShiftLocked" + latin:elementKeyboard="@xml/kbd_nepali_romanized" /> + <Element + latin:elementName="alphabetShiftLockShifted" + latin:elementKeyboard="@xml/kbd_nepali_romanized" /> + <Element + latin:elementName="symbols" + latin:elementKeyboard="@xml/kbd_symbols" /> + <Element + latin:elementName="phone" + latin:elementKeyboard="@xml/kbd_phone" /> + <Element + latin:elementName="phoneSymbols" + latin:elementKeyboard="@xml/kbd_phone_symbols" /> + <Element + latin:elementName="number" + latin:elementKeyboard="@xml/kbd_number" /> +</KeyboardLayoutSet> diff --git a/java/res/xml/keyboard_layout_set_nepali_traditional.xml b/java/res/xml/keyboard_layout_set_nepali_traditional.xml new file mode 100644 index 000000000..2a6dc8e83 --- /dev/null +++ b/java/res/xml/keyboard_layout_set_nepali_traditional.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<KeyboardLayoutSet + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"> + <Element + latin:elementName="alphabet" + latin:elementKeyboard="@xml/kbd_nepali_traditional" + latin:enableProximityCharsCorrection="true" /> + <Element + latin:elementName="alphabetAutomaticShifted" + latin:elementKeyboard="@xml/kbd_nepali_traditional" + latin:enableProximityCharsCorrection="true" /> + <!-- On these shifted alphabet layouts the proximity characters correction should be disabled + because the letters on these layouts aren't the ones in different case of the above + unshifted layouts. --> + <Element + latin:elementName="alphabetManualShifted" + latin:elementKeyboard="@xml/kbd_nepali_traditional" /> + <Element + latin:elementName="alphabetShiftLocked" + latin:elementKeyboard="@xml/kbd_nepali_traditional" /> + <Element + latin:elementName="alphabetShiftLockShifted" + latin:elementKeyboard="@xml/kbd_nepali_traditional" /> + <Element + latin:elementName="symbols" + latin:elementKeyboard="@xml/kbd_symbols" /> + <Element + latin:elementName="phone" + latin:elementKeyboard="@xml/kbd_phone" /> + <Element + latin:elementName="phoneSymbols" + latin:elementKeyboard="@xml/kbd_phone_symbols" /> + <Element + latin:elementName="number" + latin:elementKeyboard="@xml/kbd_number" /> +</KeyboardLayoutSet> diff --git a/java/res/xml/keys_hindi1_left5.xml b/java/res/xml/keys_hindi1_left5.xml deleted file mode 100644 index 8757afeaf..000000000 --- a/java/res/xml/keys_hindi1_left5.xml +++ /dev/null @@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2013, The Android Open 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. -*/ ---> - -<!-- The code point U+25CC for key label is needed because the font rendering system prior to - API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> -<merge - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+094C: "ौ" DEVANAGARI VOWEL SIGN AU - U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA - U+0967: "१" DEVANAGARI DIGIT ONE --> - <Key - latin:keyLabel="◌ौ" - latin:code="0x094C" - latin:moreKeys="◌ौं|ौं,%" - latin:keyHintLabel="1" - latin:additionalMoreKeys="१,1" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+0948: "ै" DEVANAGARI VOWEL SIGN AI - U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA - U+0968: "२" DEVANAGARI DIGIT TWO --> - <Key - latin:keyLabel="◌ै" - latin:code="0x0948" - latin:moreKeys="◌ैं|ैं,%" - latin:keyHintLabel="2" - latin:additionalMoreKeys="२,2" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+093E: "ा" DEVANAGARI VOWEL SIGN AA - U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA - U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU - U+0969: "३" DEVANAGARI DIGIT THREE --> - <Key - latin:keyLabel="◌ा" - latin:code="0x093E" - latin:moreKeys="◌ां|ां,◌ाँ|ाँ,%" - latin:keyHintLabel="3" - latin:additionalMoreKeys="३,3" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+0940: "ी" DEVANAGARI VOWEL SIGN II - U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA - U+096A: "४" DEVANAGARI DIGIT FOUR --> - <Key - latin:keyLabel="◌ी" - latin:code="0x0940" - latin:moreKeys="◌ीं|ीं,%" - latin:keyHintLabel="4" - latin:additionalMoreKeys="४,4" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+0942: "ू" DEVANAGARI VOWEL SIGN UU - U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA - U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU - U+096B: "५" DEVANAGARI DIGIT FIVE --> - <Key - latin:keyLabel="◌ू" - latin:code="0x0942" - latin:moreKeys="◌ूं|ूं,◌ूँ|ूँ,%" - latin:keyHintLabel="5" - latin:additionalMoreKeys="५,5" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> -</merge> diff --git a/java/res/xml/keys_hindi2_left5.xml b/java/res/xml/keys_hindi2_left5.xml deleted file mode 100644 index 4c3a5e051..000000000 --- a/java/res/xml/keys_hindi2_left5.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* -** -** Copyright 2013, The Android Open 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. -*/ ---> - -<!-- The code point U+25CC for key label is needed because the font rendering system prior to - API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> -<merge - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+094B: "ो" DEVANAGARI VOWEL SIGN O - U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA - U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O - U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O --> - <Key - latin:keyLabel="◌ो" - latin:code="0x094B" - latin:moreKeys="◌ों|ों,◌ॉ,ॊ|ॉ,ॊ" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+0947: "े" DEVANAGARI VOWEL SIGN E - U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="◌े" - latin:code="0x0947" - latin:moreKeys="◌ें|ें" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+094D: "्" DEVANAGARI SIGN VIRAMA --> - <Key - latin:keyLabel="◌्" - latin:code="0x094D" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+093F: "ि" DEVANAGARI VOWEL SIGN I - U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA --> - <Key - latin:keyLabel="ि◌" - latin:code="0x093F" - latin:moreKeys="ि◌ं|िं" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> - <!-- U+25CC: "◌" DOTTED CIRCLE - U+0941: "ु" DEVANAGARI VOWEL SIGN U - U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA - U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU --> - <Key - latin:keyLabel="◌ु" - latin:code="0x0941" - latin:moreKeys="◌ुं|ुं,◌ुँ|ुँ" - latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> -</merge> diff --git a/java/res/xml/key_hindi3_shift_right.xml b/java/res/xml/keystyle_devanagari_sign_virama.xml index 0da116ab8..b22fbe842 100644 --- a/java/res/xml/key_hindi3_shift_right.xml +++ b/java/res/xml/keystyle_devanagari_sign_virama.xml @@ -20,17 +20,16 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <!-- U+25CC: "◌" DOTTED CIRCLE - U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R - U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR --> - <Key - latin:keyLabel="◌ृ" - latin:code="0x0943" - latin:moreKeys="◌ॄ|ॄ" + U+094D: "्" DEVANAGARI SIGN VIRAMA --> + <key-style + latin:styleName="baseKeyDevanagariSignVirama" + latin:keyLabel="◌्" + latin:code="0x094D" latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> -</merge> + </merge> diff --git a/java/res/xml/key_hindi1_shift.xml b/java/res/xml/keystyle_devanagari_sign_visarga.xml index 0db5ae9af..cb294951f 100644 --- a/java/res/xml/key_hindi1_shift.xml +++ b/java/res/xml/keystyle_devanagari_sign_visarga.xml @@ -20,14 +20,15 @@ <!-- The code point U+25CC for key label is needed because the font rendering system prior to API version 16 can't automatically render dotted circle for incomplete combining letter - of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the - counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. --> + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <!-- U+25CC: "◌" DOTTED CIRCLE U+0903: "ः" DEVANAGARI SIGN VISARGA --> - <Key + <key-style + latin:styleName="baseKeyDevanagariSignVisarga" latin:keyLabel="◌ः" latin:code="0x0903" latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml new file mode 100644 index 000000000..2e78c53ec --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA + U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAa" + latin:moreKeys="◌ां|ां,◌ाँ|ाँ,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAa" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093E: "ा" DEVANAGARI VOWEL SIGN AA --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignAa" + latin:parentStyle="moreKeysDevanagariVowelSignAa" + latin:keyLabel="◌ा" + latin:code="0x093E" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml new file mode 100644 index 000000000..0554c0e15 --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAi" + latin:moreKeys="◌ैं|ैं,%" /> + </case> + <case + latin:keyboardLayoutSet="nepali_traditional" + > + <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAi" + latin:moreKeys="श्र" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAi" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0948: "ै" DEVANAGARI VOWEL SIGN AI --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignAi" + latin:parentStyle="moreKeysDevanagariVowelSignAi" + latin:keyLabel="◌ै" + latin:code="0x0948" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml new file mode 100644 index 000000000..29a11a82e --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAu" + latin:moreKeys="◌ौं|ौं,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignAu" /> + </default> + </switch> + <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignAu" + latin:parentStyle="moreKeysDevanagariVowelSignAu" + latin:keyLabel="◌ौ" + latin:code="0x094C" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml new file mode 100644 index 000000000..edd29c791 --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignE" + latin:moreKeys="◌ें|ें" /> + </case> + <case + latin:keyboardLayoutSet="nepali_traditional" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0903: "ः" DEVANAGARI SIGN VISARGA + U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignE" + latin:moreKeys="◌ः|ः,ऽ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignE" /> + </default> + </switch> + <key-style + latin:styleName="baseKeyDevanagariVowelSignE" + latin:parentStyle="moreKeysDevanagariVowelSignE" + latin:keyLabel="◌े" + latin:code="0x0947" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml new file mode 100644 index 000000000..200fed29f --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignI" + latin:moreKeys="ि◌ं|िं" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignI" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+093F: "ि" DEVANAGARI VOWEL SIGN I --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignI" + latin:parentStyle="moreKeysDevanagariVowelSignI" + latin:keyLabel="◌ि" + latin:code="0x093F" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml new file mode 100644 index 000000000..6dc9951df --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II + U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignIi" + latin:moreKeys="◌ीं|ीं,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignIi" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0940: "ी" DEVANAGARI VOWEL SIGN II --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignIi" + latin:parentStyle="moreKeysDevanagariVowelSignIi" + latin:keyLabel="◌ी" + latin:code="0x0940" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml new file mode 100644 index 000000000..233ac8609 --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA + U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O + U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignO" + latin:moreKeys="◌ों|ों,◌ॉ|ॉ,◌ॊ|ॊ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignO" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+094B: "ो" DEVANAGARI VOWEL SIGN O --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignO" + latin:parentStyle="moreKeysDevanagariVowelSignO" + latin:keyLabel="◌ो" + latin:code="0x094B" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml new file mode 100644 index 000000000..7291b7099 --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA + U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignU" + latin:moreKeys="◌ुं|ुं,◌ुँ|ुँ" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignU" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0941: "ु" DEVANAGARI VOWEL SIGN U --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignU" + latin:parentStyle="moreKeysDevanagariVowelSignU" + latin:keyLabel="◌ु" + latin:code="0x0941" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml new file mode 100644 index 000000000..a95ab822d --- /dev/null +++ b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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. +*/ +--> + +<!-- The code point U+25CC for key label is needed because the font rendering system prior to + API version 16 can't automatically render dotted circle for incomplete combining letter + of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the + counterpart files named res/xml-v16/key_*.xml don't have this hack. --> +<merge + xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" +> + <switch> + <case + latin:keyboardLayoutSet="hindi" + > + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA + U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignUu" + latin:moreKeys="◌ूं|ूं,◌ूँ|ूँ,%" /> + </case> + <default> + <key-style + latin:styleName="moreKeysDevanagariVowelSignUu" /> + </default> + </switch> + <!-- U+25CC: "◌" DOTTED CIRCLE + U+0942: "ू" DEVANAGARI VOWEL SIGN UU --> + <key-style + latin:styleName="baseKeyDevanagariVowelSignUu" + latin:parentStyle="moreKeysDevanagariVowelSignUu" + latin:keyLabel="◌ू" + latin:code="0x0942" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> +</merge> diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml index 2c3ac57ed..c3d68c6e5 100644 --- a/java/res/xml/method.xml +++ b/java/res/xml/method.xml @@ -47,6 +47,7 @@ hi: Hindi/hindi hr: Croatian/qwertz hu: Hungarian/qwertz + hy: Armenian Phonetic/armenian_phonetic in: Indonesian/qwerty # "id" is official language code of Indonesian. is: Icelandic/qwerty it: Italian/qwerty @@ -60,6 +61,8 @@ mn: Mongolian/mongolian ms: Malay/qwerty nb: Norwegian Bokmål/nordic + ne: Nepali Romanized/nepali_romanized + ne: Nepali Traditional/nepali_traditional nl: Dutch/qwerty nl_BE: Dutch Belgium/azerty pl: Polish/qwerty @@ -80,6 +83,7 @@ vi: Vietnamese/qwerty zu: Zulu/qwerty zz: QWERTY/qwerty + (zz: Emoji/emoji) --> <!-- TODO: use <lang>_keyboard icon instead of a common keyboard icon. --> <!-- Note: SupportTouchPositionCorrection extra value is obsolete and maintained for backward @@ -266,6 +270,13 @@ android:imeSubtypeMode="keyboard" android:imeSubtypeExtraValue="AsciiCapable,SupportTouchPositionCorrection" /> + <subtype android:icon="@drawable/ic_subtype_keyboard" + android:label="@string/subtype_generic" + android:subtypeId="0xe39ac3ca" + android:imeSubtypeLocale="hy" + android:imeSubtypeMode="keyboard" + android:imeSubtypeExtraValue="KeyboardLayoutSet=armenian_phonetic" + /> <!-- Java uses the deprecated "in" code instead of the standard "id" code for Indonesian. --> <subtype android:icon="@drawable/ic_subtype_keyboard" android:label="@string/subtype_generic" @@ -363,6 +374,20 @@ /> <subtype android:icon="@drawable/ic_subtype_keyboard" android:label="@string/subtype_generic" + android:subtypeId="0xd80a4cee" + android:imeSubtypeLocale="ne" + android:imeSubtypeMode="keyboard" + android:imeSubtypeExtraValue="KeyboardLayoutSet=nepali_romanized" + /> + <subtype android:icon="@drawable/ic_subtype_keyboard" + android:label="@string/subtype_nepali_traditional" + android:subtypeId="0x5fafea88" + android:imeSubtypeLocale="ne" + android:imeSubtypeMode="keyboard" + android:imeSubtypeExtraValue="KeyboardLayoutSet=nepali_traditional" + /> + <subtype android:icon="@drawable/ic_subtype_keyboard" + android:label="@string/subtype_generic" android:subtypeId="0x3f9fd91e" android:imeSubtypeLocale="nl" android:imeSubtypeMode="keyboard" @@ -510,4 +535,15 @@ android:imeSubtypeMode="keyboard" android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable" /> + <!-- Emoji subtype has to be an addtional subtype added at boot time because ICS doesn't + support Emoji. --> + <!-- + <subtype android:icon="@drawable/ic_subtype_keyboard" + android:label="@string/subtype_emoji" + android:subtypeId="0xc14d88b2" + android:imeSubtypeLocale="zz" + android:imeSubtypeMode="keyboard" + android:imeSubtypeExtraValue="KeyboardLayoutSet=emoji" + /> + --> </input-method> diff --git a/java/res/xml/row_qwerty4.xml b/java/res/xml/row_qwerty4.xml index c29fbf2f1..e6a507435 100644 --- a/java/res/xml/row_qwerty4.xml +++ b/java/res/xml/row_qwerty4.xml @@ -42,6 +42,13 @@ latin:moreKeys="!text/more_keys_for_arabic_diacritics" latin:keyStyle="punctuationKeyStyle" /> </case> + <case + latin:languageCode="ne" + latin:keyboardLayoutSet="nepali_traditional" + > + <include + latin:keyboardLayout="@xml/key_nepali_traditional_period" /> + </case> <default> <Key latin:keyStyle="punctuationKeyStyle" /> diff --git a/java/res/xml/row_symbols4.xml b/java/res/xml/row_symbols4.xml index 5c15da6a5..bea139aba 100644 --- a/java/res/xml/row_symbols4.xml +++ b/java/res/xml/row_symbols4.xml @@ -50,7 +50,7 @@ latin:keyboardLayout="@xml/key_symbols_period" latin:backgroundType="functional" /> <Key - latin:keyStyle="enterKeyStyle" + latin:keyStyle="emojiKeyStyle" latin:keyWidth="fillRight" /> </Row> </merge> diff --git a/java/res/xml/rowkeys_armenian_phonetic1.xml b/java/res/xml/rowkeys_armenian_phonetic1.xml new file mode 100644 index 000000000..1984fae8a --- /dev/null +++ b/java/res/xml/rowkeys_armenian_phonetic1.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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" +> + <!-- U+0567: "է" ARMENIAN SMALL LETTER EH --> + <Key + latin:keyLabel="է" + latin:keyHintLabel="1" + latin:additionalMoreKeys="1" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0569: "թ" ARMENIAN SMALL LETTER TO --> + <Key + latin:keyLabel="թ" + latin:keyHintLabel="2" + latin:additionalMoreKeys="2" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0583: "փ" ARMENIAN SMALL LETTER PIWR --> + <Key + latin:keyLabel="փ" + latin:keyHintLabel="3" + latin:additionalMoreKeys="3" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0571: "ձ" ARMENIAN SMALL LETTER JA --> + <Key + latin:keyLabel="ձ" + latin:keyHintLabel="4" + latin:additionalMoreKeys="4" + latin:keyLabelFlags="fontNormal" /> + <!-- U+057B: "ջ" ARMENIAN SMALL LETTER JHEH --> + <Key + latin:keyLabel="ջ" + latin:keyHintLabel="5" + latin:additionalMoreKeys="5" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0580: "ր" ARMENIAN SMALL LETTER REH --> + <Key + latin:keyLabel="ր" + latin:keyHintLabel="6" + latin:additionalMoreKeys="6" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0579: "չ" ARMENIAN SMALL LETTER CHA --> + <Key + latin:keyLabel="չ" + latin:keyHintLabel="7" + latin:additionalMoreKeys="7" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0573: "ճ" ARMENIAN SMALL LETTER CHEH --> + <Key + latin:keyLabel="ճ" + latin:keyHintLabel="8" + latin:additionalMoreKeys="8" + latin:keyLabelFlags="fontNormal" /> + <!-- U+056A: "ժ" ARMENIAN SMALL LETTER ZHE --> + <Key + latin:keyLabel="ժ" + latin:keyHintLabel="9" + latin:additionalMoreKeys="9" + latin:keyLabelFlags="fontNormal" /> + <!-- U+056E: "ծ" ARMENIAN SMALL LETTER CA --> + <Key + latin:keyLabel="ծ" + latin:keyHintLabel="0" + latin:additionalMoreKeys="0" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml/rowkeys_armenian_phonetic2.xml b/java/res/xml/rowkeys_armenian_phonetic2.xml new file mode 100644 index 000000000..5dcabc301 --- /dev/null +++ b/java/res/xml/rowkeys_armenian_phonetic2.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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" +> + <!-- U+0584: "ք" ARMENIAN SMALL LETTER KEH --> + <Key + latin:keyLabel="ք" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0578: "ո" ARMENIAN SMALL LETTER VO --> + <Key + latin:keyLabel="ո" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0565: "ե" ARMENIAN SMALL LETTER ECH + U+0587: "և" ARMENIAN SMALL LIGATURE ECH YIWN --> + <Key + latin:keyLabel="ե" + latin:moreKeys="և" + latin:keyLabelFlags="fontNormal" /> + <!-- U+057C: "ռ" ARMENIAN SMALL LETTER RA --> + <Key + latin:keyLabel="ռ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+057F: "տ" ARMENIAN SMALL LETTER TIWN --> + <Key + latin:keyLabel="տ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0568: "ը" ARMENIAN SMALL LETTER ET --> + <Key + latin:keyLabel="ը" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0582: "ւ" ARMENIAN SMALL LETTER YIWN --> + <Key + latin:keyLabel="ւ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+056B: "ի" ARMENIAN SMALL LETTER INI --> + <Key + latin:keyLabel="ի" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0585: "օ" ARMENIAN SMALL LETTER OH --> + <Key + latin:keyLabel="օ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+057A: "պ" ARMENIAN SMALL LETTER PEH --> + <Key + latin:keyLabel="պ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml-sw768dp/rowkeys_thai_digits.xml b/java/res/xml/rowkeys_armenian_phonetic3.xml index 55196ebc3..3116811b3 100644 --- a/java/res/xml-sw768dp/rowkeys_thai_digits.xml +++ b/java/res/xml/rowkeys_armenian_phonetic3.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2012, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -21,44 +21,40 @@ <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <!-- U+0E51: "๑" THAI DIGIT ONE --> + <!-- U+0561: "ա" ARMENIAN SMALL LETTER AYB --> <Key - latin:keyLabel="๑" + latin:keyLabel="ա" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E52: "๒" THAI DIGIT TWO --> + <!-- U+057D: "ս" ARMENIAN SMALL LETTER SEH --> <Key - latin:keyLabel="๒" + latin:keyLabel="ս" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E53: "๓" THAI DIGIT THREE --> + <!-- U+0564: "դ" ARMENIAN SMALL LETTER DA --> <Key - latin:keyLabel="๓" + latin:keyLabel="դ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E54: "๔" THAI DIGIT FOUR --> + <!-- U+0586: "ֆ" ARMENIAN SMALL LETTER FEH --> <Key - latin:keyLabel="๔" + latin:keyLabel="ֆ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E55: "๕" THAI DIGIT FIVE --> + <!-- U+0563: "գ" ARMENIAN SMALL LETTER GIM --> <Key - latin:keyLabel="๕" + latin:keyLabel="գ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E56: "๖" THAI DIGIT SIX --> + <!-- U+0570: "հ" ARMENIAN SMALL LETTER HO --> <Key - latin:keyLabel="๖" + latin:keyLabel="հ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E57: "๗" THAI DIGIT SEVEN --> + <!-- U+0575: "յ" ARMENIAN SMALL LETTER YI --> <Key - latin:keyLabel="๗" + latin:keyLabel="յ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E58: "๘" THAI DIGIT EIGHT --> + <!-- U+056F: "կ" ARMENIAN SMALL LETTER KEN --> <Key - latin:keyLabel="๘" + latin:keyLabel="կ" latin:keyLabelFlags="fontNormal" /> - <!-- U+0E59: "๙" THAI DIGIT NINE --> + <!-- U+056C: "լ" ARMENIAN SMALL LETTER LIWN --> <Key - latin:keyLabel="๙" - latin:keyLabelFlags="fontNormal" /> - <!-- U+0E50: "๐" THAI DIGIT ZERO --> - <Key - latin:keyLabel="๐" + latin:keyLabel="լ" latin:keyLabelFlags="fontNormal" /> </merge> diff --git a/java/res/xml/rowkeys_armenian_phonetic4.xml b/java/res/xml/rowkeys_armenian_phonetic4.xml new file mode 100644 index 000000000..922481add --- /dev/null +++ b/java/res/xml/rowkeys_armenian_phonetic4.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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" +> + <!-- U+0566: "զ" ARMENIAN SMALL LETTER ZA --> + <Key + latin:keyLabel="զ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0572: "ղ" ARMENIAN SMALL LETTER GHAD --> + <Key + latin:keyLabel="ղ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0581: "ց" ARMENIAN SMALL LETTER CO --> + <Key + latin:keyLabel="ց" + latin:keyLabelFlags="fontNormal" /> + <!-- U+057E: "վ" ARMENIAN SMALL LETTER VEW --> + <Key + latin:keyLabel="վ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0562: "բ" ARMENIAN SMALL LETTER BEN --> + <Key + latin:keyLabel="բ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0576: "ն" ARMENIAN SMALL LETTER NOW --> + <Key + latin:keyLabel="ն" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0574: "մ" ARMENIAN SMALL LETTER MEN --> + <Key + latin:keyLabel="մ" + latin:keyLabelFlags="fontNormal" /> +</merge> diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml index 745747643..c0b3cb913 100644 --- a/java/res/xml/rowkeys_hindi1.xml +++ b/java/res/xml/rowkeys_hindi1.xml @@ -62,10 +62,12 @@ latin:keyLabel="भ" latin:keyLabelFlags="fontNormal" /> <!-- Because the font rendering system prior to API version 16 can't automatically - render dotted circle for incomplete combining letter of Hindi, different set of - Key definitions are needed based on the API version. --> + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> <include - latin:keyboardLayout="@xml/key_hindi1_shift" /> + latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVisarga" /> <!-- U+0918: "घ" DEVANAGARI LETTER GHA --> <Key latin:keyLabel="घ" @@ -88,11 +90,57 @@ </case> <default> <!-- Because the font rendering system prior to API version 16 can't automatically - render dotted circle for incomplete combining letter of Hindi, different set of - Key definitions are needed based on the API version. --> + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+0967: "१" DEVANAGARI DIGIT ONE --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAu" + latin:keyHintLabel="1" + latin:additionalMoreKeys="१,1" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+0968: "२" DEVANAGARI DIGIT TWO --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAi" + latin:keyHintLabel="2" + latin:additionalMoreKeys="२,2" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+0969: "३" DEVANAGARI DIGIT THREE --> <include - latin:keyboardLayout="@xml/keys_hindi1_left5" /> + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAa" + latin:keyHintLabel="3" + latin:additionalMoreKeys="३,3" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+096A: "४" DEVANAGARI DIGIT FOUR --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignIi" + latin:keyHintLabel="4" + latin:additionalMoreKeys="४,4" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+096B: "५" DEVANAGARI DIGIT FIVE --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignUu" + latin:keyHintLabel="5" + latin:additionalMoreKeys="५,5" /> <!-- U+092C: "ब" DEVANAGARI LETTER BA + U+096C: "६" DEVANAGARI DIGIT SIX U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA --> <Key latin:keyLabel="ब" diff --git a/java/res/xml/rowkeys_hindi2.xml b/java/res/xml/rowkeys_hindi2.xml index 9545b840f..70ac66ee4 100644 --- a/java/res/xml/rowkeys_hindi2.xml +++ b/java/res/xml/rowkeys_hindi2.xml @@ -97,10 +97,40 @@ </case> <default> <!-- Because the font rendering system prior to API version 16 can't automatically - render dotted circle for incomplete combining letter of Hindi, different set of - Key definitions are needed based on the API version. --> + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> <include - latin:keyboardLayout="@xml/keys_hindi2_left5" /> + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignO" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignE" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVirama" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignI" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignU" /> <!-- U+092A: "प" DEVANAGARI LETTER PA --> <Key latin:keyLabel="प" diff --git a/java/res/xml/rowkeys_hindi3.xml b/java/res/xml/rowkeys_hindi3.xml index 3014907ed..136bc5f22 100644 --- a/java/res/xml/rowkeys_hindi3.xml +++ b/java/res/xml/rowkeys_hindi3.xml @@ -30,10 +30,10 @@ latin:keyLabel="ऑ" latin:keyLabelFlags="fontNormal" /> <!-- Because the font rendering system prior to API version 16 can't automatically - render dotted circle for incomplete combining letter of Hindi, different set of - Key definitions are needed based on the API version. --> + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> <include - latin:keyboardLayout="@xml/key_hindi3_shift_left" /> + latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" /> <!-- U+0923: "ण" DEVANAGARI LETTER NNA --> <Key latin:keyLabel="ण" @@ -56,10 +56,10 @@ latin:keyLabel="ष" latin:keyLabelFlags="fontNormal" /> <!-- Because the font rendering system prior to API version 16 can't automatically - render dotted circle for incomplete combining letter of Hindi, different set of - Key definitions are needed based on the API version. --> + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> <include - latin:keyboardLayout="@xml/key_hindi3_shift_right" /> + latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" /> <!-- U+091E: "ञ" DEVANAGARI LETTER NYA --> <Key latin:keyLabel="ञ" @@ -67,10 +67,12 @@ </case> <default> <!-- Because the font rendering system prior to API version 16 can't automatically - render dotted circle for incomplete combining letter of Hindi, different set of - Key definitions are needed based on the API version. --> + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> <include - latin:keyboardLayout="@xml/keys_hindi3_left2" /> + latin:keyboardLayout="@xml/key_devanagari_vowel_sign_candra_o" /> + <include + latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" /> <!-- U+092E: "म" DEVANAGARI LETTER MA U+0950: "ॐ" DEVANAGARI OM --> <Key @@ -107,10 +109,10 @@ latin:moreKeys="य़" latin:keyLabelFlags="fontNormal" /> <!-- Because the font rendering system prior to API version 16 can't automatically - render dotted circle for incomplete combining letter of Hindi, different set of - Key definitions are needed based on the API version. --> + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> <include - latin:keyboardLayout="@xml/key_hindi3_right" /> + latin:keyboardLayout="@xml/key_devanagari_sign_nukta" /> </default> </switch> </merge> diff --git a/java/res/xml/rowkeys_nepali_romanized1.xml b/java/res/xml/rowkeys_nepali_romanized1.xml new file mode 100644 index 000000000..408a96648 --- /dev/null +++ b/java/res/xml/rowkeys_nepali_romanized1.xml @@ -0,0 +1,177 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- U+0920: "ठ" DEVANAGARI LETTER TTHA --> + <Key + latin:keyLabel="ठ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0914: "औ" DEVANAGARI LETTER AU --> + <Key + latin:keyLabel="औ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAi" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" /> + <!-- U+0925: "थ" DEVANAGARI LETTER THA --> + <Key + latin:keyLabel="थ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+091E: "ञ" DEVANAGARI LETTER NYA --> + <Key + latin:keyLabel="ञ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignUu" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignIi" /> + <!-- U+0913: "ओ" DEVANAGARI LETTER O --> + <Key + latin:keyLabel="ओ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092B: "फ" DEVANAGARI LETTER PHA --> + <Key + latin:keyLabel="फ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0908: "ई" DEVANAGARI LETTER II --> + <Key + latin:keyLabel="ई" + latin:keyLabelFlags="fontNormal" /> + </case> + <default> + <!-- U+091F: "ट" DEVANAGARI LETTER TTA + U+0967: "१" DEVANAGARI DIGIT ONE + U+093C: "़" DEVANAGARI SIGN NUKTA --> + <Key + latin:keyLabel="ट" + latin:keyHintLabel="1" + latin:additionalMoreKeys="१,1" + latin:moreKeys="़" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+0968: "२" DEVANAGARI DIGIT TWO --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAu" + latin:keyHintLabel="2" + latin:additionalMoreKeys="२,2" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+0969: "३" DEVANAGARI DIGIT THREE --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignE" + latin:keyHintLabel="3" + latin:additionalMoreKeys="३,3" /> + <!-- U+0930: "र" DEVANAGARI LETTER RA + U+096A: "४" DEVANAGARI DIGIT FOUR --> + <Key + latin:keyLabel="र" + latin:keyHintLabel="4" + latin:additionalMoreKeys="४,4" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0924: "त" DEVANAGARI LETTER TA + U+096B: "५" DEVANAGARI DIGIT FIVE --> + <Key + latin:keyLabel="त" + latin:keyHintLabel="5" + latin:additionalMoreKeys="५,5" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092F: "य" DEVANAGARI LETTER YA + U+096C: "६" DEVANAGARI DIGIT SIX --> + <Key + latin:keyLabel="य" + latin:keyHintLabel="6" + latin:additionalMoreKeys="६,6" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+096D: "७" DEVANAGARI DIGIT SEVEN --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignU" + latin:keyHintLabel="7" + latin:additionalMoreKeys="७,7" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+096E: "८" DEVANAGARI DIGIT EIGHT --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignI" + latin:keyHintLabel="8" + latin:additionalMoreKeys="८,8" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+096F: "९" DEVANAGARI DIGIT NINE --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignO" + latin:keyHintLabel="9" + latin:additionalMoreKeys="९,9" /> + <!-- U+092A: "प" DEVANAGARI LETTER PA + U+0966: "०" DEVANAGARI DIGIT ZERO --> + <Key + latin:keyLabel="प" + latin:keyHintLabel="0" + latin:additionalMoreKeys="०,0" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0907: "इ" DEVANAGARI LETTER I --> + <Key + latin:keyLabel="इ" + latin:keyLabelFlags="fontNormal" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/rowkeys_nepali_romanized2.xml b/java/res/xml/rowkeys_nepali_romanized2.xml new file mode 100644 index 000000000..66359ffb5 --- /dev/null +++ b/java/res/xml/rowkeys_nepali_romanized2.xml @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- U+0906: "आ" DEVANAGARI LETTER AA --> + <Key + latin:keyLabel="आ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0936: "श" DEVANAGARI LETTER SHA --> + <Key + latin:keyLabel="श" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0927: "ध" DEVANAGARI LETTER DHA --> + <Key + latin:keyLabel="ध" + latin:keyLabelFlags="fontNormal" /> + <!-- U+090A: "ऊ" DEVANAGARI LETTER UU --> + <Key + latin:keyLabel="ऊ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0918: "घ" DEVANAGARI LETTER GHA --> + <Key + latin:keyLabel="घ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0905: "अ" DEVANAGARI LETTER A --> + <Key + latin:keyLabel="अ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+091D: "झ" DEVANAGARI LETTER JHA --> + <Key + latin:keyLabel="झ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0916: "ख" DEVANAGARI LETTER KHA --> + <Key + latin:keyLabel="ख" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0965: "॥" DEVANAGARI DOUBLE DANDA --> + <Key + latin:keyLabel="॥" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0910: "ऐ" DEVANAGARI LETTER AI --> + <Key + latin:keyLabel="ऐ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVisarga" /> + </case> + <default> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAa" /> + <!-- U+0938: "स" DEVANAGARI LETTER SA --> + <Key + latin:keyLabel="स" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0926: "द" DEVANAGARI LETTER DA --> + <Key + latin:keyLabel="द" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0909: "उ" DEVANAGARI LETTER U --> + <Key + latin:keyLabel="उ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0917: "ग" DEVANAGARI LETTER GA --> + <Key + latin:keyLabel="ग" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0939: "ह" DEVANAGARI LETTER HA --> + <Key + latin:keyLabel="ह" + latin:keyLabelFlags="fontNormal" /> + <!-- U+091C: "ज" DEVANAGARI LETTER JA --> + <Key + latin:keyLabel="ज" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0915: "क" DEVANAGARI LETTER KA --> + <Key + latin:keyLabel="क" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0932: "ल" DEVANAGARI LETTER LA --> + <Key + latin:keyLabel="ल" + latin:keyLabelFlags="fontNormal" /> + <!-- U+090F: "ए" DEVANAGARI LETTER E --> + <Key + latin:keyLabel="ए" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0950: "ॐ" DEVANAGARI OM --> + <Key + latin:keyLabel="ॐ" + latin:keyLabelFlags="fontNormal" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/rowkeys_nepali_romanized3.xml b/java/res/xml/rowkeys_nepali_romanized3.xml new file mode 100644 index 000000000..5660596f0 --- /dev/null +++ b/java/res/xml/rowkeys_nepali_romanized3.xml @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R --> + <Key + latin:keyLabel="ऋ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0922: "ढ" DEVANAGARI LETTER DDHA --> + <Key + latin:keyLabel="ढ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+091B: "छ" DEVANAGARI LETTER CHA --> + <Key + latin:keyLabel="छ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" /> + <!-- U+092D: "भ" DEVANAGARI LETTER BHA --> + <Key + latin:keyLabel="भ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0923: "ण" DEVANAGARI LETTER NNA --> + <Key + latin:keyLabel="श" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" /> + <!-- U+0919: "ङ" DEVANAGARI LETTER NGA --> + <Key + latin:keyLabel="ङ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVirama" /> + </case> + <default> + <!-- U+0937: "ष" DEVANAGARI LETTER SSA --> + <Key + latin:keyLabel="ष" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0921: "ड" DEVANAGARI LETTER DDA --> + <Key + latin:keyLabel="ड" + latin:keyLabelFlags="fontNormal" /> + <!-- U+091A: "च" DEVANAGARI LETTER CA --> + <Key + latin:keyLabel="च" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0935: "व" DEVANAGARI LETTER VA --> + <Key + latin:keyLabel="व" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092C: "ब" DEVANAGARI LETTER BHA --> + <Key + latin:keyLabel="ब" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0928: "न" DEVANAGARI LETTER NA --> + <Key + latin:keyLabel="न" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092E: "म" DEVANAGARI LETTER MA --> + <Key + latin:keyLabel="म" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0964: "।" DEVANAGARI DANDA + U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <Key + latin:keyLabel="।" + latin:moreKeys="ऽ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVirama" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/rowkeys_nepali_traditional1.xml b/java/res/xml/rowkeys_nepali_traditional1.xml new file mode 100644 index 000000000..c7883c733 --- /dev/null +++ b/java/res/xml/rowkeys_nepali_traditional1.xml @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- U+0924/U+094D/U+0924: "त्त" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TA + U+091E: "ञ" DEVANAGARI LETTER NYA + U+091C/U+094D/U+091E: "ज्ञ" DEVANAGARI LETTER JA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER NYA + U+0965: "॥" DEVANAGARI DOUBLE DANDA --> + <Key + latin:keyLabel="त्त" + latin:moreKeys="ञ,ज्ञ,॥" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+0921/U+094D/U+0922: "ड्ढ" DEVANAGARI LETTER DDA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DDHA + U+0908: "ई" DEVANAGARI LETTER II --> + <Key + latin:keyLabel="ड्ढ" + latin:moreKeys="ई" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+0910: "ऐ" DEVANAGARI LETTER AI + U+0918: "घ" DEVANAGARI LETTER GHA --> + <Key + latin:keyLabel="ऐ" + latin:moreKeys="घ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0926/U+094D/U+0935: "द्व" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER VA + U+0926/U+094D/U+0927: "द्ध" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DHA --> + <Key + latin:keyLabel="द्व" + latin:moreKeys="द्ध" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+091F/U+094D/U+091F: "ट्ट" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTA + U+091B: "छ" DEVANAGARI LETTER CHA --> + <Key + latin:keyLabel="ट्ट" + latin:moreKeys="छ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+0920/U+094D/U+0920: "ठ्ठ" DEVANAGARI LETTER TTHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA + U+091F: "ट" DEVANAGARI LETTER TTA --> + <Key + latin:keyLabel="ठ्ठ" + latin:moreKeys="ट" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+090A: "ऊ" DEVANAGARI LETTER UU + U+0920: "ठ" DEVANAGARI LETTER TTHA --> + <Key + latin:keyLabel="ऊ" + latin:moreKeys="ठ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0915/U+094D/U+0937: "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA + U+0921: "ड" DEVANAGARI LETTER DDA --> + <Key + latin:keyLabel="क्ष" + latin:moreKeys="ड" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+0907: "इ" DEVANAGARI LETTER I + U+0922: "ढ" DEVANAGARI LETTER DDHA --> + <Key + latin:keyLabel="इ" + latin:moreKeys="ढ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+090F: "ए" DEVANAGARI LETTER E + U+0923: "ण" DEVANAGARI LETTER NNA --> + <Key + latin:keyLabel="ए" + latin:moreKeys="ण" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" /> + </case> + <default> + <!-- U+091F: "ट" DEVANAGARI LETTER TTA + U+0967: "१" DEVANAGARI DIGIT ONE --> + <Key + latin:keyLabel="ट" + latin:keyHintLabel="1" + latin:additionalMoreKeys="१,1" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0927: "ध" DEVANAGARI LETTER DHA + U+0968: "२" DEVANAGARI DIGIT TWO --> + <Key + latin:keyLabel="ध" + latin:keyHintLabel="2" + latin:additionalMoreKeys="२,2" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092D: "भ" DEVANAGARI LETTER BHA + U+0969: "३" DEVANAGARI DIGIT THREE --> + <Key + latin:keyLabel="भ" + latin:keyHintLabel="3" + latin:additionalMoreKeys="३,3" + latin:keyLabelFlags="fontNormal" /> + <!-- U+091A: "च" DEVANAGARI LETTER CA + U+096A: "४" DEVANAGARI DIGIT FOUR --> + <Key + latin:keyLabel="च" + latin:keyHintLabel="4" + latin:additionalMoreKeys="४,4" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0924: "त" DEVANAGARI LETTER TA + U+096B: "५" DEVANAGARI DIGIT FIVE --> + <Key + latin:keyLabel="त" + latin:keyHintLabel="5" + latin:additionalMoreKeys="५,5" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0925: "थ" DEVANAGARI LETTER THA + U+096C: "६" DEVANAGARI DIGIT SIX --> + <Key + latin:keyLabel="थ" + latin:keyHintLabel="6" + latin:additionalMoreKeys="६,6" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0917: "ग" DEVANAGARI LETTER G + U+096D: "७" DEVANAGARI DIGIT SEVEN --> + <Key + latin:keyLabel="ग" + latin:keyHintLabel="7" + latin:additionalMoreKeys="७,7" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0937: "ष" DEVANAGARI LETTER SSA + U+096E: "८" DEVANAGARI DIGIT EIGHT --> + <Key + latin:keyLabel="ष" + latin:keyHintLabel="8" + latin:additionalMoreKeys="८,8" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092F: "य" DEVANAGARI LETTER YA + U+096F: "९" DEVANAGARI DIGIT NINE --> + <Key + latin:keyLabel="य" + latin:keyHintLabel="9" + latin:additionalMoreKeys="९,9" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0909: "उ" DEVANAGARI LETTER U + U+0966: "०" DEVANAGARI DIGIT ZERO --> + <Key + latin:keyLabel="उ" + latin:keyHintLabel="0" + latin:additionalMoreKeys="०,0" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0907: "इ" DEVANAGARI LETTER I + U+0914: "औ" DEVANAGARI LETTER AU --> + <Key + latin:keyLabel="इ" + latin:moreKeys="औ" + latin:keyLabelFlags="fontNormal" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/rowkeys_nepali_traditional2.xml b/java/res/xml/rowkeys_nepali_traditional2.xml new file mode 100644 index 000000000..2c53b3b8b --- /dev/null +++ b/java/res/xml/rowkeys_nepali_traditional2.xml @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- U+0906: "आ" DEVANAGARI LETTER AA --> + <Key + latin:keyLabel="आ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0919/U+094D/U+0915: "ङ्क" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER KA --> + <Key + latin:keyLabel="ङ्क" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+0919/U+094D/U+0917: "ङ्ग" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER GA --> + <Key + latin:keyLabel="ङ्ग" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" /> + <!-- U+0926/U+094D/U+0926: "द्द" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DA --> + <Key + latin:keyLabel="द्द" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+091D: "झ" DEVANAGARI LETTER JHA --> + <Key + latin:keyLabel="झ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignO" /> + <!-- U+092B: "फ" DEVANAGARI LETTER PHA --> + <Key + latin:keyLabel="फ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignIi" /> + <!-- U+091F/U+094D/U+0920: "ट्ठ" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA --> + <Key + latin:keyLabel="ट्ठ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignUu" /> + </case> + <default> + <!-- U+092C: "ब" DEVANAGARI LETTER BA --> + <Key + latin:keyLabel="ब" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0915: "क" DEVANAGARI LETTER KA --> + <Key + latin:keyLabel="क" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092E: "म" DEVANAGARI LETTER MA --> + <Key + latin:keyLabel="म" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAa" /> + <!-- U+0928: "न" DEVANAGARI LETTER NA --> + <Key + latin:keyLabel="न" + latin:keyLabelFlags="fontNormal" /> + <!-- U+091C: "ज" DEVANAGARI LETTER JA --> + <Key + latin:keyLabel="ज" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0935: "व" DEVANAGARI LETTER VA --> + <Key + latin:keyLabel="व" + latin:keyLabelFlags="fontNormal" /> + <!-- U+092A: "प" DEVANAGARI LETTER PA --> + <Key + latin:keyLabel="प" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignI" /> + <!-- U+0938: "स" DEVANAGARI LETTER SA --> + <Key + latin:keyLabel="स" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignU" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/rowkeys_nepali_traditional3_left6.xml b/java/res/xml/rowkeys_nepali_traditional3_left6.xml new file mode 100644 index 000000000..d4388e0a2 --- /dev/null +++ b/java/res/xml/rowkeys_nepali_traditional3_left6.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- U+0915/U+094D/U+0915: "क्क" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER KA --> + <Key + latin:keyLabel="क्क" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+0939/U+094D/U+092E: "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA --> + <Key + latin:keyLabel="ह्म" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R --> + <Key + latin:keyLabel="ऋ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0950: "ॐ" DEVANAGARI OM --> + <Key + latin:keyLabel="ॐ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAu" /> + <!-- U+0926/U+094D/U+092F: "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA --> + <Key + latin:keyLabel="द्य" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + </case> + <default> + <!-- U+0936: "श" DEVANAGARI LETTER SHA --> + <Key + latin:keyLabel="श" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0939: "ह" DEVANAGARI LETTER HA --> + <Key + latin:keyLabel="ह" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0905: "अ" DEVANAGARI LETTER A --> + <Key + latin:keyLabel="अ" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0916: "ख" DEVANAGARI LETTER KHA --> + <Key + latin:keyLabel="ख" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0926: "द" DEVANAGARI LETTER DA --> + <Key + latin:keyLabel="द" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0932: "ल" DEVANAGARI LETTER LA --> + <Key + latin:keyLabel="ल" + latin:keyLabelFlags="fontNormal" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/rowkeys_nepali_traditional3_right3.xml b/java/res/xml/rowkeys_nepali_traditional3_right3.xml new file mode 100644 index 000000000..b2e01e481 --- /dev/null +++ b/java/res/xml/rowkeys_nepali_traditional3_right3.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" /> + <!-- U+0919: "ङ" DEVANAGARI LETTER NGA --> + <Key + latin:keyLabel="ङ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAi" /> + </case> + <default> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignE" /> + <!-- U+0964: "।" DEVANAGARI DANDA --> + <Key + latin:keyLabel="।" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0930: "र" DEVANAGARI LETTER RA + U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U --> + <Key + latin:keyLabel="र" + latin:moreKeys="रु" + latin:keyLabelFlags="fontNormal" /> + </default> + </switch> +</merge> diff --git a/java/res/xml/rowkeys_nepali_traditional3_right5.xml b/java/res/xml/rowkeys_nepali_traditional3_right5.xml new file mode 100644 index 000000000..87f061610 --- /dev/null +++ b/java/res/xml/rowkeys_nepali_traditional3_right5.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" + > + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" /> + <!-- U+0919: "ङ" DEVANAGARI LETTER NGA --> + <Key + latin:keyLabel="ङ" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignAi" /> + <!-- U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U --> + <Key + latin:keyLabel="रु" + latin:moreKeys="!" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <Key + latin:keyLabel="\?" /> + </case> + <default> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <!-- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVisarga" + latin:moreKeys="ऽ" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" /> + <!-- Override more keys with empty definition --> + <key-style + latin:styleName="moreKeysDevanagariVowelSignE" /> + <Key + latin:keyStyle="baseKeyDevanagariVowelSignE" /> + <!-- U+0964: "।" DEVANAGARI DANDA --> + <Key + latin:keyLabel="।" + latin:keyLabelFlags="fontNormal" /> + <!-- U+0930: "र" DEVANAGARI LETTER RA --> + <Key + latin:keyLabel="र" + latin:moreKeys="!" + latin:keyLabelFlags="fontNormal" /> + <!-- Because the font rendering system prior to API version 16 can't automatically + render dotted circle for incomplete combining letter of some scripts, different + set of Key definitions are needed based on the API version. --> + <include + latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" /> + <Key + latin:keyStyle="baseKeyDevanagariSignVirama" + latin:moreKeys="\?" /> + </default> + </switch> +</merge> diff --git a/java/res/xml-sw768dp/rows_hindi.xml b/java/res/xml/rows_armenian_phonetic.xml index 6baf09e10..282dd411b 100644 --- a/java/res/xml-sw768dp/rows_hindi.xml +++ b/java/res/xml/rows_armenian_phonetic.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2012, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -24,43 +24,37 @@ <include latin:keyboardLayout="@xml/key_styles_common" /> <Row - latin:keyWidth="7.375%p" + latin:keyWidth="10.0%p" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> <include - latin:keyboardLayout="@xml/rowkeys_hindi1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic1" /> </Row> <Row - latin:keyWidth="7.227%p" + latin:keyWidth="10.0%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="11.172%p" /> <include - latin:keyboardLayout="@xml/rowkeys_hindi2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic2" /> </Row> <Row - latin:keyWidth="7.000%p" + latin:keyWidth="10.0%p" + > + <include + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic3" /> + <include + latin:keyboardLayout="@xml/key_armenian_xeh" /> + </Row> + <Row + latin:keyWidth="9.8000%p" > <Key latin:keyStyle="shiftKeyStyle" - latin:keyWidth="13.829%p" /> + latin:keyWidth="10.8%p" /> <include - latin:keyboardLayout="@xml/rowkeys_hindi3" /> + latin:keyboardLayout="@xml/rowkeys_armenian_phonetic4" /> <include - latin:keyboardLayout="@xml/keys_comma_period" /> + latin:keyboardLayout="@xml/key_armenian_sha" /> <Key - latin:keyStyle="shiftKeyStyle" + latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" /> </Row> <include diff --git a/java/res/xml-sw768dp/rows_hebrew.xml b/java/res/xml/rows_nepali_romanized.xml index a5f6dfe09..6df09c830 100644 --- a/java/res/xml-sw768dp/rows_hebrew.xml +++ b/java/res/xml/rows_nepali_romanized.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2013, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -24,38 +24,29 @@ <include latin:keyboardLayout="@xml/key_styles_common" /> <Row - latin:keyWidth="8.282%p" + latin:keyWidth="9.091%p" > - <Key - latin:keyStyle="tabKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="7.969%p" /> <include - latin:keyboardLayout="@xml/rowkeys_hebrew1" /> - <Key - latin:keyStyle="deleteKeyStyle" - latin:keyWidth="fillRight" /> + latin:keyboardLayout="@xml/rowkeys_nepali_romanized1" /> </Row> <Row - latin:keyWidth="8.125%p" + latin:keyWidth="9.091%p" > - <Key - latin:keyStyle="toSymbolKeyStyle" - latin:keyLabelFlags="alignLeft" - latin:keyWidth="10.167%p" /> <include - latin:keyboardLayout="@xml/rowkeys_hebrew2" /> - <Key - latin:keyStyle="enterKeyStyle" - latin:keyWidth="fillRight" /> - </Row> + latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" /> + </Row> <Row - latin:keyWidth="8.047%p" + latin:keyWidth="8.711%p" > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.8%p" /> <include - latin:keyboardLayout="@xml/rowkeys_hebrew3" - latin:keyXPos="13.829%p" /> + latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="fillRight" /> </Row> <include - latin:keyboardLayout="@xml/row_hebrew4" /> + latin:keyboardLayout="@xml/row_qwerty4" /> </merge> diff --git a/java/res/xml/rows_nepali_traditional.xml b/java/res/xml/rows_nepali_traditional.xml new file mode 100644 index 000000000..fecdc7d5b --- /dev/null +++ b/java/res/xml/rows_nepali_traditional.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2013, The Android Open 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/key_styles_common" /> + <Row + latin:keyWidth="9.091%p" + > + <include + latin:keyboardLayout="@xml/rowkeys_nepali_traditional1" /> + </Row> + <Row + latin:keyWidth="9.091%p" + > + <include + latin:keyboardLayout="@xml/rowkeys_nepali_traditional2" /> + </Row> + <Row + latin:keyWidth="8.711%p" + > + <Key + latin:keyStyle="shiftKeyStyle" + latin:keyWidth="10.8%p" /> + <include + latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_left6" /> + <include + latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_right3" /> + <Key + latin:keyStyle="deleteKeyStyle" + latin:keyWidth="fillRight" /> + </Row> + <include + latin:keyboardLayout="@xml/row_qwerty4" /> +</merge> diff --git a/java/src/com/android/inputmethod/keyboard/EmojiKeyboardView.java b/java/src/com/android/inputmethod/keyboard/EmojiKeyboardView.java new file mode 100644 index 000000000..25ff8d0ce --- /dev/null +++ b/java/src/com/android/inputmethod/keyboard/EmojiKeyboardView.java @@ -0,0 +1,370 @@ +/* + * Copyright (C) 2013 The Android Open 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; + +import static com.android.inputmethod.latin.Constants.NOT_A_COORDINATE; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.support.v4.view.PagerAdapter; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.util.SparseArray; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TabHost; +import android.widget.TabHost.OnTabChangeListener; +import android.widget.TextView; + +import com.android.inputmethod.keyboard.internal.RecentsKeyboard; +import com.android.inputmethod.keyboard.internal.ScrollKeyboardView; +import com.android.inputmethod.keyboard.internal.ScrollViewWithNotifier; +import com.android.inputmethod.latin.Constants; +import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.SubtypeSwitcher; +import com.android.inputmethod.latin.utils.CollectionUtils; +import com.android.inputmethod.latin.utils.ResourceUtils; + +import java.util.HashMap; + +/** + * View class to implement Emoji keyboards. + * The Emoji keyboard consists of group of views {@link R.layout#emoji_keyboard_view}. + * <ol> + * <li> Emoji category tabs. + * <li> Delete button. + * <li> Emoji keyboard pages that can be scrolled by swiping horizontally or by selecting a tab. + * <li> Back to main keyboard button and enter button. + * </ol> + * Because of the above reasons, this class doesn't extend {@link KeyboardView}. + */ +public final class EmojiKeyboardView extends LinearLayout implements OnTabChangeListener, + ViewPager.OnPageChangeListener, View.OnClickListener, + ScrollKeyboardView.OnKeyClickListener { + private final int mKeyBackgroundId; + private final ColorStateList mTabLabelColor; + private final EmojiKeyboardAdapter mEmojiKeyboardAdapter; + + private TabHost mTabHost; + private ViewPager mEmojiPager; + + private KeyboardActionListener mKeyboardActionListener = KeyboardActionListener.EMPTY_LISTENER; + + private int mCurrentCategory = CATEGORY_UNSPECIFIED; + private static final int CATEGORY_UNSPECIFIED = -1; + private static final int CATEGORY_RECENTS = 0; + private static final int CATEGORY_PEOPLE = 1; + private static final int CATEGORY_OBJECTS = 2; + private static final int CATEGORY_NATURE = 3; + private static final int CATEGORY_PLACES = 4; + private static final int CATEGORY_SYMBOLS = 5; + private static final int CATEGORY_EMOTICONS = 6; + private static final HashMap<String, Integer> sCategoryNameToIdMap = + CollectionUtils.newHashMap(); + private static final String[] sCategoryName = { + "recents", "people", "objects", "nature", "places", "symbols", "emoticons" + }; + private static final int[] sCategoryIcon = new int[] { + R.drawable.ic_emoji_recent_light, + R.drawable.ic_emoji_people_light, + R.drawable.ic_emoji_objects_light, + R.drawable.ic_emoji_nature_light, + R.drawable.ic_emoji_places_light, + R.drawable.ic_emoji_symbols_light, + 0 + }; + private static final String[] sCategoryLabel = { + null, null, null, null, null, null, + ":-)" + }; + private static final int[] sCategoryElementId = { + KeyboardId.ELEMENT_EMOJI_RECENTS, + KeyboardId.ELEMENT_EMOJI_CATEGORY1, + KeyboardId.ELEMENT_EMOJI_CATEGORY2, + KeyboardId.ELEMENT_EMOJI_CATEGORY3, + KeyboardId.ELEMENT_EMOJI_CATEGORY4, + KeyboardId.ELEMENT_EMOJI_CATEGORY5, + KeyboardId.ELEMENT_EMOJI_CATEGORY6, + }; + + public EmojiKeyboardView(final Context context, final AttributeSet attrs) { + this(context, attrs, R.attr.emojiKeyboardViewStyle); + } + + public EmojiKeyboardView(final Context context, final AttributeSet attrs, final int defStyle) { + super(context, attrs, defStyle); + final TypedArray keyboardViewAttr = context.obtainStyledAttributes(attrs, + R.styleable.KeyboardView, defStyle, R.style.KeyboardView); + mKeyBackgroundId = keyboardViewAttr.getResourceId( + R.styleable.KeyboardView_keyBackground, 0); + keyboardViewAttr.recycle(); + final TypedArray emojiKeyboardViewAttr = context.obtainStyledAttributes(attrs, + R.styleable.EmojiKeyboardView, defStyle, R.style.EmojiKeyboardView); + mTabLabelColor = emojiKeyboardViewAttr.getColorStateList( + R.styleable.EmojiKeyboardView_emojiTabLabelColor); + emojiKeyboardViewAttr.recycle(); + final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder( + context, null /* editorInfo */); + final Resources res = context.getResources(); + builder.setSubtype(SubtypeSwitcher.getInstance().getEmojiSubtype()); + // TODO: Make Keyboard height variable. + builder.setKeyboardGeometry(ResourceUtils.getDefaultKeyboardWidth(res), + (int)(ResourceUtils.getDefaultKeyboardHeight(res) + - res.getDimension(R.dimen.suggestions_strip_height))); + builder.setOptions(false, false, false /* lanuageSwitchKeyEnabled */); + final KeyboardLayoutSet layoutSet = builder.build(); + mEmojiKeyboardAdapter = new EmojiKeyboardAdapter(layoutSet, this); + // TODO: Save/restore recent keys from/to preferences. + } + + @Override + protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + final Resources res = getContext().getResources(); + // The main keyboard expands to the entire this {@link KeyboardView}. + final int width = ResourceUtils.getDefaultKeyboardWidth(res) + + getPaddingLeft() + getPaddingRight(); + final int height = ResourceUtils.getDefaultKeyboardHeight(res) + + res.getDimensionPixelSize(R.dimen.suggestions_strip_height) + + getPaddingTop() + getPaddingBottom(); + setMeasuredDimension(width, height); + } + + private void addTab(final TabHost host, final int category) { + final String tabId = sCategoryName[category]; + sCategoryNameToIdMap.put(tabId, category); + final TabHost.TabSpec tspec = host.newTabSpec(tabId); + tspec.setContent(R.id.emoji_keyboard_dummy); + if (sCategoryIcon[category] != 0) { + final ImageView iconView = (ImageView)LayoutInflater.from(getContext()).inflate( + R.layout.emoji_keyboard_tab_icon, null); + iconView.setImageResource(sCategoryIcon[category]); + tspec.setIndicator(iconView); + } + if (sCategoryLabel[category] != null) { + final TextView textView = (TextView)LayoutInflater.from(getContext()).inflate( + R.layout.emoji_keyboard_tab_label, null); + textView.setText(sCategoryLabel[category]); + textView.setTextColor(mTabLabelColor); + textView.setBackgroundResource(mKeyBackgroundId); + tspec.setIndicator(textView); + } + host.addTab(tspec); + } + + @Override + protected void onFinishInflate() { + mTabHost = (TabHost)findViewById(R.id.emoji_category_tabhost); + mTabHost.setup(); + addTab(mTabHost, CATEGORY_RECENTS); + addTab(mTabHost, CATEGORY_PEOPLE); + addTab(mTabHost, CATEGORY_OBJECTS); + addTab(mTabHost, CATEGORY_NATURE); + addTab(mTabHost, CATEGORY_PLACES); + addTab(mTabHost, CATEGORY_SYMBOLS); + addTab(mTabHost, CATEGORY_EMOTICONS); + mTabHost.setOnTabChangedListener(this); + mTabHost.getTabWidget().setStripEnabled(true); + + mEmojiPager = (ViewPager)findViewById(R.id.emoji_keyboard_pager); + mEmojiPager.setAdapter(mEmojiKeyboardAdapter); + mEmojiPager.setOnPageChangeListener(this); + mEmojiPager.setOffscreenPageLimit(0); + final ViewGroup.LayoutParams lp = mEmojiPager.getLayoutParams(); + final Resources res = getResources(); + lp.height = ResourceUtils.getDefaultKeyboardHeight(res) + - res.getDimensionPixelSize(R.dimen.suggestions_strip_height); + mEmojiPager.setLayoutParams(lp); + + // TODO: Record current category. + final int category = CATEGORY_PEOPLE; + setCurrentCategory(category, true /* force */); + + // TODO: Implement auto repeat, using View.OnTouchListener? + final View deleteKey = findViewById(R.id.emoji_keyboard_delete); + deleteKey.setBackgroundResource(mKeyBackgroundId); + deleteKey.setTag(Constants.CODE_DELETE); + deleteKey.setOnClickListener(this); + final View alphabetKey = findViewById(R.id.emoji_keyboard_alphabet); + alphabetKey.setBackgroundResource(mKeyBackgroundId); + alphabetKey.setTag(Constants.CODE_SWITCH_ALPHA_SYMBOL); + alphabetKey.setOnClickListener(this); + final View sendKey = findViewById(R.id.emoji_keyboard_send); + sendKey.setBackgroundResource(mKeyBackgroundId); + sendKey.setTag(Constants.CODE_ENTER); + sendKey.setOnClickListener(this); + } + + @Override + public void onTabChanged(final String tabId) { + final int category = sCategoryNameToIdMap.get(tabId); + setCurrentCategory(category, false /* force */); + } + + + @Override + public void onPageSelected(final int position) { + setCurrentCategory(position, false /* force */); + } + + @Override + public void onPageScrollStateChanged(final int state) { + // Ignore this message. Only want the actual page selected. + } + + @Override + public void onPageScrolled(final int position, final float positionOffset, + final int positionOffsetPixels) { + // Ignore this message. Only want the actual page selected. + } + + @Override + public void onClick(final View v) { + if (v.getTag() instanceof Integer) { + final int code = (Integer)v.getTag(); + registerCode(code); + return; + } + } + + private void registerCode(final int code) { + mKeyboardActionListener.onPressKey(code, 0 /* repeatCount */, true /* isSinglePointer */); + mKeyboardActionListener.onCodeInput(code, NOT_A_COORDINATE, NOT_A_COORDINATE); + mKeyboardActionListener.onReleaseKey(code, false /* withSliding */); + } + + @Override + public void onKeyClick(final Key key) { + mEmojiKeyboardAdapter.addRecentKey(key); + final int code = key.getCode(); + if (code == Constants.CODE_OUTPUT_TEXT) { + mKeyboardActionListener.onTextInput(key.getOutputText()); + return; + } + registerCode(code); + } + + public void setHardwareAcceleratedDrawingEnabled(final boolean enabled) { + // TODO: + } + + public void setKeyboardActionListener(final KeyboardActionListener listener) { + mKeyboardActionListener = listener; + } + + private void setCurrentCategory(final int category, final boolean force) { + if (mCurrentCategory == category && !force) { + return; + } + + mCurrentCategory = category; + if (force || mEmojiPager.getCurrentItem() != category) { + mEmojiPager.setCurrentItem(category, true /* smoothScroll */); + } + if (force || mTabHost.getCurrentTab() != category) { + mTabHost.setCurrentTab(category); + } + // TODO: Record current category + } + + private static class EmojiKeyboardAdapter extends PagerAdapter { + private final ScrollKeyboardView.OnKeyClickListener mListener; + private final KeyboardLayoutSet mLayoutSet; + private final RecentsKeyboard mRecentsKeyboard; + private final SparseArray<ScrollKeyboardView> mActiveKeyboardView = + CollectionUtils.newSparseArray(); + private int mActivePosition = CATEGORY_UNSPECIFIED; + + public EmojiKeyboardAdapter(final KeyboardLayoutSet layoutSet, + final ScrollKeyboardView.OnKeyClickListener listener) { + mListener = listener; + mLayoutSet = layoutSet; + mRecentsKeyboard = new RecentsKeyboard( + layoutSet.getKeyboard(KeyboardId.ELEMENT_EMOJI_RECENTS)); + } + + public void addRecentKey(final Key key) { + if (mActivePosition == CATEGORY_RECENTS) { + return; + } + mRecentsKeyboard.addRecentKey(key); + final KeyboardView recentKeyboardView = mActiveKeyboardView.get(CATEGORY_RECENTS); + if (recentKeyboardView != null) { + recentKeyboardView.invalidateAllKeys(); + } + } + + @Override + public int getCount() { + return sCategoryName.length; + } + + @Override + public void setPrimaryItem(final View container, final int position, final Object object) { + if (mActivePosition == position) { + return; + } + final ScrollKeyboardView oldKeyboardView = mActiveKeyboardView.get(mActivePosition); + if (oldKeyboardView != null) { + oldKeyboardView.releaseCurrentKey(); + oldKeyboardView.deallocateMemory(); + } + mActivePosition = position; + } + + @Override + public Object instantiateItem(final ViewGroup container, final int position) { + final int elementId = sCategoryElementId[position]; + final Keyboard keyboard = (elementId == KeyboardId.ELEMENT_EMOJI_RECENTS) + ? mRecentsKeyboard : mLayoutSet.getKeyboard(elementId); + final LayoutInflater inflater = LayoutInflater.from(container.getContext()); + final View view = inflater.inflate( + R.layout.emoji_keyboard_page, container, false /* attachToRoot */); + final ScrollKeyboardView keyboardView = (ScrollKeyboardView)view.findViewById( + R.id.emoji_keyboard_page); + keyboardView.setKeyboard(keyboard); + keyboardView.setOnKeyClickListener(mListener); + final ScrollViewWithNotifier scrollView = (ScrollViewWithNotifier)view.findViewById( + R.id.emoji_keyboard_scroller); + keyboardView.setScrollView(scrollView); + container.addView(view); + mActiveKeyboardView.put(position, keyboardView); + return view; + } + + @Override + public boolean isViewFromObject(final View view, final Object object) { + return view == object; + } + + @Override + public void destroyItem(final ViewGroup container, final int position, + final Object object) { + final ScrollKeyboardView keyboardView = mActiveKeyboardView.get(position); + if (keyboardView != null) { + keyboardView.deallocateMemory(); + mActiveKeyboardView.remove(position); + } + container.removeView(keyboardView); + } + } +} diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 143c6e848..3ea68806b 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -764,8 +764,9 @@ public class Key implements Comparable<Key> { } public final int getDrawX() { + final int x = getX(); final OptionalAttributes attrs = mOptionalAttributes; - return (attrs == null) ? mX : mX + attrs.mVisualInsetsLeft; + return (attrs == null) ? x : x + attrs.mVisualInsetsLeft; } public final int getDrawWidth() { @@ -823,9 +824,9 @@ public class Key implements Comparable<Key> { * @return the square of the distance of the point from the nearest edge of the key */ public int squaredDistanceToEdge(final int x, final int y) { - final int left = mX; + final int left = getX(); final int right = left + mWidth; - final int top = mY; + final int top = getY(); final int bottom = top + mHeight; final int edgeX = x < left ? left : (x > right ? right : x); final int edgeY = y < top ? top : (y > bottom ? bottom : y); diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java index 098c8b3df..c319c57a1 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -66,7 +66,9 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { private SharedPreferences mPrefs; private InputView mCurrentInputView; + private View mMainKeyboardFrame; private MainKeyboardView mKeyboardView; + private EmojiKeyboardView mEmojiKeyboardView; private LatinIME mLatinIME; private Resources mResources; @@ -167,6 +169,8 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { } private void setKeyboard(final Keyboard keyboard) { + // Make {@link MainKeyboardView} visible and hide {@link EmojiKeyboardView}. + setMainKeyboardFrame(); final MainKeyboardView keyboardView = mKeyboardView; final Keyboard oldKeyboard = keyboardView.getKeyboard(); keyboardView.setKeyboard(keyboard); @@ -253,6 +257,18 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS)); } + private void setMainKeyboardFrame() { + mMainKeyboardFrame.setVisibility(View.VISIBLE); + mEmojiKeyboardView.setVisibility(View.GONE); + } + + // Implements {@link KeyboardState.SwitchActions}. + @Override + public void setEmojiKeyboard() { + mMainKeyboardFrame.setVisibility(View.GONE); + mEmojiKeyboardView.setVisibility(View.VISIBLE); + } + // Implements {@link KeyboardState.SwitchActions}. @Override public void requestUpdatingShiftState() { @@ -292,6 +308,20 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { mState.onCodeInput(code, mLatinIME.getCurrentAutoCapsState()); } + public boolean isShowingMoreKeysPanel() { + if (mEmojiKeyboardView.getVisibility() == View.VISIBLE) { + return false; + } + return mKeyboardView.isShowingMoreKeysPanel(); + } + + public View getVisibleKeyboardView() { + if (mEmojiKeyboardView.getVisibility() == View.VISIBLE) { + return mEmojiKeyboardView; + } + return mKeyboardView; + } + public MainKeyboardView getMainKeyboardView() { return mKeyboardView; } @@ -304,10 +334,16 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { setContextThemeWrapper(mLatinIME, mKeyboardTheme); mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate( R.layout.input_view, null); + mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame); + mEmojiKeyboardView = (EmojiKeyboardView)mCurrentInputView.findViewById( + R.id.emoji_keyboard_view); mKeyboardView = (MainKeyboardView) mCurrentInputView.findViewById(R.id.keyboard_view); mKeyboardView.setHardwareAcceleratedDrawingEnabled(isHardwareAcceleratedDrawingEnabled); mKeyboardView.setKeyboardActionListener(mLatinIME); + mEmojiKeyboardView.setHardwareAcceleratedDrawingEnabled( + isHardwareAcceleratedDrawingEnabled); + mEmojiKeyboardView.setKeyboardActionListener(mLatinIME); // This always needs to be set since the accessibility state can // potentially change without the input view being re-created. diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java index c0c02f10a..cd127c760 100644 --- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java +++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java @@ -342,7 +342,9 @@ y |---+---+---+---+-v-+-|-+---+---+---+---+---| | thresholdBase and get for (int centerY = yStart; centerY <= yEnd; centerY += mCellHeight) { int index = baseIndexOfCurrentRow; for (int centerX = xStart; centerX <= xEnd; centerX += mCellWidth) { - if (key.squaredDistanceToEdge(centerX, centerY) < thresholdSquared) { + // TODO: Remove "index < neighborCountPerCell.length" below. + if (index < neighborCountPerCell.length + && key.squaredDistanceToEdge(centerX, centerY) < thresholdSquared) { neighborsFlatBuffer[index * keyCount + neighborCountPerCell[index]] = key; ++neighborCountPerCell[index]; } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java index b21ea3f71..05d855e31 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java @@ -124,10 +124,11 @@ public final class KeyStylesSet { @Override public int getFlags(final TypedArray a, final int index) { + final int parentFlags = mStyles.get(mParentStyleName).getFlags(a, index); final Integer value = (Integer)mStyleAttributes.get(index); - final int flags = a.getInt(index, (value != null) ? value : 0); - final KeyStyle parentStyle = mStyles.get(mParentStyleName); - return flags | parentStyle.getFlags(a, index); + final int styleFlags = (value != null) ? value : 0; + final int flags = a.getInt(index, 0); + return flags | styleFlags | parentFlags; } public void readKeyAttributes(final TypedArray keyAttr) { @@ -163,7 +164,8 @@ public final class KeyStylesSet { private void readFlags(final TypedArray a, final int index) { if (a.hasValue(index)) { final Integer value = (Integer)mStyleAttributes.get(index); - mStyleAttributes.put(index, a.getInt(index, 0) | (value != null ? value : 0)); + final int styleFlags = value != null ? value : 0; + mStyleAttributes.put(index, a.getInt(index, 0) | styleFlags); } } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java index 8c70389ba..22f7a83fc 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java @@ -625,6 +625,9 @@ public class KeyboardBuilder<KP extends KeyboardParams> { final AttributeSet attr = Xml.asAttributeSet(parser); final TypedArray caseAttr = mResources.obtainAttributes(attr, R.styleable.Keyboard_Case); try { + final boolean keyboardLayoutSetMatched = matchString(caseAttr, + R.styleable.Keyboard_Case_keyboardLayoutSet, + SubtypeLocaleUtils.getKeyboardLayoutSetName(id.mSubtype)); final boolean keyboardLayoutSetElementMatched = matchTypedValue(caseAttr, R.styleable.Keyboard_Case_keyboardLayoutSetElement, id.mElementId, KeyboardId.elementIdToName(id.mElementId)); @@ -657,15 +660,18 @@ public class KeyboardBuilder<KP extends KeyboardParams> { R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage()); final boolean countryCodeMatched = matchString(caseAttr, R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry()); - final boolean selected = keyboardLayoutSetElementMatched && modeMatched - && navigateNextMatched && navigatePreviousMatched && passwordInputMatched - && clobberSettingsKeyMatched && shortcutKeyEnabledMatched - && shortcutKeyOnSymbolsMatched && hasShortcutKeyMatched - && languageSwitchKeyEnabledMatched && isMultiLineMatched && imeActionMatched - && localeCodeMatched && languageCodeMatched && countryCodeMatched; + final boolean selected = keyboardLayoutSetMatched && keyboardLayoutSetElementMatched + && modeMatched && navigateNextMatched && navigatePreviousMatched + && passwordInputMatched && clobberSettingsKeyMatched + && shortcutKeyEnabledMatched && shortcutKeyOnSymbolsMatched + && hasShortcutKeyMatched && languageSwitchKeyEnabledMatched + && isMultiLineMatched && imeActionMatched && localeCodeMatched + && languageCodeMatched && countryCodeMatched; if (DEBUG) { - startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE, + startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE, + textAttr(caseAttr.getString( + R.styleable.Keyboard_Case_keyboardLayoutSet), "keyboardLayoutSet"), textAttr(caseAttr.getString( R.styleable.Keyboard_Case_keyboardLayoutSetElement), "keyboardLayoutSetElement"), diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java index 0b10a1d1a..089db12a2 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java @@ -46,6 +46,7 @@ public final class KeyboardState { public void setAlphabetShiftLockedKeyboard(); public void setAlphabetShiftLockShiftedKeyboard(); public void setSymbolsKeyboard(); + public void setEmojiKeyboard(); /** * Request to call back {@link KeyboardState#onUpdateShiftState(int, int)}. @@ -71,7 +72,10 @@ public final class KeyboardState { private static final int SWITCH_STATE_MOMENTARY_ALPHA_SHIFT = 5; private int mSwitchState = SWITCH_STATE_ALPHA; + // TODO: Consolidate these two mode booleans into one integer to distinguish between alphabet, + // symbols, and emoji mode. private boolean mIsAlphabetMode; + private boolean mIsEmojiMode; private AlphabetShiftState mAlphabetShiftState = new AlphabetShiftState(); private boolean mPrevMainKeyboardWasShiftLocked; private int mRecapitalizeMode; @@ -86,6 +90,7 @@ public final class KeyboardState { public boolean mIsValid; public boolean mIsAlphabetMode; public boolean mIsAlphabetShiftLocked; + public boolean mIsEmojiMode; public int mShiftMode; @Override @@ -94,6 +99,8 @@ public final class KeyboardState { if (mIsAlphabetMode) { if (mIsAlphabetShiftLocked) return "ALPHABET_SHIFT_LOCKED"; return "ALPHABET_" + shiftModeToString(mShiftMode); + } else if (mIsEmojiMode) { + return "EMOJI"; } else { return "SYMBOLS"; } @@ -125,6 +132,7 @@ public final class KeyboardState { public void onSaveKeyboardState() { final SavedKeyboardState state = mSavedKeyboardState; state.mIsAlphabetMode = mIsAlphabetMode; + state.mIsEmojiMode = mIsEmojiMode; if (mIsAlphabetMode) { state.mIsAlphabetShiftLocked = mAlphabetShiftState.isShiftLocked(); state.mShiftMode = mAlphabetShiftState.isAutomaticShifted() ? AUTOMATIC_SHIFT @@ -145,6 +153,8 @@ public final class KeyboardState { } if (!state.mIsValid || state.mIsAlphabetMode) { setAlphabetKeyboard(); + } else if (state.mIsEmojiMode) { + setEmojiKeyboard(); } else { setSymbolsKeyboard(); } @@ -254,6 +264,7 @@ public final class KeyboardState { mSwitchActions.setAlphabetKeyboard(); mIsAlphabetMode = true; + mIsEmojiMode = false; mRecapitalizeMode = RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE; mSwitchState = SWITCH_STATE_ALPHA; mSwitchActions.requestUpdatingShiftState(); @@ -270,6 +281,15 @@ public final class KeyboardState { mSwitchState = SWITCH_STATE_SYMBOL_BEGIN; } + private void setEmojiKeyboard() { + if (DEBUG_ACTION) { + Log.d(TAG, "setEmojiKeyboard"); + } + mIsAlphabetMode = false; + mIsEmojiMode = true; + mSwitchActions.setEmojiKeyboard(); + } + public void onPressKey(final int code, final boolean isSinglePointer, final int autoCaps) { if (DEBUG_EVENT) { Log.d(TAG, "onPressKey: code=" + Constants.printableCode(code) @@ -547,6 +567,8 @@ public final class KeyboardState { // If the code is a letter, update keyboard shift state. if (Constants.isLetterCode(code)) { updateAlphabetShiftState(autoCaps, RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE); + } else if (code == Constants.CODE_EMOJI) { + setEmojiKeyboard(); } } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java index c6d652c0e..4d3bdb0ca 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java @@ -275,7 +275,7 @@ public final class KeyboardTextsSet { /* 50 */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", /* 51 */ "$", /* 52 */ "$,\u00A2,\u20AC,\u00A3,\u00A5,\u20B1", - /* 53 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)", + /* 53 */ "!fixedColumnOrder!3,!,\\,,?,:,;,@", // U+2020: "†" DAGGER // U+2021: "‡" DOUBLE DAGGER // U+2605: "★" BLACK STAR @@ -357,10 +357,9 @@ public final class KeyboardTextsSet { // U+2030: "‰" PER MILLE SIGN /* 103 */ "\u2030", /* 104 */ ",", - /* 105 */ "!", - /* 106 */ "!", - /* 107 */ "?", - /* 108 */ "?", + /* 105~ */ + EMPTY, EMPTY, EMPTY, EMPTY, + /* ~108 */ /* 109 */ "\'", /* 110 */ "\"", /* 111 */ "\"", @@ -775,7 +774,7 @@ public final class KeyboardTextsSet { null, null, null, null, null, null, null, null, /* ~52 */ // U+00B7: "·" MIDDLE DOT - /* 53 */ "!fixedColumnOrder!9,\u00B7,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)", + /* 53 */ "!fixedColumnOrder!4,\u00B7,!,\\,,?,:,;,@", /* 54~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, @@ -1247,7 +1246,7 @@ public final class KeyboardTextsSet { /* ~52 */ // U+00A1: "¡" INVERTED EXCLAMATION MARK // U+00BF: "¿" INVERTED QUESTION MARK - /* 53 */ "!fixedColumnOrder!9,\u00A1,\",\',#,-,:,!,\\,,?,\u00BF,@,&,\\%,+,;,/,(,)", + /* 53 */ "!fixedColumnOrder!4,;,!,\\,,?,:,\u00A1,@,\u00BF", /* 54~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, @@ -1753,6 +1752,25 @@ public final class KeyboardTextsSet { /* 49 */ "!text/double_raqm_laqm", }; + /* Language hy: Armenian */ + private static final String[] LANGUAGE_hy = { + /* 0~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, + /* ~52 */ + // U+055E: "՞" ARMENIAN QUESTION MARK + /* 53 */ "!fixedColumnOrder!4,\u055E,!,\\,,?,:,;,@", + /* 54~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + /* ~107 */ + /* 108 */ "\u055E,?", + }; + /* Language is: Icelandic */ private static final String[] LANGUAGE_is = { // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE @@ -1894,7 +1912,7 @@ public final class KeyboardTextsSet { // U+20AA: "₪" NEW SHEQEL SIGN /* 51 */ "\u20AA", /* 52 */ null, - /* 53 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(|),)|(", + /* 53 */ null, // U+2605: "★" BLACK STAR /* 54 */ "\u2605", /* 55 */ null, @@ -1912,6 +1930,15 @@ public final class KeyboardTextsSet { // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK /* 59 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB", /* 60 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB", + /* 61~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~104 */ + /* 105 */ "!", + /* 106 */ "!", + /* 107 */ "?", + /* 108 */ "?", }; /* Language ka: Georgian */ @@ -3288,6 +3315,7 @@ public final class KeyboardTextsSet { "hi", LANGUAGE_hi, /* Hindi */ "hr", LANGUAGE_hr, /* Croatian */ "hu", LANGUAGE_hu, /* Hungarian */ + "hy", LANGUAGE_hy, /* Armenian */ "is", LANGUAGE_is, /* Icelandic */ "it", LANGUAGE_it, /* Italian */ "iw", LANGUAGE_iw, /* Hebrew */ diff --git a/java/src/com/android/inputmethod/keyboard/internal/RecentsKeyboard.java b/java/src/com/android/inputmethod/keyboard/internal/RecentsKeyboard.java new file mode 100644 index 000000000..629c60460 --- /dev/null +++ b/java/src/com/android/inputmethod/keyboard/internal/RecentsKeyboard.java @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2013 The Android Open 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.text.TextUtils; + +import com.android.inputmethod.keyboard.Key; +import com.android.inputmethod.keyboard.Keyboard; +import com.android.inputmethod.latin.utils.CollectionUtils; + +import java.util.ArrayDeque; +import java.util.Random; + +/** + * This is a Keyboard class to host recently used keys. + */ +// TODO: Save/restore recent keys from/to preferences. +public class RecentsKeyboard extends Keyboard { + private static final int TEMPLATE_KEY_CODE_0 = 0x30; + private static final int TEMPLATE_KEY_CODE_1 = 0x31; + + private final int mLeftPadding; + private final int mHorizontalStep; + private final int mVerticalStep; + private final int mColumnsNum; + private final int mMaxRecentKeyCount; + private final ArrayDeque<RecentKey> mRecentKeys = CollectionUtils.newArrayDeque(); + + private Key[] mCachedRecentKeys; + + public RecentsKeyboard(final Keyboard templateKeyboard) { + super(templateKeyboard); + final Key key0 = getTemplateKey(TEMPLATE_KEY_CODE_0); + final Key key1 = getTemplateKey(TEMPLATE_KEY_CODE_1); + mLeftPadding = key0.getX(); + mHorizontalStep = Math.abs(key1.getX() - key0.getX()); + mVerticalStep = key0.getHeight() + mVerticalGap; + mColumnsNum = mBaseWidth / mHorizontalStep; + final int rowsNum = mBaseHeight / mVerticalStep; + mMaxRecentKeyCount = mColumnsNum * rowsNum; + } + + private Key getTemplateKey(final int code) { + for (final Key key : super.getKeys()) { + if (key.getCode() == code) { + return key; + } + } + throw new RuntimeException("Can't find template key: code=" + code); + } + + private final Random random = new Random(); + + public void addRecentKey(final Key usedKey) { + synchronized (mRecentKeys) { + mCachedRecentKeys = null; + final RecentKey key = (usedKey instanceof RecentKey) + ? (RecentKey)usedKey : new RecentKey(usedKey); + while (mRecentKeys.remove(key)) { + // Remove duplicate keys. + } + mRecentKeys.addFirst(key); + while (mRecentKeys.size() > mMaxRecentKeyCount) { + mRecentKeys.removeLast(); + } + int index = 0; + for (final RecentKey recentKey : mRecentKeys) { + final int keyX = getKeyX(index); + final int keyY = getKeyY(index); + final int x = keyX+random.nextInt(recentKey.getWidth()); + final int y = keyY+random.nextInt(recentKey.getHeight()); + recentKey.updateCorrdinates(keyX, keyY); + index++; + } + } + } + + private int getKeyX(final int index) { + final int column = index % mColumnsNum; + return column * mHorizontalStep + mLeftPadding; + } + + private int getKeyY(final int index) { + final int row = index / mColumnsNum; + return row * mVerticalStep + mTopPadding; + } + + @Override + public Key[] getKeys() { + synchronized (mRecentKeys) { + if (mCachedRecentKeys != null) { + return mCachedRecentKeys; + } + mCachedRecentKeys = mRecentKeys.toArray(new Key[mRecentKeys.size()]); + return mCachedRecentKeys; + } + } + + @Override + public Key[] getNearestKeys(final int x, final int y) { + // TODO: Calculate the nearest key index in mRecentKeys from x and y. + return getKeys(); + } + + static final class RecentKey extends Key { + private int mCurrentX; + private int mCurrentY; + + public RecentKey(final Key originalKey) { + super(originalKey); + } + + public void updateCorrdinates(final int x, final int y) { + mCurrentX = x; + mCurrentY = y; + getHitBox().offsetTo(x, y); + } + + @Override + public int getX() { + return mCurrentX; + } + + @Override + public int getY() { + return mCurrentY; + } + + @Override + public boolean equals(final Object o) { + if (!(o instanceof Key)) return false; + final Key key = (Key)o; + if (getCode() != key.getCode()) return false; + if (!TextUtils.equals(getLabel(), key.getLabel())) return false; + return TextUtils.equals(getOutputText(), key.getOutputText()); + } + + @Override + public String toString() { + return "RecentKey: " + super.toString(); + } + } +} diff --git a/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java b/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java index 2628f59a8..b8ee976e8 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java @@ -33,6 +33,7 @@ import com.android.inputmethod.latin.R; * This is an extended {@link KeyboardView} class that hosts a scroll keyboard. * Multi-touch unsupported. No {@link PointerTracker}s. No gesture support. */ +// TODO: Implement key popup preview. public final class ScrollKeyboardView extends KeyboardView implements ScrollViewWithNotifier.ScrollListener, GestureDetector.OnGestureListener { private static final boolean PAGINATION = false; diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index eb19ef932..e8b06570f 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -21,7 +21,6 @@ import android.util.SparseArray; import com.android.inputmethod.keyboard.ProximityInfo; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; -import com.android.inputmethod.latin.settings.AdditionalFeaturesSettingUtils; import com.android.inputmethod.latin.settings.NativeSuggestOptions; import com.android.inputmethod.latin.utils.CollectionUtils; import com.android.inputmethod.latin.utils.JniUtils; @@ -120,15 +119,16 @@ public final class BinaryDictionary extends Dictionary { @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { return getSuggestionsWithSessionId(composer, prevWord, proximityInfo, blockOffensiveWords, - 0 /* sessionId */); + additionalFeaturesOptions, 0 /* sessionId */); } @Override public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords, final int sessionId) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions, + final int sessionId) { if (!isValidDictionary()) return null; Arrays.fill(mInputCodePoints, Constants.NOT_A_CODE); @@ -148,8 +148,7 @@ public final class BinaryDictionary extends Dictionary { final InputPointers ips = composer.getInputPointers(); final int inputSize = isGesture ? ips.getPointerSize() : composerSize; mNativeSuggestOptions.setIsGesture(isGesture); - mNativeSuggestOptions.setAdditionalFeaturesOptions( - AdditionalFeaturesSettingUtils.getAdditionalNativeSuggestOptions()); + mNativeSuggestOptions.setAdditionalFeaturesOptions(additionalFeaturesOptions); // proximityInfo and/or prevWordForBigrams may not be null. final int count = getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(), getTraverseSession(sessionId).getSession(), ips.getXCoordinates(), diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java index d9ded7ceb..8a3a88438 100644 --- a/java/src/com/android/inputmethod/latin/Dictionary.java +++ b/java/src/com/android/inputmethod/latin/Dictionary.java @@ -72,20 +72,23 @@ public abstract class Dictionary { * @param prevWord the previous word, or null if none * @param proximityInfo the object for key proximity. May be ignored by some implementations. * @param blockOffensiveWords whether to block potentially offensive words + * @param additionalFeaturesOptions options about additional features used for the suggestion. * @return the list of suggestions (possibly null if none) */ // TODO: pass more context than just the previous word, to enable better suggestions (n-gram // and more) abstract public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords); + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions); // The default implementation of this method ignores sessionId. // Subclasses that want to use sessionId need to override this method. public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords, final int sessionId) { - return getSuggestions(composer, prevWord, proximityInfo, blockOffensiveWords); + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions, + final int sessionId) { + return getSuggestions(composer, prevWord, proximityInfo, blockOffensiveWords, + additionalFeaturesOptions); } /** @@ -156,7 +159,7 @@ public abstract class Dictionary { @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { return null; } diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java index d05bb1e55..bf075140e 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java +++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java @@ -58,18 +58,18 @@ public final class DictionaryCollection extends Dictionary { @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries; if (dictionaries.isEmpty()) return null; // To avoid creating unnecessary objects, we get the list out of the first // dictionary and add the rest to it if not null, hence the get(0) ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getSuggestions(composer, - prevWord, proximityInfo, blockOffensiveWords); + prevWord, proximityInfo, blockOffensiveWords, additionalFeaturesOptions); if (null == suggestions) suggestions = CollectionUtils.newArrayList(); final int length = dictionaries.size(); for (int i = 1; i < length; ++ i) { final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getSuggestions(composer, - prevWord, proximityInfo, blockOffensiveWords); + prevWord, proximityInfo, blockOffensiveWords, additionalFeaturesOptions); if (null != sugg) suggestions.addAll(sugg); } return suggestions; diff --git a/java/src/com/android/inputmethod/latin/DictionaryWriter.java b/java/src/com/android/inputmethod/latin/DictionaryWriter.java index a97e053d0..5a453dde5 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryWriter.java +++ b/java/src/com/android/inputmethod/latin/DictionaryWriter.java @@ -92,7 +92,7 @@ public class DictionaryWriter extends AbstractDictionaryWriter { @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - boolean blockOffensiveWords) { + boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { // This class doesn't support suggestion. return null; } diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index 939c2a03b..b92283c5b 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -272,19 +272,19 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { asyncReloadDictionaryIfRequired(); // Write lock because getSuggestions in native updates session status. if (mLocalDictionaryController.writeLock().tryLock()) { try { final ArrayList<SuggestedWordInfo> inMemDictSuggestion = mDictionaryWriter.getSuggestions(composer, prevWord, proximityInfo, - blockOffensiveWords); + blockOffensiveWords, additionalFeaturesOptions); // TODO: Remove checking mIsUpdatable and use native suggestion. if (mBinaryDictionary != null && !mIsUpdatable) { final ArrayList<SuggestedWordInfo> binarySuggestion = mBinaryDictionary.getSuggestions(composer, prevWord, proximityInfo, - blockOffensiveWords); + blockOffensiveWords, additionalFeaturesOptions); if (inMemDictSuggestion == null) { return binarySuggestion; } else if (binarySuggestion == null) { diff --git a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java index f5fa5d0d7..342dcfc5e 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java @@ -210,7 +210,7 @@ public class ExpandableDictionary extends Dictionary { @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { if (composer.size() > 1) { if (composer.size() >= Constants.DICTIONARY_MAX_WORD_LENGTH) { return null; diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 85001c30c..6be9ded5c 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -31,6 +31,7 @@ import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.res.Configuration; import android.content.res.Resources; +import android.graphics.Rect; import android.inputmethodservice.InputMethodService; import android.media.AudioManager; import android.net.ConnectivityManager; @@ -50,6 +51,7 @@ import android.util.Printer; import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.View; +import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.WindowManager; import android.view.inputmethod.CompletionInfo; @@ -71,6 +73,7 @@ import com.android.inputmethod.keyboard.KeyboardActionListener; import com.android.inputmethod.keyboard.KeyboardId; import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.keyboard.MainKeyboardView; +import com.android.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.define.ProductionFlag; import com.android.inputmethod.latin.personalization.PersonalizationDictionary; @@ -104,6 +107,8 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Locale; import java.util.TreeSet; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; /** * Input method implementation for Qwerty'ish keyboard. @@ -126,6 +131,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private static final int PERIOD_FOR_AUDIO_AND_HAPTIC_FEEDBACK_IN_KEY_REPEAT = 2; + // TODO: Set this value appropriately. + private static final int GET_SUGGESTED_WORDS_TIMEOUT = 200; + /** * The name of the scheme used by the Package Manager to warn of a new package installation, * replacement or removal. @@ -153,8 +161,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private final Settings mSettings; - private View mInputView; - private int mInputViewMinHeight; + private View mExtractArea; + private View mKeyPreviewBackingView; private SuggestionStripView mSuggestionStripView; // Never null private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY; @@ -218,6 +226,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private final boolean mIsHardwareAcceleratedDrawingEnabled; public final UIHandler mHandler = new UIHandler(this); + private InputUpdater mInputUpdater; public static final class UIHandler extends StaticInnerHandlerWrapper<LatinIME> { private static final int MSG_UPDATE_SHIFT_STATE = 0; @@ -226,8 +235,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private static final int MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP = 3; private static final int MSG_RESUME_SUGGESTIONS = 4; private static final int MSG_REOPEN_DICTIONARIES = 5; + private static final int MSG_ON_END_BATCH_INPUT = 6; + private static final int ARG1_NOT_GESTURE_INPUT = 0; private static final int ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 1; + private static final int ARG1_SHOW_GESTURE_FLOATING_PREVIEW_TEXT = 2; private int mDelayUpdateSuggestions; private int mDelayUpdateShiftState; @@ -260,8 +272,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen switcher.updateShiftState(); break; case MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP: - latinIme.showGesturePreviewAndSuggestionStrip((SuggestedWords)msg.obj, - msg.arg1 == ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT); + if (msg.arg1 == ARG1_NOT_GESTURE_INPUT) { + latinIme.showSuggestionStrip((SuggestedWords) msg.obj); + } else { + latinIme.showGesturePreviewAndSuggestionStrip((SuggestedWords) msg.obj, + msg.arg1 == ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT); + } break; case MSG_RESUME_SUGGESTIONS: latinIme.restartSuggestionsOnWordTouchedByCursor(); @@ -273,6 +289,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // get any suggestions. Wait one frame. postUpdateSuggestionStrip(); break; + case MSG_ON_END_BATCH_INPUT: + latinIme.onEndBatchInputAsyncInternal((SuggestedWords) msg.obj); + break; } } @@ -314,11 +333,22 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final boolean dismissGestureFloatingPreviewText) { removeMessages(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP); final int arg1 = dismissGestureFloatingPreviewText - ? ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT : 0; + ? ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT + : ARG1_SHOW_GESTURE_FLOATING_PREVIEW_TEXT; obtainMessage(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP, arg1, 0, suggestedWords) .sendToTarget(); } + public void showSuggestionStrip(final SuggestedWords suggestedWords) { + removeMessages(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP); + obtainMessage(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP, + ARG1_NOT_GESTURE_INPUT, 0, suggestedWords).sendToTarget(); + } + + public void onEndBatchInput(final SuggestedWords suggestedWords) { + obtainMessage(MSG_ON_END_BATCH_INPUT, suggestedWords).sendToTarget(); + } + public void startDoubleSpacePeriodTimer() { mDoubleSpacePeriodTimerStart = SystemClock.uptimeMillis(); } @@ -511,6 +541,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final IntentFilter newDictFilter = new IntentFilter(); newDictFilter.addAction(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION); registerReceiver(mDictionaryPackInstallReceiver, newDictFilter); + + mInputUpdater = new InputUpdater(this); } // Has to be package-visible for unit tests @@ -647,6 +679,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen PersonalizationDictionarySessionRegister.onDestroy(this); LatinImeLogger.commit(); LatinImeLogger.onDestroy(); + if (mInputUpdater != null) { + mInputUpdater.onDestroy(); + mInputUpdater = null; + } super.onDestroy(); } @@ -673,25 +709,17 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return mKeyboardSwitcher.onCreateInputView(mIsHardwareAcceleratedDrawingEnabled); } - private void setInputViewMinHeight(final int minHeight) { - if (mInputView != null && mInputViewMinHeight != minHeight) { - mInputView.setMinimumHeight(minHeight); - mInputViewMinHeight = minHeight; - } - } - @Override - public void setInputView(final View inputView) { - super.setInputView(inputView); - mInputView = inputView; - setInputViewMinHeight(0); - mSuggestionStripView = (SuggestionStripView)inputView.findViewById( - R.id.suggestion_strip_view); - if (mSuggestionStripView != null) { - mSuggestionStripView.setListener(this, inputView); - } + public void setInputView(final View view) { + super.setInputView(view); + mExtractArea = getWindow().getWindow().getDecorView() + .findViewById(android.R.id.extractArea); + mKeyPreviewBackingView = view.findViewById(R.id.key_preview_backing); + mSuggestionStripView = (SuggestionStripView)view.findViewById(R.id.suggestion_strip_view); + if (mSuggestionStripView != null) + mSuggestionStripView.setListener(this, view); if (LatinImeLogger.sVISUALDEBUG) { - inputView.setBackgroundColor(0x10FF0000); + mKeyPreviewBackingView.setBackgroundColor(0x10FF0000); } } @@ -1169,11 +1197,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mSuggestionStripView.setVisibility( shouldShowSuggestions ? View.VISIBLE : View.INVISIBLE); } - if (shouldShowSuggestions && mainKeyboardView != null) { - final int remainingHeight = getWindow().getWindow().getDecorView().getHeight() - - mainKeyboardView.getHeight() - mSuggestionStripView.getHeight(); - mSuggestionStripView.setMoreSuggestionsHeight(remainingHeight); - } } } @@ -1181,37 +1204,66 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen setSuggestionStripShownInternal(shown, /* needsInputViewShown */true); } + private int getAdjustedBackingViewHeight() { + final int currentHeight = mKeyPreviewBackingView.getHeight(); + if (currentHeight > 0) { + return currentHeight; + } + + final View visibleKeyboardView = mKeyboardSwitcher.getVisibleKeyboardView(); + if (visibleKeyboardView == null) { + return 0; + } + // TODO: !!!!!!!!!!!!!!!!!!!! Handle different backing view heights between the main !!! + // keyboard and the emoji keyboard. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + final int keyboardHeight = visibleKeyboardView.getHeight(); + final int suggestionsHeight = mSuggestionStripView.getHeight(); + final int displayHeight = getResources().getDisplayMetrics().heightPixels; + final Rect rect = new Rect(); + mKeyPreviewBackingView.getWindowVisibleDisplayFrame(rect); + final int notificationBarHeight = rect.top; + final int remainingHeight = displayHeight - notificationBarHeight - suggestionsHeight + - keyboardHeight; + + final LayoutParams params = mKeyPreviewBackingView.getLayoutParams(); + params.height = mSuggestionStripView.setMoreSuggestionsHeight(remainingHeight); + mKeyPreviewBackingView.setLayoutParams(params); + return params.height; + } + @Override public void onComputeInsets(final InputMethodService.Insets outInsets) { super.onComputeInsets(outInsets); - final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView(); - if (mainKeyboardView == null || mSuggestionStripView == null) { + final View visibleKeyboardView = mKeyboardSwitcher.getVisibleKeyboardView(); + if (visibleKeyboardView == null || mSuggestionStripView == null) { return; } - // This method is never called when in fullscreen mode. - // The contentTop is the top coordinate of the keyboard. The application behind will be - // resized/panned above this coordibnate to be able to show an input field. - final int contentTop = mInputView.getHeight() - mainKeyboardView.getHeight(); - final int suggestionsHeight = (mSuggestionStripView.getVisibility() == View.VISIBLE) - ? mSuggestionStripView.getHeight() : 0; - // The visibleTop is the top coordinates of the visible part of this IME. The application - // behind will never be resized, but may be panned or scrolled. - final int visibleTop = mainKeyboardView.isShowingMoreKeysPanel() ? 0 - : contentTop - suggestionsHeight; - outInsets.contentTopInsets = contentTop; - outInsets.visibleTopInsets = visibleTop; + final int adjustedBackingHeight = getAdjustedBackingViewHeight(); + final boolean backingGone = (mKeyPreviewBackingView.getVisibility() == View.GONE); + final int backingHeight = backingGone ? 0 : adjustedBackingHeight; + // In fullscreen mode, the height of the extract area managed by InputMethodService should + // be considered. + // See {@link android.inputmethodservice.InputMethodService#onComputeInsets}. + final int extractHeight = isFullscreenMode() ? mExtractArea.getHeight() : 0; + final int suggestionsHeight = (mSuggestionStripView.getVisibility() == View.GONE) ? 0 + : mSuggestionStripView.getHeight(); + final int extraHeight = extractHeight + backingHeight + suggestionsHeight; + int visibleTopY = extraHeight; // Need to set touchable region only if input view is being shown - if (mainKeyboardView.isShown()) { - final int touchLeft = 0; - final int touchTop = visibleTop; - final int touchRight = touchLeft + mainKeyboardView.getWidth(); - final int touchBottom = contentTop + mainKeyboardView.getHeight() + if (visibleKeyboardView.isShown()) { + if (mSuggestionStripView.getVisibility() == View.VISIBLE) { + visibleTopY -= suggestionsHeight; + } + final int touchY = mKeyboardSwitcher.isShowingMoreKeysPanel() ? 0 : visibleTopY; + final int touchWidth = visibleKeyboardView.getWidth(); + final int touchHeight = visibleKeyboardView.getHeight() + extraHeight // Extend touchable region below the keyboard. + EXTENDED_TOUCHABLE_REGION_HEIGHT; - // The touch event on touchableRegion will be delivered to this IME. - outInsets.touchableRegion.set(touchLeft, touchTop, touchRight, touchBottom); outInsets.touchableInsets = InputMethodService.Insets.TOUCHABLE_INSETS_REGION; + outInsets.touchableRegion.set(0, touchY, touchWidth, touchHeight); } + outInsets.contentTopInsets = visibleTopY; + outInsets.visibleTopInsets = visibleTopY; } @Override @@ -1234,11 +1286,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void updateFullscreenMode() { super.updateFullscreenMode(); - if (!isFullscreenMode()) { - // Expand the input view to cover entire display to be able to show key previews and - // more suggestions view that may be displayed above the keyboard. - setInputViewMinHeight(getResources().getDisplayMetrics().heightPixels); - } + + if (mKeyPreviewBackingView == null) return; + // In fullscreen mode, no need to have extra space to show the key preview. + // If not, we should have extra space above the keyboard to show the key preview. + mKeyPreviewBackingView.setVisibility(isFullscreenMode() ? View.GONE : View.VISIBLE); } // This will reset the whole input state to the starting state. It will clear @@ -1532,7 +1584,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen handleLanguageSwitchKey(); break; case Constants.CODE_EMOJI: - // TODO: Implement emoji keyboard switch. + // Note: Switching emoji keyboard is being handled in + // {@link KeyboardState#onCodeInput(int,int)}. break; case Constants.CODE_ENTER: final EditorInfo editorInfo = getCurrentInputEditorInfo(); @@ -1648,7 +1701,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void onStartBatchInput() { - BatchInputUpdater.getInstance().onStartBatchInput(this); + mInputUpdater.onStartBatchInput(); mHandler.cancelUpdateSuggestionStrip(); mConnection.beginBatchEdit(); final SettingsValues settingsValues = mSettings.getCurrent(); @@ -1688,46 +1741,41 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mWordComposer.setCapitalizedModeAtStartComposingTime(getActualCapsMode()); } - private static final class BatchInputUpdater implements Handler.Callback { + private static final class InputUpdater implements Handler.Callback { private final Handler mHandler; - private LatinIME mLatinIme; + private final LatinIME mLatinIme; private final Object mLock = new Object(); private boolean mInBatchInput; // synchronized using {@link #mLock}. - private BatchInputUpdater() { + private InputUpdater(final LatinIME latinIme) { final HandlerThread handlerThread = new HandlerThread( - BatchInputUpdater.class.getSimpleName()); + InputUpdater.class.getSimpleName()); handlerThread.start(); mHandler = new Handler(handlerThread.getLooper(), this); - } - - // Initialization-on-demand holder - private static final class OnDemandInitializationHolder { - public static final BatchInputUpdater sInstance = new BatchInputUpdater(); - } - - public static BatchInputUpdater getInstance() { - return OnDemandInitializationHolder.sInstance; + mLatinIme = latinIme; } private static final int MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP = 1; + private static final int MSG_GET_SUGGESTED_WORDS = 2; @Override public boolean handleMessage(final Message msg) { switch (msg.what) { - case MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP: - updateBatchInput((InputPointers)msg.obj); - break; + case MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP: + updateBatchInput((InputPointers)msg.obj); + break; + case MSG_GET_SUGGESTED_WORDS: + mLatinIme.getSuggestedWords(msg.arg1, (OnGetSuggestedWordsCallback) msg.obj); + break; } return true; } // Run in the UI thread. - public void onStartBatchInput(final LatinIME latinIme) { + public void onStartBatchInput() { synchronized (mLock) { mHandler.removeMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP); mInBatchInput = true; - mLatinIme = latinIme; mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip( SuggestedWords.EMPTY, false /* dismissGestureFloatingPreviewText */); } @@ -1740,9 +1788,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // Batch input has ended or canceled while the message was being delivered. return; } - final SuggestedWords suggestedWords = getSuggestedWordsGestureLocked(batchPointers); - mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip( - suggestedWords, false /* dismissGestureFloatingPreviewText */); + + getSuggestedWordsGestureLocked(batchPointers, new OnGetSuggestedWordsCallback() { + @Override + public void onGetSuggestedWords(final SuggestedWords suggestedWords) { + mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip( + suggestedWords, false /* dismissGestureFloatingPreviewText */); + } + }); } } @@ -1765,35 +1818,57 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } // Run in the UI thread. - public SuggestedWords onEndBatchInput(final InputPointers batchPointers) { - synchronized (mLock) { - mInBatchInput = false; - final SuggestedWords suggestedWords = getSuggestedWordsGestureLocked(batchPointers); - mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip( - suggestedWords, true /* dismissGestureFloatingPreviewText */); - return suggestedWords; + public void onEndBatchInput(final InputPointers batchPointers) { + synchronized(mLock) { + getSuggestedWordsGestureLocked(batchPointers, new OnGetSuggestedWordsCallback() { + @Override + public void onGetSuggestedWords(final SuggestedWords suggestedWords) { + mInBatchInput = false; + mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip(suggestedWords, + true /* dismissGestureFloatingPreviewText */); + mLatinIme.mHandler.onEndBatchInput(suggestedWords); + } + }); } } // {@link LatinIME#getSuggestedWords(int)} method calls with same session id have to // be synchronized. - private SuggestedWords getSuggestedWordsGestureLocked(final InputPointers batchPointers) { + private void getSuggestedWordsGestureLocked(final InputPointers batchPointers, + final OnGetSuggestedWordsCallback callback) { mLatinIme.mWordComposer.setBatchInputPointers(batchPointers); - final SuggestedWords suggestedWords = - mLatinIme.getSuggestedWordsOrOlderSuggestions(Suggest.SESSION_GESTURE); - final int suggestionCount = suggestedWords.size(); - if (suggestionCount <= 1) { - final String mostProbableSuggestion = (suggestionCount == 0) ? null - : suggestedWords.getWord(0); - return mLatinIme.getOlderSuggestions(mostProbableSuggestion); - } - return suggestedWords; + mLatinIme.getSuggestedWordsOrOlderSuggestionsAsync(Suggest.SESSION_GESTURE, + new OnGetSuggestedWordsCallback() { + @Override + public void onGetSuggestedWords(SuggestedWords suggestedWords) { + final int suggestionCount = suggestedWords.size(); + if (suggestionCount <= 1) { + final String mostProbableSuggestion = (suggestionCount == 0) ? null + : suggestedWords.getWord(0); + callback.onGetSuggestedWords( + mLatinIme.getOlderSuggestions(mostProbableSuggestion)); + } + callback.onGetSuggestedWords(suggestedWords); + } + }); + } + + public void getSuggestedWords(final int sessionId, + final OnGetSuggestedWordsCallback callback) { + mHandler.obtainMessage(MSG_GET_SUGGESTED_WORDS, sessionId, 0, callback).sendToTarget(); + } + + private void onDestroy() { + mHandler.removeMessages(MSG_GET_SUGGESTED_WORDS); + mHandler.removeMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP); + mHandler.getLooper().quit(); } } + // This method must run in UI Thread. private void showGesturePreviewAndSuggestionStrip(final SuggestedWords suggestedWords, final boolean dismissGestureFloatingPreviewText) { - showSuggestionStrip(suggestedWords, null); + showSuggestionStrip(suggestedWords); final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView(); mainKeyboardView.showGestureFloatingPreviewText(suggestedWords); if (dismissGestureFloatingPreviewText) { @@ -1809,13 +1884,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // TODO: implement auto-commit } } - BatchInputUpdater.getInstance().onUpdateBatchInput(batchPointers); + mInputUpdater.onUpdateBatchInput(batchPointers); } - @Override - public void onEndBatchInput(final InputPointers batchPointers) { - final SuggestedWords suggestedWords = BatchInputUpdater.getInstance().onEndBatchInput( - batchPointers); + // This method must run in UI Thread. + public void onEndBatchInputAsyncInternal(final SuggestedWords suggestedWords) { final String batchInputText = suggestedWords.isEmpty() ? null : suggestedWords.getWord(0); if (TextUtils.isEmpty(batchInputText)) { @@ -1837,6 +1910,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mKeyboardSwitcher.updateShiftState(); } + @Override + public void onEndBatchInput(final InputPointers batchPointers) { + mInputUpdater.onEndBatchInput(batchPointers); + } + private String specificTldProcessingOnTextInput(final String text) { if (text.length() <= 1 || text.charAt(0) != Constants.CODE_PERIOD || !Character.isLetter(text.charAt(1))) { @@ -1872,7 +1950,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void onCancelBatchInput() { - BatchInputUpdater.getInstance().onCancelBatchInput(); + mInputUpdater.onCancelBatchInput(); } private void handleBackspace(final int spaceState) { @@ -2307,22 +2385,47 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return; } - final SuggestedWords suggestedWords = - getSuggestedWordsOrOlderSuggestions(Suggest.SESSION_TYPING); - final String typedWord = mWordComposer.getTypedWord(); - showSuggestionStrip(suggestedWords, typedWord); + final CountDownLatch latch = new CountDownLatch(1); + final SuggestedWords[] suggestedWordsArray = new SuggestedWords[1]; + getSuggestedWordsOrOlderSuggestionsAsync(Suggest.SESSION_TYPING, + new OnGetSuggestedWordsCallback() { + @Override + public void onGetSuggestedWords(final SuggestedWords suggestedWords) { + suggestedWordsArray[0] = suggestedWords; + latch.countDown(); + } + } + ); + + // TODO: Quit blocking the main thread. + try { + // Wait for the result of getSuggestedWords + // We set the time out to avoid ANR. + latch.await(GET_SUGGESTED_WORDS_TIMEOUT, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + // TODO: Cancel all pending "getSuggestedWords" tasks when it failed. We may want to add + // "onGetSuggestionFailed" to "OnGetSuggestedWordsCallback". + Log.e(TAG, "InterruptedException while waiting for getSuggestedWords.", e); + return; + } + if (suggestedWordsArray[0] != null) { + showSuggestionStrip(suggestedWordsArray[0]); + } } - private SuggestedWords getSuggestedWords(final int sessionId) { + private void getSuggestedWords(final int sessionId, + final OnGetSuggestedWordsCallback callback) { final Keyboard keyboard = mKeyboardSwitcher.getKeyboard(); final Suggest suggest = mSuggest; if (keyboard == null || suggest == null) { - return SuggestedWords.EMPTY; + callback.onGetSuggestedWords(SuggestedWords.EMPTY); + return; } // Get the word on which we should search the bigrams. If we are composing a word, it's // whatever is *before* the half-committed word in the buffer, hence 2; if we aren't, we // should just skip whitespace if any, so 1. final SettingsValues currentSettings = mSettings.getCurrent(); + final int[] additionalFeaturesOptions = currentSettings.mAdditionalFeaturesSettingValues; final String prevWord; if (currentSettings.mCurrentLanguageHasSpaces) { // If we are typing in a language with spaces we can just look up the previous @@ -2333,14 +2436,20 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen prevWord = LastComposedWord.NOT_A_COMPOSED_WORD == mLastComposedWord ? null : mLastComposedWord.mCommittedWord; } - return suggest.getSuggestedWords(mWordComposer, prevWord, keyboard.getProximityInfo(), - currentSettings.mBlockPotentiallyOffensive, - currentSettings.mCorrectionEnabled, sessionId); + suggest.getSuggestedWords(mWordComposer, prevWord, keyboard.getProximityInfo(), + currentSettings.mBlockPotentiallyOffensive, currentSettings.mCorrectionEnabled, + additionalFeaturesOptions, sessionId, callback); } - private SuggestedWords getSuggestedWordsOrOlderSuggestions(final int sessionId) { - return maybeRetrieveOlderSuggestions(mWordComposer.getTypedWord(), - getSuggestedWords(sessionId)); + private void getSuggestedWordsOrOlderSuggestionsAsync(final int sessionId, + final OnGetSuggestedWordsCallback callback) { + mInputUpdater.getSuggestedWords(sessionId, new OnGetSuggestedWordsCallback() { + @Override + public void onGetSuggestedWords(SuggestedWords suggestedWords) { + callback.onGetSuggestedWords(maybeRetrieveOlderSuggestions( + mWordComposer.getTypedWord(), suggestedWords)); + } + }); } private SuggestedWords maybeRetrieveOlderSuggestions(final String typedWord, @@ -2380,16 +2489,16 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen false /* isPrediction */); } - private void showSuggestionStrip(final SuggestedWords suggestedWords, final String typedWord) { + private void showSuggestionStrip(final SuggestedWords suggestedWords) { if (suggestedWords.isEmpty()) { clearSuggestionStrip(); return; } final String autoCorrection; if (suggestedWords.mWillAutoCorrect) { - autoCorrection = suggestedWords.getWord(1); + autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION); } else { - autoCorrection = typedWord; + autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_TYPED_WORD); } mWordComposer.setAutoCorrection(autoCorrection); final boolean isAutoCorrection = suggestedWords.willAutoCorrect(); @@ -2638,41 +2747,52 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mConnection.setComposingRegion( mLastSelectionStart - numberOfCharsInWordBeforeCursor, mLastSelectionEnd + range.getNumberOfCharsInWordAfterCursor()); - final SuggestedWords suggestedWords; if (suggestions.isEmpty()) { // We come here if there weren't any suggestion spans on this word. We will try to // compute suggestions for it instead. - final SuggestedWords suggestedWordsIncludingTypedWord = - getSuggestedWords(Suggest.SESSION_TYPING); - if (suggestedWordsIncludingTypedWord.size() > 1) { - // We were able to compute new suggestions for this word. - // Remove the typed word, since we don't want to display it in this case. - // The #getSuggestedWordsExcludingTypedWord() method sets willAutoCorrect to false. - suggestedWords = - suggestedWordsIncludingTypedWord.getSuggestedWordsExcludingTypedWord(); - } else { - // No saved suggestions, and we were unable to compute any good one either. - // Rather than displaying an empty suggestion strip, we'll display the original - // word alone in the middle. - // Since there is only one word, willAutoCorrect is false. - suggestedWords = suggestedWordsIncludingTypedWord; - } + mInputUpdater.getSuggestedWords(Suggest.SESSION_TYPING, + new OnGetSuggestedWordsCallback() { + @Override + public void onGetSuggestedWords( + final SuggestedWords suggestedWordsIncludingTypedWord) { + final SuggestedWords suggestedWords; + if (suggestedWordsIncludingTypedWord.size() > 1) { + // We were able to compute new suggestions for this word. + // Remove the typed word, since we don't want to display it in this case. + // The #getSuggestedWordsExcludingTypedWord() method sets willAutoCorrect to + // false. + suggestedWords = suggestedWordsIncludingTypedWord + .getSuggestedWordsExcludingTypedWord(); + } else { + // No saved suggestions, and we were unable to compute any good one either. + // Rather than displaying an empty suggestion strip, we'll display the + // original word alone in the middle. + // Since there is only one word, willAutoCorrect is false. + suggestedWords = suggestedWordsIncludingTypedWord; + } + unsetIsAutoCorrectionIndicatorOnAndCallShowSuggestionStrip(suggestedWords); + }}); } else { // We found suggestion spans in the word. We'll create the SuggestedWords out of // them, and make willAutoCorrect false. - suggestedWords = new SuggestedWords(suggestions, + final SuggestedWords suggestedWords = new SuggestedWords(suggestions, true /* typedWordValid */, false /* willAutoCorrect */, false /* isPunctuationSuggestions */, false /* isObsoleteSuggestions */, false /* isPrediction */); + unsetIsAutoCorrectionIndicatorOnAndCallShowSuggestionStrip(suggestedWords); } + } + public void unsetIsAutoCorrectionIndicatorOnAndCallShowSuggestionStrip( + final SuggestedWords suggestedWords) { // Note that it's very important here that suggestedWords.mWillAutoCorrect is false. - // We never want to auto-correct on a resumed suggestion. Please refer to the three - // places above where suggestedWords is affected. We also need to reset - // mIsAutoCorrectionIndicatorOn to avoid showSuggestionStrip touching the text to adapt it. - // TODO: remove mIsAutoCorrectionIndicator on (see comment on definition) + // We never want to auto-correct on a resumed suggestion. Please refer to the three places + // above in restartSuggestionsOnWordTouchedByCursor() where suggestedWords is affected. + // We also need to unset mIsAutoCorrectionIndicatorOn to avoid showSuggestionStrip touching + // the text to adapt it. + // TODO: remove mIsAutoCorrectionIndicatorOn (see comment on definition) mIsAutoCorrectionIndicatorOn = false; - showSuggestionStrip(suggestedWords, typedWord); + mHandler.showSuggestionStrip(suggestedWords); } /** diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java index be03d4ae5..0889f22ca 100644 --- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java +++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java @@ -53,12 +53,22 @@ public final class SubtypeSwitcher { private InputMethodInfo mShortcutInputMethodInfo; private InputMethodSubtype mShortcutSubtype; private InputMethodSubtype mNoLanguageSubtype; + private InputMethodSubtype mEmojiSubtype; private boolean mIsNetworkConnected; // Dummy no language QWERTY subtype. See {@link R.xml.method}. private static final InputMethodSubtype DUMMY_NO_LANGUAGE_SUBTYPE = new InputMethodSubtype( - R.string.subtype_no_language_qwerty, R.drawable.ic_subtype_keyboard, "zz", "keyboard", - "KeyboardLayoutSet=qwerty,AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable", + R.string.subtype_no_language_qwerty, R.drawable.ic_subtype_keyboard, + SubtypeLocaleUtils.NO_LANGUAGE, "keyboard", + "KeyboardLayoutSet=" + SubtypeLocaleUtils.QWERTY + + ",AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable", + false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */); + // Caveat: We probably should remove this when we add an Emoji subtype in {@link R.xml.method}. + // Dummy Emoji subtype. See {@link R.xml.method}. + private static final InputMethodSubtype DUMMY_EMOJI_SUBTYPE = new InputMethodSubtype( + R.string.subtype_emoji, R.drawable.ic_subtype_keyboard, + SubtypeLocaleUtils.NO_LANGUAGE, "keyboard", + "KeyboardLayoutSet=" + SubtypeLocaleUtils.EMOJI, false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */); static final class NeedsToDisplayLanguage { @@ -271,4 +281,17 @@ public final class SubtypeSwitcher { + DUMMY_NO_LANGUAGE_SUBTYPE); return DUMMY_NO_LANGUAGE_SUBTYPE; } + + public InputMethodSubtype getEmojiSubtype() { + if (mEmojiSubtype == null) { + mEmojiSubtype = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.EMOJI); + } + if (mEmojiSubtype != null) { + return mEmojiSubtype; + } + Log.w(TAG, "Can't find Emoji subtype"); + Log.w(TAG, "No input method subtype found; return dummy subtype: " + DUMMY_EMOJI_SUBTYPE); + return DUMMY_EMOJI_SUBTYPE; + } } diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index c8a151a6c..18ba15872 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -211,24 +211,31 @@ public final class Suggest { mAutoCorrectionThreshold = threshold; } - public SuggestedWords getSuggestedWords(final WordComposer wordComposer, + public interface OnGetSuggestedWordsCallback { + public void onGetSuggestedWords(final SuggestedWords suggestedWords); + } + + public void getSuggestedWords(final WordComposer wordComposer, final String prevWordForBigram, final ProximityInfo proximityInfo, final boolean blockOffensiveWords, final boolean isCorrectionEnabled, - final int sessionId) { + final int[] additionalFeaturesOptions, final int sessionId, + final OnGetSuggestedWordsCallback callback) { LatinImeLogger.onStartSuggestion(prevWordForBigram); if (wordComposer.isBatchMode()) { - return getSuggestedWordsForBatchInput( - wordComposer, prevWordForBigram, proximityInfo, blockOffensiveWords, sessionId); + getSuggestedWordsForBatchInput(wordComposer, prevWordForBigram, proximityInfo, + blockOffensiveWords, additionalFeaturesOptions, sessionId, callback); } else { - return getSuggestedWordsForTypingInput(wordComposer, prevWordForBigram, proximityInfo, - blockOffensiveWords, isCorrectionEnabled); + getSuggestedWordsForTypingInput(wordComposer, prevWordForBigram, proximityInfo, + blockOffensiveWords, isCorrectionEnabled, additionalFeaturesOptions, callback); } } - // Retrieves suggestions for the typing input. - private SuggestedWords getSuggestedWordsForTypingInput(final WordComposer wordComposer, + // Retrieves suggestions for the typing input + // and calls the callback function with the suggestions. + private void getSuggestedWordsForTypingInput(final WordComposer wordComposer, final String prevWordForBigram, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords, final boolean isCorrectionEnabled) { + final boolean blockOffensiveWords, final boolean isCorrectionEnabled, + final int[] additionalFeaturesOptions, final OnGetSuggestedWordsCallback callback) { final int trailingSingleQuotesCount = wordComposer.trailingSingleQuotesCount(); final BoundedTreeSet suggestionsSet = new BoundedTreeSet(sSuggestedWordInfoComparator, MAX_SUGGESTIONS); @@ -251,8 +258,9 @@ public final class Suggest { for (final String key : mDictionaries.keySet()) { final Dictionary dictionary = mDictionaries.get(key); - suggestionsSet.addAll(dictionary.getSuggestions( - wordComposerForLookup, prevWordForBigram, proximityInfo, blockOffensiveWords)); + suggestionsSet.addAll(dictionary.getSuggestions(wordComposerForLookup, + prevWordForBigram, proximityInfo, blockOffensiveWords, + additionalFeaturesOptions)); } final String whitelistedWord; @@ -329,7 +337,7 @@ public final class Suggest { suggestionsList = suggestionsContainer; } - return new SuggestedWords(suggestionsList, + callback.onGetSuggestedWords(new SuggestedWords(suggestionsList, // TODO: this first argument is lying. If this is a whitelisted word which is an // actual word, it says typedWordValid = false, which looks wrong. We should either // rename the attribute or change the value. @@ -337,13 +345,15 @@ public final class Suggest { hasAutoCorrection, /* willAutoCorrect */ false /* isPunctuationSuggestions */, false /* isObsoleteSuggestions */, - !wordComposer.isComposingWord() /* isPrediction */); + !wordComposer.isComposingWord() /* isPrediction */)); } - // Retrieves suggestions for the batch input. - private SuggestedWords getSuggestedWordsForBatchInput(final WordComposer wordComposer, + // Retrieves suggestions for the batch input + // and calls the callback function with the suggestions. + private void getSuggestedWordsForBatchInput(final WordComposer wordComposer, final String prevWordForBigram, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords, final int sessionId) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions, + final int sessionId, final OnGetSuggestedWordsCallback callback) { final BoundedTreeSet suggestionsSet = new BoundedTreeSet(sSuggestedWordInfoComparator, MAX_SUGGESTIONS); @@ -357,7 +367,8 @@ public final class Suggest { } final Dictionary dictionary = mDictionaries.get(key); suggestionsSet.addAll(dictionary.getSuggestionsWithSessionId(wordComposer, - prevWordForBigram, proximityInfo, blockOffensiveWords, sessionId)); + prevWordForBigram, proximityInfo, blockOffensiveWords, + additionalFeaturesOptions, sessionId)); } for (SuggestedWordInfo wordInfo : suggestionsSet) { @@ -396,12 +407,12 @@ public final class Suggest { // In the batch input mode, the most relevant suggested word should act as a "typed word" // (typedWordValid=true), not as an "auto correct word" (willAutoCorrect=false). - return new SuggestedWords(suggestionsContainer, + callback.onGetSuggestedWords(new SuggestedWords(suggestionsContainer, true /* typedWordValid */, false /* willAutoCorrect */, false /* isPunctuationSuggestions */, false /* isObsoleteSuggestions */, - false /* isPrediction */); + false /* isPrediction */)); } private static ArrayList<SuggestedWordInfo> getSuggestionsInfoListWithDebugInfo( diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java index 92f96c027..67ef538ac 100644 --- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java @@ -34,9 +34,10 @@ public final class SynchronouslyLoadedContactsBinaryDictionary extends ContactsB @Override public synchronized ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes, final String prevWordForBigrams, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { syncReloadDictionaryIfRequired(); - return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords); + return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords, + additionalFeaturesOptions); } @Override diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java index 33fe89611..bea522320 100644 --- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java @@ -37,9 +37,10 @@ public final class SynchronouslyLoadedUserBinaryDictionary extends UserBinaryDic @Override public synchronized ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes, final String prevWordForBigrams, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { syncReloadDictionaryIfRequired(); - return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords); + return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords, + additionalFeaturesOptions); } @Override diff --git a/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java b/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java index 7f4f5e74a..d44660623 100644 --- a/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java +++ b/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java @@ -147,9 +147,9 @@ public class DynamicPersonalizationDictionaryWriter extends AbstractDictionaryWr @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - boolean blockOffensiveWords) { + boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { return mExpandableDictionary.getSuggestions(composer, prevWord, proximityInfo, - blockOffensiveWords); + blockOffensiveWords, additionalFeaturesOptions); } @Override diff --git a/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java index be3a9f2f1..a08145b33 100644 --- a/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java +++ b/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java @@ -63,7 +63,7 @@ public abstract class DynamicPredictionDictionaryBase extends ExpandableBinaryDi /* package */ DynamicPredictionDictionaryBase(final Context context, final String locale, final SharedPreferences sp, final String dictionaryType, final String fileName) { - super(context, locale, dictionaryType, true); + super(context, fileName, dictionaryType, true); mLocale = locale; mFileName = fileName; mPrefs = sp; diff --git a/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java b/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java index 139f5e290..6543003e8 100644 --- a/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java +++ b/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java @@ -40,8 +40,4 @@ public class AdditionalFeaturesSettingUtils { final SharedPreferences prefs, final int[] additionalFeaturesPreferences) { // do nothing. } - - public static int[] getAdditionalNativeSuggestOptions() { - return Settings.getInstance().getCurrent().mAdditionalFeaturesSettingValues; - } } diff --git a/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java b/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java index 878c505bd..cd726c969 100644 --- a/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java +++ b/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java @@ -34,6 +34,9 @@ public class NativeSuggestOptions { } public void setAdditionalFeaturesOptions(final int[] additionalOptions) { + if (additionalOptions == null) { + return; + } for (int i = 0; i < additionalOptions.length; i++) { setIntegerOption(OPTIONS_SIZE + i, additionalOptions[i]); } diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java index 6719e98da..69f9a467f 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java @@ -301,12 +301,14 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session { // TODO: make a spell checker option to block offensive words or not final ArrayList<SuggestedWordInfo> suggestions = dictInfo.mDictionary.getSuggestions(composer, prevWord, - dictInfo.getProximityInfo(), - true /* blockOffensiveWords */); - for (final SuggestedWordInfo suggestion : suggestions) { - final String suggestionStr = suggestion.mWord; - suggestionsGatherer.addWord(suggestionStr.toCharArray(), null, 0, - suggestionStr.length(), suggestion.mScore); + dictInfo.getProximityInfo(), true /* blockOffensiveWords */, + null /* additionalFeaturesOptions */); + if (suggestions != null) { + for (final SuggestedWordInfo suggestion : suggestions) { + final String suggestionStr = suggestion.mWord; + suggestionsGatherer.addWord(suggestionStr.toCharArray(), null, 0, + suggestionStr.length(), suggestion.mScore); + } } isInDict = isInDictForAnyCapitalization(dictInfo.mDictionary, text, capitalizeType); } finally { diff --git a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java index ac8f68781..a0aed2829 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java @@ -52,7 +52,7 @@ public final class DictionaryPool extends LinkedBlockingQueue<DictAndKeyboard> { @Override public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer, final String prevWord, final ProximityInfo proximityInfo, - final boolean blockOffensiveWords) { + final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) { return noSuggestions; } @Override diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java index aca249240..8d2689a7d 100644 --- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java +++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java @@ -165,9 +165,20 @@ final class SuggestionStripLayoutHelper { return mMaxMoreSuggestionsRow; } - public void setMoreSuggestionsHeight(final int remainingHeight) { + private int getMoreSuggestionsHeight() { + return mMaxMoreSuggestionsRow * mMoreSuggestionsRowHeight + mMoreSuggestionsBottomGap; + } + + public int setMoreSuggestionsHeight(final int remainingHeight) { + final int currentHeight = getMoreSuggestionsHeight(); + if (currentHeight <= remainingHeight) { + return currentHeight; + } + mMaxMoreSuggestionsRow = (remainingHeight - mMoreSuggestionsBottomGap) / mMoreSuggestionsRowHeight; + final int newHeight = getMoreSuggestionsHeight(); + return newHeight; } private static Drawable getMoreSuggestionsHint(final Resources res, final float textSize, diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java index badc942b9..75f17c559 100644 --- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java @@ -135,8 +135,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick } } - public void setMoreSuggestionsHeight(final int remainingHeight) { - mLayoutHelper.setMoreSuggestionsHeight(remainingHeight); + public int setMoreSuggestionsHeight(final int remainingHeight) { + return mLayoutHelper.setMoreSuggestionsHeight(remainingHeight); } public boolean isShowingAddToDictionaryHint() { diff --git a/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java b/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java index 16728092d..102a41b4e 100644 --- a/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java @@ -40,6 +40,7 @@ public final class SubtypeLocaleUtils { // Special language code to represent "no language". public static final String NO_LANGUAGE = "zz"; public static final String QWERTY = "qwerty"; + public static final String EMOJI = "emoji"; public static final int UNKNOWN_KEYBOARD_LAYOUT = R.string.subtype_generic; private static boolean sInitialized = false; |