diff options
Diffstat (limited to 'java')
56 files changed, 534 insertions, 965 deletions
diff --git a/java/res/color/emoji_tab_label_color_gb.xml b/java/res/color/emoji_tab_label_color_gb.xml deleted file mode 100644 index e1d2f715e..000000000 --- a/java/res/color/emoji_tab_label_color_gb.xml +++ /dev/null @@ -1,33 +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. -*/ ---> - -<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/drawable-hdpi/keyboard_background_gb.9.png b/java/res/drawable-hdpi/keyboard_background_gb.9.png Binary files differdeleted file mode 100644 index fa3d449f7..000000000 --- a/java/res/drawable-hdpi/keyboard_background_gb.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_popup_panel_background_gb.9.png b/java/res/drawable-hdpi/keyboard_popup_panel_background_gb.9.png Binary files differdeleted file mode 100644 index baff80950..000000000 --- a/java/res/drawable-hdpi/keyboard_popup_panel_background_gb.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/keyboard_suggest_strip_gb.9.png b/java/res/drawable-hdpi/keyboard_suggest_strip_gb.9.png Binary files differdeleted file mode 100644 index 7cab5a899..000000000 --- a/java/res/drawable-hdpi/keyboard_suggest_strip_gb.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_space_led_gb.9.png b/java/res/drawable-hdpi/sym_keyboard_space_led_gb.9.png Binary files differdeleted file mode 100644 index c76f64b94..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_space_led_gb.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_background_gb.9.png b/java/res/drawable-mdpi/keyboard_background_gb.9.png Binary files differdeleted file mode 100644 index 4f81704c4..000000000 --- a/java/res/drawable-mdpi/keyboard_background_gb.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_popup_panel_background_gb.9.png b/java/res/drawable-mdpi/keyboard_popup_panel_background_gb.9.png Binary files differdeleted file mode 100644 index 0d9ab97f0..000000000 --- a/java/res/drawable-mdpi/keyboard_popup_panel_background_gb.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/keyboard_suggest_strip_gb.9.png b/java/res/drawable-mdpi/keyboard_suggest_strip_gb.9.png Binary files differdeleted file mode 100644 index fa6c0feff..000000000 --- a/java/res/drawable-mdpi/keyboard_suggest_strip_gb.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_space_led_gb.9.png b/java/res/drawable-mdpi/sym_keyboard_space_led_gb.9.png Binary files differdeleted file mode 100644 index 1c1ca2cc7..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_space_led_gb.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/keyboard_background_gb.9.png b/java/res/drawable-xhdpi/keyboard_background_gb.9.png Binary files differdeleted file mode 100644 index 27b7a108c..000000000 --- a/java/res/drawable-xhdpi/keyboard_background_gb.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/keyboard_popup_panel_background_gb.9.png b/java/res/drawable-xhdpi/keyboard_popup_panel_background_gb.9.png Binary files differdeleted file mode 100644 index 79f7ab00a..000000000 --- a/java/res/drawable-xhdpi/keyboard_popup_panel_background_gb.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/keyboard_suggest_strip_gb.9.png b/java/res/drawable-xhdpi/keyboard_suggest_strip_gb.9.png Binary files differdeleted file mode 100644 index 1b568df03..000000000 --- a/java/res/drawable-xhdpi/keyboard_suggest_strip_gb.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_space_led_gb.9.png b/java/res/drawable-xhdpi/sym_keyboard_space_led_gb.9.png Binary files differdeleted file mode 100644 index 6525fefab..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_space_led_gb.9.png +++ /dev/null diff --git a/java/res/drawable/btn_keyboard_key_functional_gb.xml b/java/res/drawable/btn_keyboard_key_functional_gb.xml deleted file mode 100644 index 431359c20..000000000 --- a/java/res/drawable/btn_keyboard_key_functional_gb.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?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_gb.xml b/java/res/drawable/btn_keyboard_key_gb.xml deleted file mode 100644 index 3fc253e85..000000000 --- a/java/res/drawable/btn_keyboard_key_gb.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - <!-- Functional keys. --> - <item android:state_single="true" android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_dark_pressed" /> - <item android:state_single="true" - android:drawable="@drawable/btn_keyboard_key_dark_normal" /> - - <!-- Action keys. --> - <item android:state_active="true" android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_dark_pressed" /> - <item android:state_active="true" - android:drawable="@drawable/btn_keyboard_key_dark_normal" /> - - <!-- Toggle keys. Use checkable/checked state. --> - <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_dark_pressed_on" /> - <item android:state_checkable="true" android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_dark_pressed_off" /> - <item android:state_checkable="true" android:state_checked="true" - android:drawable="@drawable/btn_keyboard_key_dark_normal_on" /> - <item android:state_checkable="true" - android:drawable="@drawable/btn_keyboard_key_dark_normal_off" /> - - <!-- Empty background keys. --> - <item android:state_empty="true" - android:drawable="@drawable/transparent" /> - - <!-- Normal keys. --> - <item android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_light_pressed" /> - <item android:drawable="@drawable/btn_keyboard_key_light_normal" /> -</selector> diff --git a/java/res/drawable/btn_keyboard_key_popup_gb.xml b/java/res/drawable/btn_keyboard_key_popup_gb.xml deleted file mode 100644 index 9e3670d22..000000000 --- a/java/res/drawable/btn_keyboard_key_popup_gb.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2011 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_light_popup_selected" /> - <item android:drawable="@drawable/transparent" /> -</selector> diff --git a/java/res/drawable/btn_keyboard_spacebar_gb.xml b/java/res/drawable/btn_keyboard_spacebar_gb.xml deleted file mode 100644 index 4d51f3c9c..000000000 --- a/java/res/drawable/btn_keyboard_spacebar_gb.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?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"> - <item android:state_pressed="true" - android:drawable="@drawable/btn_keyboard_key_light_pressed" /> - <item android:drawable="@drawable/btn_keyboard_key_light_normal" /> -</selector> diff --git a/java/res/drawable/btn_suggestion_gb.xml b/java/res/drawable/btn_suggestion_gb.xml deleted file mode 100644 index cde12fe55..000000000 --- a/java/res/drawable/btn_suggestion_gb.xml +++ /dev/null @@ -1,27 +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. -*/ ---> - -<selector - xmlns:android="http://schemas.android.com/apk/res/android" -> - <item - android:state_pressed="true" - android:drawable="@drawable/btn_suggestion_pressed" /> -</selector> diff --git a/java/res/drawable/keyboard_key_feedback_gb.xml b/java/res/drawable/keyboard_key_feedback_gb.xml deleted file mode 100644 index 397e948d8..000000000 --- a/java/res/drawable/keyboard_key_feedback_gb.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<selector - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" -> - <item latin:state_has_morekeys="true" - android:drawable="@drawable/keyboard_key_feedback_more_background" /> - <item android:drawable="@drawable/keyboard_key_feedback_background" /> -</selector> diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml index 3b5cf9192..c5f0fc3b0 100644 --- a/java/res/values-in/strings.xml +++ b/java/res/values-in/strings.xml @@ -194,7 +194,7 @@ <string name="dictionary_provider_name" msgid="3027315045397363079">"Penyedia Kamus"</string> <string name="dictionary_service_name" msgid="6237472350693511448">"Layanan Kamus"</string> <string name="download_description" msgid="6014835283119198591">"Informasi pembaruan kamus"</string> - <string name="dictionary_settings_title" msgid="8091417676045693313">"Kamus add-on"</string> + <string name="dictionary_settings_title" msgid="8091417676045693313">"Kamus pengaya"</string> <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"Kamus yang tersedia"</string> <string name="dictionary_settings_summary" msgid="5305694987799824349">"Setelan untuk kamus"</string> <string name="user_dictionaries" msgid="3582332055892252845">"Kamus pengguna"</string> diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml index 4567ec925..c4b185225 100644 --- a/java/res/values-ja/strings.xml +++ b/java/res/values-ja/strings.xml @@ -135,7 +135,7 @@ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英語(英国)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"英語(米国)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_es_US" msgid="510930471167541338">"スペイン語(米国)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> - <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(繁体)"</string> + <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(伝統言語)"</string> <string name="subtype_no_language" msgid="7137390094240139495">"言語なし(アルファベット)"</string> <string name="subtype_no_language_qwerty" msgid="244337630616742604">"アルファベット(QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="443066912507547976">"アルファベット(QWERTZ)"</string> diff --git a/java/res/values-land/config.xml b/java/res/values-land/config.xml index ade7d002c..43ae068f2 100644 --- a/java/res/values-land/config.xml +++ b/java/res/values-land/config.xml @@ -33,14 +33,6 @@ <!-- config_more_keys_keyboard_key_height x 1.2 --> <dimen name="config_more_keys_keyboard_slide_allowance">53.76dp</dimen> - <fraction name="config_keyboard_top_padding_gb">1.818%p</fraction> - <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction> - <fraction name="config_key_vertical_gap_gb">5.941%p</fraction> - <fraction name="config_key_horizontal_gap_gb">0.997%p</fraction> - <!-- config_more_keys_keyboard_key_height x -1.0 --> - <dimen name="config_more_keys_keyboard_vertical_correction_gb">-44.8dp</dimen> - <dimen name="config_key_preview_offset_gb">0.0dp</dimen> - <fraction name="config_keyboard_top_padding_holo">2.727%p</fraction> <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction> <fraction name="config_key_vertical_gap_holo">5.368%p</fraction> diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml index 96735c0b4..294dd7f4f 100644 --- a/java/res/values-ms-rMY/strings.xml +++ b/java/res/values-ms-rMY/strings.xml @@ -135,8 +135,7 @@ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Bahasa Inggeris (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Bahasa Inggeris (AS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Bahasa Sepanyol (AS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> - <!-- no translation found for subtype_generic_traditional (8584594350973800586) --> - <skip /> + <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradisional)"</string> <string name="subtype_no_language" msgid="7137390094240139495">"Tiada bahasa (Abjad)"</string> <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Abjad (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Abjad (QWERTZ)"</string> diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml index fe38a863f..02cc7deb6 100644 --- a/java/res/values-nb/strings.xml +++ b/java/res/values-nb/strings.xml @@ -135,7 +135,7 @@ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engelsk (Storbritannia) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engelsk (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spansk (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> - <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradisjonell)"</string> + <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradisjonelt)"</string> <string name="subtype_no_language" msgid="7137390094240139495">"Ingen språk (alfabet)"</string> <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string> diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml index 2bf1fb70d..055d16ccf 100644 --- a/java/res/values-ne-rNP/strings.xml +++ b/java/res/values-ne-rNP/strings.xml @@ -167,7 +167,7 @@ <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"स्थापना गर्न कुनै शब्दकोश फाइल चयन गर्नुहोस्"</string> <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"वास्तवमै <xliff:g id="LANGUAGE_NAME">%s</xliff:g> को लागि यो फाइल स्थापना गर्नुहुन्छ?"</string> <string name="error" msgid="8940763624668513648">"कुनै त्रुटि भयो"</string> - <string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"सम्पर्क शब्दकोश डम्प गर्नुहोस्"</string> + <string name="prefs_dump_contacts_dict" msgid="7227327764402323097">"सम्पर्क शब्दकोश भेला गर्नुहोस्"</string> <string name="prefs_dump_user_dict" msgid="294870685041741951">"व्यक्तिगत शब्दकोश डम्प गर्नुहोस्"</string> <string name="prefs_dump_user_history_dict" msgid="6821075152449554628">"प्रयोगकर्ता इतिहास शब्दकोश डम्प गर"</string> <string name="prefs_dump_personalization_dict" msgid="7558387996151745284">"निजीकरण शब्दकोश डम्प गर्नुहोस्"</string> diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml index 2d5fd1f18..96a774449 100644 --- a/java/res/values-ro/strings.xml +++ b/java/res/values-ro/strings.xml @@ -135,8 +135,7 @@ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engleză (Regatul Unit) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engleză (S.U.A.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spaniolă (S.U.A.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string> - <!-- no translation found for subtype_generic_traditional (8584594350973800586) --> - <skip /> + <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradițională)"</string> <string name="subtype_no_language" msgid="7137390094240139495">"Nicio limbă (alfabet)"</string> <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string> diff --git a/java/res/values-sw600dp-land/config.xml b/java/res/values-sw600dp-land/config.xml index bd123c499..00edde161 100644 --- a/java/res/values-sw600dp-land/config.xml +++ b/java/res/values-sw600dp-land/config.xml @@ -27,11 +27,6 @@ <dimen name="config_more_keys_keyboard_key_height">81.9dp</dimen> - <fraction name="config_keyboard_top_padding_gb">2.444%p</fraction> - <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction> - <fraction name="config_key_vertical_gap_gb">5.200%p</fraction> - <fraction name="config_key_horizontal_gap_gb">1.447%p</fraction> - <fraction name="config_keyboard_top_padding_holo">2.727%p</fraction> <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction> <fraction name="config_key_vertical_gap_holo">4.5%p</fraction> diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml index 700350c36..3bd843928 100644 --- a/java/res/values-sw600dp/config.xml +++ b/java/res/values-sw600dp/config.xml @@ -34,14 +34,6 @@ <!-- config_more_keys_keyboard_key_height x 1.2 --> <dimen name="config_more_keys_keyboard_slide_allowance">98.3dp</dimen> - <fraction name="config_keyboard_top_padding_gb">2.291%p</fraction> - <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction> - <fraction name="config_key_vertical_gap_gb">4.625%p</fraction> - <fraction name="config_key_horizontal_gap_gb">2.113%p</fraction> - <!-- config_more_keys_keyboard_key_height x -1.0 --> - <dimen name="config_more_keys_keyboard_vertical_correction_gb">-81.9dp</dimen> - <dimen name="config_key_preview_offset_gb">16.0dp</dimen> - <fraction name="config_keyboard_top_padding_holo">2.335%p</fraction> <fraction name="config_keyboard_bottom_padding_holo">4.0%p</fraction> <fraction name="config_key_vertical_gap_holo">4.5%p</fraction> diff --git a/java/res/values-sw600dp/touch-position-correction.xml b/java/res/values-sw600dp/touch-position-correction.xml index 932b8fc72..6aaa605a6 100644 --- a/java/res/values-sw600dp/touch-position-correction.xml +++ b/java/res/values-sw600dp/touch-position-correction.xml @@ -37,17 +37,6 @@ </string-array> <string-array - name="touch_position_correction_data_gb" - translatable="false" - > - <!-- The default touch position data (See com.android.inputmethod.keyboard.ProximityInfo) - correctionX = 0.0f - correctionY = 0.0f - correctionR = DEFAULT_TOUCH_POSITION_CORRECTION_RADIUS - --> - </string-array> - - <string-array name="touch_position_correction_data_holo" translatable="false" > diff --git a/java/res/values-sw768dp-land/config.xml b/java/res/values-sw768dp-land/config.xml index 4040e29f7..3878a9e84 100644 --- a/java/res/values-sw768dp-land/config.xml +++ b/java/res/values-sw768dp-land/config.xml @@ -25,11 +25,6 @@ <dimen name="config_default_keyboard_height">365.4dp</dimen> <fraction name="config_min_keyboard_height">45%p</fraction> - <fraction name="config_keyboard_top_padding_gb">1.896%p</fraction> - <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction> - <fraction name="config_key_vertical_gap_gb">3.896%p</fraction> - <fraction name="config_key_horizontal_gap_gb">1.195%p</fraction> - <fraction name="config_keyboard_top_padding_holo">1.896%p</fraction> <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction> <fraction name="config_key_vertical_gap_holo">3.690%p</fraction> diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml index 33286c686..34eec38b8 100644 --- a/java/res/values-sw768dp/config.xml +++ b/java/res/values-sw768dp/config.xml @@ -26,14 +26,6 @@ <fraction name="config_max_keyboard_height">46%p</fraction> <fraction name="config_min_keyboard_height">-35.0%p</fraction> - <fraction name="config_keyboard_top_padding_gb">2.291%p</fraction> - <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction> - <fraction name="config_key_vertical_gap_gb">4.687%p</fraction> - <fraction name="config_key_horizontal_gap_gb">1.272%p</fraction> - <!-- config_more_keys_keyboard_key_height x -1.0 --> - <dimen name="config_more_keys_keyboard_vertical_correction_gb">-81.9dp</dimen> - <dimen name="config_key_preview_offset_gb">16.0dp</dimen> - <fraction name="config_keyboard_top_padding_holo">2.335%p</fraction> <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction> <fraction name="config_key_vertical_gap_holo">3.312%p</fraction> diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml index e499bd902..1fd1e0363 100644 --- a/java/res/values-zu/strings.xml +++ b/java/res/values-zu/strings.xml @@ -135,7 +135,7 @@ <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"I-English (UK) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string> <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"I-English (US) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string> <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Isi-Spanish (US) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string> - <string name="subtype_generic_traditional" msgid="8584594350973800586">"Isi-<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Eyosiko)"</string> + <string name="subtype_generic_traditional" msgid="8584594350973800586">"Isi-<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradition)"</string> <string name="subtype_no_language" msgid="7137390094240139495">"Alikho ulimi (Alfabhethi)"</string> <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabhethi (QWERTY)"</string> <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabhethi (QWERTZ)"</string> diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml index 517174495..824928c6b 100644 --- a/java/res/values/colors.xml +++ b/java/res/values/colors.xml @@ -19,20 +19,6 @@ --> <resources xmlns:android="http://schemas.android.com/apk/res/android"> - <!-- Color resources for Gingerbread theme. --> - <color name="highlight_color_gb">#FFFCAE00</color> - <color name="typed_word_color_gb">@android:color/white</color> - <color name="highlight_translucent_color_gb">#99FCAE00</color> - <color name="key_text_color_gb">@android:color/white</color> - <color name="key_text_shadow_color_gb">#BB000000</color> - <color name="key_text_inactivated_color_gb">#66E0E4E5</color> - <color name="key_hint_letter_color_gb">#80000000</color> - <color name="key_hint_label_color_gb">#E0E0E4E5</color> - <color name="key_shifted_letter_hint_inactivated_color_gb">#66E0E4E5</color> - <color name="key_shifted_letter_hint_activated_color_gb">#CCE0E4E5</color> - <color name="spacebar_text_color_gb">#FFC0C0C0</color> - <color name="spacebar_text_shadow_color_gb">#80000000</color> - <color name="gesture_floating_preview_color_gb">#C0000000</color> <!-- Color resources for IceCreamSandwich theme. Base color = 33B5E5 --> <!-- android:color/holo_blue_light value is #FF33B5E5 --> <color name="highlight_color_ics">#FF33B5E5</color> diff --git a/java/res/values/config-common.xml b/java/res/values/config-common.xml index 20d5860e3..3fe4b947c 100644 --- a/java/res/values/config-common.xml +++ b/java/res/values/config-common.xml @@ -24,8 +24,8 @@ at input history to suggest a hopefully helpful suggestions for the next word? --> <bool name="config_default_next_word_prediction">true</bool> - <!-- This configuration is an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. --> - <string name="config_default_keyboard_theme_index" translatable="false">2</string> + <!-- This configuration must be aligned with {@link KeyboardTheme#DEFAULT_THEME_ID}. --> + <string name="config_default_keyboard_theme_id" translatable="false">2</string> <integer name="config_delay_update_shift_state">100</integer> <integer name="config_double_space_period_timeout">1100</integer> diff --git a/java/res/values/config.xml b/java/res/values/config.xml index e64b4b192..45ea48392 100644 --- a/java/res/values/config.xml +++ b/java/res/values/config.xml @@ -36,14 +36,6 @@ <dimen name="config_more_keys_keyboard_slide_allowance">63.36dp</dimen> <dimen name="config_more_keys_keyboard_key_horizontal_padding">8dp</dimen> - <fraction name="config_keyboard_top_padding_gb">1.556%p</fraction> - <fraction name="config_keyboard_bottom_padding_gb">4.669%p</fraction> - <fraction name="config_key_vertical_gap_gb">6.495%p</fraction> - <fraction name="config_key_horizontal_gap_gb">1.971%p</fraction> - <!-- config_more_keys_keyboard_key_height x -1.0 --> - <dimen name="config_more_keys_keyboard_vertical_correction_gb">-52.8dp</dimen> - <dimen name="config_key_preview_offset_gb">-8.0dp</dimen> - <fraction name="config_keyboard_top_padding_holo">2.335%p</fraction> <fraction name="config_keyboard_bottom_padding_holo">4.669%p</fraction> <fraction name="config_key_vertical_gap_holo">6.127%p</fraction> diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml index 4be5863f2..9a610a0d0 100644 --- a/java/res/values/donottranslate.xml +++ b/java/res/values/donottranslate.xml @@ -47,31 +47,13 @@ <string name="prefs_debug_mode">Debug Mode</string> <string name="prefs_force_non_distinct_multitouch">Force non-distinct multitouch</string> - <!-- Keyboard theme names --> - <string name="layout_gingerbread">Gingerbread</string> - <string name="layout_ics">IceCreamSandwich</string> - <string name="layout_klp">KeyLimePie</string> - - <!-- For keyboard theme switcher dialog --> - <string-array name="keyboard_layout_modes"> - <item>@string/layout_ics</item> - <item>@string/layout_gingerbread</item> - <item>@string/layout_klp</item> - </string-array> - <!-- An element must be an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. --> - <string-array name="keyboard_layout_modes_values"> - <item>0</item> - <item>1</item> - <item>2</item> - </string-array> - <!-- For keyboard color scheme option dialog. --> - <string-array name="keyboard_color_schemes"> + <string-array name="keyboard_theme_names"> <item>@string/keyboard_color_scheme_white</item> <item>@string/keyboard_color_scheme_blue</item> </string-array> - <!-- An element must be an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. --> - <string-array name="keyboard_color_schemes_values"> + <!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. --> + <string-array name="keyboard_theme_ids"> <item>2</item> <item>0</item> </string-array> diff --git a/java/res/values/themes-gb.xml b/java/res/values/themes-gb.xml deleted file mode 100644 index c189da383..000000000 --- a/java/res/values/themes-gb.xml +++ /dev/null @@ -1,150 +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. -*/ ---> - -<resources> - <style name="KeyboardTheme.GB" parent="KeyboardIcons.GB"> - <item name="keyboardStyle">@style/Keyboard.GB</item> - <item name="keyboardViewStyle">@style/KeyboardView.GB</item> - <item name="mainKeyboardViewStyle">@style/MainKeyboardView.GB</item> - <item name="keyPreviewTextViewStyle">@style/KeyPreviewTextView.GB</item> - <item name="emojiPalettesViewStyle">@style/EmojiPalettesView.GB</item> - <item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.GB</item> - <item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.GB</item> - <item name="suggestionStripViewStyle">@style/SuggestionStripView.GB</item> - <item name="suggestionWordStyle">@style/SuggestionWord.GB</item> - </style> - <style name="KeyboardIcons.GB"> - <!-- Keyboard icons --> - <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo_dark</item> - <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo_dark</item> - <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo_dark</item> - <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo_dark</item> - <item name="iconEnterKey">@drawable/sym_keyboard_return_holo_dark</item> - <item name="iconSearchKey">@drawable/sym_keyboard_search_holo_dark</item> - <item name="iconTabKey">@drawable/sym_keyboard_tab_holo_dark</item> - <item name="iconShortcutKey">@drawable/sym_keyboard_mic_holo_dark</item> - <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space</item> - <item name="iconShiftKeyShifted">@drawable/sym_keyboard_shift_locked_holo_dark</item> - <!-- TODO: Needs non-holo disabled shortcut icon drawable --> - <item name="iconShortcutKeyDisabled">@drawable/sym_keyboard_voice_off_holo_dark</item> - <item name="iconTabKeyPreview">@drawable/sym_keyboard_feedback_tab</item> - <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch_dark</item> - <!-- TODO: Needs dedicated black theme ZWNJ and ZWJ icons --> - <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo_dark</item> - <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo_dark</item> - <item name="iconEmojiKey">@drawable/sym_keyboard_smiley_holo_dark</item> - </style> - <style - name="Keyboard.GB" - parent="Keyboard" - > - <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] --> - <item name="themeId">1</item> - <item name="touchPositionCorrectionData">@array/touch_position_correction_data_gb</item> - <item name="keyboardTopPadding">@fraction/config_keyboard_top_padding_gb</item> - <item name="keyboardBottomPadding">@fraction/config_keyboard_bottom_padding_gb</item> - <item name="horizontalGap">@fraction/config_key_horizontal_gap_gb</item> - <item name="verticalGap">@fraction/config_key_vertical_gap_gb</item> - </style> - <style - name="KeyboardView.GB" - parent="KeyboardView" - > - <item name="android:background">@drawable/keyboard_background_gb</item> - <item name="keyBackground">@drawable/btn_keyboard_key_gb</item> - <item name="keyTypeface">bold</item> - <item name="keyTextColor">@color/key_text_color_gb</item> - <item name="keyTextInactivatedColor">@color/key_text_inactivated_color_gb</item> - <item name="keyHintLetterColor">@color/key_hint_letter_color_gb</item> - <item name="keyHintLabelColor">@color/key_hint_label_color_gb</item> - <item name="keyShiftedLetterHintInactivatedColor">@color/key_shifted_letter_hint_inactivated_color_gb</item> - <item name="keyShiftedLetterHintActivatedColor">@color/key_shifted_letter_hint_activated_color_gb</item> - <item name="keyPreviewTextColor">@color/key_text_color_gb</item> - <item name="keyTextShadowColor">@color/key_text_shadow_color_gb</item> - <item name="keyTextShadowRadius">2.75</item> - </style> - <style - name="MainKeyboardView.GB" - parent="KeyboardView.GB" - > - <item name="keyPreviewOffset">@dimen/config_key_preview_offset_gb</item> - <item name="gestureFloatingPreviewTextColor">@color/highlight_color_gb</item> - <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_gb</item> - <item name="gestureTrailColor">@color/highlight_color_gb</item> - <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_gb</item> - <item name="autoCorrectionSpacebarLedEnabled">true</item> - <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led_gb</item> - <item name="languageOnSpacebarTextColor">@color/spacebar_text_color_gb</item> - <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_gb</item> - <item name="spacebarBackground">@drawable/btn_keyboard_spacebar_gb</item> - </style> - <style - name="KeyPreviewTextView.GB" - parent="KeyPreviewTextView" - > - <item name="android:background">@drawable/keyboard_key_feedback_gb</item> - </style> - <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it, - for instance delete button, need themed {@link KeyboardView} attributes. --> - <style - name="EmojiPalettesView.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" - > - <item name="keyboardTopPadding">0%p</item> - <item name="keyboardBottomPadding">0%p</item> - <item name="horizontalGap">0%p</item> - <item name="touchPositionCorrectionData">@null</item> - </style> - <style - name="MoreKeysKeyboardView.GB" - parent="KeyboardView.GB" - > - <item name="android:background">@drawable/keyboard_popup_panel_background_gb</item> - <item name="keyBackground">@drawable/btn_keyboard_key_popup_gb</item> - <item name="keyTypeface">normal</item> - <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_gb</item> - </style> - <style - name="SuggestionStripView.GB" - parent="SuggestionStripView" - > - <item name="android:background">@drawable/keyboard_suggest_strip_gb</item> - <item name="suggestionStripOptions">autoCorrectBold|validTypedWordBold</item> - <item name="colorValidTypedWord">@color/highlight_color_gb</item> - <item name="colorTypedWord">@color/typed_word_color_gb</item> - <item name="colorAutoCorrect">@color/highlight_color_gb</item> - <item name="colorSuggested">@color/highlight_color_gb</item> - <item name="alphaObsoleted">50%</item> - </style> - <style - name="SuggestionWord.GB" - parent="SuggestionWord" - > - <item name="android:background">@drawable/btn_suggestion_gb</item> - <item name="android:textColor">@color/highlight_color_gb</item> - </style> -</resources> diff --git a/java/res/values/touch-position-correction.xml b/java/res/values/touch-position-correction.xml index becec0e0a..e090d106b 100644 --- a/java/res/values/touch-position-correction.xml +++ b/java/res/values/touch-position-correction.xml @@ -37,26 +37,6 @@ </string-array> <string-array - name="touch_position_correction_data_gb" - translatable="false" - > - <!-- First row --> - <item>0.0091285</item> - <item>0.1193203</item> - <item>0.1622607</item> - - <!-- Second row --> - <item>-0.0233128</item> - <item>0.1379798</item> - <item>0.1585229</item> - - <!-- Third row --> - <item>-0.0080185</item> - <item>0.1911477</item> - <item>0.1570948</item> - </string-array> - - <string-array name="touch_position_correction_data_holo" translatable="false" > diff --git a/java/res/xml-sw600dp/rows_myanmar.xml b/java/res/xml-sw600dp/rows_myanmar.xml index 778b330af..8eedf9d2f 100644 --- a/java/res/xml-sw600dp/rows_myanmar.xml +++ b/java/res/xml-sw600dp/rows_myanmar.xml @@ -24,7 +24,7 @@ <include latin:keyboardLayout="@xml/key_styles_common" /> <Row - latin:keyWidth="8.1818%p" + latin:keyWidth="9.0%p" > <include latin:keyboardLayout="@xml/rowkeys_myanmar1" /> @@ -33,40 +33,30 @@ latin:keyWidth="fillRight" /> </Row> <Row - latin:keyWidth="8.1818%p" + latin:keyWidth="9.0%p" > <include latin:keyboardLayout="@xml/rowkeys_myanmar2" /> </Row> <Row - latin:keyWidth="8.1818%p" + latin:keyWidth="9.0%p" > <include - latin:keyXPos="4.0909%p" latin:keyboardLayout="@xml/rowkeys_myanmar3" /> <Key latin:keyStyle="enterKeyStyle" latin:keyWidth="fillRight" /> </Row> <Row - latin:keyWidth="8.1818%p" + latin:keyWidth="9.0%p" > <Key latin:keyStyle="shiftKeyStyle" latin:keyWidth="10.0%p" /> <include latin:keyboardLayout="@xml/rowkeys_myanmar4" /> - <switch> - <case - latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" - > - <Spacer /> - </case> - <default> - <include - latin:keyboardLayout="@xml/keys_exclamation_question" /> - </default> - </switch> + <include + latin:keyboardLayout="@xml/keys_exclamation_question" /> </Row> <include latin:keyboardLayout="@xml/row_qwerty4" /> diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml index 594378fb4..28eceb8db 100644 --- a/java/res/xml/method.xml +++ b/java/res/xml/method.xml @@ -329,6 +329,8 @@ android:imeSubtypeExtraValue="KeyboardLayoutSet=hindi,EmojiCapable" android:isAsciiCapable="false" /> + <!-- TODO: This hindi_compact keyboard is a preliminary layout. + This isn't based on the final specification. --> <subtype android:icon="@drawable/ic_ime_switcher_dark" android:label="@string/subtype_generic_compact" android:subtypeId="0xe49c89a1" @@ -475,8 +477,6 @@ android:imeSubtypeExtraValue="KeyboardLayoutSet=mongolian,EmojiCapable" android:isAsciiCapable="false" /> - <!-- TODO: This Myanmar keyboard is a preliminary layout. - This isn't based on the final specification. --> <subtype android:icon="@drawable/ic_ime_switcher_dark" android:label="@string/subtype_generic" android:subtypeId="0x84c87c61" @@ -485,6 +485,8 @@ android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable,EmojiCapable" android:isAsciiCapable="true" /> + <!-- TODO: This Myanmar keyboard is a preliminary layout. + This isn't based on the final specification. --> <subtype android:icon="@drawable/ic_ime_switcher_dark" android:label="@string/subtype_generic" android:subtypeId="0xea266ea4" diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml index a39ce4ae8..3e3bedf15 100644 --- a/java/res/xml/prefs.xml +++ b/java/res/xml/prefs.xml @@ -168,9 +168,9 @@ android:key="pref_keyboard_layout_20110916" android:title="@string/keyboard_color_scheme" android:persistent="true" - android:entryValues="@array/keyboard_color_schemes_values" - android:entries="@array/keyboard_color_schemes" - android:defaultValue="@string/config_default_keyboard_theme_index" /> + android:entryValues="@array/keyboard_theme_ids" + android:entries="@array/keyboard_theme_names" + android:defaultValue="@string/config_default_keyboard_theme_id" /> <PreferenceScreen android:fragment="com.android.inputmethod.latin.settings.AdditionalSubtypeSettings" android:key="custom_input_styles" diff --git a/java/res/xml/prefs_for_debug.xml b/java/res/xml/prefs_for_debug.xml index 7b2b8eab4..bb6a64118 100644 --- a/java/res/xml/prefs_for_debug.xml +++ b/java/res/xml/prefs_for_debug.xml @@ -26,14 +26,6 @@ android:summary="@string/prefs_description_log" android:persistent="true" android:defaultValue="false" /> - <ListPreference - android:key="pref_keyboard_layout_20110916" - android:title="@string/keyboard_layout" - android:summary="%s" - android:persistent="true" - android:entryValues="@array/keyboard_layout_modes_values" - android:entries="@array/keyboard_layout_modes" - android:defaultValue="@string/config_default_keyboard_theme_index" /> <CheckBoxPreference android:key="debug_mode" android:title="@string/prefs_debug_mode" diff --git a/java/res/xml/rowkeys_myanmar1.xml b/java/res/xml/rowkeys_myanmar1.xml index 6460af565..b7c820922 100644 --- a/java/res/xml/rowkeys_myanmar1.xml +++ b/java/res/xml/rowkeys_myanmar1.xml @@ -25,50 +25,49 @@ <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" > - <!-- U+100E: "ဎ" MYANMAR LETTER DDHA --> + <!-- U+1027: "ဧ" MYANMAR LETTER E --> <Key - latin:keySpec="ဎ" + latin:keySpec="ဧ" latin:keyLabelFlags="fontNormal" /> - <!-- U+100D: "ဍ" MYANMAR LETTER DDA --> + <!-- U+104F: "၏" MYANMAR SYMBOL GENITIVE --> <Key - latin:keySpec="ဍ" + latin:keySpec="၏" latin:keyLabelFlags="fontNormal" /> - <!-- U+1052: "ၒ" MYANMAR LETTER VOCALIC R --> + <!-- U+1024: "ဤ" MYANMAR LETTER II --> <Key - latin:keySpec="ၒ" + latin:keySpec="ဤ" latin:keyLabelFlags="fontNormal" /> - <!-- U+100B: "ဋ" MYANMAR LETTER TTA --> + <!-- U+1023: "ဣ" MYANMAR LETTER I --> <Key - latin:keySpec="ဋ" + latin:keySpec="ဣ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1053: "ၓ" MYANMAR LETTER VOCALIC RR --> + <!-- U+104E: "၎" MYANMAR SYMBOL AFOREMENTIONED --> <Key - latin:keySpec="ၓ" + latin:keySpec="၎" latin:keyLabelFlags="fontNormal" /> - <!-- U+1054: "ၔ" MYANMAR LETTER VOCALIC L --> + <!-- U+1000/U+103B/U+1015/U+103A: "ကျပ်" + MYANMAR LETTER KA/MYANMAR CONSONANT SIGN MEDIAL YA/MYANMAR LETTER PA/MYANMAR SIGN ASAT --> <Key - latin:keySpec="ၔ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+1055: "ၕ" MYANMAR LETTER VOCALIC LL --> - <Key - latin:keySpec="ၕ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+101B: "ရ" MYANMAR LETTER RA --> + latin:keySpec="ကျပ်" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio|autoScale" /> + <!-- U+1029: "ဩ" MYANMAR LETTER O --> <Key - latin:keySpec="ရ" - latin:keyLabelFlags="fontNormal" /> + latin:keySpec="ဩ" + latin:keyLabelFlags="fontNormal|autoScale" /> + <!-- U+102A: "ဪ" MYANMAR LETTER AU --> <Key - latin:keySpec="*" /> + latin:keySpec="ဪ" + latin:keyLabelFlags="fontNormal|autoScale" /> + <!-- U+104D: "၍" MYANMAR SYMBOL COMPLETED --> <Key - latin:keySpec="(" /> + latin:keySpec="၍" + latin:keyLabelFlags="fontNormal" /> + <!-- U+104C: "၌" MYANMAR SYMBOL LOCATIVE --> <Key - latin:keySpec=")" /> + latin:keySpec="၌" + latin:keyLabelFlags="fontNormal" /> </case> <default> - <!-- U+1050: "ၐ" MYANMAR LETTER SHA --> - <Key - latin:keySpec="ၐ" - latin:keyLabelFlags="fontNormal" /> <!-- U+1041: "၁" MYANMAR DIGIT ONE --> <Key latin:keySpec="၁" diff --git a/java/res/xml/rowkeys_myanmar2.xml b/java/res/xml/rowkeys_myanmar2.xml index 558c38d4d..5f0115f39 100644 --- a/java/res/xml/rowkeys_myanmar2.xml +++ b/java/res/xml/rowkeys_myanmar2.xml @@ -25,49 +25,45 @@ <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" > - <!-- U+1008: "ဈ" MYANMAR LETTER JHA --> + <!-- U+1017: "ဗ" MYANMAR LETTER BA --> <Key - latin:keySpec="ဈ" + latin:keySpec="ဗ" latin:keyLabelFlags="fontNormal" /> - <!-- U+101D: "ဝ" MYANMAR LETTER WA --> + <!-- U+1012: "ဒ" MYANMAR LETTER DA --> <Key - latin:keySpec="ဝ" + latin:keySpec="ဒ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1023: "ဣ" MYANMAR LETTER I --> + <!-- U+1013: "ဓ" MYANMAR LETTER DHA --> <Key - latin:keySpec="ဣ" + latin:keySpec="ဓ" latin:keyLabelFlags="fontNormal" /> - <!-- U+104E: "၎" MYANMAR SYMBOL AFOREMENTIONED --> + <!-- U+1003: "ဃ" MYANMAR LETTER GHA --> <Key - latin:keySpec="၎" + latin:keySpec="ဃ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1024: "ဤ" MYANMAR LETTER II --> + <!-- U+100E: "ဎ" MYANMAR LETTER DDHA --> <Key - latin:keySpec="ဤ" + latin:keySpec="ဎ" latin:keyLabelFlags="fontNormal" /> - <!-- U+104C: "၌" MYANMAR SYMBOL LOCATIVE --> + <!-- U+103F: "ဿ" MYANMAR LETTER GREAT SA --> <Key - latin:keySpec="၌" + latin:keySpec="ဿ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1025: "ဥ" MYANMAR LETTER U --> + <!-- U+100F: "ဏ" MYANMAR LETTER NNA --> <Key - latin:keySpec="ဥ" + latin:keySpec="ဏ" latin:keyLabelFlags="fontNormal" /> - <!-- U+104D: "၍" MYANMAR SYMBOL COMPLETED --> + <!-- U+1008: "ဈ" MYANMAR LETTER JHA --> <Key - latin:keySpec="၍" + latin:keySpec="ဈ" latin:keyLabelFlags="fontNormal" /> - <!-- U+103F: "ဿ" MYANMAR LETTER GREAT SA --> - <Key - latin:keySpec="ဿ" - latin:keyLabelFlags="fontNormal|autoXScale" /> - <!-- U+100F: "ဏ" MYANMAR LETTER NNA --> + <!-- U+1007: "ဇ" MYANMAR LETTER JA --> <Key - latin:keySpec="ဏ" + latin:keySpec="ဇ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1027: "ဧ" MYANMAR LETTER E --> + <!-- U+1002: "ဂ" MYANMAR LETTER GA --> <Key - latin:keySpec="ဧ" + latin:keySpec="ဂ" latin:keyLabelFlags="fontNormal" /> </case> <default> @@ -111,10 +107,6 @@ <Key latin:keySpec="စ" latin:keyLabelFlags="fontNormal" /> - <!-- U+101F: "ဟ" MYANMAR LETTER HA --> - <Key - latin:keySpec="ဟ" - latin:keyLabelFlags="fontNormal" /> </default> </switch> </merge> diff --git a/java/res/xml/rowkeys_myanmar3.xml b/java/res/xml/rowkeys_myanmar3.xml index 2d0d48cc7..612bcd31b 100644 --- a/java/res/xml/rowkeys_myanmar3.xml +++ b/java/res/xml/rowkeys_myanmar3.xml @@ -25,10 +25,18 @@ <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" > - <!-- U+1017: "ဗ" MYANMAR LETTER BA --> + <!-- U+101A: "ယ" MYANMAR LETTER YA --> <Key - latin:keySpec="ဗ" + latin:keySpec="ယ" latin:keyLabelFlags="fontNormal" /> + <!-- U+1039: "္" MYANMAR SIGN VIRAMA --> + <Key + latin:keySpec="္" + latin:keyLabelFlags="fontNormal" /> + <!-- U+1004/U+103A/U+1039: "င်္င" MYANMAR LETTER NGA/MYANMAR SIGN ASAT/MYANMAR SIGN VIRAMA --> + <Key + latin:keySpec="င်္" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> <!-- U+103E: "ှ" MYANMAR CONSONANT SIGN MEDIAL HA --> <Key latin:keySpec="ှ" @@ -37,33 +45,25 @@ <Key latin:keySpec="ီ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1039: "္" MYANMAR SIGN VIRAMA --> - <Key - latin:keySpec="္" - latin:keyLabelFlags="fontNormal" /> - <!-- U+103D: "ွ" MYANMAR CONSONANT SIGN MEDIAL WA --> + <!-- U+1030: "ူ" MYANMAR VOWEL SIGN UU --> <Key - latin:keySpec="ွ" + latin:keySpec="ူ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1036: "ံ" MYANMAR SIGN ANUSVARA --> + <!-- U+102B: "ါ" MYANMAR VOWEL SIGN TALL AA --> <Key - latin:keySpec="ံ" + latin:keySpec="ါ" latin:keyLabelFlags="fontNormal" /> <!-- U+1032: "ဲ" MYANMAR VOWEL SIGN AI --> <Key latin:keySpec="ဲ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1012: "ဒ" MYANMAR LETTER DA --> - <Key - latin:keySpec="ဒ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+1013: "ဓ" MYANMAR LETTER DHA --> + <!-- U+1036: "ံ" MYANMAR SIGN ANUSVARA --> <Key - latin:keySpec="ဓ" + latin:keySpec="ံ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1002: "ဂ" MYANMAR LETTER GA --> + <!-- U+101F: "ဟ" MYANMAR LETTER HA --> <Key - latin:keySpec="ဂ" + latin:keySpec="ဟ" latin:keyLabelFlags="fontNormal" /> </case> <default> @@ -75,33 +75,44 @@ <Key latin:keySpec="ျ" latin:keyLabelFlags="fontNormal" /> - <!-- U+102D: "ိ" MYANMAR VOWEL SIGN I --> + <!-- U+103C: "ြ" MYANMAR CONSONANT SIGN MEDIAL RA --> <Key - latin:keySpec="ိ" + latin:keySpec="ြ" latin:keyLabelFlags="fontNormal" /> - <!-- U+103A: "်" MYANMAR SIGN ASAT --> + <!-- U+103D: "ွ" MYANMAR CONSONANT SIGN MEDIAL WA + U+103E: "ှ" MYANMAR CONSONANT SIGN MEDIAL HA + U+103D/U+103E: "ွှ" MYANMAR CONSONANT SIGN MEDIAL WA/MYANMAR CONSONANT SIGN MEDIAL HA --> <Key - latin:keySpec="်" + latin:keySpec="ွ" + latin:moreKeys="ှ,ွှ" latin:keyLabelFlags="fontNormal" /> - <!-- U+102B: "ါ" MYANMAR VOWEL SIGN TALL AA --> + <!-- U+102D: "ိ" MYANMAR VOWEL SIGN I + U+102E: "ီ" MYANMAR VOWEL SIGN II --> <Key - latin:keySpec="ါ" + latin:keySpec="ိ" + latin:moreKeys="ီ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1037: "့" MYANMAR SIGN DOT BELOW --> + <!-- U+102F: "ု" MYANMAR VOWEL SIGN U + U+1030: "ူ" MYANMAR VOWEL SIGN UU --> <Key - latin:keySpec="့" + latin:keySpec="ု" + latin:moreKeys="ူ" latin:keyLabelFlags="fontNormal" /> - <!-- U+103C: "ြ" MYANMAR CONSONANT SIGN MEDIAL RA --> + <!-- U+102C: "ာ" MYANMAR VOWEL SIGN AA --> <Key - latin:keySpec="ြ" + latin:keySpec="ာ" latin:keyLabelFlags="fontNormal" /> - <!-- U+102F: "ု" MYANMAR VOWEL SIGN U --> + <!-- U+103A: "်" MYANMAR SIGN ASAT + U+1032: "ဲ" MYANMAR VOWEL SIGN AI --> <Key - latin:keySpec="ု" + latin:keySpec="်" + latin:moreKeys="ဲ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1030: "ူ" MYANMAR VOWEL SIGN UU --> + <!-- U+1037: "့" MYANMAR SIGN DOT BELOW + U+1036: "ံ" MYANMAR SIGN ANUSVARA --> <Key - latin:keySpec="ူ" + latin:keySpec="့" + latin:moreKeys="ံ" latin:keyLabelFlags="fontNormal" /> <!-- U+1038: "း" MYANMAR SIGN VISARGA --> <Key diff --git a/java/res/xml/rowkeys_myanmar4.xml b/java/res/xml/rowkeys_myanmar4.xml index cfd11123c..57466c565 100644 --- a/java/res/xml/rowkeys_myanmar4.xml +++ b/java/res/xml/rowkeys_myanmar4.xml @@ -25,42 +25,40 @@ <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" > - <!-- U+1007: "ဇ" MYANMAR LETTER JA --> + <!-- U+1025: "ဥ" MYANMAR LETTER U --> <Key - latin:keySpec="ဇ" + latin:keySpec="ဥ" latin:keyLabelFlags="fontNormal" /> - <!-- U+100C: "ဌ" MYANMAR LETTER TTHA --> - <Key - latin:keySpec="ဌ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+1003: "ဃ" MYANMAR LETTER GHA --> + <!-- U+1026: "ဦ" MYANMAR LETTER UU --> <Key - latin:keySpec="ဃ" + latin:keySpec="ဦ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1020: "ဠ" MYANMAR LETTER LLA --> + <!-- U+100C: "ဌ" MYANMAR LETTER TTHA --> <Key - latin:keySpec="ဠ" + latin:keySpec="ဌ" latin:keyLabelFlags="fontNormal" /> - <!-- U+101A: "ယ" MYANMAR LETTER YA --> + <!-- U+100B: "ဋ" MYANMAR LETTER TTA --> <Key - latin:keySpec="ယ" + latin:keySpec="ဋ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1009: "ဉ" MYANMAR LETTER NYA --> + <!-- U+100D: "ဍ" MYANMAR LETTER DDA --> <Key - latin:keySpec="ဉ" + latin:keySpec="ဍ" latin:keyLabelFlags="fontNormal" /> - <!-- U+1026: "ဦ" MYANMAR LETTER UU --> + <!-- U+1020: "ဠ" MYANMAR LETTER LLA --> <Key - latin:keySpec="ဦ" + latin:keySpec="ဠ" latin:keyLabelFlags="fontNormal" /> - <!-- U+102A: "ဪ" MYANMAR LETTER AU --> + <!-- U+100B/U+1039/U+100C: "ဋ္ဌ" MYANMAR LETTER TTA/MYANMAR SIGN VIRAMA/MYANMAR LETTER TTHA --> <Key - latin:keySpec="ဪ" - latin:keyLabelFlags="fontNormal|autoXScale" /> - <!-- U+1051: "ၑ" MYANMAR LETTER SSA --> + latin:keySpec="ဋ္ဌ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> + <!-- U+100F/U+1039/U+100D: "ဏ္ဍ" MYANMAR LETTER NNA/MYANMAR SIGN VIRAMA/MYANMAR LETTER DDA + U+100F/U+1039/U+100C: "ဏ္ဌ" MYANMAR LETTER NNA/MYANMAR SIGN VIRAMA/MYANMAR LETTER TTHA --> <Key - latin:keySpec="ၑ" - latin:keyLabelFlags="fontNormal" /> + latin:keySpec="ဏ္ဍ" + latin:moreKeys="ဏ္ဌ" + latin:keyLabelFlags="fontNormal|followKeyLetterRatio" /> </case> <default> <!-- U+1016: "ဖ" MYANMAR LETTER PHA --> @@ -83,21 +81,19 @@ <Key latin:keySpec="ဘ" latin:keyLabelFlags="fontNormal" /> - <!-- U+100A: "ည" MYANMAR LETTER NNYA --> + <!-- U+100A: "ည" MYANMAR LETTER NNYA + U+1009: "ဉ" MYANMAR LETTER NYA --> <Key latin:keySpec="ည" + latin:moreKeys="ဉ" latin:keyLabelFlags="fontNormal" /> - <!-- U+102C: "ာ" MYANMAR VOWEL SIGN AA --> - <Key - latin:keySpec="ာ" - latin:keyLabelFlags="fontNormal" /> - <!-- U+1029: "ဩ" MYANMAR LETTER O --> + <!-- U+101B: "ရ" MYANMAR LETTER RA --> <Key - latin:keySpec="ဩ" + latin:keySpec="ရ" latin:keyLabelFlags="fontNormal" /> - <!-- U+104F: "၏" MYANMAR SYMBOL GENITIVE --> + <!-- U+101D: "ဝ" MYANMAR LETTER WA --> <Key - latin:keySpec="၏" + latin:keySpec="ဝ" latin:keyLabelFlags="fontNormal" /> </default> </switch> diff --git a/java/res/xml/rows_myanmar.xml b/java/res/xml/rows_myanmar.xml index 32c923dec..5de47f7b8 100644 --- a/java/res/xml/rows_myanmar.xml +++ b/java/res/xml/rows_myanmar.xml @@ -24,26 +24,25 @@ <include latin:keyboardLayout="@xml/key_styles_common" /> <Row - latin:keyWidth="9.0909%p" + latin:keyWidth="10.0%p" > <include latin:keyboardLayout="@xml/rowkeys_myanmar1" /> </Row> <Row - latin:keyWidth="9.0909%p" + latin:keyWidth="10.0%p" > <include latin:keyboardLayout="@xml/rowkeys_myanmar2" /> </Row> <Row - latin:keyWidth="9.0909%p" + latin:keyWidth="10.0%p" > <include - latin:keyXPos="4.5454%p" latin:keyboardLayout="@xml/rowkeys_myanmar3" /> </Row> <Row - latin:keyWidth="9.0909%p" + latin:keyWidth="10.0%p" > <Key latin:keyStyle="shiftKeyStyle" /> diff --git a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatUtils.java b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatUtils.java index 14ee654f3..81df17127 100644 --- a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatUtils.java +++ b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatUtils.java @@ -17,11 +17,12 @@ package com.android.inputmethod.compat; import android.inputmethodservice.InputMethodService; +import com.android.inputmethod.latin.define.ProductionFlag; import java.lang.reflect.Method; public final class InputMethodServiceCompatUtils { - // Note that InputMethodService.enableHardwareAcceleration() has been introduced + // Note that {@link InputMethodService#enableHardwareAcceleration} has been introduced // in API level 17 (Build.VERSION_CODES.JELLY_BEAN_MR1). private static final Method METHOD_enableHardwareAcceleration = CompatUtils.getMethod(InputMethodService.class, "enableHardwareAcceleration"); @@ -34,4 +35,30 @@ public final class InputMethodServiceCompatUtils { return (Boolean)CompatUtils.invoke(ims, false /* defaultValue */, METHOD_enableHardwareAcceleration); } + + public static void setCursorAnchorMonitorMode(final InputMethodService ims, final int mode) { + if (ProductionFlag.USES_CURSOR_ANCHOR_MONITOR) { + ExperimentalAPIUtils.setCursorAnchorMonitorMode(ims, mode); + } + } + + /* + * For unreleased APIs. ProGuard will strip this class entirely, unless used explicitly. + */ + private static final class ExperimentalAPIUtils { + // Note that {@link InputMethodManager#setCursorAnchorMonitorMode} is not yet available as + // an official API as of API level 19 (Build.VERSION_CODES.KITKAT). + private static final Method METHOD_setCursorAnchorMonitorMode = CompatUtils.getMethod( + InputMethodService.class, "setCursorAnchorMonitorMode", int.class); + + private ExperimentalAPIUtils() { + // This utility class is not publicly instantiable. + } + + public static void setCursorAnchorMonitorMode(final InputMethodService ims, + final int mode) { + CompatUtils.invoke(ims, null /* defaultValue */, + METHOD_setCursorAnchorMonitorMode, mode); + } + } } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java index 949f03794..6131a9b17 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -38,35 +38,12 @@ import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.RichInputMethodManager; import com.android.inputmethod.latin.SubtypeSwitcher; import com.android.inputmethod.latin.WordComposer; -import com.android.inputmethod.latin.settings.Settings; import com.android.inputmethod.latin.settings.SettingsValues; import com.android.inputmethod.latin.utils.ResourceUtils; public final class KeyboardSwitcher implements KeyboardState.SwitchActions { private static final String TAG = KeyboardSwitcher.class.getSimpleName(); - public static final class KeyboardTheme { - public final int mThemeId; - public final int mStyleId; - - // Note: The themeId should be aligned with "themeId" attribute of Keyboard style - // in values/style.xml. - public KeyboardTheme(final int themeId, final int styleId) { - mThemeId = themeId; - mStyleId = styleId; - } - } - - public static final int THEME_INDEX_ICS = 0; - public static final int THEME_INDEX_GB = 1; - public static final int THEME_INDEX_KLP = 2; - public static final int DEFAULT_THEME_INDEX = THEME_INDEX_KLP; - public static final KeyboardTheme[] KEYBOARD_THEMES = { - new KeyboardTheme(THEME_INDEX_ICS, R.style.KeyboardTheme_ICS), - new KeyboardTheme(THEME_INDEX_GB, R.style.KeyboardTheme_GB), - new KeyboardTheme(THEME_INDEX_KLP, R.style.KeyboardTheme_KLP), - }; - private SubtypeSwitcher mSubtypeSwitcher; private SharedPreferences mPrefs; @@ -88,7 +65,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { * what user actually typed. */ private boolean mIsAutoCorrectionActive; - private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[DEFAULT_THEME_INDEX]; + private KeyboardTheme mKeyboardTheme = KeyboardTheme.getDefaultKeyboardTheme(); private Context mThemeContext; private static final KeyboardSwitcher sInstance = new KeyboardSwitcher(); @@ -117,25 +94,12 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { public void updateKeyboardTheme() { final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper( - mLatinIME, getKeyboardTheme(mLatinIME, mPrefs)); + mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs)); if (themeUpdated && mKeyboardView != null) { mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled)); } } - private static KeyboardTheme getKeyboardTheme(final Context context, - final SharedPreferences prefs) { - final Resources res = context.getResources(); - final int index = Settings.readKeyboardThemeIndex(prefs, res); - if (index >= 0 && index < KEYBOARD_THEMES.length) { - return KEYBOARD_THEMES[index]; - } - final int defaultThemeIndex = Settings.resetAndGetDefaultKeyboardThemeIndex(prefs, res); - Log.w(TAG, "Illegal keyboard theme in preference: " + index + ", default to " - + defaultThemeIndex); - return KEYBOARD_THEMES[defaultThemeIndex]; - } - private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context, final KeyboardTheme keyboardTheme) { if (mThemeContext == null || mKeyboardTheme.mThemeId != keyboardTheme.mThemeId) { diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java new file mode 100644 index 000000000..4db72ad4d --- /dev/null +++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache 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 android.content.SharedPreferences; +import android.util.Log; + +import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.settings.Settings; + +public final class KeyboardTheme { + private static final String TAG = KeyboardTheme.class.getSimpleName(); + + public static final int THEME_ID_ICS = 0; + public static final int THEME_ID_KLP = 2; + private static final int DEFAULT_THEME_ID = THEME_ID_KLP; + + private static final KeyboardTheme[] KEYBOARD_THEMES = { + new KeyboardTheme(THEME_ID_ICS, R.style.KeyboardTheme_ICS), + new KeyboardTheme(THEME_ID_KLP, R.style.KeyboardTheme_KLP), + }; + + public final int mThemeId; + public final int mStyleId; + + // Note: The themeId should be aligned with "themeId" attribute of Keyboard style + // in values/style.xml. + public KeyboardTheme(final int themeId, final int styleId) { + mThemeId = themeId; + mStyleId = styleId; + } + + private static KeyboardTheme searchKeyboardTheme(final int themeId) { + // TODO: This search algorithm isn't optimal if there are many themes. + for (final KeyboardTheme theme : KEYBOARD_THEMES) { + if (theme.mThemeId == themeId) { + return theme; + } + } + return null; + } + + public static KeyboardTheme getDefaultKeyboardTheme() { + return searchKeyboardTheme(DEFAULT_THEME_ID); + } + + public static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs) { + final String themeIdString = prefs.getString(Settings.PREF_KEYBOARD_LAYOUT, null); + if (themeIdString == null) { + return getDefaultKeyboardTheme(); + } + try { + final int themeId = Integer.parseInt(themeIdString); + final KeyboardTheme theme = searchKeyboardTheme(themeId); + if (theme != null) { + return theme; + } + Log.w(TAG, "Unknown keyboard theme in preference: " + themeIdString); + } catch (final NumberFormatException e) { + Log.w(TAG, "Illegal keyboard theme in preference: " + themeIdString); + } + // Reset preference to default value. + final String defaultThemeIdString = Integer.toString(DEFAULT_THEME_ID); + prefs.edit().putString(Settings.PREF_KEYBOARD_LAYOUT, defaultThemeIdString).apply(); + return getDefaultKeyboardTheme(); + } +} diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java index 37514be91..14fa76744 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java @@ -120,98 +120,98 @@ public final class KeyboardTextsTable { /* 30: 5 */ "keyspec_east_slavic_row3_5", /* 31: 5 */ "morekeys_cyrillic_soft_sign", /* 32: 4 */ "morekeys_nordic_row2_11", - /* 33: 4 */ "keyspec_symbols_1", - /* 34: 4 */ "keyspec_symbols_2", - /* 35: 4 */ "keyspec_symbols_3", - /* 36: 4 */ "keyspec_symbols_4", - /* 37: 4 */ "keyspec_symbols_5", - /* 38: 4 */ "keyspec_symbols_6", - /* 39: 4 */ "keyspec_symbols_7", - /* 40: 4 */ "keyspec_symbols_8", - /* 41: 4 */ "keyspec_symbols_9", - /* 42: 4 */ "keyspec_symbols_0", - /* 43: 4 */ "keylabel_to_symbol", - /* 44: 4 */ "additional_morekeys_symbols_1", - /* 45: 4 */ "additional_morekeys_symbols_2", - /* 46: 4 */ "additional_morekeys_symbols_3", - /* 47: 4 */ "additional_morekeys_symbols_4", - /* 48: 4 */ "additional_morekeys_symbols_5", - /* 49: 4 */ "additional_morekeys_symbols_6", - /* 50: 4 */ "additional_morekeys_symbols_7", - /* 51: 4 */ "additional_morekeys_symbols_8", - /* 52: 4 */ "additional_morekeys_symbols_9", - /* 53: 4 */ "additional_morekeys_symbols_0", - /* 54: 3 */ "keyspec_swiss_row1_11", - /* 55: 3 */ "keyspec_swiss_row2_10", - /* 56: 3 */ "keyspec_swiss_row2_11", - /* 57: 3 */ "morekeys_swiss_row1_11", - /* 58: 3 */ "morekeys_swiss_row2_10", - /* 59: 3 */ "morekeys_swiss_row2_11", - /* 60: 3 */ "morekeys_punctuation", - /* 61: 3 */ "morekeys_star", - /* 62: 3 */ "keyspec_left_parenthesis", - /* 63: 3 */ "keyspec_right_parenthesis", - /* 64: 3 */ "keyspec_left_square_bracket", - /* 65: 3 */ "keyspec_right_square_bracket", - /* 66: 3 */ "keyspec_left_curly_bracket", - /* 67: 3 */ "keyspec_right_curly_bracket", - /* 68: 3 */ "keyspec_less_than", - /* 69: 3 */ "keyspec_greater_than", - /* 70: 3 */ "keyspec_less_than_equal", - /* 71: 3 */ "keyspec_greater_than_equal", - /* 72: 3 */ "keyspec_left_double_angle_quote", - /* 73: 3 */ "keyspec_right_double_angle_quote", - /* 74: 3 */ "keyspec_left_single_angle_quote", - /* 75: 3 */ "keyspec_right_single_angle_quote", - /* 76: 3 */ "keyspec_tablet_comma", - /* 77: 3 */ "morekeys_tablet_period", - /* 78: 3 */ "morekeys_question", - /* 79: 2 */ "morekeys_h", - /* 80: 2 */ "morekeys_w", - /* 81: 2 */ "morekeys_east_slavic_row2_2", - /* 82: 2 */ "morekeys_cyrillic_u", - /* 83: 2 */ "morekeys_cyrillic_en", - /* 84: 2 */ "morekeys_cyrillic_ghe", - /* 85: 2 */ "morekeys_cyrillic_o", - /* 86: 2 */ "morekeys_cyrillic_i", - /* 87: 2 */ "keyspec_south_slavic_row1_6", - /* 88: 2 */ "keyspec_south_slavic_row2_11", - /* 89: 2 */ "keyspec_south_slavic_row3_1", - /* 90: 2 */ "keyspec_south_slavic_row3_8", - /* 91: 2 */ "keyspec_spanish_row2_10", - /* 92: 2 */ "morekeys_bullet", - /* 93: 2 */ "morekeys_left_parenthesis", - /* 94: 2 */ "morekeys_right_parenthesis", - /* 95: 2 */ "morekeys_arabic_diacritics", - /* 96: 2 */ "keyspec_comma", - /* 97: 2 */ "keyhintlabel_tablet_comma", - /* 98: 2 */ "morekeys_tablet_comma", - /* 99: 2 */ "keyhintlabel_period", - /* 100: 2 */ "morekeys_period", - /* 101: 2 */ "keyhintlabel_tablet_period", - /* 102: 2 */ "keyspec_symbols_question", - /* 103: 2 */ "keyspec_symbols_semicolon", - /* 104: 2 */ "keyspec_symbols_percent", - /* 105: 2 */ "morekeys_symbols_semicolon", - /* 106: 2 */ "morekeys_symbols_percent", - /* 107: 1 */ "morekeys_v", - /* 108: 1 */ "morekeys_j", - /* 109: 1 */ "morekeys_q", - /* 110: 1 */ "morekeys_x", - /* 111: 1 */ "keyspec_q", - /* 112: 1 */ "keyspec_w", - /* 113: 1 */ "keyspec_y", - /* 114: 1 */ "keyspec_x", - /* 115: 1 */ "morekeys_east_slavic_row2_11", - /* 116: 1 */ "morekeys_cyrillic_ka", - /* 117: 1 */ "morekeys_cyrillic_a", - /* 118: 1 */ "morekeys_currency_dollar", - /* 119: 1 */ "morekeys_tablet_punctuation", - /* 120: 1 */ "morekeys_plus", - /* 121: 1 */ "morekeys_less_than", - /* 122: 1 */ "morekeys_greater_than", - /* 123: 1 */ "keyspec_period", - /* 124: 1 */ "keyspec_tablet_period", + /* 33: 4 */ "morekeys_punctuation", + /* 34: 4 */ "keyspec_symbols_1", + /* 35: 4 */ "keyspec_symbols_2", + /* 36: 4 */ "keyspec_symbols_3", + /* 37: 4 */ "keyspec_symbols_4", + /* 38: 4 */ "keyspec_symbols_5", + /* 39: 4 */ "keyspec_symbols_6", + /* 40: 4 */ "keyspec_symbols_7", + /* 41: 4 */ "keyspec_symbols_8", + /* 42: 4 */ "keyspec_symbols_9", + /* 43: 4 */ "keyspec_symbols_0", + /* 44: 4 */ "keylabel_to_symbol", + /* 45: 4 */ "additional_morekeys_symbols_1", + /* 46: 4 */ "additional_morekeys_symbols_2", + /* 47: 4 */ "additional_morekeys_symbols_3", + /* 48: 4 */ "additional_morekeys_symbols_4", + /* 49: 4 */ "additional_morekeys_symbols_5", + /* 50: 4 */ "additional_morekeys_symbols_6", + /* 51: 4 */ "additional_morekeys_symbols_7", + /* 52: 4 */ "additional_morekeys_symbols_8", + /* 53: 4 */ "additional_morekeys_symbols_9", + /* 54: 4 */ "additional_morekeys_symbols_0", + /* 55: 4 */ "keyspec_tablet_comma", + /* 56: 3 */ "keyspec_swiss_row1_11", + /* 57: 3 */ "keyspec_swiss_row2_10", + /* 58: 3 */ "keyspec_swiss_row2_11", + /* 59: 3 */ "morekeys_swiss_row1_11", + /* 60: 3 */ "morekeys_swiss_row2_10", + /* 61: 3 */ "morekeys_swiss_row2_11", + /* 62: 3 */ "morekeys_star", + /* 63: 3 */ "keyspec_left_parenthesis", + /* 64: 3 */ "keyspec_right_parenthesis", + /* 65: 3 */ "keyspec_left_square_bracket", + /* 66: 3 */ "keyspec_right_square_bracket", + /* 67: 3 */ "keyspec_left_curly_bracket", + /* 68: 3 */ "keyspec_right_curly_bracket", + /* 69: 3 */ "keyspec_less_than", + /* 70: 3 */ "keyspec_greater_than", + /* 71: 3 */ "keyspec_less_than_equal", + /* 72: 3 */ "keyspec_greater_than_equal", + /* 73: 3 */ "keyspec_left_double_angle_quote", + /* 74: 3 */ "keyspec_right_double_angle_quote", + /* 75: 3 */ "keyspec_left_single_angle_quote", + /* 76: 3 */ "keyspec_right_single_angle_quote", + /* 77: 3 */ "morekeys_tablet_comma", + /* 78: 3 */ "keyhintlabel_period", + /* 79: 3 */ "morekeys_tablet_period", + /* 80: 3 */ "morekeys_question", + /* 81: 2 */ "morekeys_h", + /* 82: 2 */ "morekeys_w", + /* 83: 2 */ "morekeys_east_slavic_row2_2", + /* 84: 2 */ "morekeys_cyrillic_u", + /* 85: 2 */ "morekeys_cyrillic_en", + /* 86: 2 */ "morekeys_cyrillic_ghe", + /* 87: 2 */ "morekeys_cyrillic_o", + /* 88: 2 */ "morekeys_cyrillic_i", + /* 89: 2 */ "keyspec_south_slavic_row1_6", + /* 90: 2 */ "keyspec_south_slavic_row2_11", + /* 91: 2 */ "keyspec_south_slavic_row3_1", + /* 92: 2 */ "keyspec_south_slavic_row3_8", + /* 93: 2 */ "morekeys_tablet_punctuation", + /* 94: 2 */ "keyspec_spanish_row2_10", + /* 95: 2 */ "morekeys_bullet", + /* 96: 2 */ "morekeys_left_parenthesis", + /* 97: 2 */ "morekeys_right_parenthesis", + /* 98: 2 */ "morekeys_arabic_diacritics", + /* 99: 2 */ "keyspec_comma", + /* 100: 2 */ "keyhintlabel_tablet_comma", + /* 101: 2 */ "keyspec_period", + /* 102: 2 */ "morekeys_period", + /* 103: 2 */ "keyspec_tablet_period", + /* 104: 2 */ "keyhintlabel_tablet_period", + /* 105: 2 */ "keyspec_symbols_question", + /* 106: 2 */ "keyspec_symbols_semicolon", + /* 107: 2 */ "keyspec_symbols_percent", + /* 108: 2 */ "morekeys_symbols_semicolon", + /* 109: 2 */ "morekeys_symbols_percent", + /* 110: 1 */ "morekeys_v", + /* 111: 1 */ "morekeys_j", + /* 112: 1 */ "morekeys_q", + /* 113: 1 */ "morekeys_x", + /* 114: 1 */ "keyspec_q", + /* 115: 1 */ "keyspec_w", + /* 116: 1 */ "keyspec_y", + /* 117: 1 */ "keyspec_x", + /* 118: 1 */ "morekeys_east_slavic_row2_11", + /* 119: 1 */ "morekeys_cyrillic_ka", + /* 120: 1 */ "morekeys_cyrillic_a", + /* 121: 1 */ "morekeys_currency_dollar", + /* 122: 1 */ "morekeys_plus", + /* 123: 1 */ "morekeys_less_than", + /* 124: 1 */ "morekeys_greater_than", /* 125: 1 */ "morekeys_exclamation", /* 126: 0 */ "morekeys_currency", /* 127: 0 */ "morekeys_symbols_1", @@ -278,6 +278,7 @@ public final class KeyboardTextsTable { /* morekeys_r ~ */ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, /* ~ morekeys_nordic_row2_11 */ + /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&", /* keyspec_symbols_1 */ "1", /* keyspec_symbols_2 */ "2", /* keyspec_symbols_3 */ "3", @@ -291,10 +292,12 @@ public final class KeyboardTextsTable { // Label for "switch to symbols" key. /* keylabel_to_symbol */ "?123", /* additional_morekeys_symbols_1 ~ */ - EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, - EMPTY, EMPTY, EMPTY, + EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, + /* ~ additional_morekeys_symbols_0 */ + /* keyspec_tablet_comma */ ",", + /* keyspec_swiss_row1_11 ~ */ + EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, /* ~ morekeys_swiss_row2_11 */ - /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&", // U+2020: "†" DAGGER // U+2021: "‡" DOUBLE DAGGER // U+2605: "★" BLACK STAR @@ -321,13 +324,15 @@ public final class KeyboardTextsTable { /* keyspec_right_double_angle_quote */ "\u00BB", /* keyspec_left_single_angle_quote */ "\u2039", /* keyspec_right_single_angle_quote */ "\u203A", - /* keyspec_tablet_comma */ ",", + /* morekeys_tablet_comma */ EMPTY, + /* keyhintlabel_period */ EMPTY, /* morekeys_tablet_period */ "!text/morekeys_tablet_punctuation", // U+00BF: "¿" INVERTED QUESTION MARK /* morekeys_question */ "\u00BF", /* morekeys_h ~ */ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, /* ~ keyspec_south_slavic_row3_8 */ + /* morekeys_tablet_punctuation */ "!autoColumnOrder!7,\\,,',#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,@,:,-,\",+,\\%,&", // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE /* keyspec_spanish_row2_10 */ "\u00F1", // U+266A: "♪" EIGHTH NOTE @@ -341,10 +346,11 @@ public final class KeyboardTextsTable { /* morekeys_arabic_diacritics */ EMPTY, // Comma key /* keyspec_comma */ ",", - /* keyhintlabel_tablet_comma ~ */ - EMPTY, EMPTY, EMPTY, - /* ~ keyhintlabel_period */ + /* keyhintlabel_tablet_comma */ EMPTY, + // Period key + /* keyspec_period */ ".", /* morekeys_period */ "!text/morekeys_punctuation", + /* keyspec_tablet_period */ ".", /* keyhintlabel_tablet_period */ EMPTY, /* keyspec_symbols_question */ "?", /* keyspec_symbols_semicolon */ ";", @@ -368,14 +374,10 @@ public final class KeyboardTextsTable { // U+00A5: "¥" YEN SIGN // U+20B1: "₱" PESO SIGN /* morekeys_currency_dollar */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", - /* morekeys_tablet_punctuation */ "!autoColumnOrder!7,\\,,',#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,@,:,-,\",+,\\%,&", // U+00B1: "±" PLUS-MINUS SIGN /* morekeys_plus */ "\u00B1", /* morekeys_less_than */ "!fixedColumnOrder!3,!text/keyspec_left_single_angle_quote,!text/keyspec_less_than_equal,!text/keyspec_left_double_angle_quote", /* morekeys_greater_than */ "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_right_double_angle_quote", - // Period key - /* keyspec_period */ ".", - /* keyspec_tablet_period */ ".", // U+00A1: "¡" INVERTED EXCLAMATION MARK /* morekeys_exclamation */ "\u00A1", /* morekeys_currency */ "$,\u00A2,\u20AC,\u00A3,\u00A5,\u20B1", @@ -534,8 +536,8 @@ public final class KeyboardTextsTable { /* keylabel_to_alpha */ "\u0623\u200C\u0628\u200C\u062C", /* morekeys_s ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - /* ~ morekeys_nordic_row2_11 */ + null, null, null, null, null, null, null, null, null, + /* ~ morekeys_punctuation */ // U+0661: "١" ARABIC-INDIC DIGIT ONE /* keyspec_symbols_1 */ "\u0661", // U+0662: "٢" ARABIC-INDIC DIGIT TWO @@ -571,9 +573,13 @@ public final class KeyboardTextsTable { // U+066B: "٫" ARABIC DECIMAL SEPARATOR // U+066C: "٬" ARABIC THOUSANDS SEPARATOR /* additional_morekeys_symbols_0 */ "0,\u066B,\u066C", + // U+061F: "؟" ARABIC QUESTION MARK + // U+060C: "،" ARABIC COMMA + // U+061B: "؛" ARABIC SEMICOLON + /* keyspec_tablet_comma */ "\u060C", /* keyspec_swiss_row1_11 ~ */ - null, null, null, null, null, null, null, - /* ~ morekeys_punctuation */ + null, null, null, null, null, null, + /* ~ morekeys_swiss_row2_11 */ // U+2605: "★" BLACK STAR // U+066D: "٭" ARABIC FIVE POINTED STAR /* morekeys_star */ "\u2605,\u066D", @@ -597,15 +603,14 @@ public final class KeyboardTextsTable { /* keyspec_right_double_angle_quote */ "\u00BB|\u00AB", /* keyspec_left_single_angle_quote */ "\u2039|\u203A", /* keyspec_right_single_angle_quote */ "\u203A|\u2039", - // U+061F: "؟" ARABIC QUESTION MARK - // U+060C: "،" ARABIC COMMA - // U+061B: "؛" ARABIC SEMICOLON - /* keyspec_tablet_comma */ "\u060C", + /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,\",\'", + // U+0651: "ّ" ARABIC SHADDA + /* keyhintlabel_period */ "\u0651", /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics", // U+00BF: "¿" INVERTED QUESTION MARK /* morekeys_question */ "?,\u00BF", /* morekeys_h ~ */ - 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, /* ~ keyspec_spanish_row2_10 */ // U+266A: "♪" EIGHTH NOTE /* morekeys_bullet */ "\u266A", @@ -635,10 +640,9 @@ public final class KeyboardTextsTable { // U+060C: "،" ARABIC COMMA /* keyspec_comma */ "\u060C", /* keyhintlabel_tablet_comma */ "\u061F", - /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,\",\'", - // U+0651: "ّ" ARABIC SHADDA - /* keyhintlabel_period */ "\u0651", + /* keyspec_period */ null, /* morekeys_period */ "!text/morekeys_arabic_diacritics", + /* keyspec_tablet_period */ null, /* keyhintlabel_tablet_period */ "\u0651", /* keyspec_symbols_question */ "\u061F", /* keyspec_symbols_semicolon */ "\u061B", @@ -806,22 +810,19 @@ public final class KeyboardTextsTable { /* morekeys_l */ "l\u00B7l,\u0142", /* morekeys_g ~ */ 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, - /* ~ morekeys_swiss_row2_11 */ + null, null, + /* ~ morekeys_nordic_row2_11 */ // U+00B7: "·" MIDDLE DOT /* morekeys_punctuation */ "!autoColumnOrder!9,\\,,?,!,\u00B7,#,),(,/,;,',@,:,-,\",+,\\%,&", - /* morekeys_star ~ */ + /* keyspec_symbols_1 ~ */ 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, null, null, null, null, null, /* ~ keyspec_south_slavic_row3_8 */ + /* morekeys_tablet_punctuation */ "!autoColumnOrder!8,\\,,',\u00B7,#,),(,/,;,@,:,-,\",+,\\%,&", // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA /* keyspec_spanish_row2_10 */ "\u00E7", - /* morekeys_bullet ~ */ - 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, - /* ~ morekeys_currency_dollar */ - /* morekeys_tablet_punctuation */ "!autoColumnOrder!8,\\,,',\u00B7,#,),(,/,;,@,:,-,\",+,\\%,&", }; /* Locale cs: Czech */ @@ -1023,8 +1024,8 @@ public final class KeyboardTextsTable { /* keyspec_currency ~ */ 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, - /* ~ additional_morekeys_symbols_0 */ + null, null, null, null, null, null, null, + /* ~ keyspec_tablet_comma */ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS /* keyspec_swiss_row1_11 */ "\u00FC", // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS @@ -1218,7 +1219,7 @@ public final class KeyboardTextsTable { 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, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, /* ~ morekeys_question */ // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX // U+0127: "ħ" LATIN SMALL LETTER H WITH STROKE @@ -1226,8 +1227,8 @@ public final class KeyboardTextsTable { // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX /* morekeys_w */ "w,\u0175", /* morekeys_east_slavic_row2_2 ~ */ - null, null, null, null, null, null, null, null, null, null, - /* ~ keyspec_south_slavic_row3_8 */ + null, null, null, null, null, null, null, null, null, null, null, + /* ~ morekeys_tablet_punctuation */ // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX /* keyspec_spanish_row2_10 */ "\u0135", /* morekeys_bullet ~ */ @@ -1302,10 +1303,8 @@ public final class KeyboardTextsTable { /* morekeys_n */ "\u00F1,\u0144", /* single_quotes ~ */ 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, - /* ~ morekeys_swiss_row2_11 */ + null, null, null, null, null, null, null, null, null, null, + /* ~ morekeys_nordic_row2_11 */ // U+00A1: "¡" INVERTED EXCLAMATION MARK // U+00BF: "¿" INVERTED QUESTION MARK /* morekeys_punctuation */ "!autoColumnOrder!9,\\,,?,!,#,),(,/,;,\u00A1,',@,:,-,\",+,\\%,&,\u00BF", @@ -1485,8 +1484,8 @@ public final class KeyboardTextsTable { // U+FDFC: "﷼" RIAL SIGN /* keyspec_currency */ "\uFDFC", /* morekeys_r ~ */ - null, null, null, null, null, null, null, null, null, null, null, null, null, - /* ~ morekeys_nordic_row2_11 */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~ morekeys_punctuation */ // U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE /* keyspec_symbols_1 */ "\u06F1", // U+06F2: "۲" EXTENDED ARABIC-INDIC DIGIT TWO @@ -1522,9 +1521,15 @@ public final class KeyboardTextsTable { // U+066B: "٫" ARABIC DECIMAL SEPARATOR // U+066C: "٬" ARABIC THOUSANDS SEPARATOR /* additional_morekeys_symbols_0 */ "0,\u066B,\u066C", + // U+060C: "،" ARABIC COMMA + // U+061B: "؛" ARABIC SEMICOLON + // U+061F: "؟" ARABIC QUESTION MARK + // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + /* keyspec_tablet_comma */ "\u060C", /* keyspec_swiss_row1_11 ~ */ - null, null, null, null, null, null, null, - /* ~ morekeys_punctuation */ + null, null, null, null, null, null, + /* ~ morekeys_swiss_row2_11 */ // U+2605: "★" BLACK STAR // U+066D: "٭" ARABIC FIVE POINTED STAR /* morekeys_star */ "\u2605,\u066D", @@ -1542,17 +1547,14 @@ public final class KeyboardTextsTable { /* keyspec_right_double_angle_quote */ "\u00BB|\u00AB", /* keyspec_left_single_angle_quote */ "\u2039|\u203A", /* keyspec_right_single_angle_quote */ "\u203A|\u2039", - // U+060C: "،" ARABIC COMMA - // U+061B: "؛" ARABIC SEMICOLON - // U+061F: "؟" ARABIC QUESTION MARK - // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - /* keyspec_tablet_comma */ "\u060C", + /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote", + // U+064B: "ً" ARABIC FATHATAN + /* keyhintlabel_period */ "\u064B", /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics", // U+00BF: "¿" INVERTED QUESTION MARK /* morekeys_question */ "?,\u00BF", /* morekeys_h ~ */ - 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, /* ~ keyspec_spanish_row2_10 */ // U+266A: "♪" EIGHTH NOTE /* morekeys_bullet */ "\u266A", @@ -1582,10 +1584,9 @@ public final class KeyboardTextsTable { // U+060C: "،" ARABIC COMMA /* keyspec_comma */ "\u060C", /* keyhintlabel_tablet_comma */ "\u061F", - /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote", - // U+064B: "ً" ARABIC FATHATAN - /* keyhintlabel_period */ "\u064B", + /* keyspec_period */ null, /* morekeys_period */ "!text/morekeys_arabic_diacritics", + /* keyspec_tablet_period */ null, /* keyhintlabel_tablet_period */ "\u064B", /* keyspec_symbols_question */ "\u061F", /* keyspec_symbols_semicolon */ "\u061B", @@ -1595,7 +1596,7 @@ public final class KeyboardTextsTable { // U+2030: "‰" PER MILLE SIGN /* morekeys_symbols_percent */ "\\%,\u2030", /* morekeys_v ~ */ - 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, /* ~ morekeys_plus */ // U+2264: "≤" LESS-THAN OR EQUAL TO // U+2265: "≥" GREATER-THAN EQUAL TO @@ -1712,8 +1713,8 @@ public final class KeyboardTextsTable { /* morekeys_d ~ */ 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, - /* ~ additional_morekeys_symbols_0 */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~ keyspec_tablet_comma */ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE /* keyspec_swiss_row1_11 */ "\u00E8", // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE @@ -1798,8 +1799,8 @@ public final class KeyboardTextsTable { // U+20B9: "₹" INDIAN RUPEE SIGN /* keyspec_currency */ "\u20B9", /* morekeys_r ~ */ - null, null, null, null, null, null, null, null, null, null, null, null, null, - /* ~ morekeys_nordic_row2_11 */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~ morekeys_punctuation */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", // U+0968: "२" DEVANAGARI DIGIT TWO @@ -1933,10 +1934,8 @@ public final class KeyboardTextsTable { /* keylabel_to_alpha */ "\u0531\u0532\u0533", /* morekeys_s ~ */ 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, - /* ~ morekeys_swiss_row2_11 */ + null, null, null, null, null, null, null, null, + /* ~ morekeys_nordic_row2_11 */ // U+055E: "՞" ARMENIAN QUESTION MARK // U+055C: "՜" ARMENIAN EXCLAMATION MARK // U+055A: "՚" ARMENIAN APOSTROPHE @@ -1948,27 +1947,36 @@ public final class KeyboardTextsTable { // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK // U+055F: "՟" ARMENIAN ABBREVIATION MARK /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,\u055E,\u055C,.,\u055A,\u0559,?,!,\u055D,\u055B,\u058A,\u00BB,\u00AB,\u055F,;,:", - /* morekeys_star ~ */ + /* keyspec_symbols_1 ~ */ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - /* ~ keyspec_right_single_angle_quote */ + null, null, null, null, null, null, + /* ~ additional_morekeys_symbols_0 */ // U+058F: "֏" ARMENIAN DRAM SIGN // TODO: Enable this when we have glyph for the following letter // <string name="keyspec_currency">֏</string> // // U+055D: "՝" ARMENIAN COMMA /* keyspec_tablet_comma */ "\u055D", + /* keyspec_swiss_row1_11 ~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, + /* ~ keyhintlabel_period */ /* morekeys_tablet_period */ "!text/morekeys_punctuation", // U+055E: "՞" ARMENIAN QUESTION MARK // U+00BF: "¿" INVERTED QUESTION MARK /* morekeys_question */ "\u055E,\u00BF", /* morekeys_h ~ */ 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, - /* ~ morekeys_greater_than */ + null, null, null, null, null, + /* ~ keyhintlabel_tablet_comma */ // U+0589: "։" ARMENIAN FULL STOP /* keyspec_period */ "\u0589", + /* morekeys_period */ null, /* keyspec_tablet_period */ "\u0589", + /* keyhintlabel_tablet_period ~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, + /* ~ morekeys_greater_than */ // U+055C: "՜" ARMENIAN EXCLAMATION MARK // U+00A1: "¡" INVERTED EXCLAMATION MARK /* morekeys_exclamation */ "\u055C,\u00A1", @@ -2078,8 +2086,8 @@ public final class KeyboardTextsTable { 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, - /* ~ additional_morekeys_symbols_0 */ + null, null, null, null, null, null, + /* ~ keyspec_tablet_comma */ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS /* keyspec_swiss_row1_11 */ "\u00FC", // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS @@ -2115,8 +2123,8 @@ public final class KeyboardTextsTable { /* morekeys_r ~ */ 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, - /* ~ morekeys_punctuation */ + null, null, null, null, null, null, null, null, null, null, null, null, + /* ~ morekeys_swiss_row2_11 */ // U+2605: "★" BLACK STAR /* morekeys_star */ "\u2605", // The all letters need to be mirrored are found at @@ -2141,11 +2149,11 @@ public final class KeyboardTextsTable { /* keyspec_right_double_angle_quote */ "\u00BB|\u00AB", /* keyspec_left_single_angle_quote */ "\u2039|\u203A", /* keyspec_right_single_angle_quote */ "\u203A|\u2039", - /* keyspec_tablet_comma ~ */ + /* morekeys_tablet_comma ~ */ 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, - /* ~ morekeys_tablet_punctuation */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~ morekeys_currency_dollar */ // U+00B1: "±" PLUS-MINUS SIGN // U+FB29: "﬩" HEBREW LETTER ALTERNATIVE PLUS SIGN /* morekeys_plus */ "\u00B1,\uFB29", @@ -2198,7 +2206,7 @@ public final class KeyboardTextsTable { 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, null, /* ~ morekeys_w */ // U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I /* morekeys_east_slavic_row2_2 */ "\u0456", @@ -2213,7 +2221,7 @@ public final class KeyboardTextsTable { /* morekeys_cyrillic_o */ "\u04E9", /* morekeys_cyrillic_i ~ */ 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, /* ~ keyspec_x */ // U+04BB: "һ" CYRILLIC SMALL LETTER SHHA /* morekeys_east_slavic_row2_11 */ "\u04BB", @@ -2241,7 +2249,7 @@ public final class KeyboardTextsTable { 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, /* ~ morekeys_cyrillic_a */ // U+17DB: "៛" KHMER CURRENCY SYMBOL RIEL /* morekeys_currency_dollar */ "\u17DB,\u00A2,\u00A3,\u20AC,\u00A5,\u20B1", @@ -2279,7 +2287,7 @@ public final class KeyboardTextsTable { 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, null, null, null, /* ~ morekeys_east_slavic_row2_2 */ // U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U /* morekeys_cyrillic_u */ "\u04AF", @@ -2519,7 +2527,7 @@ public final class KeyboardTextsTable { 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, /* ~ morekeys_cyrillic_o */ // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE /* morekeys_cyrillic_i */ "\u045D", @@ -2560,6 +2568,34 @@ public final class KeyboardTextsTable { // U+1001: "ခ" MYANMAR LETTER KHA // U+1002: "ဂ" MYANMAR LETTER GA /* keylabel_to_alpha */ "\u1000\u1001\u1002", + /* morekeys_s ~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, + /* ~ morekeys_nordic_row2_11 */ + /* morekeys_punctuation */ "!autoColumnOrder!9,\u104A,.,?,!,#,),(,/,;,...,',@,:,-,\",+,\\%,&", + /* keyspec_symbols_1 ~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, + /* ~ additional_morekeys_symbols_0 */ + // U+104A: "၊" MYANMAR SIGN LITTLE SECTION + // U+104B: "။" MYANMAR SIGN SECTION + /* keyspec_tablet_comma */ "\u104A", + /* keyspec_swiss_row1_11 ~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, + /* ~ keyspec_right_single_angle_quote */ + /* morekeys_tablet_comma */ "\\,", + /* keyhintlabel_period */ "\u104A", + /* morekeys_tablet_period ~ */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~ keyspec_south_slavic_row3_8 */ + /* morekeys_tablet_punctuation */ "!autoColumnOrder!8,.,',#,),(,/,;,@,...,:,-,\",+,\\%,&", + /* keyspec_spanish_row2_10 ~ */ + null, null, null, null, null, null, null, + /* ~ keyhintlabel_tablet_comma */ + /* keyspec_period */ "\u104B", + /* morekeys_period */ null, + /* keyspec_tablet_period */ "\u104B", }; /* Locale nb: Norwegian Bokmål */ @@ -2632,8 +2668,8 @@ public final class KeyboardTextsTable { // U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN /* keyspec_currency */ "\u0930\u0941.", /* morekeys_r ~ */ - null, null, null, null, null, null, null, null, null, null, null, null, null, - /* ~ morekeys_nordic_row2_11 */ + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + /* ~ morekeys_punctuation */ // U+0967: "१" DEVANAGARI DIGIT ONE /* keyspec_symbols_1 */ "\u0967", // U+0968: "२" DEVANAGARI DIGIT TWO @@ -3061,7 +3097,7 @@ public final class KeyboardTextsTable { 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, /* ~ morekeys_cyrillic_o */ // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE /* morekeys_cyrillic_i */ "\u045D", @@ -3386,7 +3422,7 @@ public final class KeyboardTextsTable { 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, null, /* ~ morekeys_w */ // U+0457: "ї" CYRILLIC SMALL LETTER YI /* morekeys_east_slavic_row2_2 */ "\u0457", @@ -3656,7 +3692,7 @@ public final class KeyboardTextsTable { 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, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, /* ~ morekeys_question */ // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX /* morekeys_h */ "\u0125", @@ -3664,7 +3700,7 @@ public final class KeyboardTextsTable { /* morekeys_w */ "\u0175", /* morekeys_east_slavic_row2_2 ~ */ 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, /* ~ morekeys_v */ // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX /* morekeys_j */ "\u0135", @@ -3674,43 +3710,43 @@ public final class KeyboardTextsTable { // "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */ "DEFAULT", TEXTS_DEFAULT, /* 168/168 DEFAULT */ "af" , TEXTS_af, /* 7/ 12 Afrikaans */ - "ar" , TEXTS_ar, /* 55/107 Arabic */ + "ar" , TEXTS_ar, /* 55/110 Arabic */ "az_AZ" , TEXTS_az_AZ, /* 8/ 17 Azerbaijani (Azerbaijan) */ "be_BY" , TEXTS_be_BY, /* 9/ 32 Belarusian (Belarus) */ "bg" , TEXTS_bg, /* 2/ 10 Bulgarian */ - "ca" , TEXTS_ca, /* 11/120 Catalan */ + "ca" , TEXTS_ca, /* 11/ 95 Catalan */ "cs" , TEXTS_cs, /* 17/ 21 Czech */ "da" , TEXTS_da, /* 19/ 33 Danish */ - "de" , TEXTS_de, /* 16/ 60 German */ + "de" , TEXTS_de, /* 16/ 62 German */ "el" , TEXTS_el, /* 1/ 10 Greek */ "en" , TEXTS_en, /* 8/ 11 English */ - "eo" , TEXTS_eo, /* 26/115 Esperanto */ - "es" , TEXTS_es, /* 8/ 61 Spanish */ + "eo" , TEXTS_eo, /* 26/118 Esperanto */ + "es" , TEXTS_es, /* 8/ 34 Spanish */ "et_EE" , TEXTS_et_EE, /* 22/ 27 Estonian (Estonia) */ "eu_ES" , TEXTS_eu_ES, /* 7/ 8 Basque (Spain) */ - "fa" , TEXTS_fa, /* 58/123 Persian */ + "fa" , TEXTS_fa, /* 58/125 Persian */ "fi" , TEXTS_fi, /* 10/ 33 Finnish */ - "fr" , TEXTS_fr, /* 13/ 60 French */ + "fr" , TEXTS_fr, /* 13/ 62 French */ "gl_ES" , TEXTS_gl_ES, /* 7/ 8 Gallegan (Spain) */ - "hi" , TEXTS_hi, /* 23/ 54 Hindi */ + "hi" , TEXTS_hi, /* 23/ 55 Hindi */ "hr" , TEXTS_hr, /* 9/ 19 Croatian */ "hu" , TEXTS_hu, /* 9/ 19 Hungarian */ "hy_AM" , TEXTS_hy_AM, /* 8/126 Armenian (Armenia) */ "is" , TEXTS_is, /* 10/ 15 Icelandic */ - "it" , TEXTS_it, /* 11/ 60 Italian */ - "iw" , TEXTS_iw, /* 20/121 Hebrew */ + "it" , TEXTS_it, /* 11/ 62 Italian */ + "iw" , TEXTS_iw, /* 20/123 Hebrew */ "ka_GE" , TEXTS_ka_GE, /* 3/ 10 Georgian (Georgia) */ - "kk" , TEXTS_kk, /* 15/118 Kazakh */ - "km_KH" , TEXTS_km_KH, /* 2/119 Khmer (Cambodia) */ - "ky" , TEXTS_ky, /* 10/ 86 Kirghiz */ + "kk" , TEXTS_kk, /* 15/121 Kazakh */ + "km_KH" , TEXTS_km_KH, /* 2/122 Khmer (Cambodia) */ + "ky" , TEXTS_ky, /* 10/ 88 Kirghiz */ "lo_LA" , TEXTS_lo_LA, /* 2/ 20 Lao (Laos) */ "lt" , TEXTS_lt, /* 18/ 22 Lithuanian */ "lv" , TEXTS_lv, /* 18/ 22 Latvian */ - "mk" , TEXTS_mk, /* 9/ 91 Macedonian */ + "mk" , TEXTS_mk, /* 9/ 93 Macedonian */ "mn_MN" , TEXTS_mn_MN, /* 2/ 20 Mongolian (Mongolia) */ - "my_MM" , TEXTS_my_MM, /* 1/ 10 Burmese (Myanmar) */ + "my_MM" , TEXTS_my_MM, /* 8/104 Burmese (Myanmar) */ "nb" , TEXTS_nb, /* 11/ 33 Norwegian Bokmål */ - "ne_NP" , TEXTS_ne_NP, /* 23/ 54 Nepali (Nepal) */ + "ne_NP" , TEXTS_ne_NP, /* 23/ 55 Nepali (Nepal) */ "nl" , TEXTS_nl, /* 9/ 12 Dutch */ "pl" , TEXTS_pl, /* 10/ 16 Polish */ "pt" , TEXTS_pt, /* 6/ 6 Portuguese */ @@ -3719,16 +3755,16 @@ public final class KeyboardTextsTable { "ru" , TEXTS_ru, /* 9/ 32 Russian */ "sk" , TEXTS_sk, /* 20/ 22 Slovak */ "sl" , TEXTS_sl, /* 8/ 19 Slovenian */ - "sr" , TEXTS_sr, /* 11/ 91 Serbian */ + "sr" , TEXTS_sr, /* 11/ 93 Serbian */ "sv" , TEXTS_sv, /* 21/ 33 Swedish */ "sw" , TEXTS_sw, /* 9/ 17 Swahili */ "th" , TEXTS_th, /* 2/ 20 Thai */ "tl" , TEXTS_tl, /* 7/ 8 Tagalog */ "tr" , TEXTS_tr, /* 7/ 17 Turkish */ - "uk" , TEXTS_uk, /* 11/ 85 Ukrainian */ + "uk" , TEXTS_uk, /* 11/ 87 Ukrainian */ "vi" , TEXTS_vi, /* 8/ 20 Vietnamese */ "zu" , TEXTS_zu, /* 8/ 11 Zulu */ - "zz" , TEXTS_zz, /* 19/109 Alphabet */ + "zz" , TEXTS_zz, /* 19/112 Alphabet */ }; static { diff --git a/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java b/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java index be54b669b..567087c81 100644 --- a/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java +++ b/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java @@ -20,8 +20,6 @@ import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; -import android.content.DialogInterface.OnDismissListener; -import android.content.DialogInterface.OnShowListener; import com.android.inputmethod.latin.utils.DialogUtils; import com.android.inputmethod.latin.utils.ImportantNoticeUtils; @@ -29,11 +27,10 @@ import com.android.inputmethod.latin.utils.ImportantNoticeUtils; /** * The dialog box that shows the important notice contents. */ -public final class ImportantNoticeDialog extends AlertDialog implements OnShowListener, - OnClickListener, OnDismissListener { +public final class ImportantNoticeDialog extends AlertDialog implements OnClickListener { public interface ImportantNoticeDialogListener { + public void onUserAcknowledgmentOfImportantNoticeDialog(final int nextVersion); public void onClickSettingsOfImportantNoticeDialog(final int nextVersion); - public void onDismissImportantNoticeDialog(final int nextVersion); } private final ImportantNoticeDialogListener mListener; @@ -50,9 +47,9 @@ public final class ImportantNoticeDialog extends AlertDialog implements OnShowLi if (shouldHaveSettingsButton()) { setButton(BUTTON_NEGATIVE, context.getString(R.string.go_to_settings), this); } - // Set listeners. - setOnShowListener(this); - setOnDismissListener(this); + // This dialog is cancelable by pressing back key. See {@link #onBackPress()}. + setCancelable(true /* cancelable */); + setCanceledOnTouchOutside(false /* cancelable */); } private boolean shouldHaveSettingsButton() { @@ -60,9 +57,9 @@ public final class ImportantNoticeDialog extends AlertDialog implements OnShowLi == ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS; } - @Override - public void onShow(final DialogInterface dialog) { + private void userAcknowledged() { ImportantNoticeUtils.updateLastImportantNoticeVersion(getContext()); + mListener.onUserAcknowledgmentOfImportantNoticeDialog(mNextImportantNoticeVersion); } @Override @@ -70,10 +67,12 @@ public final class ImportantNoticeDialog extends AlertDialog implements OnShowLi if (shouldHaveSettingsButton() && which == BUTTON_NEGATIVE) { mListener.onClickSettingsOfImportantNoticeDialog(mNextImportantNoticeVersion); } + userAcknowledged(); } @Override - public void onDismiss(final DialogInterface dialog) { - mListener.onDismissImportantNoticeDialog(mNextImportantNoticeVersion); + public void onBackPressed() { + super.onBackPressed(); + userAcknowledged(); } } diff --git a/java/src/com/android/inputmethod/latin/LastComposedWord.java b/java/src/com/android/inputmethod/latin/LastComposedWord.java index 2a16ab5ab..232bf7407 100644 --- a/java/src/com/android/inputmethod/latin/LastComposedWord.java +++ b/java/src/com/android/inputmethod/latin/LastComposedWord.java @@ -44,7 +44,6 @@ public final class LastComposedWord { public static final String NOT_A_SEPARATOR = ""; - public final int[] mPrimaryKeyCodes; public final ArrayList<Event> mEvents; public final String mTypedWord; public final CharSequence mCommittedWord; @@ -57,16 +56,15 @@ public final class LastComposedWord { private boolean mActive; public static final LastComposedWord NOT_A_COMPOSED_WORD = - new LastComposedWord(null, new ArrayList<Event>(), null, "", "", + new LastComposedWord(new ArrayList<Event>(), null, "", "", NOT_A_SEPARATOR, null, WordComposer.CAPS_MODE_OFF); // Warning: this is using the passed objects as is and fully expects them to be // immutable. Do not fiddle with their contents after you passed them to this constructor. - public LastComposedWord(final int[] primaryKeyCodes, final ArrayList<Event> events, + public LastComposedWord(final ArrayList<Event> events, final InputPointers inputPointers, final String typedWord, final CharSequence committedWord, final String separatorString, final String prevWord, final int capitalizedMode) { - mPrimaryKeyCodes = primaryKeyCodes; if (inputPointers != null) { mInputPointers.copy(inputPointers); } diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 0594c68cc..84558ca24 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -367,6 +367,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen if (latinIme != null) { executePendingImsCallback(latinIme, editorInfo, restarting); latinIme.onStartInputInternal(editorInfo, restarting); + if (ProductionFlag.USES_CURSOR_ANCHOR_MONITOR) { + // Currently we need to call this every time when the IME is attached to + // new application. + // TODO: Consider if we can do this automatically in the framework. + InputMethodServiceCompatUtils.setCursorAnchorMonitorMode(latinIme, 1); + } } } } @@ -651,9 +657,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mInputLogic.commitTyped(mSettings.getCurrent(), LastComposedWord.NOT_A_SEPARATOR); mInputLogic.mConnection.finishComposingText(); mInputLogic.mConnection.endBatchEdit(); - if (isShowingOptionDialog()) { - mOptionsDialog.dismiss(); - } } PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf, mInputLogic.mSuggest.mDictionaryFacilitator); @@ -931,6 +934,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mSubtypeState.currentSubtypeUsed(); } + @Override + public void onUpdateCursor(Rect rect) { + if (DEBUG) { + Log.i(TAG, "onUpdateCursor:" + rect.toShortString()); + } + super.onUpdateCursor(rect); + } + /** * This is called when the user has clicked on the extracted text view, * when running in fullscreen mode. The default implementation hides @@ -976,7 +987,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } if (TRACE) Debug.stopMethodTracing(); - if (mOptionsDialog != null && mOptionsDialog.isShowing()) { + if (isShowingOptionDialog()) { mOptionsDialog.dismiss(); mOptionsDialog = null; } @@ -1172,7 +1183,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // Implement {@link ImportantNoticeDialog.ImportantNoticeDialogListener} @Override - public void onDismissImportantNoticeDialog(final int nextVersion) { + public void onUserAcknowledgmentOfImportantNoticeDialog(final int nextVersion) { setNeutralSuggestionStrip(); } @@ -1680,7 +1691,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final AlertDialog.Builder builder = new AlertDialog.Builder( DialogUtils.getPlatformDialogThemeContext(this)); builder.setItems(items, listener).setTitle(title); - showOptionDialog(builder.create()); + final AlertDialog dialog = builder.create(); + dialog.setCancelable(true /* cancelable */); + dialog.setCanceledOnTouchOutside(true /* cancelable */); + showOptionDialog(dialog); } // TODO: Move this method out of {@link LatinIME}. @@ -1690,9 +1704,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return; } - dialog.setCancelable(true /* cancelable */); - dialog.setCanceledOnTouchOutside(true /* cancelable */); - final Window window = dialog.getWindow(); final WindowManager.LayoutParams lp = window.getAttributes(); lp.token = windowToken; diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java index 02f18cdd3..1268e5aac 100644 --- a/java/src/com/android/inputmethod/latin/WordComposer.java +++ b/java/src/com/android/inputmethod/latin/WordComposer.java @@ -42,11 +42,6 @@ public final class WordComposer { private CombinerChain mCombinerChain; - // An array of code points representing the characters typed so far. - // The array is limited to MAX_WORD_LENGTH code points, but mTypedWord extends past that - // and mCodePointSize can go past that. If mCodePointSize is greater than MAX_WORD_LENGTH, - // this just does not contain the associated code points past MAX_WORD_LENGTH. - private int[] mPrimaryKeyCodes; // The list of events that served to compose this string. private final ArrayList<Event> mEvents; private final InputPointers mInputPointers = new InputPointers(MAX_WORD_LENGTH); @@ -71,7 +66,6 @@ public final class WordComposer { private int mCapsCount; private int mDigitsCount; private int mCapitalizedMode; - private int mTrailingSingleQuotesCount; // This is the number of code points entered so far. This is not limited to MAX_WORD_LENGTH. // In general, this contains the size of mPrimaryKeyCodes, except when this is greater than // MAX_WORD_LENGTH in which case mPrimaryKeyCodes only contain the first MAX_WORD_LENGTH @@ -86,10 +80,8 @@ public final class WordComposer { public WordComposer() { mCombinerChain = new CombinerChain(); - mPrimaryKeyCodes = new int[MAX_WORD_LENGTH]; mEvents = CollectionUtils.newArrayList(); mAutoCorrection = null; - mTrailingSingleQuotesCount = 0; mIsResumed = false; mIsBatchMode = false; mCursorPositionWithinWord = 0; @@ -108,7 +100,6 @@ public final class WordComposer { mCapsCount = 0; mDigitsCount = 0; mIsFirstCharCapitalized = false; - mTrailingSingleQuotesCount = 0; mIsResumed = false; mIsBatchMode = false; mCursorPositionWithinWord = 0; @@ -143,10 +134,7 @@ public final class WordComposer { */ public int copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount( final int[] destination, final int maxSize) { - int i = mTypedWordCache.length() - 1; - while (i >= 0 && mTypedWordCache.charAt(i) == Constants.CODE_SINGLE_QUOTE) { - --i; - } + final int i = mTypedWordCache.length() - 1 - trailingSingleQuotesCount(); if (i < 0) { // The string is empty or contains only single quotes. return 0; @@ -198,28 +186,8 @@ public final class WordComposer { if (0 == mCodePointSize) { mIsFirstCharCapitalized = false; } - if (Constants.CODE_DELETE == event.mKeyCode) { - if (mTrailingSingleQuotesCount > 0) { - --mTrailingSingleQuotesCount; - } else { - // Delete, but we didn't end in a quote: must recompute mTrailingSingleQuotesCount - // We're only searching for single quotes, so no need to account for code points - for (int i = mTypedWordCache.length() - 1; i > 0; --i) { - if (Constants.CODE_SINGLE_QUOTE != mTypedWordCache.charAt(i)) { - break; - } - ++mTrailingSingleQuotesCount; - } - } - } else { - if (Constants.CODE_SINGLE_QUOTE == primaryCode) { - ++mTrailingSingleQuotesCount; - } else { - mTrailingSingleQuotesCount = 0; - } + if (Constants.CODE_DELETE != event.mKeyCode) { if (newIndex < MAX_WORD_LENGTH) { - mPrimaryKeyCodes[newIndex] = primaryCode >= Constants.CODE_SPACE - ? Character.toLowerCase(primaryCode) : primaryCode; // In the batch input mode, the {@code mInputPointers} holds batch input points and // shouldn't be overridden by the "typed key" coordinates // (See {@link #setBatchInputWord}). @@ -263,15 +231,8 @@ public final class WordComposer { mCombinerChain.reset(); int actualMoveAmountWithinWord = 0; int cursorPos = mCursorPositionWithinWord; - final int[] codePoints; - if (mCodePointSize >= MAX_WORD_LENGTH) { - // If we have more than MAX_WORD_LENGTH characters, we don't have everything inside - // mPrimaryKeyCodes. This should be rare enough that we can afford to just compute - // the array on the fly when this happens. - codePoints = StringUtils.toCodePointArray(mTypedWordCache); - } else { - codePoints = mPrimaryKeyCodes; - } + // TODO: Don't make that copy. We can do this directly from mTypedWordCache. + final int[] codePoints = StringUtils.toCodePointArray(mTypedWordCache); if (expectedMoveAmount >= 0) { // Moving the cursor forward for the expected amount or until the end of the word has // been reached, whichever comes first. @@ -353,7 +314,12 @@ public final class WordComposer { } public int trailingSingleQuotesCount() { - return mTrailingSingleQuotesCount; + final int lastIndex = mTypedWordCache.length() - 1; + int i = lastIndex; + while (i >= 0 && mTypedWordCache.charAt(i) == Constants.CODE_SINGLE_QUOTE) { + --i; + } + return lastIndex - i; } /** @@ -443,9 +409,7 @@ public final class WordComposer { // Note: currently, we come here whenever we commit a word. If it's a MANUAL_PICK // or a DECIDED_WORD we may cancel the commit later; otherwise, we should deactivate // the last composed word to ensure this does not happen. - final int[] primaryKeyCodes = mPrimaryKeyCodes; - mPrimaryKeyCodes = new int[MAX_WORD_LENGTH]; - final LastComposedWord lastComposedWord = new LastComposedWord(primaryKeyCodes, mEvents, + final LastComposedWord lastComposedWord = new LastComposedWord(mEvents, mInputPointers, mTypedWordCache.toString(), committedWord, separatorString, prevWord, mCapitalizedMode); mInputPointers.reset(); @@ -460,7 +424,6 @@ public final class WordComposer { mCombinerChain.reset(); mEvents.clear(); mCodePointSize = 0; - mTrailingSingleQuotesCount = 0; mIsFirstCharCapitalized = false; mCapitalizedMode = CAPS_MODE_OFF; refreshTypedWordCache(); @@ -480,7 +443,6 @@ public final class WordComposer { public void resumeSuggestionOnLastComposedWord(final LastComposedWord lastComposedWord, final String previousWord) { - mPrimaryKeyCodes = lastComposedWord.mPrimaryKeyCodes; mEvents.clear(); Collections.copy(mEvents, lastComposedWord.mEvents); mInputPointers.set(lastComposedWord.mInputPointers); diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java index 1ba92adb1..353b7463d 100644 --- a/java/src/com/android/inputmethod/latin/settings/Settings.java +++ b/java/src/com/android/inputmethod/latin/settings/Settings.java @@ -23,7 +23,6 @@ import android.content.res.Resources; import android.preference.PreferenceManager; import android.util.Log; -import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.latin.AudioAndHapticFeedbackManager; import com.android.inputmethod.latin.InputAttributes; import com.android.inputmethod.latin.R; @@ -270,42 +269,6 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang return prefs.getBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, true); } - public static int readKeyboardThemeIndex(final SharedPreferences prefs, final Resources res) { - final int defaultThemeIndex = readDefaultKeyboardThemeIndex(res); - final String themeIndexString = prefs.getString(PREF_KEYBOARD_LAYOUT, null); - if (themeIndexString == null) { - return defaultThemeIndex; - } - try { - return Integer.parseInt(themeIndexString); - } catch (final NumberFormatException e) { - // Format error, returns default keyboard theme index. - Log.e(TAG, "Illegal keyboard theme in preference: " + themeIndexString + ", default to " - + defaultThemeIndex, e); - } - return defaultThemeIndex; - } - - private static int readDefaultKeyboardThemeIndex(final Resources res) { - final String defaultThemeIndexString = res.getString( - R.string.config_default_keyboard_theme_index); - try { - return Integer.parseInt(defaultThemeIndexString); - } catch (final NumberFormatException e) { - final int defaultThemeIndex = KeyboardSwitcher.DEFAULT_THEME_INDEX; - Log.e(TAG, "Corrupted default keyoard theme in resource: " + defaultThemeIndexString - + ", default to " + defaultThemeIndex, e); - return defaultThemeIndex; - } - } - - public static int resetAndGetDefaultKeyboardThemeIndex(final SharedPreferences prefs, - final Resources res) { - final int defaultThemeIndex = readDefaultKeyboardThemeIndex(res); - prefs.edit().putString(PREF_KEYBOARD_LAYOUT, Integer.toString(defaultThemeIndex)).apply(); - return defaultThemeIndex; - } - public static String readPrefAdditionalSubtypes(final SharedPreferences prefs, final Resources res) { final String predefinedPrefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes( |