aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/color/emoji_tab_label_color_gb.xml (renamed from java/res/xml-sw768dp-land/kbd_phone.xml)25
-rw-r--r--java/res/color/emoji_tab_label_color_ics.xml (renamed from java/res/xml-sw768dp-land/kbd_phone_symbols.xml)26
-rw-r--r--java/res/drawable-hdpi/ic_emoji_dark.pngbin1858 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_nature_light_activated.pngbin0 -> 1850 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_nature_light_normal.pngbin0 -> 1800 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_objects_light_activated.pngbin0 -> 1744 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_objects_light_normal.pngbin0 -> 1581 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_people_light_activated.pngbin0 -> 1767 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_people_light_normal.pngbin0 -> 1820 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_places_light_activated.pngbin0 -> 1418 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_places_light_normal.pngbin0 -> 1341 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_recent_light_activated.pngbin0 -> 1667 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_recent_light_normal.pngbin0 -> 1703 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_symbols_light_activated.pngbin0 -> 1087 bytes
-rw-r--r--java/res/drawable-hdpi/ic_emoji_symbols_light_normal.pngbin0 -> 1053 bytes
-rw-r--r--java/res/drawable-hdpi/ic_ime_light.pngbin0 -> 933 bytes
-rw-r--r--java/res/drawable-hdpi/tab_selected.9.pngbin0 -> 145 bytes
-rw-r--r--java/res/drawable-hdpi/tab_unselected.9.pngbin0 -> 150 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_dark.pngbin1182 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_nature_light_activated.pngbin0 -> 1213 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_nature_light_normal.pngbin0 -> 1130 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_objects_light_activated.pngbin0 -> 1193 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_objects_light_normal.pngbin0 -> 1092 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_people_light_activated.pngbin0 -> 1170 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_people_light_normal.pngbin0 -> 1132 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_places_light_activated.pngbin0 -> 1032 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_places_light_normal.pngbin0 -> 963 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_recent_light_activated.pngbin0 -> 1105 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_recent_light_normal.pngbin0 -> 1106 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_symbols_light_activated.pngbin0 -> 805 bytes
-rw-r--r--java/res/drawable-mdpi/ic_emoji_symbols_light_normal.pngbin0 -> 775 bytes
-rw-r--r--java/res/drawable-mdpi/ic_ime_light.pngbin0 -> 753 bytes
-rw-r--r--java/res/drawable-mdpi/tab_selected.9.pngbin0 -> 140 bytes
-rw-r--r--java/res/drawable-mdpi/tab_unselected.9.pngbin0 -> 138 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_dark.pngbin2631 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_nature_light_activated.pngbin0 -> 2437 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_nature_light_normal.pngbin0 -> 2371 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_objects_light_activated.pngbin0 -> 2319 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_objects_light_normal.pngbin0 -> 2074 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_people_light_activated.pngbin0 -> 2519 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_people_light_normal.pngbin0 -> 2526 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_places_light_activated.pngbin0 -> 1828 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_places_light_normal.pngbin0 -> 1667 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_recent_light_activated.pngbin0 -> 2459 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_recent_light_normal.pngbin0 -> 2346 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_symbols_light_activated.pngbin0 -> 1457 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_emoji_symbols_light_normal.pngbin0 -> 1267 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_ime_light.pngbin0 -> 1272 bytes
-rw-r--r--java/res/drawable-xhdpi/tab_selected.9.pngbin0 -> 148 bytes
-rw-r--r--java/res/drawable-xhdpi/tab_unselected.9.pngbin0 -> 155 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_light.pngbin0 -> 3060 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_nature_light_activated.pngbin0 -> 3150 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_nature_light_normal.pngbin0 -> 2999 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_objects_light_activated.pngbin0 -> 2831 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_objects_light_normal.pngbin0 -> 2656 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_people_light_activated.pngbin0 -> 3118 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_people_light_normal.pngbin0 -> 3097 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_places_light_activated.pngbin0 -> 2256 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_places_light_normal.pngbin0 -> 2169 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_recent_light_activated.pngbin0 -> 3152 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_recent_light_normal.pngbin0 -> 2943 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_symbols_light_activated.pngbin0 -> 1939 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_emoji_symbols_light_normal.pngbin0 -> 1784 bytes
-rw-r--r--java/res/drawable-xxhdpi/ic_ime_light.pngbin0 -> 1349 bytes
-rw-r--r--java/res/drawable-xxhdpi/tab_selected.9.pngbin0 -> 1030 bytes
-rw-r--r--java/res/drawable-xxhdpi/tab_unselected.9.pngbin0 -> 1048 bytes
-rw-r--r--java/res/drawable/btn_keyboard_key_functional_gb.xml22
-rw-r--r--java/res/drawable/btn_keyboard_key_functional_ics.xml22
-rw-r--r--java/res/drawable/ic_emoji_nature_light.xml33
-rw-r--r--java/res/drawable/ic_emoji_objects_light.xml32
-rw-r--r--java/res/drawable/ic_emoji_people_light.xml (renamed from java/res/xml-sw768dp-land/kbd_number.xml)24
-rw-r--r--java/res/drawable/ic_emoji_places_light.xml32
-rw-r--r--java/res/drawable/ic_emoji_recent_light.xml32
-rw-r--r--java/res/drawable/ic_emoji_symbols_light.xml32
-rw-r--r--java/res/layout/emoji_keyboard_page.xml33
-rw-r--r--java/res/layout/emoji_keyboard_tab_icon.xml (renamed from java/res/xml-sw768dp-land/kbd_more_keys_keyboard_template.xml)14
-rw-r--r--java/res/layout/emoji_keyboard_tab_label.xml (renamed from java/res/xml-sw768dp/kbd_more_keys_keyboard_template.xml)14
-rw-r--r--java/res/layout/emoji_keyboard_view.xml94
-rw-r--r--java/res/layout/hint_add_to_dictionary.xml2
-rw-r--r--java/res/layout/input_view.xml50
-rw-r--r--java/res/layout/more_keys_keyboard.xml2
-rw-r--r--java/res/layout/more_suggestions.xml2
-rw-r--r--java/res/layout/suggestion_info.xml2
-rw-r--r--java/res/layout/suggestion_word.xml2
-rw-r--r--java/res/values-af/strings.xml2
-rw-r--r--java/res/values-am/strings.xml2
-rw-r--r--java/res/values-ar/strings.xml2
-rw-r--r--java/res/values-be/strings.xml2
-rw-r--r--java/res/values-bg/strings.xml2
-rw-r--r--java/res/values-ca/strings.xml2
-rw-r--r--java/res/values-cs/strings.xml2
-rw-r--r--java/res/values-da/strings.xml2
-rw-r--r--java/res/values-de/strings.xml2
-rw-r--r--java/res/values-el/strings.xml2
-rw-r--r--java/res/values-en-rGB/strings.xml2
-rw-r--r--java/res/values-es-rUS/strings.xml2
-rw-r--r--java/res/values-es/strings.xml2
-rw-r--r--java/res/values-et-rEE/strings.xml2
-rw-r--r--java/res/values-fa/strings.xml2
-rw-r--r--java/res/values-fi/strings.xml2
-rw-r--r--java/res/values-fr/strings.xml2
-rw-r--r--java/res/values-hi/strings.xml2
-rw-r--r--java/res/values-hr/strings.xml2
-rw-r--r--java/res/values-hu/strings.xml2
-rw-r--r--java/res/values-in/strings.xml2
-rw-r--r--java/res/values-it/strings.xml2
-rw-r--r--java/res/values-iw/strings.xml2
-rw-r--r--java/res/values-ja/strings.xml2
-rw-r--r--java/res/values-ka-rGE/strings.xml2
-rw-r--r--java/res/values-ko/strings.xml2
-rw-r--r--java/res/values-lt/strings.xml2
-rw-r--r--java/res/values-lv/strings.xml2
-rw-r--r--java/res/values-mn-rMN/strings.xml2
-rw-r--r--java/res/values-ms-rMY/strings.xml2
-rw-r--r--java/res/values-nb/strings.xml2
-rw-r--r--java/res/values-nl/strings.xml2
-rw-r--r--java/res/values-pl/strings.xml2
-rw-r--r--java/res/values-pt-rPT/strings.xml2
-rw-r--r--java/res/values-pt/strings.xml2
-rw-r--r--java/res/values-rm/strings.xml2
-rw-r--r--java/res/values-ro/strings.xml2
-rw-r--r--java/res/values-ru/strings.xml2
-rw-r--r--java/res/values-sk/strings.xml2
-rw-r--r--java/res/values-sl/strings.xml2
-rw-r--r--java/res/values-sr/strings.xml2
-rw-r--r--java/res/values-sv/strings.xml2
-rw-r--r--java/res/values-sw/strings.xml2
-rw-r--r--java/res/values-th/strings.xml2
-rw-r--r--java/res/values-tl/strings.xml2
-rw-r--r--java/res/values-tr/strings.xml2
-rw-r--r--java/res/values-uk/strings.xml2
-rw-r--r--java/res/values-v18/emoji-categories.xml13
-rw-r--r--java/res/values-v19/emoji-categories.xml13
-rw-r--r--java/res/values-vi/strings.xml2
-rw-r--r--java/res/values-zh-rCN/strings.xml2
-rw-r--r--java/res/values-zh-rTW/strings.xml2
-rw-r--r--java/res/values-zu/strings.xml2
-rw-r--r--java/res/values/attrs.xml16
-rw-r--r--java/res/values/emoji-categories.xml56
-rw-r--r--java/res/values/strings.xml4
-rw-r--r--java/res/values/themes-common.xml27
-rw-r--r--java/res/values/themes-gb.xml26
-rw-r--r--java/res/values/themes-ics.xml28
-rw-r--r--java/res/xml-sw600dp/key_apostrophe.xml49
-rw-r--r--java/res/xml-sw600dp/key_dash.xml49
-rw-r--r--java/res/xml-sw600dp/key_f1.xml5
-rw-r--r--java/res/xml-sw600dp/key_f2.xml11
-rw-r--r--java/res/xml-sw600dp/key_styles_common.xml3
-rw-r--r--java/res/xml-sw600dp/keys_comma_period.xml53
-rw-r--r--java/res/xml-sw600dp/keys_exclamation_question.xml (renamed from java/res/xml-sw768dp/kbd_number.xml)14
-rw-r--r--java/res/xml-sw600dp/row_dvorak4.xml7
-rw-r--r--java/res/xml-sw600dp/row_hebrew4.xml44
-rw-r--r--java/res/xml-sw600dp/row_qwerty4.xml4
-rw-r--r--java/res/xml-sw600dp/rows_armenian_phonetic.xml (renamed from java/res/xml-sw768dp/rows_colemak.xml)38
-rw-r--r--java/res/xml-sw600dp/rows_azerty.xml2
-rw-r--r--java/res/xml-sw600dp/rows_bulgarian.xml2
-rw-r--r--java/res/xml-sw600dp/rows_bulgarian_bds.xml2
-rw-r--r--java/res/xml-sw600dp/rows_colemak.xml2
-rw-r--r--java/res/xml-sw600dp/rows_east_slavic.xml2
-rw-r--r--java/res/xml-sw600dp/rows_georgian.xml2
-rw-r--r--java/res/xml-sw600dp/rows_greek.xml2
-rw-r--r--java/res/xml-sw600dp/rows_hebrew.xml2
-rw-r--r--java/res/xml-sw600dp/rows_hindi.xml2
-rw-r--r--java/res/xml-sw600dp/rows_mongolian.xml2
-rw-r--r--java/res/xml-sw600dp/rows_nepali_romanized.xml (renamed from java/res/xml-sw768dp/rows_farsi.xml)28
-rw-r--r--java/res/xml-sw600dp/rows_nepali_traditional.xml (renamed from java/res/xml-sw768dp/rows_arabic.xml)30
-rw-r--r--java/res/xml-sw600dp/rows_nordic.xml2
-rw-r--r--java/res/xml-sw600dp/rows_qwerty.xml2
-rw-r--r--java/res/xml-sw600dp/rows_qwertz.xml2
-rw-r--r--java/res/xml-sw600dp/rows_south_slavic.xml2
-rw-r--r--java/res/xml-sw600dp/rows_spanish.xml2
-rw-r--r--java/res/xml-sw600dp/rows_thai.xml2
-rw-r--r--java/res/xml-sw768dp/kbd_phone_symbols.xml29
-rw-r--r--java/res/xml-sw768dp/key_shortcut.xml36
-rw-r--r--java/res/xml-sw768dp/key_space.xml63
-rw-r--r--java/res/xml-sw768dp/key_styles_common.xml176
-rw-r--r--java/res/xml-sw768dp/row_dvorak4.xml51
-rw-r--r--java/res/xml-sw768dp/row_hebrew4.xml49
-rw-r--r--java/res/xml-sw768dp/row_pcqwerty5.xml57
-rw-r--r--java/res/xml-sw768dp/row_qwerty4.xml51
-rw-r--r--java/res/xml-sw768dp/row_symbols4.xml40
-rw-r--r--java/res/xml-sw768dp/rows_10_10_7_symbols.xml66
-rw-r--r--java/res/xml-sw768dp/rows_azerty.xml68
-rw-r--r--java/res/xml-sw768dp/rows_bulgarian.xml68
-rw-r--r--java/res/xml-sw768dp/rows_bulgarian_bds.xml68
-rw-r--r--java/res/xml-sw768dp/rows_dvorak.xml66
-rw-r--r--java/res/xml-sw768dp/rows_east_slavic.xml70
-rw-r--r--java/res/xml-sw768dp/rows_georgian.xml68
-rw-r--r--java/res/xml-sw768dp/rows_greek.xml70
-rw-r--r--java/res/xml-sw768dp/rows_mongolian.xml68
-rw-r--r--java/res/xml-sw768dp/rows_nordic.xml71
-rw-r--r--java/res/xml-sw768dp/rows_number_normal.xml175
-rw-r--r--java/res/xml-sw768dp/rows_number_password.xml79
-rw-r--r--java/res/xml-sw768dp/rows_pcqwerty.xml80
-rw-r--r--java/res/xml-sw768dp/rows_phone.xml138
-rw-r--r--java/res/xml-sw768dp/rows_qwerty.xml68
-rw-r--r--java/res/xml-sw768dp/rows_qwertz.xml68
-rw-r--r--java/res/xml-sw768dp/rows_south_slavic.xml68
-rw-r--r--java/res/xml-sw768dp/rows_spanish.xml69
-rw-r--r--java/res/xml-sw768dp/rows_symbols.xml66
-rw-r--r--java/res/xml-sw768dp/rows_thai.xml74
-rw-r--r--java/res/xml-sw768dp/rows_thai_symbols.xml73
-rw-r--r--java/res/xml-v16/key_devanagari_sign_anusvara.xml (renamed from java/res/xml-v16/key_hindi3_shift_left.xml)10
-rw-r--r--java/res/xml-v16/key_devanagari_sign_candrabindu.xml48
-rw-r--r--java/res/xml-v16/key_devanagari_sign_nukta.xml (renamed from java/res/xml-v16/key_hindi3_right.xml)27
-rw-r--r--java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml (renamed from java/res/xml-v16/keys_hindi3_left2.xml)8
-rw-r--r--java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml55
-rw-r--r--java/res/xml-v16/keys_hindi1_left5.xml75
-rw-r--r--java/res/xml-v16/keys_hindi2_left5.xml59
-rw-r--r--java/res/xml-v16/keystyle_devanagari_sign_virama.xml (renamed from java/res/xml-v16/key_hindi3_shift_right.xml)13
-rw-r--r--java/res/xml-v16/keystyle_devanagari_sign_visarga.xml (renamed from java/res/xml-v16/key_hindi1_shift.xml)7
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml49
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml56
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml48
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml57
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml48
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml48
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml50
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml49
-rw-r--r--java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml49
-rw-r--r--java/res/xml/kbd_armenian_phonetic.xml (renamed from java/res/xml-sw768dp/kbd_thai_symbols.xml)4
-rw-r--r--java/res/xml/kbd_emoji_category6.xml1
-rw-r--r--java/res/xml/kbd_emoji_recents.xml1
-rw-r--r--java/res/xml/kbd_nepali_romanized.xml (renamed from java/res/xml-sw768dp/kbd_10_10_7_symbols.xml)5
-rw-r--r--java/res/xml/kbd_nepali_traditional.xml (renamed from java/res/xml-sw768dp/kbd_phone.xml)6
-rw-r--r--java/res/xml/key_armenian_sha.xml (renamed from java/res/xml-sw768dp/key_settings.xml)17
-rw-r--r--java/res/xml/key_armenian_xeh.xml28
-rw-r--r--java/res/xml/key_devanagari_sign_anusvara.xml (renamed from java/res/xml/key_hindi3_shift_left.xml)12
-rw-r--r--java/res/xml/key_devanagari_sign_candrabindu.xml (renamed from java/res/xml/key_hindi3_right.xml)30
-rw-r--r--java/res/xml/key_devanagari_sign_nukta.xml52
-rw-r--r--java/res/xml/key_devanagari_vowel_sign_candra_o.xml (renamed from java/res/xml/keys_hindi3_left2.xml)10
-rw-r--r--java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml58
-rw-r--r--java/res/xml/key_nepali_traditional_period.xml49
-rw-r--r--java/res/xml/key_styles_common.xml27
-rw-r--r--java/res/xml/keyboard_layout_set_armenian_phonetic.xml39
-rw-r--r--java/res/xml/keyboard_layout_set_nepali_romanized.xml55
-rw-r--r--java/res/xml/keyboard_layout_set_nepali_traditional.xml55
-rw-r--r--java/res/xml/keys_hindi1_left5.xml85
-rw-r--r--java/res/xml/keys_hindi2_left5.xml69
-rw-r--r--java/res/xml/keystyle_devanagari_sign_virama.xml (renamed from java/res/xml/key_hindi3_shift_right.xml)17
-rw-r--r--java/res/xml/keystyle_devanagari_sign_visarga.xml (renamed from java/res/xml/key_hindi1_shift.xml)7
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_aa.xml52
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_ai.xml59
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_au.xml50
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_e.xml59
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_i.xml51
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_ii.xml51
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_o.xml53
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_u.xml52
-rw-r--r--java/res/xml/keystyle_devanagari_vowel_sign_uu.xml52
-rw-r--r--java/res/xml/method.xml36
-rw-r--r--java/res/xml/row_qwerty4.xml7
-rw-r--r--java/res/xml/row_symbols4.xml2
-rw-r--r--java/res/xml/rowkeys_armenian_phonetic1.xml84
-rw-r--r--java/res/xml/rowkeys_armenian_phonetic2.xml66
-rw-r--r--java/res/xml/rowkeys_armenian_phonetic3.xml (renamed from java/res/xml-sw768dp/rowkeys_thai_digits.xml)42
-rw-r--r--java/res/xml/rowkeys_armenian_phonetic4.xml52
-rw-r--r--java/res/xml/rowkeys_hindi1.xml60
-rw-r--r--java/res/xml/rowkeys_hindi2.xml36
-rw-r--r--java/res/xml/rowkeys_hindi3.xml26
-rw-r--r--java/res/xml/rowkeys_nepali_romanized1.xml177
-rw-r--r--java/res/xml/rowkeys_nepali_romanized2.xml126
-rw-r--r--java/res/xml/rowkeys_nepali_romanized3.xml114
-rw-r--r--java/res/xml/rowkeys_nepali_traditional1.xml175
-rw-r--r--java/res/xml/rowkeys_nepali_traditional2.xml139
-rw-r--r--java/res/xml/rowkeys_nepali_traditional3_left6.xml83
-rw-r--r--java/res/xml/rowkeys_nepali_traditional3_right3.xml65
-rw-r--r--java/res/xml/rowkeys_nepali_traditional3_right5.xml91
-rw-r--r--java/res/xml/rows_armenian_phonetic.xml (renamed from java/res/xml-sw768dp/rows_hindi.xml)42
-rw-r--r--java/res/xml/rows_nepali_romanized.xml (renamed from java/res/xml-sw768dp/rows_hebrew.xml)39
-rw-r--r--java/res/xml/rows_nepali_traditional.xml54
-rw-r--r--java/src/com/android/inputmethod/keyboard/EmojiKeyboardView.java370
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java7
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java36
-rw-r--r--java/src/com/android/inputmethod/keyboard/ProximityInfo.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java10
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java20
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java22
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java44
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/RecentsKeyboard.java157
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java1
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionary.java11
-rw-r--r--java/src/com/android/inputmethod/latin/Dictionary.java11
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryCollection.java6
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryWriter.java2
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java6
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableDictionary.java2
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java394
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeSwitcher.java27
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java49
-rw-r--r--java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java5
-rw-r--r--java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java5
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java4
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java2
-rw-r--r--java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java4
-rw-r--r--java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java3
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java14
-rw-r--r--java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java2
-rw-r--r--java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java13
-rw-r--r--java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java4
-rw-r--r--java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java1
301 files changed, 4680 insertions, 3274 deletions
diff --git a/java/res/xml-sw768dp-land/kbd_phone.xml b/java/res/color/emoji_tab_label_color_gb.xml
index 890518210..e1d2f715e 100644
--- a/java/res/xml-sw768dp-land/kbd_phone.xml
+++ b/java/res/color/emoji_tab_label_color_gb.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2011, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,13 +18,16 @@
*/
-->
-<Keyboard
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardLeftPadding="10%p"
- latin:keyboardRightPadding="10%p"
- latin:keyWidth="13.250%p"
- latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
->
- <include
- latin:keyboardLayout="@xml/rows_phone" />
-</Keyboard>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:color="@color/key_text_color_gb" />
+ <item
+ android:state_pressed="true"
+ android:color="@color/key_text_color_gb" />
+ <item
+ android:state_selected="true"
+ android:color="@color/key_text_color_gb" />
+ <item
+ android:color="@color/key_text_inactivated_color_gb" />
+</selector>
diff --git a/java/res/xml-sw768dp-land/kbd_phone_symbols.xml b/java/res/color/emoji_tab_label_color_ics.xml
index 6038b1f1e..36e1d3020 100644
--- a/java/res/xml-sw768dp-land/kbd_phone_symbols.xml
+++ b/java/res/color/emoji_tab_label_color_ics.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2011, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,14 +18,16 @@
*/
-->
-<Keyboard
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardLeftPadding="10%p"
- latin:keyboardRightPadding="10%p"
- latin:keyWidth="13.250%p"
- latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
->
- <!-- Tablet doesn't have phone symbols keyboard -->
- <include
- latin:keyboardLayout="@xml/rows_phone" />
-</Keyboard>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:color="@color/key_text_color_ics" />
+ <item
+ android:state_pressed="true"
+ android:color="@color/key_text_color_ics" />
+ <item
+ android:state_selected="true"
+ android:color="@color/key_text_color_ics" />
+ <item
+ android:color="@color/key_text_inactivated_color_ics" />
+</selector>
diff --git a/java/res/drawable-hdpi/ic_emoji_dark.png b/java/res/drawable-hdpi/ic_emoji_dark.png
deleted file mode 100644
index a9f18cde0..000000000
--- a/java/res/drawable-hdpi/ic_emoji_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-hdpi/ic_emoji_nature_light_activated.png
new file mode 100644
index 000000000..5525df2f7
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_nature_light_activated.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-hdpi/ic_emoji_nature_light_normal.png
new file mode 100644
index 000000000..34e16b9de
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_nature_light_normal.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-hdpi/ic_emoji_objects_light_activated.png
new file mode 100644
index 000000000..c3c7ec1b8
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_objects_light_activated.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-hdpi/ic_emoji_objects_light_normal.png
new file mode 100644
index 000000000..f012d7707
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_objects_light_normal.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_people_light_activated.png b/java/res/drawable-hdpi/ic_emoji_people_light_activated.png
new file mode 100644
index 000000000..cfacbc2e7
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_people_light_activated.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_people_light_normal.png b/java/res/drawable-hdpi/ic_emoji_people_light_normal.png
new file mode 100644
index 000000000..c54dbc1f5
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_people_light_normal.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_places_light_activated.png b/java/res/drawable-hdpi/ic_emoji_places_light_activated.png
new file mode 100644
index 000000000..959dfdfd5
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_places_light_activated.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_places_light_normal.png b/java/res/drawable-hdpi/ic_emoji_places_light_normal.png
new file mode 100644
index 000000000..fc0d9711d
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_places_light_normal.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-hdpi/ic_emoji_recent_light_activated.png
new file mode 100644
index 000000000..de570a185
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_recent_light_activated.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-hdpi/ic_emoji_recent_light_normal.png
new file mode 100644
index 000000000..b2562088d
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_recent_light_normal.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-hdpi/ic_emoji_symbols_light_activated.png
new file mode 100644
index 000000000..af1fd27ec
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_symbols_light_activated.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-hdpi/ic_emoji_symbols_light_normal.png
new file mode 100644
index 000000000..02b84d51b
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_emoji_symbols_light_normal.png
Binary files differ
diff --git a/java/res/drawable-hdpi/ic_ime_light.png b/java/res/drawable-hdpi/ic_ime_light.png
new file mode 100644
index 000000000..4fd3ba126
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_ime_light.png
Binary files differ
diff --git a/java/res/drawable-hdpi/tab_selected.9.png b/java/res/drawable-hdpi/tab_selected.9.png
new file mode 100644
index 000000000..84e63df17
--- /dev/null
+++ b/java/res/drawable-hdpi/tab_selected.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/tab_unselected.9.png b/java/res/drawable-hdpi/tab_unselected.9.png
new file mode 100644
index 000000000..bbcfb2c64
--- /dev/null
+++ b/java/res/drawable-hdpi/tab_unselected.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_dark.png b/java/res/drawable-mdpi/ic_emoji_dark.png
deleted file mode 100644
index d0047a437..000000000
--- a/java/res/drawable-mdpi/ic_emoji_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-mdpi/ic_emoji_nature_light_activated.png
new file mode 100644
index 000000000..d4c8d8da8
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_nature_light_activated.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-mdpi/ic_emoji_nature_light_normal.png
new file mode 100644
index 000000000..1555aa7a9
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_nature_light_normal.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-mdpi/ic_emoji_objects_light_activated.png
new file mode 100644
index 000000000..081dc66c2
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_objects_light_activated.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-mdpi/ic_emoji_objects_light_normal.png
new file mode 100644
index 000000000..58e6f6e75
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_objects_light_normal.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_people_light_activated.png b/java/res/drawable-mdpi/ic_emoji_people_light_activated.png
new file mode 100644
index 000000000..067ad5496
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_people_light_activated.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_people_light_normal.png b/java/res/drawable-mdpi/ic_emoji_people_light_normal.png
new file mode 100644
index 000000000..d835d4ec7
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_people_light_normal.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_places_light_activated.png b/java/res/drawable-mdpi/ic_emoji_places_light_activated.png
new file mode 100644
index 000000000..1aecec598
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_places_light_activated.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_places_light_normal.png b/java/res/drawable-mdpi/ic_emoji_places_light_normal.png
new file mode 100644
index 000000000..c70e484e1
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_places_light_normal.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-mdpi/ic_emoji_recent_light_activated.png
new file mode 100644
index 000000000..8009e932f
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_recent_light_activated.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-mdpi/ic_emoji_recent_light_normal.png
new file mode 100644
index 000000000..c2e598dfb
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_recent_light_normal.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-mdpi/ic_emoji_symbols_light_activated.png
new file mode 100644
index 000000000..caea87191
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_symbols_light_activated.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-mdpi/ic_emoji_symbols_light_normal.png
new file mode 100644
index 000000000..0edada626
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_emoji_symbols_light_normal.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_ime_light.png b/java/res/drawable-mdpi/ic_ime_light.png
new file mode 100644
index 000000000..d94ad6f7e
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_ime_light.png
Binary files differ
diff --git a/java/res/drawable-mdpi/tab_selected.9.png b/java/res/drawable-mdpi/tab_selected.9.png
new file mode 100644
index 000000000..4b00f350a
--- /dev/null
+++ b/java/res/drawable-mdpi/tab_selected.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/tab_unselected.9.png b/java/res/drawable-mdpi/tab_unselected.9.png
new file mode 100644
index 000000000..bb45ab960
--- /dev/null
+++ b/java/res/drawable-mdpi/tab_unselected.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_dark.png b/java/res/drawable-xhdpi/ic_emoji_dark.png
deleted file mode 100644
index 22daec22e..000000000
--- a/java/res/drawable-xhdpi/ic_emoji_dark.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_nature_light_activated.png
new file mode 100644
index 000000000..3e6744343
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_nature_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_nature_light_normal.png
new file mode 100644
index 000000000..5344a9ee9
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_nature_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_objects_light_activated.png
new file mode 100644
index 000000000..75695d43d
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_objects_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_objects_light_normal.png
new file mode 100644
index 000000000..2adb186e6
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_objects_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_people_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_people_light_activated.png
new file mode 100644
index 000000000..e6baa2e59
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_people_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_people_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_people_light_normal.png
new file mode 100644
index 000000000..c26aa4efb
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_people_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_places_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_places_light_activated.png
new file mode 100644
index 000000000..eaa3b86cf
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_places_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_places_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_places_light_normal.png
new file mode 100644
index 000000000..d6e1eaa35
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_places_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_recent_light_activated.png
new file mode 100644
index 000000000..06003b82d
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_recent_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_recent_light_normal.png
new file mode 100644
index 000000000..da2effedb
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_recent_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-xhdpi/ic_emoji_symbols_light_activated.png
new file mode 100644
index 000000000..438fde2b4
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_symbols_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-xhdpi/ic_emoji_symbols_light_normal.png
new file mode 100644
index 000000000..757863233
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_emoji_symbols_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_ime_light.png b/java/res/drawable-xhdpi/ic_ime_light.png
new file mode 100644
index 000000000..9d2caeda6
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_ime_light.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/tab_selected.9.png b/java/res/drawable-xhdpi/tab_selected.9.png
new file mode 100644
index 000000000..95e5f4341
--- /dev/null
+++ b/java/res/drawable-xhdpi/tab_selected.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/tab_unselected.9.png b/java/res/drawable-xhdpi/tab_unselected.9.png
new file mode 100644
index 000000000..8cede8d5e
--- /dev/null
+++ b/java/res/drawable-xhdpi/tab_unselected.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_light.png b/java/res/drawable-xxhdpi/ic_emoji_light.png
new file mode 100644
index 000000000..7480e5294
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_light.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_nature_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_nature_light_activated.png
new file mode 100644
index 000000000..470fd695c
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_nature_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_nature_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_nature_light_normal.png
new file mode 100644
index 000000000..a7fde0ec5
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_nature_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_objects_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_objects_light_activated.png
new file mode 100644
index 000000000..c582b704a
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_objects_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_objects_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_objects_light_normal.png
new file mode 100644
index 000000000..acc95d725
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_objects_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_people_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_people_light_activated.png
new file mode 100644
index 000000000..5973ac355
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_people_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_people_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_people_light_normal.png
new file mode 100644
index 000000000..22e06f808
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_people_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_places_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_places_light_activated.png
new file mode 100644
index 000000000..690e95fd5
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_places_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_places_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_places_light_normal.png
new file mode 100644
index 000000000..ced4b08cf
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_places_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_recent_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_recent_light_activated.png
new file mode 100644
index 000000000..25e847ef3
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_recent_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_recent_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_recent_light_normal.png
new file mode 100644
index 000000000..c86368d73
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_recent_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_symbols_light_activated.png b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_activated.png
new file mode 100644
index 000000000..29dfc7118
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_activated.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_emoji_symbols_light_normal.png b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_normal.png
new file mode 100644
index 000000000..0570567cf
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_emoji_symbols_light_normal.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_ime_light.png b/java/res/drawable-xxhdpi/ic_ime_light.png
new file mode 100644
index 000000000..0309635d2
--- /dev/null
+++ b/java/res/drawable-xxhdpi/ic_ime_light.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/tab_selected.9.png b/java/res/drawable-xxhdpi/tab_selected.9.png
new file mode 100644
index 000000000..e5efc5828
--- /dev/null
+++ b/java/res/drawable-xxhdpi/tab_selected.9.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/tab_unselected.9.png b/java/res/drawable-xxhdpi/tab_unselected.9.png
new file mode 100644
index 000000000..389188695
--- /dev/null
+++ b/java/res/drawable-xxhdpi/tab_unselected.9.png
Binary files differ
diff --git a/java/res/drawable/btn_keyboard_key_functional_gb.xml b/java/res/drawable/btn_keyboard_key_functional_gb.xml
new file mode 100644
index 000000000..431359c20
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_functional_gb.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Functional keys. -->
+ <item android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_pressed" />
+ <item android:drawable="@drawable/btn_keyboard_key_dark_normal" />
+</selector>
diff --git a/java/res/drawable/btn_keyboard_key_functional_ics.xml b/java/res/drawable/btn_keyboard_key_functional_ics.xml
new file mode 100644
index 000000000..5dcde5fa9
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_key_functional_ics.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Functional keys. -->
+ <item android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_pressed_holo" />
+ <item android:drawable="@drawable/btn_keyboard_key_dark_normal_holo" />
+</selector>
diff --git a/java/res/drawable/ic_emoji_nature_light.xml b/java/res/drawable/ic_emoji_nature_light.xml
new file mode 100644
index 000000000..543409e03
--- /dev/null
+++ b/java/res/drawable/ic_emoji_nature_light.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:drawable="@drawable/ic_emoji_nature_light_activated" />
+ <item
+ android:state_pressed="true"
+ android:drawable="@drawable/ic_emoji_nature_light_activated" />
+ <item
+ android:state_selected="true"
+ android:drawable="@drawable/ic_emoji_nature_light_activated" />
+ <item
+ android:drawable="@drawable/ic_emoji_nature_light_normal" />
+</selector>
diff --git a/java/res/drawable/ic_emoji_objects_light.xml b/java/res/drawable/ic_emoji_objects_light.xml
new file mode 100644
index 000000000..4096e695b
--- /dev/null
+++ b/java/res/drawable/ic_emoji_objects_light.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:drawable="@drawable/ic_emoji_objects_light_activated" />
+ <item
+ android:state_pressed="true"
+ android:drawable="@drawable/ic_emoji_objects_light_activated" />
+ <item
+ android:state_selected="true"
+ android:drawable="@drawable/ic_emoji_objects_light_activated" />
+ <item android:drawable="@drawable/ic_emoji_objects_light_normal" />
+</selector>
diff --git a/java/res/xml-sw768dp-land/kbd_number.xml b/java/res/drawable/ic_emoji_people_light.xml
index 1cb775ef7..ea9e406a4 100644
--- a/java/res/xml-sw768dp-land/kbd_number.xml
+++ b/java/res/drawable/ic_emoji_people_light.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2011, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,13 +18,15 @@
*/
-->
-<Keyboard
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardLeftPadding="10%p"
- latin:keyboardRightPadding="10%p"
- latin:keyWidth="13.250%p"
- latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
->
- <include
- latin:keyboardLayout="@xml/rows_number" />
-</Keyboard>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:drawable="@drawable/ic_emoji_people_light_activated" />
+ <item
+ android:state_pressed="true"
+ android:drawable="@drawable/ic_emoji_people_light_activated" />
+ <item
+ android:state_selected="true"
+ android:drawable="@drawable/ic_emoji_people_light_activated" />
+ <item android:drawable="@drawable/ic_emoji_people_light_normal" />
+</selector>
diff --git a/java/res/drawable/ic_emoji_places_light.xml b/java/res/drawable/ic_emoji_places_light.xml
new file mode 100644
index 000000000..312cad9c3
--- /dev/null
+++ b/java/res/drawable/ic_emoji_places_light.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:drawable="@drawable/ic_emoji_places_light_activated" />
+ <item
+ android:state_pressed="true"
+ android:drawable="@drawable/ic_emoji_places_light_activated" />
+ <item
+ android:state_selected="true"
+ android:drawable="@drawable/ic_emoji_places_light_activated" />
+ <item android:drawable="@drawable/ic_emoji_places_light_normal" />
+</selector>
diff --git a/java/res/drawable/ic_emoji_recent_light.xml b/java/res/drawable/ic_emoji_recent_light.xml
new file mode 100644
index 000000000..8c2123f83
--- /dev/null
+++ b/java/res/drawable/ic_emoji_recent_light.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:drawable="@drawable/ic_emoji_recent_light_activated" />
+ <item
+ android:state_pressed="true"
+ android:drawable="@drawable/ic_emoji_recent_light_activated" />
+ <item
+ android:state_selected="true"
+ android:drawable="@drawable/ic_emoji_recent_light_activated" />
+ <item android:drawable="@drawable/ic_emoji_recent_light_normal" />
+</selector>
diff --git a/java/res/drawable/ic_emoji_symbols_light.xml b/java/res/drawable/ic_emoji_symbols_light.xml
new file mode 100644
index 000000000..79aaf0fc5
--- /dev/null
+++ b/java/res/drawable/ic_emoji_symbols_light.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:state_focused="true"
+ android:drawable="@drawable/ic_emoji_symbols_light_activated" />
+ <item
+ android:state_pressed="true"
+ android:drawable="@drawable/ic_emoji_symbols_light_activated" />
+ <item
+ android:state_selected="true"
+ android:drawable="@drawable/ic_emoji_symbols_light_activated" />
+ <item android:drawable="@drawable/ic_emoji_symbols_light_normal" />
+</selector>
diff --git a/java/res/layout/emoji_keyboard_page.xml b/java/res/layout/emoji_keyboard_page.xml
new file mode 100644
index 000000000..e0b752b32
--- /dev/null
+++ b/java/res/layout/emoji_keyboard_page.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<com.android.inputmethod.keyboard.internal.ScrollViewWithNotifier
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/emoji_keyboard_scroller"
+ android:clipToPadding="false"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+>
+ <com.android.inputmethod.keyboard.internal.ScrollKeyboardView
+ android:id="@+id/emoji_keyboard_page"
+ android:layoutDirection="ltr"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+</com.android.inputmethod.keyboard.internal.ScrollViewWithNotifier>
diff --git a/java/res/xml-sw768dp-land/kbd_more_keys_keyboard_template.xml b/java/res/layout/emoji_keyboard_tab_icon.xml
index f593fa944..d79276eb9 100644
--- a/java/res/xml-sw768dp-land/kbd_more_keys_keyboard_template.xml
+++ b/java/res/layout/emoji_keyboard_tab_icon.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2010, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,9 +18,9 @@
*/
-->
-<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyWidth="3.5%p"
- latin:rowHeight="@dimen/popup_key_height"
- style="?attr/moreKeysKeyboardStyle"
- >
-</Keyboard>
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="0dip"
+ android:layout_weight="1.0"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+/>
diff --git a/java/res/xml-sw768dp/kbd_more_keys_keyboard_template.xml b/java/res/layout/emoji_keyboard_tab_label.xml
index f89a0a673..62c552dd8 100644
--- a/java/res/xml-sw768dp/kbd_more_keys_keyboard_template.xml
+++ b/java/res/layout/emoji_keyboard_tab_label.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2008, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,9 +18,9 @@
*/
-->
-<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyWidth="5.0%p"
- latin:rowHeight="@dimen/popup_key_height"
- style="?attr/moreKeysKeyboardStyle"
- >
-</Keyboard>
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="0dip"
+ android:layout_weight="1.0"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+/>
diff --git a/java/res/layout/emoji_keyboard_view.xml b/java/res/layout/emoji_keyboard_view.xml
new file mode 100644
index 000000000..ccbcfdc6f
--- /dev/null
+++ b/java/res/layout/emoji_keyboard_view.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<com.android.inputmethod.keyboard.EmojiKeyboardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/emoji_keyboard_view"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="?attr/emojiKeyboardViewStyle"
+>
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/suggestions_strip_height"
+ >
+ <TabHost
+ android:id="@+id/emoji_category_tabhost"
+ android:layout_width="0dip"
+ android:layout_weight="87.5"
+ android:layout_height="match_parent"
+ >
+ <TabWidget
+ android:id="@android:id/tabs"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/tab_selected"
+ android:divider="@null"
+ android:tabStripEnabled="true"
+ android:tabStripLeft="@drawable/tab_unselected"
+ android:tabStripRight="@drawable/tab_unselected" />
+ <FrameLayout
+ android:id="@android:id/tabcontent"
+ android:layout_width="0dip"
+ android:layout_height="0dip"
+ >
+ <!-- Empty placeholder that TabHost requires. But we don't use it to actually
+ display anything. We monitor the tab changes and change the ViewPager.
+ Similarly the ViewPager swipes are intercepted and passed to the TabHost. -->
+ <View
+ android:id="@+id/emoji_keyboard_dummy"
+ android:layout_width="0dip"
+ android:layout_height="0dip"
+ android:visibility="gone" />
+ </FrameLayout>
+ </TabHost>
+ <ImageButton
+ android:id="@+id/emoji_keyboard_delete"
+ android:layout_width="0dip"
+ android:layout_weight="12.5"
+ android:layout_height="match_parent"
+ android:src="@drawable/sym_keyboard_delete_holo" />
+ </LinearLayout>
+ <android.support.v4.view.ViewPager
+ android:id="@+id/emoji_keyboard_pager"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ <LinearLayout
+ android:id="@+id/emoji_action_bar"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/suggestions_strip_height"
+ >
+ <ImageButton
+ android:id="@+id/emoji_keyboard_alphabet"
+ android:layout_width="0dip"
+ android:layout_weight="0.825"
+ android:layout_height="match_parent"
+ android:src="@drawable/ic_ime_light" />
+ <ImageButton
+ android:id="@+id/emoji_keyboard_send"
+ android:layout_width="0dip"
+ android:layout_weight="0.125"
+ android:layout_height="match_parent"
+ android:src="@drawable/sym_keyboard_return_holo" />
+ </LinearLayout>
+</com.android.inputmethod.keyboard.EmojiKeyboardView>
diff --git a/java/res/layout/hint_add_to_dictionary.xml b/java/res/layout/hint_add_to_dictionary.xml
index 63d4001ad..68a9faf19 100644
--- a/java/res/layout/hint_add_to_dictionary.xml
+++ b/java/res/layout/hint_add_to_dictionary.xml
@@ -33,4 +33,4 @@
android:clickable="false"
android:singleLine="true"
android:ellipsize="none"
- android:background="?attr/suggestionBackground" />
+ style="?attr/suggestionWordStyle" />
diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml
index 51133b289..0b682d198 100644
--- a/java/res/layout/input_view.xml
+++ b/java/res/layout/input_view.xml
@@ -20,27 +20,41 @@
<com.android.inputmethod.latin.InputView
xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom|center_horizontal"
->
- <!-- To ensure that key preview popup is correctly placed when the current system locale is
- one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. -->
- <com.android.inputmethod.latin.suggestions.SuggestionStripView
- android:id="@+id/suggestion_strip_view"
- android:layoutDirection="ltr"
+ android:orientation="vertical" >
+ <!-- The height of key_preview_backing view will automatically be determined by code. -->
+ <View
+ android:id="@+id/key_preview_backing"
android:layout_width="match_parent"
- android:layout_height="@dimen/suggestions_strip_height"
- android:paddingRight="@dimen/suggestions_strip_padding"
- android:paddingLeft="@dimen/suggestions_strip_padding"
- android:background="?attr/suggestionStripBackground"
- style="?attr/suggestionStripViewStyle" />
- <!-- To ensure that key preview popup is correctly placed when the current system locale is
- one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. -->
- <com.android.inputmethod.keyboard.MainKeyboardView
- android:id="@+id/keyboard_view"
- android:layoutDirection="ltr"
+ android:layout_height="0dp" />
+ <LinearLayout
+ android:id="@+id/main_keyboard_frame"
android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <!-- To ensure that key preview popup is correctly placed when the current system locale is
+ one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. -->
+ <com.android.inputmethod.latin.suggestions.SuggestionStripView
+ android:id="@+id/suggestion_strip_view"
+ android:layoutDirection="ltr"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/suggestions_strip_height"
+ android:gravity="center_vertical"
+ android:paddingRight="@dimen/suggestions_strip_padding"
+ android:paddingLeft="@dimen/suggestions_strip_padding"
+ style="?attr/suggestionStripViewStyle" />
+
+ <!-- To ensure that key preview popup is correctly placed when the current system locale is
+ one of RTL locales, layoutDirection="ltr" is needed in the SDK version 17+. -->
+ <com.android.inputmethod.keyboard.MainKeyboardView
+ android:id="@+id/keyboard_view"
+ android:layoutDirection="ltr"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </LinearLayout>
+ <include
+ layout="@layout/emoji_keyboard_view" />
</com.android.inputmethod.latin.InputView>
diff --git a/java/res/layout/more_keys_keyboard.xml b/java/res/layout/more_keys_keyboard.xml
index cab3abcd9..6637117e0 100644
--- a/java/res/layout/more_keys_keyboard.xml
+++ b/java/res/layout/more_keys_keyboard.xml
@@ -23,7 +23,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:background="?attr/moreKeysKeyboardBackground"
+ style="?attr/moreKeysKeyboardContainerStyle"
>
<com.android.inputmethod.keyboard.MoreKeysKeyboardView
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
diff --git a/java/res/layout/more_suggestions.xml b/java/res/layout/more_suggestions.xml
index 0ec0ed1b3..8659f0761 100644
--- a/java/res/layout/more_suggestions.xml
+++ b/java/res/layout/more_suggestions.xml
@@ -23,7 +23,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:background="?attr/moreKeysKeyboardBackground"
+ style="?attr/moreKeysKeyboardContainerStyle"
>
<com.android.inputmethod.latin.suggestions.MoreSuggestionsView
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
diff --git a/java/res/layout/suggestion_info.xml b/java/res/layout/suggestion_info.xml
index 8b0ee3484..0aa26000d 100644
--- a/java/res/layout/suggestion_info.xml
+++ b/java/res/layout/suggestion_info.xml
@@ -24,4 +24,4 @@
android:layout_height="wrap_content"
android:textSize="6dp"
android:textColor="@android:color/white"
- android:background="?attr/suggestionBackground" />
+ style="?attr/suggestionWordStyle" />
diff --git a/java/res/layout/suggestion_word.xml b/java/res/layout/suggestion_word.xml
index e32e6952b..c82a13c99 100644
--- a/java/res/layout/suggestion_word.xml
+++ b/java/res/layout/suggestion_word.xml
@@ -36,4 +36,4 @@
android:clickable="false"
android:singleLine="true"
android:ellipsize="none"
- android:background="?attr/suggestionBackground" />
+ style="?attr/suggestionWordStyle" />
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index fc71368f0..294ac569f 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Gepasmaakte invoerstyle"</string>
<string name="add_style" msgid="6163126614514489951">"Voeg styl by"</string>
<string name="add" msgid="8299699805688017798">"Voeg by"</string>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index 93f9a6000..a890b56f2 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"ፊደላት (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"ፊደላት (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ፊደላት (ፒሲ)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"የተበጁ የግቤት ስታይሎች"</string>
<string name="add_style" msgid="6163126614514489951">"ስታይል አክል"</string>
<string name="add" msgid="8299699805688017798">"አክል"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index efb294985..2001f988d 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"الأبجدية (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"الأبجدية (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"الأبجدية (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"أنماط الإدخال المخصصة"</string>
<string name="add_style" msgid="6163126614514489951">"إضافة نمط"</string>
<string name="add" msgid="8299699805688017798">"إضافة"</string>
diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml
index 21adcca17..d71a953bb 100644
--- a/java/res/values-be/strings.xml
+++ b/java/res/values-be/strings.xml
@@ -160,6 +160,8 @@
<skip />
<!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) -->
<skip />
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Карыстальніцкія стылі ўводу"</string>
<string name="add_style" msgid="6163126614514489951">"Дадаць стыль"</string>
<string name="add" msgid="8299699805688017798">"Дадаць"</string>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index 301f84e38..3f0bdaacb 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Латиница (Дворак)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиница (Коулмак)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиница (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Персон. стилове за въвежд."</string>
<string name="add_style" msgid="6163126614514489951">"+ стил"</string>
<string name="add" msgid="8299699805688017798">"Добавяне"</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 37e7d569c..0fbcfbd97 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Estils d\'entrada personalitzats"</string>
<string name="add_style" msgid="6163126614514489951">"Afeg. estil"</string>
<string name="add" msgid="8299699805688017798">"Afegeix"</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index 8aeaf73ff..e02a403fe 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Latinka (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinka (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinka (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Vlastní styl zadávání"</string>
<string name="add_style" msgid="6163126614514489951">"Přidat styl"</string>
<string name="add" msgid="8299699805688017798">"Přidat"</string>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index afd92658f..2ac654b3b 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Tilpasset inputtypografi"</string>
<string name="add_style" msgid="6163126614514489951">"Tilføj typografi"</string>
<string name="add" msgid="8299699805688017798">"Tilføj"</string>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index 12386d8e2..14faeea5b 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Lat. Alphabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Lat. Alphabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Lat. Alphabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Benutzerdefinierte Eingabestile"</string>
<string name="add_style" msgid="6163126614514489951">"Stil hinzufügen"</string>
<string name="add" msgid="8299699805688017798">"Hinzufügen"</string>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index b010e44e6..705cfcf38 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Αλφάβητο (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Αλφάβητο (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Αλφάβητο (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Προσαρμοσ. στυλ εισαγ."</string>
<string name="add_style" msgid="6163126614514489951">"Προσθ. στυλ"</string>
<string name="add" msgid="8299699805688017798">"Προσθήκη"</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 130572a92..f7199f457 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alphabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alphabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Customised input styles"</string>
<string name="add_style" msgid="6163126614514489951">"Add style"</string>
<string name="add" msgid="8299699805688017798">"Add"</string>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index 52abe8259..009b3a914 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos de entrada personalizados"</string>
<string name="add_style" msgid="6163126614514489951">"Agr. estilo"</string>
<string name="add" msgid="8299699805688017798">"Agregar"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index c25058c25..993060a21 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos de entrada personalizados"</string>
<string name="add_style" msgid="6163126614514489951">"Añadir estilo"</string>
<string name="add" msgid="8299699805688017798">"Añadir"</string>
diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml
index 9b9c93a7b..7f0ca23ea 100644
--- a/java/res/values-et-rEE/strings.xml
+++ b/java/res/values-et-rEE/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Tähestik (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Tähestik (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Tähestik (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Kohandage sisendlaadid"</string>
<string name="add_style" msgid="6163126614514489951">"Lisage laad"</string>
<string name="add" msgid="8299699805688017798">"Lisa"</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 6d8365926..7f8df696a 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -154,6 +154,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"حروف الفبا (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"حروف الفبا (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"حروف الفبا (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"سبک‌های ورودی سفارشی"</string>
<string name="add_style" msgid="6163126614514489951">"افزودن سبک"</string>
<string name="add" msgid="8299699805688017798">"افزودن"</string>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index 74e1232a4..34cf13708 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Aakkoset (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Aakkoset (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Aakkoset (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Muokatut syöttötyylit"</string>
<string name="add_style" msgid="6163126614514489951">"Lisää tyyli"</string>
<string name="add" msgid="8299699805688017798">"Lisää"</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index edabdb3ee..7f32f8332 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alphabet latin (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alphabet latin (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet latin (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Styles saisie personnalisés"</string>
<string name="add_style" msgid="6163126614514489951">"Ajouter style"</string>
<string name="add" msgid="8299699805688017798">"Ajouter"</string>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index 2e38974da..c737398a1 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"वर्णाक्षर (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"वर्णाक्षर (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"वर्णाक्षर (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"कस्‍टम इनपुट शैलियां"</string>
<string name="add_style" msgid="6163126614514489951">"शैली जोड़ें"</string>
<string name="add" msgid="8299699805688017798">"जोड़ें"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index 084d5b6fb..8f4b31af6 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abeceda (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abeceda (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abeceda (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Prilagođeni stilovi unosa"</string>
<string name="add_style" msgid="6163126614514489951">"Dodaj stil"</string>
<string name="add" msgid="8299699805688017798">"Dodaj"</string>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index a335aa957..eaf449a5d 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Ábécé (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Ábécé (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Ábécé (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Egyedi bevitelstílusok"</string>
<string name="add_style" msgid="6163126614514489951">"Új stílus"</string>
<string name="add" msgid="8299699805688017798">"Hozzáadás"</string>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index 229cf8586..c309da0e3 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abjad (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abjad (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abjad (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Gaya masukan khusus"</string>
<string name="add_style" msgid="6163126614514489951">"Tambah gaya"</string>
<string name="add" msgid="8299699805688017798">"Tambahkan"</string>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 310ffee63..7fd9dfc95 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Stili personalizzati"</string>
<string name="add_style" msgid="6163126614514489951">"Aggiungi stile"</string>
<string name="add" msgid="8299699805688017798">"Aggiungi"</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index 00436a0c1..22af3d64d 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"אלף-בית (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"אלף-בית (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"אלף-בית (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"סגנונות קלט מותאמים אישית"</string>
<string name="add_style" msgid="6163126614514489951">"הוסף סגנון"</string>
<string name="add" msgid="8299699805688017798">"הוסף"</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index 594220613..251baf1f0 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"アルファベット(Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"アルファベット(Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"アルファベット(PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"カスタム入力スタイル"</string>
<string name="add_style" msgid="6163126614514489951">"スタイル追加"</string>
<string name="add" msgid="8299699805688017798">"追加"</string>
diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml
index b2832643b..9b6afd145 100644
--- a/java/res/values-ka-rGE/strings.xml
+++ b/java/res/values-ka-rGE/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"ანბანი (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"ანბანი (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ანბანი (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"შეყვანის სტილების კონფიგურაცია"</string>
<string name="add_style" msgid="6163126614514489951">"სტილის დამატება"</string>
<string name="add" msgid="8299699805688017798">"დამატება"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index e729fc60d..570e9c979 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"알파벳(드보락)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"알파벳(콜맥)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"알파벳(PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"맞춤 입력 스타일"</string>
<string name="add_style" msgid="6163126614514489951">"스타일 추가"</string>
<string name="add" msgid="8299699805688017798">"추가"</string>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index 44e01a977..3bd11cb6a 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abėcėlė (Dvorako)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abėcėlė („Colemak“)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abėcėlė (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Pasirinkti įvesties stilių"</string>
<string name="add_style" msgid="6163126614514489951">"Prid. stilių"</string>
<string name="add" msgid="8299699805688017798">"Pridėti"</string>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index 152ed856d..77c5ad9ac 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabēts (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabēts (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabēts (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Pielāg. ievades stili"</string>
<string name="add_style" msgid="6163126614514489951">"Piev. stilu"</string>
<string name="add" msgid="8299699805688017798">"Pievienot"</string>
diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml
index 22f64edfa..d9e241390 100644
--- a/java/res/values-mn-rMN/strings.xml
+++ b/java/res/values-mn-rMN/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Цагаан толгой (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Цагаан толгой (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Цагаан толгой (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Өөрийн оруулах загвар"</string>
<string name="add_style" msgid="6163126614514489951">"Загвар нэмэх"</string>
<string name="add" msgid="8299699805688017798">"Нэмэх"</string>
diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml
index 50be96948..21f149fa9 100644
--- a/java/res/values-ms-rMY/strings.xml
+++ b/java/res/values-ms-rMY/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Abjad (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abjad (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abjad (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Gaya input peribadi"</string>
<string name="add_style" msgid="6163126614514489951">"Tambah gaya"</string>
<string name="add" msgid="8299699805688017798">"Tambah"</string>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 1f9dbed41..6101108d9 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Egendefinerte inndata"</string>
<string name="add_style" msgid="6163126614514489951">"Legg til stil"</string>
<string name="add" msgid="8299699805688017798">"Legg til"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index 3eed154f7..46094fb92 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (pc)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Aangep. invoerstijlen"</string>
<string name="add_style" msgid="6163126614514489951">"Stijl toev."</string>
<string name="add" msgid="8299699805688017798">"Toevoegen"</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index b4f261213..ff82f69b1 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Style niestandardowe"</string>
<string name="add_style" msgid="6163126614514489951">"Dodaj styl"</string>
<string name="add" msgid="8299699805688017798">"Dodaj"</string>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index cacc3970e..25c3fc412 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos entrada pers."</string>
<string name="add_style" msgid="6163126614514489951">"Adic. estilo"</string>
<string name="add" msgid="8299699805688017798">"Adicionar"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index e319255f2..962aa7fbf 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeto (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos personalizados"</string>
<string name="add_style" msgid="6163126614514489951">"Adic. estilo"</string>
<string name="add" msgid="8299699805688017798">"Adicionar"</string>
diff --git a/java/res/values-rm/strings.xml b/java/res/values-rm/strings.xml
index 1d14b8f4c..741430a7f 100644
--- a/java/res/values-rm/strings.xml
+++ b/java/res/values-rm/strings.xml
@@ -268,6 +268,8 @@
<skip />
<!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) -->
<skip />
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<!-- no translation found for custom_input_styles_title (8429952441821251512) -->
<skip />
<!-- no translation found for add_style (6163126614514489951) -->
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 56ff8b433..f9dcfef30 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Stiluri personalizate"</string>
<string name="add_style" msgid="6163126614514489951">"Stil"</string>
<string name="add" msgid="8299699805688017798">"Adăugaţi"</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index b7539d13a..6a8b9cca7 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Латиница (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиница (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиница (ПК)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Персонализированные стили"</string>
<string name="add_style" msgid="6163126614514489951">"Добавить стиль"</string>
<string name="add" msgid="8299699805688017798">"Добавить"</string>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index c4e5a06b5..f7557d01f 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Latinka (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinka (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinka (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Vlastné štýly vstupu"</string>
<string name="add_style" msgid="6163126614514489951">"Pridať štýl"</string>
<string name="add" msgid="8299699805688017798">"Pridať"</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index c6e7c24dd..0fb4255f0 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Latinica (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinica (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinica (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Slogi vnosa po meri"</string>
<string name="add_style" msgid="6163126614514489951">"Dodaj slog"</string>
<string name="add" msgid="8299699805688017798">"Dodaj"</string>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index cb3e32bbe..c304b349b 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Абецеда (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Абецеда (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Абецеда (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Прилаг. стилови уноса"</string>
<string name="add_style" msgid="6163126614514489951">"Додав. стила"</string>
<string name="add" msgid="8299699805688017798">"Додај"</string>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 5b34b2f02..877f0693b 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Anpassade indatastilar"</string>
<string name="add_style" msgid="6163126614514489951">"Ny stil"</string>
<string name="add" msgid="8299699805688017798">"Lägg till"</string>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index 94759b683..d5834e7f6 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabeti (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeti (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeti (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Mitindo maalum ya ingizo"</string>
<string name="add_style" msgid="6163126614514489951">"Ongeza mtindo"</string>
<string name="add" msgid="8299699805688017798">"Ongeza"</string>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index 58faeb00c..01f86000a 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"ตัวอักษร (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"ตัวอักษร (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ตัวอักษร (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"รูปแบบอินพุตกำหนดเอง"</string>
<string name="add_style" msgid="6163126614514489951">"เพิ่มสไตล์"</string>
<string name="add" msgid="8299699805688017798">"เพิ่ม"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index 1c27ffdd8..deb3bac63 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alpabeto (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alpabeto (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alpabeto (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Custom style ng input"</string>
<string name="add_style" msgid="6163126614514489951">"Dagdag style"</string>
<string name="add" msgid="8299699805688017798">"Idagdag"</string>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index 6d4653373..8aadaa23d 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabe (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabe (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabe (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Özel giriş stilleri"</string>
<string name="add_style" msgid="6163126614514489951">"Stil ekle"</string>
<string name="add" msgid="8299699805688017798">"Ekle"</string>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index affce86c9..0aa55b09c 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Латиниця (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиниця (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиниця (ПК)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Персональні стилі введення"</string>
<string name="add_style" msgid="6163126614514489951">"Додати стиль"</string>
<string name="add" msgid="8299699805688017798">"Додати"</string>
diff --git a/java/res/values-v18/emoji-categories.xml b/java/res/values-v18/emoji-categories.xml
index 17a2053d2..2ea08159b 100644
--- a/java/res/values-v18/emoji-categories.xml
+++ b/java/res/values-v18/emoji-categories.xml
@@ -17,19 +17,6 @@
<!-- Note: This emoji code point list is valid on JB-MR2 (API == 18).
There is another emoji code point list for KLP and later under res/xml/values-v19. -->
<resources>
- <!-- Dummy codeArrays for recents emoji keyboard.
- Do not remove these keys, because they are used as a template. -->
- <array
- name="emoji_recents"
- format="string"
- >
- <item>52</item>
- <item>45</item>
- <item>43</item>
- <item>45</item>
- <item>4E</item>
- <item>54</item>
- </array>
<array
name="emoji_nature"
format="string"
diff --git a/java/res/values-v19/emoji-categories.xml b/java/res/values-v19/emoji-categories.xml
index a6affc421..658bbfa83 100644
--- a/java/res/values-v19/emoji-categories.xml
+++ b/java/res/values-v19/emoji-categories.xml
@@ -17,19 +17,6 @@
<!-- Note: This emoji code point list is valid on KLP and later (API >= 19).
There is another emoji code point list for JB-MR2 under res/xml/values and values-v18.-->
<resources>
- <!-- Dummy codeArrays for recents emoji keyboard.
- Do not remove these keys, because they are used as a template. -->
- <array
- name="emoji_recents"
- format="string"
- >
- <item>52</item>
- <item>45</item>
- <item>43</item>
- <item>45</item>
- <item>4E</item>
- <item>54</item>
- </array>
<array
name="emoji_nature"
format="string"
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index 67b140ef3..d1d0a3594 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Bảng chữ cái (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Bảng chữ cái (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Bảng chữ cái (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Kiểu nhập tùy chỉnh"</string>
<string name="add_style" msgid="6163126614514489951">"Thêm kiểu"</string>
<string name="add" msgid="8299699805688017798">"Thêm"</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 461d326b1..d094dc164 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"字母 (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"字母 (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"字母 (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"自定义输入风格"</string>
<string name="add_style" msgid="6163126614514489951">"添加样式"</string>
<string name="add" msgid="8299699805688017798">"添加"</string>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index 3fa5cddc7..9449358b0 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"字母 (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"字母 (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"字母 (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"自訂輸入樣式"</string>
<string name="add_style" msgid="6163126614514489951">"新增樣式"</string>
<string name="add" msgid="8299699805688017798">"新增"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index 38a5c27bf..46e6f52b6 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -150,6 +150,8 @@
<string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabhethi (Dvorak)"</string>
<string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabhethi (Colemak)"</string>
<string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabhethi (PC)"</string>
+ <!-- no translation found for subtype_emoji (7483586578074549196) -->
+ <skip />
<string name="custom_input_styles_title" msgid="8429952441821251512">"Izitayela zokufaka ngokwezifiso"</string>
<string name="add_style" msgid="6163126614514489951">"Engeza isitayela"</string>
<string name="add" msgid="8299699805688017798">"Engeza"</string>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 159a64adc..631c35d87 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -26,16 +26,18 @@
<attr name="keyboardViewStyle" format="reference" />
<!-- MainKeyboardView style -->
<attr name="mainKeyboardViewStyle" format="reference" />
+ <!-- EmojiKeyboardView style -->
+ <attr name="emojiKeyboardViewStyle" format="reference" />
<!-- MoreKeysKeyboard style -->
<attr name="moreKeysKeyboardStyle" format="reference" />
<!-- MoreKeysKeyboardView style -->
<attr name="moreKeysKeyboardViewStyle" format="reference" />
+ <!-- MoreKeysKeyboardView container style -->
+ <attr name="moreKeysKeyboardContainerStyle" format="reference" />
<!-- Suggestions strip style -->
<attr name="suggestionStripViewStyle" format="reference" />
- <!-- Styled attributes for android:background -->
- <attr name="moreKeysKeyboardBackground" format="reference" />
- <attr name="suggestionStripBackground" format="reference" />
- <attr name="suggestionBackground" format="reference" />
+ <!-- Suggestion word style -->
+ <attr name="suggestionWordStyle" format="reference" />
</declare-styleable>
<declare-styleable name="KeyboardView">
@@ -163,6 +165,10 @@
<attr name="suppressKeyPreviewAfterBatchInputDuration" format="integer" />
</declare-styleable>
+ <declare-styleable name="EmojiKeyboardView">
+ <attr name="emojiTabLabelColor" format="reference" />
+ </declare-styleable>
+
<declare-styleable name="SuggestionStripView">
<attr name="suggestionStripOption" format="integer">
<!-- This should be aligned with SuggestionStripLayoutHelper.AUTO_CORRECT_* and etc. -->
@@ -217,6 +223,7 @@
<attr name="iconLanguageSwitchKey" format="reference" />
<attr name="iconZwnjKey" format="reference" />
<attr name="iconZwjKey" format="reference" />
+ <attr name="iconImeKey" format="reference" />
<attr name="iconEmojiKey" format="reference" />
</declare-styleable>
@@ -372,6 +379,7 @@
</declare-styleable>
<declare-styleable name="Keyboard_Case">
+ <attr name="keyboardLayoutSet" format="string" />
<!-- This should be aligned with KeyboardLayoutSet_Element's elementName. -->
<attr name="keyboardLayoutSetElement" format="enum|string">
<enum name="alphabet" value="0" />
diff --git a/java/res/values/emoji-categories.xml b/java/res/values/emoji-categories.xml
index 99d7b2389..ce82a8b40 100644
--- a/java/res/values/emoji-categories.xml
+++ b/java/res/values/emoji-categories.xml
@@ -28,37 +28,81 @@
name="emoji_recents"
format="string"
>
- <item>52</item>
- <item>45</item>
- <item>43</item>
- <item>45</item>
- <item>4E</item>
- <item>54</item>
+ <!-- These code point should be aligned with {@link RecentsKeyboard#TEMPLATE_KEY_CODE_*. -->
+ <item>30</item>
+ <item>31</item>
</array>
<array
name="emoji_nature"
format="string"
>
+ <item>2744</item> <!-- SNOWFLAKE -->
</array>
<array
name="emoji_symbols"
format="string"
>
+ <item>2460</item> <!-- CIRCLED DIGIT ONE -->
+ <item>2461</item> <!-- CIRCLED DIGIT TWO -->
+ <item>2462</item> <!-- CIRCLED DIGIT THREE -->
+ <item>2463</item> <!-- CIRCLED DIGIT FOUR -->
+ <item>2464</item> <!-- CIRCLED DIGIT FIVE -->
+ <item>2465</item> <!-- CIRCLED DIGIT SIX -->
+ <item>2466</item> <!-- CIRCLED DIGIT SEVEN -->
+ <item>2467</item> <!-- CIRCLED DIGIT EIGHT -->
+ <item>2468</item> <!-- CIRCLED DIGIT NINE -->
+ <item>2469</item> <!-- CIRCLED DIGIT TEN -->
+ <item>00ae</item> <!-- REGISTERED SIGN -->
+ <item>00a9</item> <!-- COPYRIGHT SIGN -->
+ <item>2122</item> <!-- TRADE MARK SIGN -->
+ <item>2734</item> <!-- EIGHT POINTED BLACK STAR -->
+ <item>2733</item> <!-- EIGHT POINTED PINWHEEL STAR -->
+ <item>2716</item> <!-- HEAVY MULTIPLICATION MARK -->
+ <item>2195</item> <!-- UP DOWN ARROW -->
+ <item>2197</item> <!-- NORTH EAST ARROW -->
+ <item>27a1</item> <!-- BLACK RIGHTWARDS ARROW -->
+ <item>2198</item> <!-- SOUTH EAST ARROW -->
+ <item>2199</item> <!-- SOUTH WEST ARROW -->
+ <item>2196</item> <!-- NORTH EAST ARROW -->
+ <item>2194</item> <!-- LEFT RIGHT ARROW -->
+ <item>25c0</item> <!-- BLACK LEFT-POINTING TRIANGLE -->
+ <item>25b6</item> <!-- BLACK ROGHT-POINTING TRIANGLE -->
+ <item>2747</item> <!-- SPARKLE -->
+ <item>25aa</item> <!-- BLACK SMALL SQUARE -->
+ <item>203c</item> <!-- DOUBLE EXCLAMATION MARK -->
+ <item>2660</item> <!-- BLACK SPADE SUIT -->
+ <item>2665</item> <!-- BLACK HEART SUIT -->
+ <item>2663</item> <!-- BLACK CLUB SUIT -->
+ <item>2666</item> <!-- BLACK DIAMOND SUIT -->
+ <item>21a9</item> <!-- LEFTWARDS ARROW WITH HOOK -->
+ <item>21aa</item> <!-- RIGHTWARDS ARROW WITH HOOK -->
</array>
<array
name="emoji_faces"
format="string"
>
+ <item>270C</item> <!-- VICTORY HAND -->
+ <item>2764</item> <!-- HEAVY BLACK HEART -->
</array>
<array
name="emoji_objects"
format="string"
>
+ <item>260e</item> <!-- BLACK TELEPHONE -->
+ <item>2709</item> <!-- ENVELOPE -->
+ <item>2712</item> <!-- BLACK NIB -->
+ <item>270f</item> <!-- PENCIL -->
+ <item>2702</item> <!-- BLACK SCISSORS -->
+ <item>2669</item> <!-- QUARTER NOTE -->
+ <item>266a</item> <!-- EIGHTH NOTE -->
+ <item>266c</item> <!-- BEAMED SIXTEENTH NOTES -->
</array>
<array
name="emoji_places"
format="string"
>
+ <item>2708</item> <!-- AIRPLANE -->
+ <item>2668</item> <!-- HOT SPRINGS -->
</array>
<array
name="emoji_emoticons"
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 390f72bfa..69da1e862 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -371,6 +371,8 @@
<!-- Description for Spanish (United States) keyboard subtype with explicit keyboard layout [CHAR LIMIT=25]
This should be identical to subtype_es_US aside from the trailing (%s). -->
<string name="subtype_with_layout_es_US">Spanish (US) (<xliff:g id="layout">%s</xliff:g>)</string>
+ <!-- Description for Nepali (Traditional) keyboard subtype [CHAR LIMIT=25] -->
+ <string name="subtype_nepali_traditional"><xliff:g id="language">%s</xliff:g> (Traditional)</string>
<!-- TODO: Uncomment once we can handle IETF language tag with script name specified.
Description for Serbian Cyrillic keyboard subtype [CHAR LIMIT=25]
<string name="subtype_serbian_cyrillic">Serbian (Cyrillic)</string>
@@ -457,6 +459,8 @@ language among those that use the Latin alphabet. This keyboard is laid out in t
disposition that offers additional keys, but smaller keys compared to other common dispositions for
mobile devices. [CHAR LIMIT=25] -->
<string name="subtype_no_language_pcqwerty">Alphabet (PC)</string>
+ <!-- Description for Emoji keyboard subtype [CHAR LIMIT=25] -->
+ <string name="subtype_emoji">Emoji</string>
<!-- Title of the preference settings for custom input styles (language and keyboard layout pairs) [CHAR LIMIT=35]-->
<string name="custom_input_styles_title">Custom input styles</string>
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index c9334ce5f..8e9cfc90b 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -30,6 +30,7 @@
<item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
</style>
<style name="KeyboardView">
+ <item name="keyBackground">@drawable/btn_keyboard_key_ics</item>
<item name="keyLetterSize">@fraction/key_letter_ratio</item>
<item name="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item>
<item name="keyLabelSize">@fraction/key_label_ratio</item>
@@ -100,15 +101,31 @@
<item name="gestureRecognitionSpeedThreshold">@fraction/config_gesture_recognition_speed_threshold</item>
<item name="suppressKeyPreviewAfterBatchInputDuration">@integer/config_suppress_key_preview_after_batch_input_duration</item>
</style>
- <style name="MainKeyboardView" />
- <style name="MoreKeysKeyboard" />
- <style name="MoreKeysKeyboardView" />
<style
- name="SuggestionStripView"
+ name="MainKeyboardView"
+ parent="KeyboardView" />
+ <!-- Though {@link EmojiKeyboardView} doesn't extend {@link KeyboardView}, some views inside it,
+ for instance delete button, need themed {@link KeyboardView} attributes. -->
+ <style
+ name="EmojiKeyboardView"
+ parent="KeyboardView"
>
+ <item name="emojiTabLabelColor">@color/emoji_tab_label_color_ics</item>
+ </style>
+ <style name="MoreKeysKeyboard" />
+ <style
+ name="MoreKeysKeyboardView"
+ parent="MainKeyboardView" />
+ <style name="MoreKeysKeyboardContainer" />
+ <style name="SuggestionStripView">
<item name="suggestionsCountInStrip">@integer/suggestions_count_in_strip</item>
<item name="centerSuggestionPercentile">@fraction/center_suggestion_percentile</item>
<item name="maxMoreSuggestionsRow">@integer/max_more_suggestions_row</item>
<item name="minMoreSuggestionsWidth">@fraction/min_more_suggestions_width</item>
</style>
-</resources>
+ <style name="SuggestionWord" />
+ <style name="MoreKeysKeyboardAnimation">
+ <item name="android:windowEnterAnimation">@anim/more_keys_keyboard_fadein</item>
+ <item name="android:windowExitAnimation">@anim/more_keys_keyboard_fadeout</item>
+ </style>
+</resources> \ No newline at end of file
diff --git a/java/res/values/themes-gb.xml b/java/res/values/themes-gb.xml
index b430eeafd..7f8dd235b 100644
--- a/java/res/values/themes-gb.xml
+++ b/java/res/values/themes-gb.xml
@@ -23,12 +23,12 @@
<item name="keyboardStyle">@style/Keyboard.GB</item>
<item name="keyboardViewStyle">@style/KeyboardView.GB</item>
<item name="mainKeyboardViewStyle">@style/MainKeyboardView.GB</item>
+ <item name="emojiKeyboardViewStyle">@style/EmojiKeyboardView.GB</item>
<item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.GB</item>
<item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.GB</item>
+ <item name="moreKeysKeyboardContainerStyle">@style/MoreKeysKeyboardContainer.GB</item>
<item name="suggestionStripViewStyle">@style/SuggestionStripView.GB</item>
- <item name="moreKeysKeyboardBackground">@drawable/keyboard_popup_panel_background_gb</item>
- <item name="suggestionStripBackground">@drawable/keyboard_suggest_strip_gb</item>
- <item name="suggestionBackground">@drawable/btn_suggestion_gb</item>
+ <item name="suggestionWordStyle">@style/SuggestionWord.GB</item>
</style>
<style name="KeyboardIcons.GB">
<!-- Keyboard icons -->
@@ -50,7 +50,7 @@
<!-- TODO: Needs dedicated black theme ZWNJ and ZWJ icons -->
<item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo</item>
<item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo</item>
- <item name="iconEmojiKey">@drawable/ic_emoji_dark</item>
+ <item name="iconEmojiKey">@drawable/ic_emoji_light</item>
</style>
<style
name="Keyboard.GB"
@@ -96,6 +96,15 @@
<item name="spacebarTextColor">@color/spacebar_text_color_gb</item>
<item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_gb</item>
</style>
+ <!-- Though {@link EmojiKeyboardView} doesn't extend {@link KeyboardView}, some views inside it,
+ for instance delete button, need themed {@link KeyboardView} attributes. -->
+ <style
+ name="EmojiKeyboardView.GB"
+ parent="KeyboardView.GB"
+ >
+ <item name="keyBackground">@drawable/btn_keyboard_key_functional_gb</item>
+ <item name="emojiTabLabelColor">@color/emoji_tab_label_color_gb</item>
+ </style>
<style
name="MoreKeysKeyboard.GB"
parent="Keyboard.GB"
@@ -115,9 +124,15 @@
<item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_gb</item>
</style>
<style
+ name="MoreKeysKeyboardContainer.GB"
+ >
+ <item name="android:background">@drawable/keyboard_popup_panel_background_gb</item>
+ </style>
+ <style
name="SuggestionStripView.GB"
parent="SuggestionStripView"
>
+ <item name="android:background">@drawable/keyboard_suggest_strip_gb</item>
<item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item>
<item name="colorValidTypedWord">@color/highlight_color_gb</item>
<item name="colorTypedWord">@color/typed_word_color_gb</item>
@@ -125,4 +140,7 @@
<item name="colorSuggested">@color/highlight_color_gb</item>
<item name="alphaObsoleted">50%</item>
</style>
+ <style name="SuggestionWord.GB">
+ <item name="android:background">@drawable/btn_suggestion_gb</item>
+ </style>
</resources>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 5ca0665ad..f3b6b1321 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -18,17 +18,17 @@
*/
-->
-<resources>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="KeyboardTheme.ICS" parent="KeyboardIcons.ICS">
<item name="keyboardStyle">@style/Keyboard.ICS</item>
<item name="keyboardViewStyle">@style/KeyboardView.ICS</item>
<item name="mainKeyboardViewStyle">@style/MainKeyboardView.ICS</item>
+ <item name="emojiKeyboardViewStyle">@style/EmojiKeyboardView.ICS</item>
<item name="moreKeysKeyboardStyle">@style/MoreKeysKeyboard.ICS</item>
<item name="moreKeysKeyboardViewStyle">@style/MoreKeysKeyboardView.ICS</item>
+ <item name="moreKeysKeyboardContainerStyle">@style/MoreKeysKeyboardContainer.ICS</item>
<item name="suggestionStripViewStyle">@style/SuggestionStripView.ICS</item>
- <item name="moreKeysKeyboardBackground">@drawable/keyboard_popup_panel_background_holo</item>
- <item name="suggestionStripBackground">@drawable/keyboard_suggest_strip_holo</item>
- <item name="suggestionBackground">@drawable/btn_suggestion_ics</item>
+ <item name="suggestionWordStyle">@style/SuggestionWord.ICS</item>
</style>
<style name="KeyboardIcons.ICS">
<!-- Keyboard icons -->
@@ -97,6 +97,15 @@
<item name="spacebarTextColor">@color/spacebar_text_color_ics</item>
<item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_ics</item>
</style>
+ <!-- Though {@link EmojiKeyboardView} doesn't extend {@link KeyboardView}, some views inside it,
+ for instance delete button, need themed {@link KeyboardView} attributes. -->
+ <style
+ name="EmojiKeyboardView.ICS"
+ parent="KeyboardView.ICS"
+ >
+ <item name="keyBackground">@drawable/btn_keyboard_key_functional_ics</item>
+ <item name="emojiTabLabelColor">@color/emoji_tab_label_color_ics</item>
+ </style>
<style
name="MoreKeysKeyboard.ICS"
parent="Keyboard.ICS"
@@ -116,9 +125,15 @@
<item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_ics</item>
</style>
<style
+ name="MoreKeysKeyboardContainer.ICS"
+ >
+ <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item>
+ </style>
+ <style
name="SuggestionStripView.ICS"
parent="SuggestionStripView"
>
+ <item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
<item name="suggestionStripOption">autoCorrectBold|validTypedWordBold</item>
<item name="colorValidTypedWord">@color/typed_word_color_ics</item>
<item name="colorTypedWord">@color/typed_word_color_ics</item>
@@ -126,8 +141,7 @@
<item name="colorSuggested">@color/suggested_word_color_ics</item>
<item name="alphaObsoleted">70%</item>
</style>
- <style name="MoreKeysKeyboardAnimation">
- <item name="android:windowEnterAnimation">@anim/more_keys_keyboard_fadein</item>
- <item name="android:windowExitAnimation">@anim/more_keys_keyboard_fadeout</item>
+ <style name="SuggestionWord.ICS">
+ <item name="android:background">@drawable/btn_suggestion_ics</item>
</style>
</resources>
diff --git a/java/res/xml-sw600dp/key_apostrophe.xml b/java/res/xml-sw600dp/key_apostrophe.xml
deleted file mode 100644
index 2aec34729..000000000
--- a/java/res/xml-sw600dp/key_apostrophe.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <switch>
- <case
- latin:mode="email|url"
- >
- <Key
- latin:keyLabel="-" />
- </case>
- <case
- latin:languageCode="fa"
- >
- <Key
- latin:keyLabel="!text/keylabel_for_apostrophe"
- latin:keyHintLabel="!text/keyhintlabel_for_apostrophe"
- latin:keyLabelFlags="hasPopupHint"
- latin:moreKeys="!text/more_keys_for_apostrophe"
- latin:keyStyle="hasShiftedLetterHintStyle" />
- </case>
- <default>
- <Key
- latin:keyLabel="!text/keylabel_for_apostrophe"
- latin:keyHintLabel="!text/keyhintlabel_for_apostrophe"
- latin:moreKeys="!text/more_keys_for_apostrophe"
- latin:keyStyle="hasShiftedLetterHintStyle" />
- </default>
- </switch>
-</merge>
diff --git a/java/res/xml-sw600dp/key_dash.xml b/java/res/xml-sw600dp/key_dash.xml
deleted file mode 100644
index b139c29c8..000000000
--- a/java/res/xml-sw600dp/key_dash.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <switch>
- <case
- latin:mode="email|url"
- >
- <Key
- latin:keyLabel="_" />
- </case>
- <case
- latin:languageCode="ar|fa"
- >
- <Key
- latin:keyLabel="."
- latin:keyHintLabel="!text/keyhintlabel_for_arabic_diacritics"
- latin:keyLabelFlags="hasPopupHint"
- latin:moreKeys="!text/more_keys_for_arabic_diacritics"
- latin:keyStyle="hasShiftedLetterHintStyle" />
- </case>
- <default>
- <Key
- latin:keyLabel="-"
- latin:keyHintLabel="_"
- latin:moreKeys="_"
- latin:keyStyle="hasShiftedLetterHintStyle" />
- </default>
- </switch>
-</merge>
diff --git a/java/res/xml-sw600dp/key_f1.xml b/java/res/xml-sw600dp/key_f1.xml
index 77afe4e64..ac0053236 100644
--- a/java/res/xml-sw600dp/key_f1.xml
+++ b/java/res/xml-sw600dp/key_f1.xml
@@ -53,10 +53,7 @@
</case>
<default>
<Key
- latin:keyLabel="/"
- latin:keyHintLabel="\@"
- latin:moreKeys="\@"
- latin:keyStyle="hasShiftedLetterHintStyle" />
+ latin:keyLabel="/" />
</default>
</switch>
</merge>
diff --git a/java/res/xml-sw600dp/key_f2.xml b/java/res/xml-sw600dp/key_f2.xml
index ca3b30b54..674153ae3 100644
--- a/java/res/xml-sw600dp/key_f2.xml
+++ b/java/res/xml-sw600dp/key_f2.xml
@@ -28,18 +28,9 @@
<Key
latin:keyStyle="comKeyStyle" />
</case>
- <case
- latin:imeAction="actionSearch"
- >
- <Key
- latin:keyLabel=":"
- latin:keyHintLabel="+"
- latin:moreKeys="+"
- latin:keyStyle="hasShiftedLetterHintStyle" />
- </case>
<default>
<Key
- latin:keyStyle="smileyKeyStyle" />
+ latin:keyStyle="emojiKeyStyle" />
</default>
</switch>
</merge>
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index fc9342b91..3b20281be 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -123,7 +123,8 @@
latin:styleName="emojiKeyStyle"
latin:code="!code/key_emoji"
latin:keyIcon="!icon/emoji_key"
- latin:keyActionFlags="noKeyPreview" />
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="!code/key_settings"
diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/keys_comma_period.xml
index 752f75b5f..a6008390e 100644
--- a/java/res/xml-sw600dp/keys_comma_period.xml
+++ b/java/res/xml-sw600dp/keys_comma_period.xml
@@ -23,24 +23,59 @@
>
<switch>
<case
- latin:mode="email"
+ latin:mode="email|url"
>
<Key
- latin:keyLabel="," />
+ latin:keyLabel="."
+ latin:keyHintLabel="_"
+ latin:moreKeys="_"
+ latin:keyStyle="hasShiftedLetterHintStyle" />
<Key
- latin:keyLabel="." />
+ latin:keyLabel=","
+ latin:keyHintLabel="-"
+ latin:moreKeys="-"
+ latin:keyStyle="hasShiftedLetterHintStyle" />
</case>
- <default>
+ <case
+ latin:languageCode="ar"
+ >
<Key
- latin:keyLabel="!text/keylabel_for_tablet_comma"
- latin:keyHintLabel="!text/keyhintlabel_for_tablet_comma"
- latin:moreKeys="!text/more_keys_for_tablet_comma"
+ latin:keyLabel="!text/keylabel_for_apostrophe"
+ latin:keyHintLabel="!text/keyhintlabel_for_apostrophe"
+ latin:moreKeys="!text/more_keys_for_apostrophe"
latin:keyStyle="hasShiftedLetterHintStyle" />
<Key
latin:keyLabel="."
- latin:keyHintLabel="!text/keyhintlabel_for_tablet_period"
- latin:moreKeys="!text/more_keys_for_tablet_period"
+ latin:keyHintLabel="!text/keyhintlabel_for_arabic_diacritics"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:moreKeys="!text/more_keys_for_arabic_diacritics"
latin:keyStyle="hasShiftedLetterHintStyle" />
+ </case>
+ <case
+ latin:languageCode="fa"
+ >
+ <Key
+ latin:keyLabel="!text/keylabel_for_apostrophe"
+ latin:keyHintLabel="!text/keyhintlabel_for_apostrophe"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:moreKeys="!text/more_keys_for_apostrophe"
+ latin:keyStyle="hasShiftedLetterHintStyle" />
+ <Key
+ latin:keyLabel="."
+ latin:keyHintLabel="!text/keyhintlabel_for_arabic_diacritics"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:moreKeys="!text/more_keys_for_arabic_diacritics"
+ latin:keyStyle="hasShiftedLetterHintStyle" />
+ </case>
+ <default>
+ <Key
+ latin:keyLabel="."
+ latin:keyHintLabel="!text/keyhintlabel_for_tablet_period"
+ latin:moreKeys="!text/more_keys_for_tablet_period" />
+ <Key
+ latin:keyLabel="!text/keylabel_for_tablet_comma"
+ latin:keyHintLabel="!text/keyhintlabel_for_tablet_comma"
+ latin:moreKeys="!text/more_keys_for_tablet_comma" />
</default>
</switch>
</merge>
diff --git a/java/res/xml-sw768dp/kbd_number.xml b/java/res/xml-sw600dp/keys_exclamation_question.xml
index 1b46edd50..983ef3897 100644
--- a/java/res/xml-sw768dp/kbd_number.xml
+++ b/java/res/xml-sw600dp/keys_exclamation_question.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2010, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,11 +18,11 @@
*/
-->
-<Keyboard
+<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyWidth="13.250%p"
- latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
- <include
- latin:keyboardLayout="@xml/rows_number" />
-</Keyboard>
+ <Key
+ latin:keyLabel="\?" />
+ <Key
+ latin:keyLabel="!" />
+</merge>
diff --git a/java/res/xml-sw600dp/row_dvorak4.xml b/java/res/xml-sw600dp/row_dvorak4.xml
index 969cc145e..1dfb3f462 100644
--- a/java/res/xml-sw600dp/row_dvorak4.xml
+++ b/java/res/xml-sw600dp/row_dvorak4.xml
@@ -38,8 +38,11 @@
latin:backgroundType="normal" />
<include
latin:keyboardLayout="@xml/key_question_exclamation" />
- <include
- latin:keyboardLayout="@xml/key_dash" />
+ <Key
+ latin:keyLabel="-"
+ latin:keyHintLabel="_"
+ latin:moreKeys="_"
+ latin:keyStyle="hasShiftedLetterHintStyle" />
<include
latin:keyboardLayout="@xml/key_f2" />
</Row>
diff --git a/java/res/xml-sw600dp/row_hebrew4.xml b/java/res/xml-sw600dp/row_hebrew4.xml
deleted file mode 100644
index f429f97fb..000000000
--- a/java/res/xml-sw600dp/row_hebrew4.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row
- latin:keyWidth="9.0%p"
- latin:backgroundType="functional"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyWidth="10.0%p" />
- <include
- latin:keyboardLayout="@xml/key_shortcut" />
- <include
- latin:keyboardLayout="@xml/key_f1" />
- <include
- latin:keyXPos="28.0%p"
- latin:keyboardLayout="@xml/key_space"
- latin:backgroundType="normal" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <include
- latin:keyboardLayout="@xml/key_f2" />
- </Row>
-</merge>
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index fa433635e..16d373108 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -37,9 +37,7 @@
latin:keyboardLayout="@xml/key_space"
latin:backgroundType="normal" />
<include
- latin:keyboardLayout="@xml/key_apostrophe" />
- <include
- latin:keyboardLayout="@xml/key_dash" />
+ latin:keyboardLayout="@xml/keys_comma_period" />
<include
latin:keyboardLayout="@xml/key_f2" />
</Row>
diff --git a/java/res/xml-sw768dp/rows_colemak.xml b/java/res/xml-sw600dp/rows_armenian_phonetic.xml
index 073f812e5..9bc2a1821 100644
--- a/java/res/xml-sw768dp/rows_colemak.xml
+++ b/java/res/xml-sw600dp/rows_armenian_phonetic.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2010, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -24,43 +24,43 @@
<include
latin:keyboardLayout="@xml/key_styles_common" />
<Row
- latin:keyWidth="8.282%p"
+ latin:keyWidth="9.0%p"
>
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_colemak1" />
<include
- latin:keyboardLayout="@xml/key_colemak_colon" />
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic1" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight" />
+ </Row>
+ <Row
+ latin:keyWidth="9.0%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic2" />
+ <include
+ latin:keyboardLayout="@xml/key_armenian_xeh" />
</Row>
<Row
- latin:keyWidth="8.125%p"
+ latin:keyWidth="9.0%p"
>
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="10.167%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_colemak2" />
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic3" />
+ <include
+ latin:keyboardLayout="@xml/key_armenian_sha" />
<Key
latin:keyStyle="enterKeyStyle"
latin:keyWidth="fillRight" />
</Row>
<Row
- latin:keyWidth="8.047%p"
+ latin:keyWidth="8.8889%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
+ latin:keyWidth="10.0%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_colemak3" />
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic4" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_azerty.xml b/java/res/xml-sw600dp/rows_azerty.xml
index 5a5a7d12f..cdc91857f 100644
--- a/java/res/xml-sw600dp/rows_azerty.xml
+++ b/java/res/xml-sw600dp/rows_azerty.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_azerty3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_bulgarian.xml b/java/res/xml-sw600dp/rows_bulgarian.xml
index 263562095..c73aa1c1a 100644
--- a/java/res/xml-sw600dp/rows_bulgarian.xml
+++ b/java/res/xml-sw600dp/rows_bulgarian.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_bulgarian3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_bulgarian_bds.xml b/java/res/xml-sw600dp/rows_bulgarian_bds.xml
index 9439a6346..bc773ee58 100644
--- a/java/res/xml-sw600dp/rows_bulgarian_bds.xml
+++ b/java/res/xml-sw600dp/rows_bulgarian_bds.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_bulgarian_bds3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
</Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw600dp/rows_colemak.xml b/java/res/xml-sw600dp/rows_colemak.xml
index 98a24e451..ab059da83 100644
--- a/java/res/xml-sw600dp/rows_colemak.xml
+++ b/java/res/xml-sw600dp/rows_colemak.xml
@@ -52,7 +52,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_colemak3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_east_slavic.xml b/java/res/xml-sw600dp/rows_east_slavic.xml
index b4160d64b..c5045fffc 100644
--- a/java/res/xml-sw600dp/rows_east_slavic.xml
+++ b/java/res/xml-sw600dp/rows_east_slavic.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_east_slavic3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
</Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw600dp/rows_georgian.xml b/java/res/xml-sw600dp/rows_georgian.xml
index b0e9e35fd..891cbc109 100644
--- a/java/res/xml-sw600dp/rows_georgian.xml
+++ b/java/res/xml-sw600dp/rows_georgian.xml
@@ -51,7 +51,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_georgian3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_greek.xml b/java/res/xml-sw600dp/rows_greek.xml
index de214c67f..066dc47fb 100644
--- a/java/res/xml-sw600dp/rows_greek.xml
+++ b/java/res/xml-sw600dp/rows_greek.xml
@@ -53,7 +53,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_greek3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_hebrew.xml b/java/res/xml-sw600dp/rows_hebrew.xml
index 9945dee35..852e17683 100644
--- a/java/res/xml-sw600dp/rows_hebrew.xml
+++ b/java/res/xml-sw600dp/rows_hebrew.xml
@@ -49,5 +49,5 @@
latin:keyXPos="10.0%p" />
</Row>
<include
- latin:keyboardLayout="@xml/row_hebrew4" />
+ latin:keyboardLayout="@xml/row_qwerty4" />
</merge>
diff --git a/java/res/xml-sw600dp/rows_hindi.xml b/java/res/xml-sw600dp/rows_hindi.xml
index 2a9a419f8..ca581be14 100644
--- a/java/res/xml-sw600dp/rows_hindi.xml
+++ b/java/res/xml-sw600dp/rows_hindi.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_hindi3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
</Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw600dp/rows_mongolian.xml b/java/res/xml-sw600dp/rows_mongolian.xml
index dc0c1fe5c..8e39e625a 100644
--- a/java/res/xml-sw600dp/rows_mongolian.xml
+++ b/java/res/xml-sw600dp/rows_mongolian.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_mongolian3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
</Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw768dp/rows_farsi.xml b/java/res/xml-sw600dp/rows_nepali_romanized.xml
index 8d3fb0579..21d1dc6e0 100644
--- a/java/res/xml-sw768dp/rows_farsi.xml
+++ b/java/res/xml-sw600dp/rows_nepali_romanized.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2012, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -24,37 +24,33 @@
<include
latin:keyboardLayout="@xml/key_styles_common" />
<Row
- latin:keyWidth="7.375%p"
+ latin:keyWidth="8.182%p"
>
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_farsi1" />
+ latin:keyboardLayout="@xml/rowkeys_nepali_romanized1" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight" />
</Row>
<Row
- latin:keyWidth="7.227%p"
+ latin:keyWidth="8.182%p"
>
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_farsi2" />
+ latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" />
<Key
latin:keyStyle="enterKeyStyle"
latin:keyWidth="fillRight" />
</Row>
<Row
- latin:keyWidth="7.227%p"
+ latin:keyWidth="8.182%p"
>
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" />
<include
- latin:keyboardLayout="@xml/rowkeys_farsi3"
- latin:keyXPos="13.829%p" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
</Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw768dp/rows_arabic.xml b/java/res/xml-sw600dp/rows_nepali_traditional.xml
index 204f6d590..90703da76 100644
--- a/java/res/xml-sw768dp/rows_arabic.xml
+++ b/java/res/xml-sw600dp/rows_nepali_traditional.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2011, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -24,38 +24,34 @@
<include
latin:keyboardLayout="@xml/key_styles_common" />
<Row
- latin:keyWidth="7.375%p"
+ latin:keyWidth="8.182%p"
>
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_arabic1" />
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional1" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight" />
</Row>
<Row
- latin:keyWidth="7.227%p"
+ latin:keyWidth="8.182%p"
>
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_arabic2" />
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional2" />
<Key
latin:keyStyle="enterKeyStyle"
latin:keyWidth="fillRight" />
</Row>
<Row
- latin:keyWidth="7.227%p"
+ latin:keyWidth="8.182%p"
>
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_arabic3"
- latin:keyXPos="6.602%p" />
- </Row>
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_left6" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_right5" />
+ </Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
</merge>
diff --git a/java/res/xml-sw600dp/rows_nordic.xml b/java/res/xml-sw600dp/rows_nordic.xml
index 299bf8908..56fa4066f 100644
--- a/java/res/xml-sw600dp/rows_nordic.xml
+++ b/java/res/xml-sw600dp/rows_nordic.xml
@@ -52,7 +52,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_qwerty3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyXPos="-10.0%p"
diff --git a/java/res/xml-sw600dp/rows_qwerty.xml b/java/res/xml-sw600dp/rows_qwerty.xml
index 722f9d138..58ba1d713 100644
--- a/java/res/xml-sw600dp/rows_qwerty.xml
+++ b/java/res/xml-sw600dp/rows_qwerty.xml
@@ -51,7 +51,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_qwerty3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_qwertz.xml b/java/res/xml-sw600dp/rows_qwertz.xml
index f2f832ce7..3b59dec54 100644
--- a/java/res/xml-sw600dp/rows_qwertz.xml
+++ b/java/res/xml-sw600dp/rows_qwertz.xml
@@ -51,7 +51,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_qwertz3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_south_slavic.xml b/java/res/xml-sw600dp/rows_south_slavic.xml
index 6ef664342..5053988cc 100644
--- a/java/res/xml-sw600dp/rows_south_slavic.xml
+++ b/java/res/xml-sw600dp/rows_south_slavic.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_south_slavic3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
</Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw600dp/rows_spanish.xml b/java/res/xml-sw600dp/rows_spanish.xml
index bca9bba3a..1092c268e 100644
--- a/java/res/xml-sw600dp/rows_spanish.xml
+++ b/java/res/xml-sw600dp/rows_spanish.xml
@@ -50,7 +50,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_qwerty3" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
<Key
latin:keyStyle="shiftKeyStyle"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml-sw600dp/rows_thai.xml b/java/res/xml-sw600dp/rows_thai.xml
index bc89640ac..cfcaf6815 100644
--- a/java/res/xml-sw600dp/rows_thai.xml
+++ b/java/res/xml-sw600dp/rows_thai.xml
@@ -60,7 +60,7 @@
<include
latin:keyboardLayout="@xml/rowkeys_thai4" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/keys_exclamation_question" />
</Row>
<include
latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw768dp/kbd_phone_symbols.xml b/java/res/xml-sw768dp/kbd_phone_symbols.xml
deleted file mode 100644
index dd9a6aebd..000000000
--- a/java/res/xml-sw768dp/kbd_phone_symbols.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<Keyboard
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyWidth="13.250%p"
- latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
->
- <!-- Tablet doesn't have phone symbols keyboard -->
- <include
- latin:keyboardLayout="@xml/rows_phone" />
-</Keyboard>
diff --git a/java/res/xml-sw768dp/key_shortcut.xml b/java/res/xml-sw768dp/key_shortcut.xml
deleted file mode 100644
index 2d09ebbfc..000000000
--- a/java/res/xml-sw768dp/key_shortcut.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <switch>
- <case
- latin:shortcutKeyEnabled="true"
- >
- <Key
- latin:keyStyle="shortcutKeyStyle" />
- </case>
- <default>
- <!-- The empty space instead of shortcut key. -->
- <Spacer />
- </default>
- </switch>
-</merge>
diff --git a/java/res/xml-sw768dp/key_space.xml b/java/res/xml-sw768dp/key_space.xml
deleted file mode 100644
index 58e71d807..000000000
--- a/java/res/xml-sw768dp/key_space.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <switch>
- <case
- latin:languageCode="fa"
- latin:languageSwitchKeyEnabled="true"
- >
- <Key
- latin:keyStyle="languageSwitchKeyStyle" />
- <Key
- latin:keyStyle="spaceKeyStyle"
- latin:keyWidth="24.141%p" />
- <Key
- latin:keyStyle="zwnjKeyStyle" />
- </case>
- <case
- latin:languageCode="fa"
- latin:languageSwitchKeyEnabled="false"
- >
- <Key
- latin:keyStyle="spaceKeyStyle"
- latin:keyWidth="32.188%p" />
- <Key
- latin:keyStyle="zwnjKeyStyle" />
- </case>
- <case
- latin:languageSwitchKeyEnabled="true"
- >
- <Key
- latin:keyStyle="languageSwitchKeyStyle" />
- <Key
- latin:keyStyle="spaceKeyStyle"
- latin:keyWidth="32.188%p" />
- </case>
- <!-- languageSwitchKeyEnabled="false" -->
- <default>
- <Key
- latin:keyStyle="spaceKeyStyle"
- latin:keyWidth="40.235%p" />
- </default>
- </switch>
-</merge>
diff --git a/java/res/xml-sw768dp/key_styles_common.xml b/java/res/xml-sw768dp/key_styles_common.xml
deleted file mode 100644
index 538930948..000000000
--- a/java/res/xml-sw768dp/key_styles_common.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <switch>
- <case
- latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
- >
- <key-style
- latin:styleName="hasShiftedLetterHintStyle"
- latin:keyLabelFlags="hasShiftedLetterHint|shiftedLetterActivated" />
- </case>
- <default>
- <key-style
- latin:styleName="hasShiftedLetterHintStyle"
- latin:keyLabelFlags="hasShiftedLetterHint" />
- </default>
- </switch>
- <!-- Base style for shift key. A single space is used for dummy label in moreKeys. -->
- <key-style
- latin:styleName="baseForShiftKeyStyle"
- latin:code="!code/key_shift"
- latin:keyActionFlags="noKeyPreview"
- latin:keyLabelFlags="preserveCase"
- latin:moreKeys="!noPanelAutoMoreKey!, |!code/key_capslock" />
- <switch>
- <case
- latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetAutomaticShifted"
- >
- <key-style
- latin:styleName="shiftKeyStyle"
- latin:keyIcon="!icon/shift_key_shifted"
- latin:backgroundType="stickyOff"
- latin:parentStyle="baseForShiftKeyStyle" />
- </case>
- <case
- latin:keyboardLayoutSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
- >
- <key-style
- latin:styleName="shiftKeyStyle"
- latin:keyIcon="!icon/shift_key_shifted"
- latin:backgroundType="stickyOn"
- latin:parentStyle="baseForShiftKeyStyle" />
- </case>
- <default>
- <key-style
- latin:styleName="shiftKeyStyle"
- latin:keyIcon="!icon/shift_key"
- latin:backgroundType="stickyOff"
- latin:parentStyle="baseForShiftKeyStyle" />
- </default>
- </switch>
- <key-style
- latin:styleName="deleteKeyStyle"
- latin:code="!code/key_delete"
- latin:keyIcon="!icon/delete_key"
- latin:keyActionFlags="isRepeatable|noKeyPreview"
- latin:backgroundType="functional" />
- <include
- latin:keyboardLayout="@xml/key_styles_enter" />
- <key-style
- latin:styleName="spaceKeyStyle"
- latin:code="!code/key_space"
- latin:keyActionFlags="noKeyPreview|enableLongPress" />
- <!-- U+200C: ZERO WIDTH NON-JOINER
- U+200D: ZERO WIDTH JOINER -->
- <key-style
- latin:styleName="zwnjKeyStyle"
- latin:code="0x200C"
- latin:keyIcon="!icon/zwnj_key"
- latin:moreKeys="!icon/zwj_key|&#x200D;"
- latin:keyLabelFlags="hasPopupHint"
- latin:keyActionFlags="noKeyPreview" />
- <key-style
- latin:styleName="smileyKeyStyle"
- latin:keyLabel=":-)"
- latin:keyOutputText=":-) "
- latin:keyLabelFlags="hasPopupHint|preserveCase"
- latin:moreKeys="!text/more_keys_for_smiley" />
- <key-style
- latin:styleName="shortcutKeyStyle"
- latin:code="!code/key_shortcut"
- latin:keyIcon="!icon/shortcut_key"
- latin:keyIconDisabled="!icon/shortcut_key_disabled"
- latin:keyActionFlags="noKeyPreview"
- latin:backgroundType="functional" />
- <key-style
- latin:styleName="languageSwitchKeyStyle"
- latin:code="!code/key_language_switch"
- latin:keyIcon="!icon/language_switch_key"
- latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress"
- latin:altCode="!code/key_space" />
- <key-style
- latin:styleName="emojiKeyStyle"
- latin:code="!code/key_emoji"
- latin:keyIcon="!icon/emoji_key"
- latin:keyActionFlags="noKeyPreview" />
- <key-style
- latin:styleName="settingsKeyStyle"
- latin:code="!code/key_settings"
- latin:keyIcon="!icon/settings_key"
- latin:keyActionFlags="noKeyPreview"
- latin:backgroundType="functional" />
- <switch>
- <case
- latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
- latin:navigatePrevious="true"
- >
- <key-style
- latin:styleName="tabKeyStyle"
- latin:code="!code/key_action_previous"
- latin:keyLabel="!text/label_tab_key"
- latin:keyLabelFlags="fontNormal|preserveCase"
- latin:backgroundType="functional" />
- </case>
- <case
- latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted|alphabetShiftLocked"
- latin:navigateNext="true"
- >
- <key-style
- latin:styleName="tabKeyStyle"
- latin:code="!code/key_action_next"
- latin:keyLabel="!text/label_tab_key"
- latin:keyLabelFlags="fontNormal|preserveCase"
- latin:backgroundType="functional" />
- </case>
- <default>
- <key-style
- latin:styleName="tabKeyStyle"
- latin:code="!code/key_tab"
- latin:keyLabel="!text/label_tab_key"
- latin:keyLabelFlags="fontNormal|preserveCase"
- latin:backgroundType="functional" />
- </default>
- </switch>
- <key-style
- latin:styleName="baseForLayoutSwitchKeyStyle"
- latin:keyLabelFlags="fontNormal|preserveCase"
- latin:keyActionFlags="noKeyPreview"
- latin:backgroundType="functional" />
- <key-style
- latin:styleName="toSymbolKeyStyle"
- latin:code="!code/key_switch_alpha_symbol"
- latin:keyLabel="!text/label_to_symbol_key"
- latin:parentStyle="baseForLayoutSwitchKeyStyle" />
- <key-style
- latin:styleName="toAlphaKeyStyle"
- latin:code="!code/key_switch_alpha_symbol"
- latin:keyLabel="!text/label_to_alpha_key"
- latin:parentStyle="baseForLayoutSwitchKeyStyle" />
- <key-style
- latin:styleName="comKeyStyle"
- latin:keyLabel="!text/keylabel_for_popular_domain"
- latin:keyLabelFlags="fontNormal|hasPopupHint|preserveCase"
- latin:keyOutputText="!text/keylabel_for_popular_domain"
- latin:moreKeys="!text/more_keys_for_popular_domain" />
-</merge>
diff --git a/java/res/xml-sw768dp/row_dvorak4.xml b/java/res/xml-sw768dp/row_dvorak4.xml
deleted file mode 100644
index 8f9230d4a..000000000
--- a/java/res/xml-sw768dp/row_dvorak4.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional"
- >
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="5.782%p" />
- <include
- latin:keyboardLayout="@xml/key_settings" />
- <include
- latin:keyboardLayout="@xml/key_shortcut" />
- <include
- latin:keyboardLayout="@xml/key_f1" />
- <include
- latin:keyXPos="29.923%p"
- latin:keyboardLayout="@xml/key_space"
- latin:backgroundType="normal" />
- <include
- latin:keyboardLayout="@xml/key_question_exclamation" />
- <include
- latin:keyboardLayout="@xml/key_dash" />
- <include
- latin:keyboardLayout="@xml/key_f2" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer
- latin:keyWidth="fillRight" />
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/row_hebrew4.xml b/java/res/xml-sw768dp/row_hebrew4.xml
deleted file mode 100644
index ae14f0296..000000000
--- a/java/res/xml-sw768dp/row_hebrew4.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional"
- >
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="5.782%p" />
- <include
- latin:keyboardLayout="@xml/key_settings" />
- <include
- latin:keyboardLayout="@xml/key_shortcut" />
- <include
- latin:keyboardLayout="@xml/key_f1" />
- <include
- latin:keyXPos="29.923%p"
- latin:keyboardLayout="@xml/key_space"
- latin:backgroundType="normal" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <include
- latin:keyboardLayout="@xml/key_f2" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer
- latin:keyWidth="fillRight" />
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/row_pcqwerty5.xml b/java/res/xml-sw768dp/row_pcqwerty5.xml
deleted file mode 100644
index 6bfd6463a..000000000
--- a/java/res/xml-sw768dp/row_pcqwerty5.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row
- latin:keyWidth="8.047%p"
- >
- <switch>
- <case
- latin:languageSwitchKeyEnabled="true"
- >
- <Key
- latin:keyStyle="languageSwitchKeyStyle"
- latin:backgroundType="functional" />
- </case>
- </switch>
- <Key
- latin:keyStyle="spaceKeyStyle"
- latin:keyXPos="25.5%p"
- latin:keyWidth="49.0%p" />
- <switch>
- <case
- latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
- >
- <include
- latin:keyXPos="-8.047%p"
- latin:keyboardLayout="@xml/key_shortcut" />
- </case>
- <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" -->
- <default>
- <include
- latin:keyXPos="-8.047%p"
- latin:backgroundType="functional"
- latin:keyboardLayout="@xml/key_symbols_period" />
- </default>
- </switch>
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/row_qwerty4.xml b/java/res/xml-sw768dp/row_qwerty4.xml
deleted file mode 100644
index f1f4214ca..000000000
--- a/java/res/xml-sw768dp/row_qwerty4.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional"
- >
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="5.782%p" />
- <include
- latin:keyboardLayout="@xml/key_settings" />
- <include
- latin:keyboardLayout="@xml/key_shortcut" />
- <include
- latin:keyboardLayout="@xml/key_f1" />
- <include
- latin:keyXPos="29.923%p"
- latin:keyboardLayout="@xml/key_space"
- latin:backgroundType="normal" />
- <include
- latin:keyboardLayout="@xml/key_apostrophe" />
- <include
- latin:keyboardLayout="@xml/key_dash" />
- <include
- latin:keyboardLayout="@xml/key_f2" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer
- latin:keyWidth="fillRight" />
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/row_symbols4.xml b/java/res/xml-sw768dp/row_symbols4.xml
deleted file mode 100644
index 49340b8ae..000000000
--- a/java/res/xml-sw768dp/row_symbols4.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional"
- >
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="13.829%p" />
- <include
- latin:keyXPos="29.923%p"
- latin:keyboardLayout="@xml/key_space"
- latin:backgroundType="normal" />
- <Spacer />
- <Spacer />
- <include
- latin:keyboardLayout="@xml/key_f2" />
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml b/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
deleted file mode 100644
index 967b90359..000000000
--- a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_symbols1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toAlphaKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="10.167%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_symbols2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <include
- latin:keyXPos="5.782%p"
- latin:keyboardLayout="@xml/rowkeys_symbols3" />
- <Key
- latin:keyLabel="," />
- <include
- latin:keyboardLayout="@xml/key_symbols_period"
- latin:backgroundType="normal" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_symbols4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_azerty.xml b/java/res/xml-sw768dp/rows_azerty.xml
deleted file mode 100644
index cf4bc92fa..000000000
--- a/java/res/xml-sw768dp/rows_azerty.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_azerty1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="10.167%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_azerty2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_azerty3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_bulgarian.xml b/java/res/xml-sw768dp/rows_bulgarian.xml
deleted file mode 100644
index bdc1262f3..000000000
--- a/java/res/xml-sw768dp/rows_bulgarian.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.375%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_bulgarian1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.227%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_bulgarian2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.186%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_bulgarian3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_bulgarian_bds.xml b/java/res/xml-sw768dp/rows_bulgarian_bds.xml
deleted file mode 100644
index 58c46113e..000000000
--- a/java/res/xml-sw768dp/rows_bulgarian_bds.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.375%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_bulgarian_bds1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.227%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_bulgarian_bds2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.000%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_bulgarian_bds3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_dvorak.xml b/java/res/xml-sw768dp/rows_dvorak.xml
deleted file mode 100644
index 60d5dd604..000000000
--- a/java/res/xml-sw768dp/rows_dvorak.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_dvorak1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="10.167%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_dvorak2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_dvorak3" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_dvorak4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_east_slavic.xml b/java/res/xml-sw768dp/rows_east_slavic.xml
deleted file mode 100644
index 420307d3e..000000000
--- a/java/res/xml-sw768dp/rows_east_slavic.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.000%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_east_slavic1" />
- <Key
- latin:keyLabel="!text/keylabel_for_east_slavic_row1_12" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.000%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_east_slavic2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.000%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_east_slavic3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_georgian.xml b/java/res/xml-sw768dp/rows_georgian.xml
deleted file mode 100644
index 3f8bd4569..000000000
--- a/java/res/xml-sw768dp/rows_georgian.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_georgian1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight"/>
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_georgian2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_georgian3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_greek.xml b/java/res/xml-sw768dp/rows_greek.xml
deleted file mode 100644
index 9e1e00b73..000000000
--- a/java/res/xml-sw768dp/rows_greek.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/key_greek_semicolon" />
- <include
- latin:keyboardLayout="@xml/rowkeys_greek1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight"/>
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_greek2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_greek3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_mongolian.xml b/java/res/xml-sw768dp/rows_mongolian.xml
deleted file mode 100644
index 5f37f8773..000000000
--- a/java/res/xml-sw768dp/rows_mongolian.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.375%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_mongolian1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.227%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_mongolian2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.000%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_mongolian3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_nordic.xml b/java/res/xml-sw768dp/rows_nordic.xml
deleted file mode 100644
index 13d9399e8..000000000
--- a/java/res/xml-sw768dp/rows_nordic.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.375%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_nordic1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.227%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_nordic2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.227%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <Spacer
- latin:keyWidth="3.689%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyXPos="-13.750%p"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_number_normal.xml b/java/res/xml-sw768dp/rows_number_normal.xml
deleted file mode 100644
index de49aba91..000000000
--- a/java/res/xml-sw768dp/rows_number_normal.xml
+++ /dev/null
@@ -1,175 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row>
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <Key
- latin:keyLabel="-"
- latin:keyStyle="numKeyStyle"
- latin:keyXPos="13.829%p"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel="+"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel="."
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel="1"
- latin:keyStyle="numKeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyLabel="2"
- latin:keyStyle="numKeyStyle" />
- <Key
- latin:keyLabel="3"
- latin:keyStyle="numKeyStyle" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyXPos="-11.172%p"
- latin:keyWidth="fillRight" />
- </Row>
- <Row>
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="13.829%p" />
- <Key
- latin:keyStyle="numStarKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel="/"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <switch>
- <case
- latin:mode="time|datetime"
- >
- <Key
- latin:keyLabel=","
- latin:keyLabelFlags="hasPopupHint"
- latin:moreKeys="!text/more_keys_for_am_pm"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- </case>
- <default>
- <Key
- latin:keyLabel=","
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- </default>
- </switch>
- <Key
- latin:keyLabel="4"
- latin:keyStyle="numKeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyLabel="5"
- latin:keyStyle="numKeyStyle" />
- <Key
- latin:keyLabel="6"
- latin:keyStyle="numKeyStyle" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyXPos="-11.172%p"
- latin:keyWidth="fillRight" />
- </Row>
- <Row>
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="13.829%p" />
- <Key
- latin:keyLabel="("
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel=")"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <switch>
- <case
- latin:mode="time|datetime"
- >
- <Key
- latin:keyLabel=":"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- </case>
- <default>
- <Key
- latin:keyLabel="="
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- </default>
- </switch>
- <Key
- latin:keyLabel="7"
- latin:keyStyle="numKeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyLabel="8"
- latin:keyStyle="numKeyStyle" />
- <Key
- latin:keyLabel="9"
- latin:keyStyle="numKeyStyle" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer />
- </Row>
- <Row>
- <include
- latin:keyboardLayout="@xml/key_settings"
- latin:keyWidth="8.047%p" />
- <Key
- latin:keyStyle="spaceKeyStyle"
- latin:keyXPos="13.829%p"
- latin:keyWidth="24.140%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyStyle="numStarKeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyLabel="0"
- latin:keyStyle="numKeyStyle" />
- <Key
- latin:keyLabel="\#"
- latin:keyStyle="numKeyStyle" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer
- latin:keyWidth="fillRight" />
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/rows_number_password.xml b/java/res/xml-sw768dp/rows_number_password.xml
deleted file mode 100644
index cfa221491..000000000
--- a/java/res/xml-sw768dp/rows_number_password.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Row>
- <Key
- latin:keyStyle="numTabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <Key
- latin:keyStyle="num1KeyStyle"
- latin:keyXPos="32.076%p" />
- <Key
- latin:keyStyle="num2KeyStyle" />
- <Key
- latin:keyStyle="num3KeyStyle" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyXPos="-11.172%p"
- latin:keyWidth="fillRight" />
- </Row>
- <Row>
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="32.076%p" />
- <Key
- latin:keyStyle="num4KeyStyle" />
- <Key
- latin:keyStyle="num5KeyStyle" />
- <Key
- latin:keyStyle="num6KeyStyle" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyXPos="-11.172%p"
- latin:keyWidth="fillRight" />
- </Row>
- <Row>
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="32.076%p" />
- <Key
- latin:keyStyle="num7KeyStyle" />
- <Key
- latin:keyStyle="num8KeyStyle" />
- <Key
- latin:keyStyle="num9KeyStyle" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer />
- </Row>
- <Row>
- <include
- latin:keyboardLayout="@xml/key_settings"
- latin:keyWidth="8.047%p" />
- <Key
- latin:keyXPos="45.326%p"
- latin:keyStyle="num0KeyStyle" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer />
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/rows_pcqwerty.xml b/java/res/xml-sw768dp/rows_pcqwerty.xml
deleted file mode 100644
index 5f721a224..000000000
--- a/java/res/xml-sw768dp/rows_pcqwerty.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.0%p"
- >
- <switch>
- <case
- latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
- >
- <include
- latin:keyboardLayout="@xml/rowkeys_pcqwerty1" />
- </case>
- <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" -->
- <default>
- <include
- latin:keyboardLayout="@xml/rowkeys_pcqwerty1_shift" />
- </default>
- </switch>
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.0%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyWidth="9.0%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_pcqwerty2" />
- </Row>
- <Row
- latin:keyWidth="7.0%p"
- >
- <Spacer
- latin:keyWidth="12.0%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_pcqwerty3" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.0%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="15.0%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_pcqwerty4" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_pcqwerty5" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_phone.xml b/java/res/xml-sw768dp/rows_phone.xml
deleted file mode 100644
index d06a63b2c..000000000
--- a/java/res/xml-sw768dp/rows_phone.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <include
- latin:keyboardLayout="@xml/key_styles_number" />
- <Row>
- <Key
- latin:keyStyle="numTabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <Key
- latin:keyLabel="-"
- latin:keyStyle="numKeyStyle"
- latin:keyXPos="13.829%p"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel="+"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyStyle="numPauseKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyStyle="num1KeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyStyle="num2KeyStyle" />
- <Key
- latin:keyStyle="num3KeyStyle" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyXPos="-11.172%p"
- latin:keyWidth="fillRight" />
- </Row>
- <Row>
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="13.829%p" />
- <Key
- latin:keyLabel=","
- latin:keyStyle="numKeyStyle"
- latin:keyXPos="13.829%p"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel="."
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyStyle="numWaitKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyStyle="num4KeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyStyle="num5KeyStyle" />
- <Key
- latin:keyStyle="num6KeyStyle" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyXPos="-11.172%p"
- latin:keyWidth="fillRight" />
- </Row>
- <Row>
- <!-- Note: This Spacer prevents the below key from being marked as a left edge key. -->
- <Spacer
- latin:keyWidth="13.829%p" />
- <Key
- latin:keyLabel="("
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel=")"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyLabel="N"
- latin:keyStyle="numKeyStyle"
- latin:keyWidth="8.047%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyStyle="num7KeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyStyle="num8KeyStyle" />
- <Key
- latin:keyStyle="num9KeyStyle" />
- <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
- <Spacer />
- </Row>
- <Row>
- <include
- latin:keyboardLayout="@xml/key_settings"
- latin:keyWidth="8.047%p" />
- <Key
- latin:keyStyle="spaceKeyStyle"
- latin:keyXPos="13.829%p"
- latin:keyWidth="24.140%p"
- latin:backgroundType="functional" />
- <Key
- latin:keyStyle="numStarKeyStyle"
- latin:keyXPos="43.125%p" />
- <Key
- latin:keyStyle="num0KeyStyle" />
- <Key
- latin:keyLabel="\#"
- latin:keyStyle="numKeyStyle" />
- </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/rows_qwerty.xml b/java/res/xml-sw768dp/rows_qwerty.xml
deleted file mode 100644
index 8af18ed72..000000000
--- a/java/res/xml-sw768dp/rows_qwerty.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight"/>
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_qwertz.xml b/java/res/xml-sw768dp/rows_qwertz.xml
deleted file mode 100644
index 0dd206d45..000000000
--- a/java/res/xml-sw768dp/rows_qwertz.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_qwertz1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight"/>
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_qwertz3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_south_slavic.xml b/java/res/xml-sw768dp/rows_south_slavic.xml
deleted file mode 100644
index 6b44c4e6a..000000000
--- a/java/res/xml-sw768dp/rows_south_slavic.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.375%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_south_slavic1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.227%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_south_slavic2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.000%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_south_slavic3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_spanish.xml b/java/res/xml-sw768dp/rows_spanish.xml
deleted file mode 100644
index 4520c100d..000000000
--- a/java/res/xml-sw768dp/rows_spanish.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight"/>
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="10.167%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_spanish2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_qwerty3" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyXPos="-13.750%p"
- latin:keyWidth="fillRight" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_symbols.xml b/java/res/xml-sw768dp/rows_symbols.xml
deleted file mode 100644
index 57944cb8e..000000000
--- a/java/res/xml-sw768dp/rows_symbols.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_symbols1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toAlphaKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_symbols2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <include
- latin:keyXPos="5.782%p"
- latin:keyboardLayout="@xml/rowkeys_symbols3" />
- <Key
- latin:keyLabel="," />
- <include
- latin:keyboardLayout="@xml/key_symbols_period"
- latin:backgroundType="normal" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_symbols4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_thai.xml b/java/res/xml-sw768dp/rows_thai.xml
deleted file mode 100644
index 5f9b383f8..000000000
--- a/java/res/xml-sw768dp/rows_thai.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="7.079%p"
- >
- <include
- latin:keyboardLayout="@xml/rowkeys_thai1"
- latin:keyXPos="3.799%p" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight"/>
- </Row>
- <Row
- latin:keyWidth="7.079%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_thai2" />
- <include
- latin:keyboardLayout="@xml/key_thai_kho_khuat" />
- </Row>
- <Row
- latin:keyWidth="7.079%p"
- >
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_thai3" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="7.181%p"
- >
- <Key
- latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p"/>
- <include
- latin:keyboardLayout="@xml/rowkeys_thai4" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw768dp/rows_thai_symbols.xml b/java/res/xml-sw768dp/rows_thai_symbols.xml
deleted file mode 100644
index 15fb4e177..000000000
--- a/java/res/xml-sw768dp/rows_thai_symbols.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <include
- latin:keyboardLayout="@xml/key_styles_common" />
- <Row
- latin:keyWidth="8.282%p"
- >
- <include
- latin:keyboardLayout="@xml/rowkeys_thai_digits"
- latin:keyXPos="7.969%p" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.282%p"
- >
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_symbols1" />
- </Row>
- <Row
- latin:keyWidth="8.125%p"
- >
- <Key
- latin:keyStyle="toAlphaKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
- <include
- latin:keyboardLayout="@xml/rowkeys_symbols2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
- <Row
- latin:keyWidth="8.047%p"
- >
- <include
- latin:keyXPos="5.782%p"
- latin:keyboardLayout="@xml/rowkeys_symbols3" />
- <Key
- latin:keyLabel="," />
- <include
- latin:keyboardLayout="@xml/key_symbols_period"
- latin:backgroundType="normal" />
- </Row>
- <include
- latin:keyboardLayout="@xml/row_symbols4" />
-</merge>
diff --git a/java/res/xml-v16/key_hindi3_shift_left.xml b/java/res/xml-v16/key_devanagari_sign_anusvara.xml
index 1eb1768a1..27c7bff5a 100644
--- a/java/res/xml-v16/key_hindi3_shift_left.xml
+++ b/java/res/xml-v16/key_devanagari_sign_anusvara.xml
@@ -20,15 +20,13 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
- U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+ <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
<Key
- latin:keyLabel="&#x0901;"
- latin:moreKeys="&#x0945;"
+ latin:keyLabel="&#x0902;"
latin:keyLabelFlags="fontNormal" />
</merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
new file mode 100644
index 000000000..03017dd78
--- /dev/null
+++ b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+ U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+ <key-style
+ latin:styleName="moreKeysDevanagariSignCandrabindu"
+ latin:moreKeys="&#x0945;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariSignCandrabindu" />
+ </default>
+ </switch>
+ <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
+ <Key
+ latin:keyStyle="moreKeysDevanagariSignCandrabindu"
+ latin:keyLabel="&#x0901;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_hindi3_right.xml b/java/res/xml-v16/key_devanagari_sign_nukta.xml
index 232810f98..09c347706 100644
--- a/java/res/xml-v16/key_hindi3_right.xml
+++ b/java/res/xml-v16/key_devanagari_sign_nukta.xml
@@ -20,17 +20,30 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <!-- U+093C: "़" DEVANAGARI SIGN NUKTA
- U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
- U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
+ U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
+ U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariSignNukta"
+ latin:moreKeys="&#x097D;,&#x0970;,&#x093D;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariSignNukta" />
+ </default>
+ </switch>
+ <!-- U+093C: "़" DEVANAGARI SIGN NUKTA -->
<Key
+ latin:keyStyle="moreKeysDevanagariSignNukta"
latin:keyLabel="&#x093C;"
- latin:moreKeys="&#x097D;,&#x0970;,&#x093D;"
latin:keyLabelFlags="fontNormal" />
</merge>
diff --git a/java/res/xml-v16/keys_hindi3_left2.xml b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
index 9474c1763..0316a7bde 100644
--- a/java/res/xml-v16/keys_hindi3_left2.xml
+++ b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
@@ -20,8 +20,8 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
@@ -29,8 +29,4 @@
<Key
latin:keyLabel="&#x0949;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
- <Key
- latin:keyLabel="&#x0902;"
- latin:keyLabelFlags="fontNormal" />
</merge>
diff --git a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
new file mode 100644
index 000000000..4dd3e85cc
--- /dev/null
+++ b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+ latin:moreKeys="&#x0944;" />
+ </case>
+ <case
+ latin:keyboardLayoutSet="nepali_traditional"
+ >
+ <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+ latin:moreKeys="&#x0913;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignVocalicR" />
+ </default>
+ </switch>
+ <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+ <Key
+ latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
+ latin:keyLabel="&#x0943;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_hindi1_left5.xml b/java/res/xml-v16/keys_hindi1_left5.xml
deleted file mode 100644
index e3ad299ff..000000000
--- a/java/res/xml-v16/keys_hindi1_left5.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
- API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
- U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA
- U+0967: "१" DEVANAGARI DIGIT ONE -->
- <Key
- latin:keyLabel="&#x094C;"
- latin:moreKeys="&#x094C;&#x0902;,%"
- latin:keyHintLabel="1"
- latin:additionalMoreKeys="&#x0967;,1"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI
- U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA
- U+0968: "२" DEVANAGARI DIGIT TWO -->
- <Key
- latin:keyLabel="&#x0948;"
- latin:moreKeys="&#x0948;&#x0902;,%"
- latin:keyHintLabel="2"
- latin:additionalMoreKeys="&#x0968;,2"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA
- U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
- U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU
- U+0969: "३" DEVANAGARI DIGIT THREE -->
- <Key
- latin:keyLabel="&#x093E;"
- latin:moreKeys="&#x093E;&#x0902;,&#x093E;&#x0901;,%"
- latin:keyHintLabel="3"
- latin:additionalMoreKeys="&#x0969;,3"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II
- U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA
- U+096A: "४" DEVANAGARI DIGIT FOUR -->
- <Key
- latin:keyLabel="&#x0940;"
- latin:moreKeys="&#x0940;&#x0902;,%"
- latin:keyHintLabel="4"
- latin:additionalMoreKeys="&#x096A;,4"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU
- U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
- U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU
- U+096B: "५" DEVANAGARI DIGIT FIVE -->
- <Key
- latin:keyLabel="&#x0942;"
- latin:moreKeys="&#x0942;&#x0902;,&#x0942;&#x0901;,%"
- latin:keyHintLabel="5"
- latin:additionalMoreKeys="&#x096B;,5"
- latin:keyLabelFlags="fontNormal" />
-</merge>
diff --git a/java/res/xml-v16/keys_hindi2_left5.xml b/java/res/xml-v16/keys_hindi2_left5.xml
deleted file mode 100644
index 05c4f57e9..000000000
--- a/java/res/xml-v16/keys_hindi2_left5.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
- API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O
- U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
- U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
- <Key
- latin:keyLabel="&#x094B;"
- latin:moreKeys="&#x094B;&#x0902;,&#x0949;,&#x094A;"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E
- U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA -->
- <Key
- latin:keyLabel="&#x0947;"
- latin:moreKeys="&#x0947;&#x0902;"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
- <Key
- latin:keyLabel="&#x094D;"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I
- U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA -->
- <Key
- latin:keyLabel="&#x093F;"
- latin:moreKeys="&#x093F;&#x0902;"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U
- U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
- U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU -->
- <Key
- latin:keyLabel="&#x0941;"
- latin:moreKeys="&#x0941;&#x0902;,&#x0941;&#x0901;"
- latin:keyLabelFlags="fontNormal" />
-</merge>
diff --git a/java/res/xml-v16/key_hindi3_shift_right.xml b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
index 0f26cb55c..a2fbf53d3 100644
--- a/java/res/xml-v16/key_hindi3_shift_right.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
@@ -20,15 +20,14 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
- U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR -->
- <Key
- latin:keyLabel="&#x0943;"
- latin:moreKeys="&#x0944;"
+ <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+ <key-style
+ latin:styleName="baseKeyDevanagariSignVirama"
+ latin:keyLabel="&#x094D;"
latin:keyLabelFlags="fontNormal" />
</merge>
diff --git a/java/res/xml-v16/key_hindi1_shift.xml b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
index 19b964367..ac56cb77b 100644
--- a/java/res/xml-v16/key_hindi1_shift.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
@@ -20,13 +20,14 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<!-- U+0903: "ः" DEVANAGARI SIGN VISARGA -->
- <Key
+ <key-style
+ latin:styleName="baseKeyDevanagariSignVisarga"
latin:keyLabel="&#x0903;"
latin:keyLabelFlags="fontNormal" />
</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
new file mode 100644
index 000000000..8e256032c
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
+ U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAa"
+ latin:moreKeys="&#x093E;&#x0902;,&#x093E;&#x0901;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAa" />
+ </default>
+ </switch>
+ <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignAa"
+ latin:parentStyle="moreKeysDevanagariVowelSignAa"
+ latin:keyLabel="&#x093E;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
new file mode 100644
index 000000000..e79033971
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAi"
+ latin:moreKeys="&#x0948;&#x0902;,%" />
+ </case>
+ <case
+ latin:keyboardLayoutSet="nepali_traditional"
+ >
+ <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAi"
+ latin:moreKeys="&#x0936;&#x094D;&#x0930;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAi" />
+ </default>
+ </switch>
+ <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignAi"
+ latin:parentStyle="moreKeysDevanagariVowelSignAi"
+ latin:keyLabel="&#x0948;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
new file mode 100644
index 000000000..43387a388
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!--U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAu"
+ latin:moreKeys="&#x094C;&#x0902;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAu" />
+ </default>
+ </switch>
+ <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignAu"
+ latin:parentStyle="moreKeysDevanagariVowelSignAu"
+ latin:keyLabel="&#x094C;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
new file mode 100644
index 000000000..c70d9d944
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignE"
+ latin:moreKeys="&#x0947;&#x0902;" />
+ </case>
+ <case
+ latin:keyboardLayoutSet="nepali_traditional"
+ >
+ <!-- U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+ U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignE"
+ latin:moreKeys="&#x0903;,&#x093D;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignE" />
+ </default>
+ </switch>
+ <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignE"
+ latin:parentStyle="moreKeysDevanagariVowelSignE"
+ latin:keyLabel="&#x0947;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
new file mode 100644
index 000000000..845c1b02e
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignI"
+ latin:moreKeys="&#x093F;&#x0902;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignI" />
+ </default>
+ </switch>
+ <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignI"
+ latin:parentStyle="moreKeysDevanagariVowelSignI"
+ latin:keyLabel="&#x093F;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
new file mode 100644
index 000000000..0de9650be
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignIi"
+ latin:moreKeys="&#x0940;&#x0902;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignIi" />
+ </default>
+ </switch>
+ <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignIi"
+ latin:parentStyle="moreKeysDevanagariVowelSignIi"
+ latin:keyLabel="&#x0940;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
new file mode 100644
index 000000000..06f07fac9
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
+ U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+ U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignO"
+ latin:moreKeys="&#x094B;&#x0902;,&#x0949;,&#x094A;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignO" />
+ </default>
+ </switch>
+ <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignO"
+ latin:parentStyle="moreKeysDevanagariVowelSignO"
+ latin:keyLabel="&#x094B;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
new file mode 100644
index 000000000..469a27bdf
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
+ U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignU"
+ latin:moreKeys="&#x0941;&#x0902;,&#x0941;&#x0901;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignU" />
+ </default>
+ </switch>
+ <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignU"
+ latin:parentStyle="moreKeysDevanagariVowelSignU"
+ latin:keyLabel="&#x0941;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
new file mode 100644
index 000000000..25867c086
--- /dev/null
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
+ U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignUu"
+ latin:moreKeys="&#x0942;&#x0902;,&#x0942;&#x0901;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignUu" />
+ </default>
+ </switch>
+ <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignUu"
+ latin:parentStyle="moreKeysDevanagariVowelSignUu"
+ latin:keyLabel="&#x0942;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-sw768dp/kbd_thai_symbols.xml b/java/res/xml/kbd_armenian_phonetic.xml
index 5ddf57446..1eb3c7e7d 100644
--- a/java/res/xml-sw768dp/kbd_thai_symbols.xml
+++ b/java/res/xml/kbd_armenian_phonetic.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2012, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -27,5 +27,5 @@
latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
<include
- latin:keyboardLayout="@xml/rows_thai_symbols" />
+ latin:keyboardLayout="@xml/rows_armenian_phonetic" />
</Keyboard>
diff --git a/java/res/xml/kbd_emoji_category6.xml b/java/res/xml/kbd_emoji_category6.xml
index a07966b07..838f3f52c 100644
--- a/java/res/xml/kbd_emoji_category6.xml
+++ b/java/res/xml/kbd_emoji_category6.xml
@@ -22,6 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
latin:keyWidth="@fraction/emoji_keyboard_key_width"
latin:keyLetterSize="90%p"
+ latin:keyLabelSize="60%p"
>
<GridRows
latin:textsArray="@array/emoji_emoticons"
diff --git a/java/res/xml/kbd_emoji_recents.xml b/java/res/xml/kbd_emoji_recents.xml
index 8b4fa958c..f56b79ab7 100644
--- a/java/res/xml/kbd_emoji_recents.xml
+++ b/java/res/xml/kbd_emoji_recents.xml
@@ -22,6 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
latin:keyWidth="@fraction/emoji_keyboard_key_width"
latin:keyLetterSize="90%p"
+ latin:keyLabelSize="60%p"
>
<GridRows
latin:codesArray="@array/emoji_recents"
diff --git a/java/res/xml-sw768dp/kbd_10_10_7_symbols.xml b/java/res/xml/kbd_nepali_romanized.xml
index dd545b5ef..9e4381364 100644
--- a/java/res/xml-sw768dp/kbd_10_10_7_symbols.xml
+++ b/java/res/xml/kbd_nepali_romanized.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2012, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -20,8 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
<include
- latin:keyboardLayout="@xml/rows_10_10_7_symbols" />
+ latin:keyboardLayout="@xml/rows_nepali_romanized" />
</Keyboard>
diff --git a/java/res/xml-sw768dp/kbd_phone.xml b/java/res/xml/kbd_nepali_traditional.xml
index 947ede050..6854e32bd 100644
--- a/java/res/xml-sw768dp/kbd_phone.xml
+++ b/java/res/xml/kbd_nepali_traditional.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2010, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -20,9 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyWidth="13.250%p"
- latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
>
<include
- latin:keyboardLayout="@xml/rows_phone" />
+ latin:keyboardLayout="@xml/rows_nepali_traditional" />
</Keyboard>
diff --git a/java/res/xml-sw768dp/key_settings.xml b/java/res/xml/key_armenian_sha.xml
index 0d3bb59a4..3865c1984 100644
--- a/java/res/xml-sw768dp/key_settings.xml
+++ b/java/res/xml/key_armenian_sha.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2012, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -21,15 +21,8 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <switch>
- <case
- latin:clobberSettingsKey="false"
- >
- <Key
- latin:keyStyle="settingsKeyStyle" />
- </case>
- <default>
- <Spacer />
- </default>
- </switch>
+ <!-- U+0577: "շ" ARMENIAN SMALL LETTER SHA -->
+ <Key
+ latin:keyLabel="&#x0577;"
+ latin:keyLabelFlags="fontNormal" />
</merge>
diff --git a/java/res/xml/key_armenian_xeh.xml b/java/res/xml/key_armenian_xeh.xml
new file mode 100644
index 000000000..007a5802d
--- /dev/null
+++ b/java/res/xml/key_armenian_xeh.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <!-- U+056D: "խ" ARMENIAN SMALL LETTER XEH -->
+ <Key
+ latin:keyLabel="&#x056D;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/key_hindi3_shift_left.xml b/java/res/xml/key_devanagari_sign_anusvara.xml
index c5e2f1386..0acd3bcd4 100644
--- a/java/res/xml/key_hindi3_shift_left.xml
+++ b/java/res/xml/key_devanagari_sign_anusvara.xml
@@ -20,17 +20,15 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<!-- U+25CC: "◌" DOTTED CIRCLE
- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
- U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+ U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
<Key
- latin:keyLabel="&#x25CC;&#x0901;"
- latin:code="0x0901"
- latin:moreKeys="&#x25CC;&#x0945;|&#x0945;"
+ latin:keyLabel="&#x25CC;&#x0902;"
+ latin:code="0x0902"
latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
</merge>
diff --git a/java/res/xml/key_hindi3_right.xml b/java/res/xml/key_devanagari_sign_candrabindu.xml
index 5a97355f6..df0c4e054 100644
--- a/java/res/xml/key_hindi3_right.xml
+++ b/java/res/xml/key_devanagari_sign_candrabindu.xml
@@ -20,19 +20,31 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+ <key-style
+ latin:styleName="moreKeysDevanagariSignCandrabindu"
+ latin:moreKeys="&#x25CC;&#x0945;|&#x0945;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariSignCandrabindu" />
+ </default>
+ </switch>
<!-- U+25CC: "◌" DOTTED CIRCLE
- U+093C: "़" DEVANAGARI SIGN NUKTA
- U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
- U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
<Key
- latin:keyLabel="&#x25CC;&#x093C;"
- latin:code="0x093C"
- latin:moreKeys="&#x25CC;&#x097D;|&#x097D;,&#x25CC;&#x0970;|&#x0970;,&#x25CC;&#x093D;|&#x093D;"
+ latin:keyStyle="moreKeysDevanagariSignCandrabindu"
+ latin:keyLabel="&#x25CC;&#x0901;"
+ latin:code="0x0901"
latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
</merge>
diff --git a/java/res/xml/key_devanagari_sign_nukta.xml b/java/res/xml/key_devanagari_sign_nukta.xml
new file mode 100644
index 000000000..f7a03ee90
--- /dev/null
+++ b/java/res/xml/key_devanagari_sign_nukta.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
+ U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
+ U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariSignNukta"
+ latin:moreKeys="&#x25CC;&#x097D;|&#x097D;,&#x25CC;&#x0970;|&#x0970;,&#x25CC;&#x093D;|&#x093D;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariSignNukta" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+093C: "़" DEVANAGARI SIGN NUKTA -->
+ <Key
+ latin:keyStyle="moreKeysDevanagariSignNukta"
+ latin:keyLabel="&#x25CC;&#x093C;"
+ latin:code="0x093C"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keys_hindi3_left2.xml b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
index 4f1ad16ef..370fc5405 100644
--- a/java/res/xml/keys_hindi3_left2.xml
+++ b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
@@ -20,8 +20,8 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
@@ -31,10 +31,4 @@
latin:keyLabel="&#x25CC;&#x0949;"
latin:code="0x0949"
latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
- <Key
- latin:keyLabel="&#x25CC;&#x0902;"
- latin:code="0x0902"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
</merge>
diff --git a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
new file mode 100644
index 000000000..f150d7ed9
--- /dev/null
+++ b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+ latin:moreKeys="&#x25CC;&#x0944;|&#x0944;" />
+ </case>
+ <case
+ latin:keyboardLayoutSet="nepali_traditional"
+ >
+ <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+ latin:moreKeys="&#x0913;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignVocalicR" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+ <Key
+ latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
+ latin:keyLabel="&#x25CC;&#x0943;"
+ latin:code="0x0943"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_nepali_traditional_period.xml b/java/res/xml/key_nepali_traditional_period.xml
new file mode 100644
index 000000000..0f575c50b
--- /dev/null
+++ b/java/res/xml/key_nepali_traditional_period.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of Hindi. The files named res/xml/{key,keys}_nepali*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/{key,keys}_nepali*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <Key
+ latin:keyLabel=","
+ latin:backgroundType="functional" />
+ </case>
+ <default>
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVirama"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:moreKeys="!fixedColumnOrder!4,.,!text/more_keys_for_punctuation"
+ latin:backgroundType="functional" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index dabe1e7eb..c1c2c3e06 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -67,30 +67,6 @@
latin:backgroundType="functional" />
<include
latin:keyboardLayout="@xml/key_styles_enter" />
- <switch>
- <!-- Shift + Enter in textMultiLine field. -->
- <case
- latin:isMultiLine="true"
- latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
- >
- <key-style
- latin:styleName="enterKeyStyle"
- latin:parentStyle="shiftEnterKeyStyle" />
- </case>
- <!-- Smiley in textShortMessage field.
- Overrides common enter key style. -->
- <case
- latin:mode="im"
- >
- <key-style
- latin:styleName="enterKeyStyle"
- latin:keyLabel=":-)"
- latin:keyOutputText=":-) "
- latin:keyLabelFlags="hasPopupHint"
- latin:moreKeys="!text/more_keys_for_smiley"
- latin:backgroundType="functional" />
- </case>
- </switch>
<key-style
latin:styleName="spaceKeyStyle"
latin:code="!code/key_space"
@@ -129,7 +105,8 @@
latin:styleName="emojiKeyStyle"
latin:code="!code/key_emoji"
latin:keyIcon="!icon/emoji_key"
- latin:keyActionFlags="noKeyPreview" />
+ latin:keyActionFlags="noKeyPreview"
+ latin:backgroundType="functional" />
<key-style
latin:styleName="tabKeyStyle"
latin:code="!code/key_tab"
diff --git a/java/res/xml/keyboard_layout_set_armenian_phonetic.xml b/java/res/xml/keyboard_layout_set_armenian_phonetic.xml
new file mode 100644
index 000000000..b374fae3b
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_armenian_phonetic.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Element
+ latin:elementName="alphabet"
+ latin:elementKeyboard="@xml/kbd_armenian_phonetic"
+ latin:enableProximityCharsCorrection="true" />
+ <Element
+ latin:elementName="symbols"
+ latin:elementKeyboard="@xml/kbd_symbols" />
+ <Element
+ latin:elementName="phone"
+ latin:elementKeyboard="@xml/kbd_phone" />
+ <Element
+ latin:elementName="phoneSymbols"
+ latin:elementKeyboard="@xml/kbd_phone_symbols" />
+ <Element
+ latin:elementName="number"
+ latin:elementKeyboard="@xml/kbd_number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/keyboard_layout_set_nepali_romanized.xml b/java/res/xml/keyboard_layout_set_nepali_romanized.xml
new file mode 100644
index 000000000..82f36cfbd
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_nepali_romanized.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Element
+ latin:elementName="alphabet"
+ latin:elementKeyboard="@xml/kbd_nepali_romanized"
+ latin:enableProximityCharsCorrection="true" />
+ <Element
+ latin:elementName="alphabetAutomaticShifted"
+ latin:elementKeyboard="@xml/kbd_nepali_romanized"
+ latin:enableProximityCharsCorrection="true" />
+ <!-- On these shifted alphabet layouts the proximity characters correction should be disabled
+ because the letters on these layouts aren't the ones in different case of the above
+ unshifted layouts. -->
+ <Element
+ latin:elementName="alphabetManualShifted"
+ latin:elementKeyboard="@xml/kbd_nepali_romanized" />
+ <Element
+ latin:elementName="alphabetShiftLocked"
+ latin:elementKeyboard="@xml/kbd_nepali_romanized" />
+ <Element
+ latin:elementName="alphabetShiftLockShifted"
+ latin:elementKeyboard="@xml/kbd_nepali_romanized" />
+ <Element
+ latin:elementName="symbols"
+ latin:elementKeyboard="@xml/kbd_symbols" />
+ <Element
+ latin:elementName="phone"
+ latin:elementKeyboard="@xml/kbd_phone" />
+ <Element
+ latin:elementName="phoneSymbols"
+ latin:elementKeyboard="@xml/kbd_phone_symbols" />
+ <Element
+ latin:elementName="number"
+ latin:elementKeyboard="@xml/kbd_number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/keyboard_layout_set_nepali_traditional.xml b/java/res/xml/keyboard_layout_set_nepali_traditional.xml
new file mode 100644
index 000000000..2a6dc8e83
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_nepali_traditional.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Element
+ latin:elementName="alphabet"
+ latin:elementKeyboard="@xml/kbd_nepali_traditional"
+ latin:enableProximityCharsCorrection="true" />
+ <Element
+ latin:elementName="alphabetAutomaticShifted"
+ latin:elementKeyboard="@xml/kbd_nepali_traditional"
+ latin:enableProximityCharsCorrection="true" />
+ <!-- On these shifted alphabet layouts the proximity characters correction should be disabled
+ because the letters on these layouts aren't the ones in different case of the above
+ unshifted layouts. -->
+ <Element
+ latin:elementName="alphabetManualShifted"
+ latin:elementKeyboard="@xml/kbd_nepali_traditional" />
+ <Element
+ latin:elementName="alphabetShiftLocked"
+ latin:elementKeyboard="@xml/kbd_nepali_traditional" />
+ <Element
+ latin:elementName="alphabetShiftLockShifted"
+ latin:elementKeyboard="@xml/kbd_nepali_traditional" />
+ <Element
+ latin:elementName="symbols"
+ latin:elementKeyboard="@xml/kbd_symbols" />
+ <Element
+ latin:elementName="phone"
+ latin:elementKeyboard="@xml/kbd_phone" />
+ <Element
+ latin:elementName="phoneSymbols"
+ latin:elementKeyboard="@xml/kbd_phone_symbols" />
+ <Element
+ latin:elementName="number"
+ latin:elementKeyboard="@xml/kbd_number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/keys_hindi1_left5.xml b/java/res/xml/keys_hindi1_left5.xml
deleted file mode 100644
index 8757afeaf..000000000
--- a/java/res/xml/keys_hindi1_left5.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
- API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
- U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA
- U+0967: "१" DEVANAGARI DIGIT ONE -->
- <Key
- latin:keyLabel="&#x25CC;&#x094C;"
- latin:code="0x094C"
- latin:moreKeys="&#x25CC;&#x094C;&#x0902;|&#x094C;&#x0902;,%"
- latin:keyHintLabel="1"
- latin:additionalMoreKeys="&#x0967;,1"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+0948: "ै" DEVANAGARI VOWEL SIGN AI
- U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA
- U+0968: "२" DEVANAGARI DIGIT TWO -->
- <Key
- latin:keyLabel="&#x25CC;&#x0948;"
- latin:code="0x0948"
- latin:moreKeys="&#x25CC;&#x0948;&#x0902;|&#x0948;&#x0902;,%"
- latin:keyHintLabel="2"
- latin:additionalMoreKeys="&#x0968;,2"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+093E: "ा" DEVANAGARI VOWEL SIGN AA
- U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
- U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU
- U+0969: "३" DEVANAGARI DIGIT THREE -->
- <Key
- latin:keyLabel="&#x25CC;&#x093E;"
- latin:code="0x093E"
- latin:moreKeys="&#x25CC;&#x093E;&#x0902;|&#x093E;&#x0902;,&#x25CC;&#x093E;&#x0901;|&#x093E;&#x0901;,%"
- latin:keyHintLabel="3"
- latin:additionalMoreKeys="&#x0969;,3"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+0940: "ी" DEVANAGARI VOWEL SIGN II
- U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA
- U+096A: "४" DEVANAGARI DIGIT FOUR -->
- <Key
- latin:keyLabel="&#x25CC;&#x0940;"
- latin:code="0x0940"
- latin:moreKeys="&#x25CC;&#x0940;&#x0902;|&#x0940;&#x0902;,%"
- latin:keyHintLabel="4"
- latin:additionalMoreKeys="&#x096A;,4"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+0942: "ू" DEVANAGARI VOWEL SIGN UU
- U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
- U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU
- U+096B: "५" DEVANAGARI DIGIT FIVE -->
- <Key
- latin:keyLabel="&#x25CC;&#x0942;"
- latin:code="0x0942"
- latin:moreKeys="&#x25CC;&#x0942;&#x0902;|&#x0942;&#x0902;,&#x25CC;&#x0942;&#x0901;|&#x0942;&#x0901;,%"
- latin:keyHintLabel="5"
- latin:additionalMoreKeys="&#x096B;,5"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
-</merge>
diff --git a/java/res/xml/keys_hindi2_left5.xml b/java/res/xml/keys_hindi2_left5.xml
deleted file mode 100644
index 4c3a5e051..000000000
--- a/java/res/xml/keys_hindi2_left5.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
- API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+094B: "ो" DEVANAGARI VOWEL SIGN O
- U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
- U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
- <Key
- latin:keyLabel="&#x25CC;&#x094B;"
- latin:code="0x094B"
- latin:moreKeys="&#x25CC;&#x094B;&#x0902;|&#x094B;&#x0902;,&#x25CC;&#x0949;,&#x094A;|&#x0949;,&#x094A;"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+0947: "े" DEVANAGARI VOWEL SIGN E
- U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA -->
- <Key
- latin:keyLabel="&#x25CC;&#x0947;"
- latin:code="0x0947"
- latin:moreKeys="&#x25CC;&#x0947;&#x0902;|&#x0947;&#x0902;"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
- <Key
- latin:keyLabel="&#x25CC;&#x094D;"
- latin:code="0x094D"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+093F: "ि" DEVANAGARI VOWEL SIGN I
- U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA -->
- <Key
- latin:keyLabel="&#x093F;&#x25CC;"
- latin:code="0x093F"
- latin:moreKeys="&#x093F;&#x25CC;&#x0902;|&#x093F;&#x0902;"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
- <!-- U+25CC: "◌" DOTTED CIRCLE
- U+0941: "ु" DEVANAGARI VOWEL SIGN U
- U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
- U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU -->
- <Key
- latin:keyLabel="&#x25CC;&#x0941;"
- latin:code="0x0941"
- latin:moreKeys="&#x25CC;&#x0941;&#x0902;|&#x0941;&#x0902;,&#x25CC;&#x0941;&#x0901;|&#x0941;&#x0901;"
- latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
-</merge>
diff --git a/java/res/xml/key_hindi3_shift_right.xml b/java/res/xml/keystyle_devanagari_sign_virama.xml
index 0da116ab8..b22fbe842 100644
--- a/java/res/xml/key_hindi3_shift_right.xml
+++ b/java/res/xml/keystyle_devanagari_sign_virama.xml
@@ -20,17 +20,16 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<!-- U+25CC: "◌" DOTTED CIRCLE
- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
- U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR -->
- <Key
- latin:keyLabel="&#x25CC;&#x0943;"
- latin:code="0x0943"
- latin:moreKeys="&#x25CC;&#x0944;|&#x0944;"
+ U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+ <key-style
+ latin:styleName="baseKeyDevanagariSignVirama"
+ latin:keyLabel="&#x25CC;&#x094D;"
+ latin:code="0x094D"
latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
-</merge>
+ </merge>
diff --git a/java/res/xml/key_hindi1_shift.xml b/java/res/xml/keystyle_devanagari_sign_visarga.xml
index 0db5ae9af..cb294951f 100644
--- a/java/res/xml/key_hindi1_shift.xml
+++ b/java/res/xml/keystyle_devanagari_sign_visarga.xml
@@ -20,14 +20,15 @@
<!-- The code point U+25CC for key label is needed because the font rendering system prior to
API version 16 can't automatically render dotted circle for incomplete combining letter
- of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
- counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
<!-- U+25CC: "◌" DOTTED CIRCLE
U+0903: "ः" DEVANAGARI SIGN VISARGA -->
- <Key
+ <key-style
+ latin:styleName="baseKeyDevanagariSignVisarga"
latin:keyLabel="&#x25CC;&#x0903;"
latin:code="0x0903"
latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
new file mode 100644
index 000000000..2e78c53ec
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
+ U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAa"
+ latin:moreKeys="&#x25CC;&#x093E;&#x0902;|&#x093E;&#x0902;,&#x25CC;&#x093E;&#x0901;|&#x093E;&#x0901;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAa" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+093E: "ा" DEVANAGARI VOWEL SIGN AA -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignAa"
+ latin:parentStyle="moreKeysDevanagariVowelSignAa"
+ latin:keyLabel="&#x25CC;&#x093E;"
+ latin:code="0x093E"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
new file mode 100644
index 000000000..0554c0e15
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAi"
+ latin:moreKeys="&#x25CC;&#x0948;&#x0902;|&#x0948;&#x0902;,%" />
+ </case>
+ <case
+ latin:keyboardLayoutSet="nepali_traditional"
+ >
+ <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAi"
+ latin:moreKeys="&#x0936;&#x094D;&#x0930;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAi" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0948: "ै" DEVANAGARI VOWEL SIGN AI -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignAi"
+ latin:parentStyle="moreKeysDevanagariVowelSignAi"
+ latin:keyLabel="&#x25CC;&#x0948;"
+ latin:code="0x0948"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
new file mode 100644
index 000000000..29a11a82e
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAu"
+ latin:moreKeys="&#x25CC;&#x094C;&#x0902;|&#x094C;&#x0902;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignAu" />
+ </default>
+ </switch>
+ <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignAu"
+ latin:parentStyle="moreKeysDevanagariVowelSignAu"
+ latin:keyLabel="&#x25CC;&#x094C;"
+ latin:code="0x094C"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
new file mode 100644
index 000000000..edd29c791
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignE"
+ latin:moreKeys="&#x25CC;&#x0947;&#x0902;|&#x0947;&#x0902;" />
+ </case>
+ <case
+ latin:keyboardLayoutSet="nepali_traditional"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+ U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignE"
+ latin:moreKeys="&#x25CC;&#x0903;|&#x0903;,&#x093D;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignE" />
+ </default>
+ </switch>
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignE"
+ latin:parentStyle="moreKeysDevanagariVowelSignE"
+ latin:keyLabel="&#x25CC;&#x0947;"
+ latin:code="0x0947"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
new file mode 100644
index 000000000..200fed29f
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignI"
+ latin:moreKeys="&#x093F;&#x25CC;&#x0902;|&#x093F;&#x0902;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignI" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+093F: "ि" DEVANAGARI VOWEL SIGN I -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignI"
+ latin:parentStyle="moreKeysDevanagariVowelSignI"
+ latin:keyLabel="&#x25CC;&#x093F;"
+ latin:code="0x093F"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
new file mode 100644
index 000000000..6dc9951df
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II
+ U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignIi"
+ latin:moreKeys="&#x25CC;&#x0940;&#x0902;|&#x0940;&#x0902;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignIi" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0940: "ी" DEVANAGARI VOWEL SIGN II -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignIi"
+ latin:parentStyle="moreKeysDevanagariVowelSignIi"
+ latin:keyLabel="&#x25CC;&#x0940;"
+ latin:code="0x0940"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
new file mode 100644
index 000000000..233ac8609
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
+ U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+ U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignO"
+ latin:moreKeys="&#x25CC;&#x094B;&#x0902;|&#x094B;&#x0902;,&#x25CC;&#x0949;|&#x0949;,&#x25CC;&#x094A;|&#x094A;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignO" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+094B: "ो" DEVANAGARI VOWEL SIGN O -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignO"
+ latin:parentStyle="moreKeysDevanagariVowelSignO"
+ latin:keyLabel="&#x25CC;&#x094B;"
+ latin:code="0x094B"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
new file mode 100644
index 000000000..7291b7099
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
+ U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignU"
+ latin:moreKeys="&#x25CC;&#x0941;&#x0902;|&#x0941;&#x0902;,&#x25CC;&#x0941;&#x0901;|&#x0941;&#x0901;" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignU" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0941: "ु" DEVANAGARI VOWEL SIGN U -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignU"
+ latin:parentStyle="moreKeysDevanagariVowelSignU"
+ latin:keyLabel="&#x25CC;&#x0941;"
+ latin:code="0x0941"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
new file mode 100644
index 000000000..a95ab822d
--- /dev/null
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+ API version 16 can't automatically render dotted circle for incomplete combining letter
+ of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
+ counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSet="hindi"
+ >
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
+ U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignUu"
+ latin:moreKeys="&#x25CC;&#x0942;&#x0902;|&#x0942;&#x0902;,&#x25CC;&#x0942;&#x0901;|&#x0942;&#x0901;,%" />
+ </case>
+ <default>
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignUu" />
+ </default>
+ </switch>
+ <!-- U+25CC: "◌" DOTTED CIRCLE
+ U+0942: "ू" DEVANAGARI VOWEL SIGN UU -->
+ <key-style
+ latin:styleName="baseKeyDevanagariVowelSignUu"
+ latin:parentStyle="moreKeysDevanagariVowelSignUu"
+ latin:keyLabel="&#x25CC;&#x0942;"
+ latin:code="0x0942"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 2c3ac57ed..c3d68c6e5 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -47,6 +47,7 @@
hi: Hindi/hindi
hr: Croatian/qwertz
hu: Hungarian/qwertz
+ hy: Armenian Phonetic/armenian_phonetic
in: Indonesian/qwerty # "id" is official language code of Indonesian.
is: Icelandic/qwerty
it: Italian/qwerty
@@ -60,6 +61,8 @@
mn: Mongolian/mongolian
ms: Malay/qwerty
nb: Norwegian Bokmål/nordic
+ ne: Nepali Romanized/nepali_romanized
+ ne: Nepali Traditional/nepali_traditional
nl: Dutch/qwerty
nl_BE: Dutch Belgium/azerty
pl: Polish/qwerty
@@ -80,6 +83,7 @@
vi: Vietnamese/qwerty
zu: Zulu/qwerty
zz: QWERTY/qwerty
+ (zz: Emoji/emoji)
-->
<!-- TODO: use <lang>_keyboard icon instead of a common keyboard icon. -->
<!-- Note: SupportTouchPositionCorrection extra value is obsolete and maintained for backward
@@ -266,6 +270,13 @@
android:imeSubtypeMode="keyboard"
android:imeSubtypeExtraValue="AsciiCapable,SupportTouchPositionCorrection"
/>
+ <subtype android:icon="@drawable/ic_subtype_keyboard"
+ android:label="@string/subtype_generic"
+ android:subtypeId="0xe39ac3ca"
+ android:imeSubtypeLocale="hy"
+ android:imeSubtypeMode="keyboard"
+ android:imeSubtypeExtraValue="KeyboardLayoutSet=armenian_phonetic"
+ />
<!-- Java uses the deprecated "in" code instead of the standard "id" code for Indonesian. -->
<subtype android:icon="@drawable/ic_subtype_keyboard"
android:label="@string/subtype_generic"
@@ -363,6 +374,20 @@
/>
<subtype android:icon="@drawable/ic_subtype_keyboard"
android:label="@string/subtype_generic"
+ android:subtypeId="0xd80a4cee"
+ android:imeSubtypeLocale="ne"
+ android:imeSubtypeMode="keyboard"
+ android:imeSubtypeExtraValue="KeyboardLayoutSet=nepali_romanized"
+ />
+ <subtype android:icon="@drawable/ic_subtype_keyboard"
+ android:label="@string/subtype_nepali_traditional"
+ android:subtypeId="0x5fafea88"
+ android:imeSubtypeLocale="ne"
+ android:imeSubtypeMode="keyboard"
+ android:imeSubtypeExtraValue="KeyboardLayoutSet=nepali_traditional"
+ />
+ <subtype android:icon="@drawable/ic_subtype_keyboard"
+ android:label="@string/subtype_generic"
android:subtypeId="0x3f9fd91e"
android:imeSubtypeLocale="nl"
android:imeSubtypeMode="keyboard"
@@ -510,4 +535,15 @@
android:imeSubtypeMode="keyboard"
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable"
/>
+ <!-- Emoji subtype has to be an addtional subtype added at boot time because ICS doesn't
+ support Emoji. -->
+ <!--
+ <subtype android:icon="@drawable/ic_subtype_keyboard"
+ android:label="@string/subtype_emoji"
+ android:subtypeId="0xc14d88b2"
+ android:imeSubtypeLocale="zz"
+ android:imeSubtypeMode="keyboard"
+ android:imeSubtypeExtraValue="KeyboardLayoutSet=emoji"
+ />
+ -->
</input-method>
diff --git a/java/res/xml/row_qwerty4.xml b/java/res/xml/row_qwerty4.xml
index c29fbf2f1..e6a507435 100644
--- a/java/res/xml/row_qwerty4.xml
+++ b/java/res/xml/row_qwerty4.xml
@@ -42,6 +42,13 @@
latin:moreKeys="!text/more_keys_for_arabic_diacritics"
latin:keyStyle="punctuationKeyStyle" />
</case>
+ <case
+ latin:languageCode="ne"
+ latin:keyboardLayoutSet="nepali_traditional"
+ >
+ <include
+ latin:keyboardLayout="@xml/key_nepali_traditional_period" />
+ </case>
<default>
<Key
latin:keyStyle="punctuationKeyStyle" />
diff --git a/java/res/xml/row_symbols4.xml b/java/res/xml/row_symbols4.xml
index 5c15da6a5..bea139aba 100644
--- a/java/res/xml/row_symbols4.xml
+++ b/java/res/xml/row_symbols4.xml
@@ -50,7 +50,7 @@
latin:keyboardLayout="@xml/key_symbols_period"
latin:backgroundType="functional" />
<Key
- latin:keyStyle="enterKeyStyle"
+ latin:keyStyle="emojiKeyStyle"
latin:keyWidth="fillRight" />
</Row>
</merge>
diff --git a/java/res/xml/rowkeys_armenian_phonetic1.xml b/java/res/xml/rowkeys_armenian_phonetic1.xml
new file mode 100644
index 000000000..1984fae8a
--- /dev/null
+++ b/java/res/xml/rowkeys_armenian_phonetic1.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <!-- U+0567: "է" ARMENIAN SMALL LETTER EH -->
+ <Key
+ latin:keyLabel="&#x0567;"
+ latin:keyHintLabel="1"
+ latin:additionalMoreKeys="1"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0569: "թ" ARMENIAN SMALL LETTER TO -->
+ <Key
+ latin:keyLabel="&#x0569;"
+ latin:keyHintLabel="2"
+ latin:additionalMoreKeys="2"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0583: "փ" ARMENIAN SMALL LETTER PIWR -->
+ <Key
+ latin:keyLabel="&#x0583;"
+ latin:keyHintLabel="3"
+ latin:additionalMoreKeys="3"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0571: "ձ" ARMENIAN SMALL LETTER JA -->
+ <Key
+ latin:keyLabel="&#x0571;"
+ latin:keyHintLabel="4"
+ latin:additionalMoreKeys="4"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+057B: "ջ" ARMENIAN SMALL LETTER JHEH -->
+ <Key
+ latin:keyLabel="&#x057B;"
+ latin:keyHintLabel="5"
+ latin:additionalMoreKeys="5"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0580: "ր" ARMENIAN SMALL LETTER REH -->
+ <Key
+ latin:keyLabel="&#x0580;"
+ latin:keyHintLabel="6"
+ latin:additionalMoreKeys="6"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0579: "չ" ARMENIAN SMALL LETTER CHA -->
+ <Key
+ latin:keyLabel="&#x0579;"
+ latin:keyHintLabel="7"
+ latin:additionalMoreKeys="7"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0573: "ճ" ARMENIAN SMALL LETTER CHEH -->
+ <Key
+ latin:keyLabel="&#x0573;"
+ latin:keyHintLabel="8"
+ latin:additionalMoreKeys="8"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+056A: "ժ" ARMENIAN SMALL LETTER ZHE -->
+ <Key
+ latin:keyLabel="&#x056A;"
+ latin:keyHintLabel="9"
+ latin:additionalMoreKeys="9"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+056E: "ծ" ARMENIAN SMALL LETTER CA -->
+ <Key
+ latin:keyLabel="&#x056E;"
+ latin:keyHintLabel="0"
+ latin:additionalMoreKeys="0"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/rowkeys_armenian_phonetic2.xml b/java/res/xml/rowkeys_armenian_phonetic2.xml
new file mode 100644
index 000000000..5dcabc301
--- /dev/null
+++ b/java/res/xml/rowkeys_armenian_phonetic2.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <!-- U+0584: "ք" ARMENIAN SMALL LETTER KEH -->
+ <Key
+ latin:keyLabel="&#x0584;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0578: "ո" ARMENIAN SMALL LETTER VO -->
+ <Key
+ latin:keyLabel="&#x0578;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0565: "ե" ARMENIAN SMALL LETTER ECH
+ U+0587: "և" ARMENIAN SMALL LIGATURE ECH YIWN -->
+ <Key
+ latin:keyLabel="&#x0565;"
+ latin:moreKeys="&#x0587;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+057C: "ռ" ARMENIAN SMALL LETTER RA -->
+ <Key
+ latin:keyLabel="&#x057C;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+057F: "տ" ARMENIAN SMALL LETTER TIWN -->
+ <Key
+ latin:keyLabel="&#x057F;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0568: "ը" ARMENIAN SMALL LETTER ET -->
+ <Key
+ latin:keyLabel="&#x0568;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0582: "ւ" ARMENIAN SMALL LETTER YIWN -->
+ <Key
+ latin:keyLabel="&#x0582;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+056B: "ի" ARMENIAN SMALL LETTER INI -->
+ <Key
+ latin:keyLabel="&#x056B;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0585: "օ" ARMENIAN SMALL LETTER OH -->
+ <Key
+ latin:keyLabel="&#x0585;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+057A: "պ" ARMENIAN SMALL LETTER PEH -->
+ <Key
+ latin:keyLabel="&#x057A;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-sw768dp/rowkeys_thai_digits.xml b/java/res/xml/rowkeys_armenian_phonetic3.xml
index 55196ebc3..3116811b3 100644
--- a/java/res/xml-sw768dp/rowkeys_thai_digits.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic3.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2012, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -21,44 +21,40 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <!-- U+0E51: "๑" THAI DIGIT ONE -->
+ <!-- U+0561: "ա" ARMENIAN SMALL LETTER AYB -->
<Key
- latin:keyLabel="&#x0E51;"
+ latin:keyLabel="&#x0561;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E52: "๒" THAI DIGIT TWO -->
+ <!-- U+057D: "ս" ARMENIAN SMALL LETTER SEH -->
<Key
- latin:keyLabel="&#x0E52;"
+ latin:keyLabel="&#x057D;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E53: "๓" THAI DIGIT THREE -->
+ <!-- U+0564: "դ" ARMENIAN SMALL LETTER DA -->
<Key
- latin:keyLabel="&#x0E53;"
+ latin:keyLabel="&#x0564;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E54: "๔" THAI DIGIT FOUR -->
+ <!-- U+0586: "ֆ" ARMENIAN SMALL LETTER FEH -->
<Key
- latin:keyLabel="&#x0E54;"
+ latin:keyLabel="&#x0586;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E55: "๕" THAI DIGIT FIVE -->
+ <!-- U+0563: "գ" ARMENIAN SMALL LETTER GIM -->
<Key
- latin:keyLabel="&#x0E55;"
+ latin:keyLabel="&#x0563;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E56: "๖" THAI DIGIT SIX -->
+ <!-- U+0570: "հ" ARMENIAN SMALL LETTER HO -->
<Key
- latin:keyLabel="&#x0E56;"
+ latin:keyLabel="&#x0570;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E57: "๗" THAI DIGIT SEVEN -->
+ <!-- U+0575: "յ" ARMENIAN SMALL LETTER YI -->
<Key
- latin:keyLabel="&#x0E57;"
+ latin:keyLabel="&#x0575;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E58: "๘" THAI DIGIT EIGHT -->
+ <!-- U+056F: "կ" ARMENIAN SMALL LETTER KEN -->
<Key
- latin:keyLabel="&#x0E58;"
+ latin:keyLabel="&#x056F;"
latin:keyLabelFlags="fontNormal" />
- <!-- U+0E59: "๙" THAI DIGIT NINE -->
+ <!-- U+056C: "լ" ARMENIAN SMALL LETTER LIWN -->
<Key
- latin:keyLabel="&#x0E59;"
- latin:keyLabelFlags="fontNormal" />
- <!-- U+0E50: "๐" THAI DIGIT ZERO -->
- <Key
- latin:keyLabel="&#x0E50;"
+ latin:keyLabel="&#x056C;"
latin:keyLabelFlags="fontNormal" />
</merge>
diff --git a/java/res/xml/rowkeys_armenian_phonetic4.xml b/java/res/xml/rowkeys_armenian_phonetic4.xml
new file mode 100644
index 000000000..922481add
--- /dev/null
+++ b/java/res/xml/rowkeys_armenian_phonetic4.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <!-- U+0566: "զ" ARMENIAN SMALL LETTER ZA -->
+ <Key
+ latin:keyLabel="&#x0566;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0572: "ղ" ARMENIAN SMALL LETTER GHAD -->
+ <Key
+ latin:keyLabel="&#x0572;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0581: "ց" ARMENIAN SMALL LETTER CO -->
+ <Key
+ latin:keyLabel="&#x0581;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+057E: "վ" ARMENIAN SMALL LETTER VEW -->
+ <Key
+ latin:keyLabel="&#x057E;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0562: "բ" ARMENIAN SMALL LETTER BEN -->
+ <Key
+ latin:keyLabel="&#x0562;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0576: "ն" ARMENIAN SMALL LETTER NOW -->
+ <Key
+ latin:keyLabel="&#x0576;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0574: "մ" ARMENIAN SMALL LETTER MEN -->
+ <Key
+ latin:keyLabel="&#x0574;"
+ latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml
index 745747643..c0b3cb913 100644
--- a/java/res/xml/rowkeys_hindi1.xml
+++ b/java/res/xml/rowkeys_hindi1.xml
@@ -62,10 +62,12 @@
latin:keyLabel="&#x092D;"
latin:keyLabelFlags="fontNormal" />
<!-- Because the font rendering system prior to API version 16 can't automatically
- render dotted circle for incomplete combining letter of Hindi, different set of
- Key definitions are needed based on the API version. -->
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
<include
- latin:keyboardLayout="@xml/key_hindi1_shift" />
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVisarga" />
<!-- U+0918: "घ" DEVANAGARI LETTER GHA -->
<Key
latin:keyLabel="&#x0918;"
@@ -88,11 +90,57 @@
</case>
<default>
<!-- Because the font rendering system prior to API version 16 can't automatically
- render dotted circle for incomplete combining letter of Hindi, different set of
- Key definitions are needed based on the API version. -->
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+0967: "१" DEVANAGARI DIGIT ONE -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAu"
+ latin:keyHintLabel="1"
+ latin:additionalMoreKeys="&#x0967;,1" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAi"
+ latin:keyHintLabel="2"
+ latin:additionalMoreKeys="&#x0968;,2" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
<include
- latin:keyboardLayout="@xml/keys_hindi1_left5" />
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAa"
+ latin:keyHintLabel="3"
+ latin:additionalMoreKeys="&#x0969;,3" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+096A: "४" DEVANAGARI DIGIT FOUR -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignIi"
+ latin:keyHintLabel="4"
+ latin:additionalMoreKeys="&#x096A;,4" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+096B: "५" DEVANAGARI DIGIT FIVE -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignUu"
+ latin:keyHintLabel="5"
+ latin:additionalMoreKeys="&#x096B;,5" />
<!-- U+092C: "ब" DEVANAGARI LETTER BA
+ U+096C: "६" DEVANAGARI DIGIT SIX
U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA -->
<Key
latin:keyLabel="&#x092C;"
diff --git a/java/res/xml/rowkeys_hindi2.xml b/java/res/xml/rowkeys_hindi2.xml
index 9545b840f..70ac66ee4 100644
--- a/java/res/xml/rowkeys_hindi2.xml
+++ b/java/res/xml/rowkeys_hindi2.xml
@@ -97,10 +97,40 @@
</case>
<default>
<!-- Because the font rendering system prior to API version 16 can't automatically
- render dotted circle for incomplete combining letter of Hindi, different set of
- Key definitions are needed based on the API version. -->
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
<include
- latin:keyboardLayout="@xml/keys_hindi2_left5" />
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignO" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignE" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVirama" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignI" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignU" />
<!-- U+092A: "प" DEVANAGARI LETTER PA -->
<Key
latin:keyLabel="&#x092A;"
diff --git a/java/res/xml/rowkeys_hindi3.xml b/java/res/xml/rowkeys_hindi3.xml
index 3014907ed..136bc5f22 100644
--- a/java/res/xml/rowkeys_hindi3.xml
+++ b/java/res/xml/rowkeys_hindi3.xml
@@ -30,10 +30,10 @@
latin:keyLabel="&#x0911;"
latin:keyLabelFlags="fontNormal" />
<!-- Because the font rendering system prior to API version 16 can't automatically
- render dotted circle for incomplete combining letter of Hindi, different set of
- Key definitions are needed based on the API version. -->
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
<include
- latin:keyboardLayout="@xml/key_hindi3_shift_left" />
+ latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
<!-- U+0923: "ण" DEVANAGARI LETTER NNA -->
<Key
latin:keyLabel="&#x0923;"
@@ -56,10 +56,10 @@
latin:keyLabel="&#x0937;"
latin:keyLabelFlags="fontNormal" />
<!-- Because the font rendering system prior to API version 16 can't automatically
- render dotted circle for incomplete combining letter of Hindi, different set of
- Key definitions are needed based on the API version. -->
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
<include
- latin:keyboardLayout="@xml/key_hindi3_shift_right" />
+ latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
<!-- U+091E: "ञ" DEVANAGARI LETTER NYA -->
<Key
latin:keyLabel="&#x091E;"
@@ -67,10 +67,12 @@
</case>
<default>
<!-- Because the font rendering system prior to API version 16 can't automatically
- render dotted circle for incomplete combining letter of Hindi, different set of
- Key definitions are needed based on the API version. -->
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
<include
- latin:keyboardLayout="@xml/keys_hindi3_left2" />
+ latin:keyboardLayout="@xml/key_devanagari_vowel_sign_candra_o" />
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
<!-- U+092E: "म" DEVANAGARI LETTER MA
U+0950: "ॐ" DEVANAGARI OM -->
<Key
@@ -107,10 +109,10 @@
latin:moreKeys="&#x095F;"
latin:keyLabelFlags="fontNormal" />
<!-- Because the font rendering system prior to API version 16 can't automatically
- render dotted circle for incomplete combining letter of Hindi, different set of
- Key definitions are needed based on the API version. -->
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
<include
- latin:keyboardLayout="@xml/key_hindi3_right" />
+ latin:keyboardLayout="@xml/key_devanagari_sign_nukta" />
</default>
</switch>
</merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized1.xml b/java/res/xml/rowkeys_nepali_romanized1.xml
new file mode 100644
index 000000000..408a96648
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_romanized1.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0920: "ठ" DEVANAGARI LETTER TTHA -->
+ <Key
+ latin:keyLabel="&#x0920;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0914: "औ" DEVANAGARI LETTER AU -->
+ <Key
+ latin:keyLabel="&#x0914;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAi" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
+ <!-- U+0925: "थ" DEVANAGARI LETTER THA -->
+ <Key
+ latin:keyLabel="&#x0925;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+091E: "ञ" DEVANAGARI LETTER NYA -->
+ <Key
+ latin:keyLabel="&#x091E;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignUu" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignIi" />
+ <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
+ <Key
+ latin:keyLabel="&#x0913;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092B: "फ" DEVANAGARI LETTER PHA -->
+ <Key
+ latin:keyLabel="&#x092B;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0908: "ई" DEVANAGARI LETTER II -->
+ <Key
+ latin:keyLabel="&#x0908;"
+ latin:keyLabelFlags="fontNormal" />
+ </case>
+ <default>
+ <!-- U+091F: "ट" DEVANAGARI LETTER TTA
+ U+0967: "१" DEVANAGARI DIGIT ONE
+ U+093C: "़" DEVANAGARI SIGN NUKTA -->
+ <Key
+ latin:keyLabel="&#x091F;"
+ latin:keyHintLabel="1"
+ latin:additionalMoreKeys="&#x0967;,1"
+ latin:moreKeys="&#x093C;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAu"
+ latin:keyHintLabel="2"
+ latin:additionalMoreKeys="&#x0968;,2" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignE"
+ latin:keyHintLabel="3"
+ latin:additionalMoreKeys="&#x0969;,3" />
+ <!-- U+0930: "र" DEVANAGARI LETTER RA
+ U+096A: "४" DEVANAGARI DIGIT FOUR -->
+ <Key
+ latin:keyLabel="&#x0930;"
+ latin:keyHintLabel="4"
+ latin:additionalMoreKeys="&#x096A;,4"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0924: "त" DEVANAGARI LETTER TA
+ U+096B: "५" DEVANAGARI DIGIT FIVE -->
+ <Key
+ latin:keyLabel="&#x0924;"
+ latin:keyHintLabel="5"
+ latin:additionalMoreKeys="&#x096B;,5"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092F: "य" DEVANAGARI LETTER YA
+ U+096C: "६" DEVANAGARI DIGIT SIX -->
+ <Key
+ latin:keyLabel="&#x092F;"
+ latin:keyHintLabel="6"
+ latin:additionalMoreKeys="&#x096C;,6"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignU"
+ latin:keyHintLabel="7"
+ latin:additionalMoreKeys="&#x096D;,7" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignI"
+ latin:keyHintLabel="8"
+ latin:additionalMoreKeys="&#x096E;,8" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+096F: "९" DEVANAGARI DIGIT NINE -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignO"
+ latin:keyHintLabel="9"
+ latin:additionalMoreKeys="&#x096F;,9" />
+ <!-- U+092A: "प" DEVANAGARI LETTER PA
+ U+0966: "०" DEVANAGARI DIGIT ZERO -->
+ <Key
+ latin:keyLabel="&#x092A;"
+ latin:keyHintLabel="0"
+ latin:additionalMoreKeys="&#x0966;,0"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0907: "इ" DEVANAGARI LETTER I -->
+ <Key
+ latin:keyLabel="&#x0907;"
+ latin:keyLabelFlags="fontNormal" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized2.xml b/java/res/xml/rowkeys_nepali_romanized2.xml
new file mode 100644
index 000000000..66359ffb5
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_romanized2.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0906: "आ" DEVANAGARI LETTER AA -->
+ <Key
+ latin:keyLabel="&#x0906;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
+ <Key
+ latin:keyLabel="&#x0936;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0927: "ध" DEVANAGARI LETTER DHA -->
+ <Key
+ latin:keyLabel="&#x0927;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+090A: "ऊ" DEVANAGARI LETTER UU -->
+ <Key
+ latin:keyLabel="&#x090A;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0918: "घ" DEVANAGARI LETTER GHA -->
+ <Key
+ latin:keyLabel="&#x0918;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0905: "अ" DEVANAGARI LETTER A -->
+ <Key
+ latin:keyLabel="&#x0905;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+091D: "झ" DEVANAGARI LETTER JHA -->
+ <Key
+ latin:keyLabel="&#x091D;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0916: "ख" DEVANAGARI LETTER KHA -->
+ <Key
+ latin:keyLabel="&#x0916;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0965: "॥" DEVANAGARI DOUBLE DANDA -->
+ <Key
+ latin:keyLabel="&#x0965;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0910: "ऐ" DEVANAGARI LETTER AI -->
+ <Key
+ latin:keyLabel="&#x0910;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVisarga" />
+ </case>
+ <default>
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAa" />
+ <!-- U+0938: "स" DEVANAGARI LETTER SA -->
+ <Key
+ latin:keyLabel="&#x0938;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0926: "द" DEVANAGARI LETTER DA -->
+ <Key
+ latin:keyLabel="&#x0926;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0909: "उ" DEVANAGARI LETTER U -->
+ <Key
+ latin:keyLabel="&#x0909;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0917: "ग" DEVANAGARI LETTER GA -->
+ <Key
+ latin:keyLabel="&#x0917;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0939: "ह" DEVANAGARI LETTER HA -->
+ <Key
+ latin:keyLabel="&#x0939;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+091C: "ज" DEVANAGARI LETTER JA -->
+ <Key
+ latin:keyLabel="&#x091C;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0915: "क" DEVANAGARI LETTER KA -->
+ <Key
+ latin:keyLabel="&#x0915;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
+ <Key
+ latin:keyLabel="&#x0932;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+090F: "ए" DEVANAGARI LETTER E -->
+ <Key
+ latin:keyLabel="&#x090F;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0950: "ॐ" DEVANAGARI OM -->
+ <Key
+ latin:keyLabel="&#x0950;"
+ latin:keyLabelFlags="fontNormal" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized3.xml b/java/res/xml/rowkeys_nepali_romanized3.xml
new file mode 100644
index 000000000..5660596f0
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_romanized3.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R -->
+ <Key
+ latin:keyLabel="&#x090B;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0922: "ढ" DEVANAGARI LETTER DDHA -->
+ <Key
+ latin:keyLabel="&#x0922;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+091B: "छ" DEVANAGARI LETTER CHA -->
+ <Key
+ latin:keyLabel="&#x091B;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
+ <!-- U+092D: "भ" DEVANAGARI LETTER BHA -->
+ <Key
+ latin:keyLabel="&#x092D;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0923: "ण" DEVANAGARI LETTER NNA -->
+ <Key
+ latin:keyLabel="&#x0936;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+ <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
+ <Key
+ latin:keyLabel="&#x0919;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVirama" />
+ </case>
+ <default>
+ <!-- U+0937: "ष" DEVANAGARI LETTER SSA -->
+ <Key
+ latin:keyLabel="&#x0937;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0921: "ड" DEVANAGARI LETTER DDA -->
+ <Key
+ latin:keyLabel="&#x0921;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+091A: "च" DEVANAGARI LETTER CA -->
+ <Key
+ latin:keyLabel="&#x091A;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0935: "व" DEVANAGARI LETTER VA -->
+ <Key
+ latin:keyLabel="&#x0935;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092C: "ब" DEVANAGARI LETTER BHA -->
+ <Key
+ latin:keyLabel="&#x092C;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0928: "न" DEVANAGARI LETTER NA -->
+ <Key
+ latin:keyLabel="&#x0928;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092E: "म" DEVANAGARI LETTER MA -->
+ <Key
+ latin:keyLabel="&#x092E;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0964: "।" DEVANAGARI DANDA
+ U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ <Key
+ latin:keyLabel="&#x0964;"
+ latin:moreKeys="&#x093D;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVirama" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional1.xml b/java/res/xml/rowkeys_nepali_traditional1.xml
new file mode 100644
index 000000000..c7883c733
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_traditional1.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0924/U+094D/U+0924: "त्त" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TA
+ U+091E: "ञ" DEVANAGARI LETTER NYA
+ U+091C/U+094D/U+091E: "ज्ञ" DEVANAGARI LETTER JA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER NYA
+ U+0965: "॥" DEVANAGARI DOUBLE DANDA -->
+ <Key
+ latin:keyLabel="&#x0924;&#x094D;&#x0924;"
+ latin:moreKeys="&#x091E;,&#x091C;&#x094D;&#x091E;,&#x0965;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+0921/U+094D/U+0922: "ड्ढ" DEVANAGARI LETTER DDA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DDHA
+ U+0908: "ई" DEVANAGARI LETTER II -->
+ <Key
+ latin:keyLabel="&#x0921;&#x094D;&#x0922;"
+ latin:moreKeys="&#x0908;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+0910: "ऐ" DEVANAGARI LETTER AI
+ U+0918: "घ" DEVANAGARI LETTER GHA -->
+ <Key
+ latin:keyLabel="&#x0910;"
+ latin:moreKeys="&#x0918;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0926/U+094D/U+0935: "द्व" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER VA
+ U+0926/U+094D/U+0927: "द्ध" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DHA -->
+ <Key
+ latin:keyLabel="&#x0926;&#x094D;&#x0935;"
+ latin:moreKeys="&#x0926;&#x094D;&#x0927;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+091F/U+094D/U+091F: "ट्ट" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTA
+ U+091B: "छ" DEVANAGARI LETTER CHA -->
+ <Key
+ latin:keyLabel="&#x091F;&#x094D;&#x091F;"
+ latin:moreKeys="&#x091B;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+0920/U+094D/U+0920: "ठ्ठ" DEVANAGARI LETTER TTHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA
+ U+091F: "ट" DEVANAGARI LETTER TTA -->
+ <Key
+ latin:keyLabel="&#x0920;&#x094D;&#x0920;"
+ latin:moreKeys="&#x091F;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+090A: "ऊ" DEVANAGARI LETTER UU
+ U+0920: "ठ" DEVANAGARI LETTER TTHA -->
+ <Key
+ latin:keyLabel="&#x090A;"
+ latin:moreKeys="&#x0920;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0915/U+094D/U+0937: "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
+ U+0921: "ड" DEVANAGARI LETTER DDA -->
+ <Key
+ latin:keyLabel="&#x0915;&#x094D;&#x0937;"
+ latin:moreKeys="&#x0921;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+0907: "इ" DEVANAGARI LETTER I
+ U+0922: "ढ" DEVANAGARI LETTER DDHA -->
+ <Key
+ latin:keyLabel="&#x0907;"
+ latin:moreKeys="&#x0922;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+090F: "ए" DEVANAGARI LETTER E
+ U+0923: "ण" DEVANAGARI LETTER NNA -->
+ <Key
+ latin:keyLabel="&#x090F;"
+ latin:moreKeys="&#x0923;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
+ </case>
+ <default>
+ <!-- U+091F: "ट" DEVANAGARI LETTER TTA
+ U+0967: "१" DEVANAGARI DIGIT ONE -->
+ <Key
+ latin:keyLabel="&#x091F;"
+ latin:keyHintLabel="1"
+ latin:additionalMoreKeys="&#x0967;,1"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0927: "ध" DEVANAGARI LETTER DHA
+ U+0968: "२" DEVANAGARI DIGIT TWO -->
+ <Key
+ latin:keyLabel="&#x0927;"
+ latin:keyHintLabel="2"
+ latin:additionalMoreKeys="&#x0968;,2"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092D: "भ" DEVANAGARI LETTER BHA
+ U+0969: "३" DEVANAGARI DIGIT THREE -->
+ <Key
+ latin:keyLabel="&#x092D;"
+ latin:keyHintLabel="3"
+ latin:additionalMoreKeys="&#x0969;,3"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+091A: "च" DEVANAGARI LETTER CA
+ U+096A: "४" DEVANAGARI DIGIT FOUR -->
+ <Key
+ latin:keyLabel="&#x091A;"
+ latin:keyHintLabel="4"
+ latin:additionalMoreKeys="&#x096A;,4"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0924: "त" DEVANAGARI LETTER TA
+ U+096B: "५" DEVANAGARI DIGIT FIVE -->
+ <Key
+ latin:keyLabel="&#x0924;"
+ latin:keyHintLabel="5"
+ latin:additionalMoreKeys="&#x096B;,5"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0925: "थ" DEVANAGARI LETTER THA
+ U+096C: "६" DEVANAGARI DIGIT SIX -->
+ <Key
+ latin:keyLabel="&#x0925;"
+ latin:keyHintLabel="6"
+ latin:additionalMoreKeys="&#x096C;,6"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0917: "ग" DEVANAGARI LETTER G
+ U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+ <Key
+ latin:keyLabel="&#x0917;"
+ latin:keyHintLabel="7"
+ latin:additionalMoreKeys="&#x096D;,7"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0937: "ष" DEVANAGARI LETTER SSA
+ U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+ <Key
+ latin:keyLabel="&#x0937;"
+ latin:keyHintLabel="8"
+ latin:additionalMoreKeys="&#x096E;,8"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092F: "य" DEVANAGARI LETTER YA
+ U+096F: "९" DEVANAGARI DIGIT NINE -->
+ <Key
+ latin:keyLabel="&#x092F;"
+ latin:keyHintLabel="9"
+ latin:additionalMoreKeys="&#x096F;,9"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0909: "उ" DEVANAGARI LETTER U
+ U+0966: "०" DEVANAGARI DIGIT ZERO -->
+ <Key
+ latin:keyLabel="&#x0909;"
+ latin:keyHintLabel="0"
+ latin:additionalMoreKeys="&#x0966;,0"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0907: "इ" DEVANAGARI LETTER I
+ U+0914: "औ" DEVANAGARI LETTER AU -->
+ <Key
+ latin:keyLabel="&#x0907;"
+ latin:moreKeys="&#x0914;"
+ latin:keyLabelFlags="fontNormal" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional2.xml b/java/res/xml/rowkeys_nepali_traditional2.xml
new file mode 100644
index 000000000..2c53b3b8b
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_traditional2.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0906: "आ" DEVANAGARI LETTER AA -->
+ <Key
+ latin:keyLabel="&#x0906;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0919/U+094D/U+0915: "ङ्क" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER KA -->
+ <Key
+ latin:keyLabel="&#x0919;&#x094D;&#x0915;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+0919/U+094D/U+0917: "ङ्ग" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER GA -->
+ <Key
+ latin:keyLabel="&#x0919;&#x094D;&#x0917;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
+ <!-- U+0926/U+094D/U+0926: "द्द" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DA -->
+ <Key
+ latin:keyLabel="&#x0926;&#x094D;&#x0926;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+091D: "झ" DEVANAGARI LETTER JHA -->
+ <Key
+ latin:keyLabel="&#x091D;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignO" />
+ <!-- U+092B: "फ" DEVANAGARI LETTER PHA -->
+ <Key
+ latin:keyLabel="&#x092B;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignIi" />
+ <!-- U+091F/U+094D/U+0920: "ट्ठ" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA -->
+ <Key
+ latin:keyLabel="&#x091F;&#x094D;&#x0920;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignUu" />
+ </case>
+ <default>
+ <!-- U+092C: "ब" DEVANAGARI LETTER BA -->
+ <Key
+ latin:keyLabel="&#x092C;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0915: "क" DEVANAGARI LETTER KA -->
+ <Key
+ latin:keyLabel="&#x0915;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092E: "म" DEVANAGARI LETTER MA -->
+ <Key
+ latin:keyLabel="&#x092E;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAa" />
+ <!-- U+0928: "न" DEVANAGARI LETTER NA -->
+ <Key
+ latin:keyLabel="&#x0928;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+091C: "ज" DEVANAGARI LETTER JA -->
+ <Key
+ latin:keyLabel="&#x091C;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0935: "व" DEVANAGARI LETTER VA -->
+ <Key
+ latin:keyLabel="&#x0935;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+092A: "प" DEVANAGARI LETTER PA -->
+ <Key
+ latin:keyLabel="&#x092A;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignI" />
+ <!-- U+0938: "स" DEVANAGARI LETTER SA -->
+ <Key
+ latin:keyLabel="&#x0938;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignU" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_left6.xml b/java/res/xml/rowkeys_nepali_traditional3_left6.xml
new file mode 100644
index 000000000..d4388e0a2
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_traditional3_left6.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- U+0915/U+094D/U+0915: "क्क" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER KA -->
+ <Key
+ latin:keyLabel="&#x0915;&#x094D;&#x0915;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+0939/U+094D/U+092E: "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA -->
+ <Key
+ latin:keyLabel="&#x0939;&#x094D;&#x092E;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R -->
+ <Key
+ latin:keyLabel="&#x090B;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0950: "ॐ" DEVANAGARI OM -->
+ <Key
+ latin:keyLabel="&#x0950;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAu" />
+ <!-- U+0926/U+094D/U+092F: "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA -->
+ <Key
+ latin:keyLabel="&#x0926;&#x094D;&#x092F;"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ </case>
+ <default>
+ <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
+ <Key
+ latin:keyLabel="&#x0936;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0939: "ह" DEVANAGARI LETTER HA -->
+ <Key
+ latin:keyLabel="&#x0939;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0905: "अ" DEVANAGARI LETTER A -->
+ <Key
+ latin:keyLabel="&#x0905;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0916: "ख" DEVANAGARI LETTER KHA -->
+ <Key
+ latin:keyLabel="&#x0916;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0926: "द" DEVANAGARI LETTER DA -->
+ <Key
+ latin:keyLabel="&#x0926;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
+ <Key
+ latin:keyLabel="&#x0932;"
+ latin:keyLabelFlags="fontNormal" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right3.xml b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
new file mode 100644
index 000000000..b2e01e481
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+ <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
+ <Key
+ latin:keyLabel="&#x0919;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAi" />
+ </case>
+ <default>
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignE" />
+ <!-- U+0964: "।" DEVANAGARI DANDA -->
+ <Key
+ latin:keyLabel="&#x0964;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0930: "र" DEVANAGARI LETTER RA
+ U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
+ <Key
+ latin:keyLabel="&#x0930;"
+ latin:moreKeys="&#x0930;&#x0941;"
+ latin:keyLabelFlags="fontNormal" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right5.xml b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
new file mode 100644
index 000000000..87f061610
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
+ >
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+ <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
+ <Key
+ latin:keyLabel="&#x0919;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignAi" />
+ <!-- U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
+ <Key
+ latin:keyLabel="&#x0930;&#x0941;"
+ latin:moreKeys="!"
+ latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+ <Key
+ latin:keyLabel="\?" />
+ </case>
+ <default>
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <!-- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVisarga"
+ latin:moreKeys="&#x093D;" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+ <!-- Override more keys with empty definition -->
+ <key-style
+ latin:styleName="moreKeysDevanagariVowelSignE" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariVowelSignE" />
+ <!-- U+0964: "।" DEVANAGARI DANDA -->
+ <Key
+ latin:keyLabel="&#x0964;"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- U+0930: "र" DEVANAGARI LETTER RA -->
+ <Key
+ latin:keyLabel="&#x0930;"
+ latin:moreKeys="!"
+ latin:keyLabelFlags="fontNormal" />
+ <!-- Because the font rendering system prior to API version 16 can't automatically
+ render dotted circle for incomplete combining letter of some scripts, different
+ set of Key definitions are needed based on the API version. -->
+ <include
+ latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+ <Key
+ latin:keyStyle="baseKeyDevanagariSignVirama"
+ latin:moreKeys="\?" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml-sw768dp/rows_hindi.xml b/java/res/xml/rows_armenian_phonetic.xml
index 6baf09e10..282dd411b 100644
--- a/java/res/xml-sw768dp/rows_hindi.xml
+++ b/java/res/xml/rows_armenian_phonetic.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2012, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -24,43 +24,37 @@
<include
latin:keyboardLayout="@xml/key_styles_common" />
<Row
- latin:keyWidth="7.375%p"
+ latin:keyWidth="10.0%p"
>
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_hindi1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic1" />
</Row>
<Row
- latin:keyWidth="7.227%p"
+ latin:keyWidth="10.0%p"
>
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="11.172%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_hindi2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic2" />
</Row>
<Row
- latin:keyWidth="7.000%p"
+ latin:keyWidth="10.0%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic3" />
+ <include
+ latin:keyboardLayout="@xml/key_armenian_xeh" />
+ </Row>
+ <Row
+ latin:keyWidth="9.8000%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
- latin:keyWidth="13.829%p" />
+ latin:keyWidth="10.8%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_hindi3" />
+ latin:keyboardLayout="@xml/rowkeys_armenian_phonetic4" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/key_armenian_sha" />
<Key
- latin:keyStyle="shiftKeyStyle"
+ latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight" />
</Row>
<include
diff --git a/java/res/xml-sw768dp/rows_hebrew.xml b/java/res/xml/rows_nepali_romanized.xml
index a5f6dfe09..6df09c830 100644
--- a/java/res/xml-sw768dp/rows_hebrew.xml
+++ b/java/res/xml/rows_nepali_romanized.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2011, The Android Open Source Project
+** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -24,38 +24,29 @@
<include
latin:keyboardLayout="@xml/key_styles_common" />
<Row
- latin:keyWidth="8.282%p"
+ latin:keyWidth="9.091%p"
>
- <Key
- latin:keyStyle="tabKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="7.969%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_hebrew1" />
- <Key
- latin:keyStyle="deleteKeyStyle"
- latin:keyWidth="fillRight" />
+ latin:keyboardLayout="@xml/rowkeys_nepali_romanized1" />
</Row>
<Row
- latin:keyWidth="8.125%p"
+ latin:keyWidth="9.091%p"
>
- <Key
- latin:keyStyle="toSymbolKeyStyle"
- latin:keyLabelFlags="alignLeft"
- latin:keyWidth="10.167%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_hebrew2" />
- <Key
- latin:keyStyle="enterKeyStyle"
- latin:keyWidth="fillRight" />
- </Row>
+ latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" />
+ </Row>
<Row
- latin:keyWidth="8.047%p"
+ latin:keyWidth="8.711%p"
>
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.8%p" />
<include
- latin:keyboardLayout="@xml/rowkeys_hebrew3"
- latin:keyXPos="13.829%p" />
+ latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="fillRight" />
</Row>
<include
- latin:keyboardLayout="@xml/row_hebrew4" />
+ latin:keyboardLayout="@xml/row_qwerty4" />
</merge>
diff --git a/java/res/xml/rows_nepali_traditional.xml b/java/res/xml/rows_nepali_traditional.xml
new file mode 100644
index 000000000..fecdc7d5b
--- /dev/null
+++ b/java/res/xml/rows_nepali_traditional.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/key_styles_common" />
+ <Row
+ latin:keyWidth="9.091%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional1" />
+ </Row>
+ <Row
+ latin:keyWidth="9.091%p"
+ >
+ <include
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional2" />
+ </Row>
+ <Row
+ latin:keyWidth="8.711%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.8%p" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_left6" />
+ <include
+ latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_right3" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="fillRight" />
+ </Row>
+ <include
+ latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/src/com/android/inputmethod/keyboard/EmojiKeyboardView.java b/java/src/com/android/inputmethod/keyboard/EmojiKeyboardView.java
new file mode 100644
index 000000000..25ff8d0ce
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/EmojiKeyboardView.java
@@ -0,0 +1,370 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard;
+
+import static com.android.inputmethod.latin.Constants.NOT_A_COORDINATE;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.util.SparseArray;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TabHost;
+import android.widget.TabHost.OnTabChangeListener;
+import android.widget.TextView;
+
+import com.android.inputmethod.keyboard.internal.RecentsKeyboard;
+import com.android.inputmethod.keyboard.internal.ScrollKeyboardView;
+import com.android.inputmethod.keyboard.internal.ScrollViewWithNotifier;
+import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.SubtypeSwitcher;
+import com.android.inputmethod.latin.utils.CollectionUtils;
+import com.android.inputmethod.latin.utils.ResourceUtils;
+
+import java.util.HashMap;
+
+/**
+ * View class to implement Emoji keyboards.
+ * The Emoji keyboard consists of group of views {@link R.layout#emoji_keyboard_view}.
+ * <ol>
+ * <li> Emoji category tabs.
+ * <li> Delete button.
+ * <li> Emoji keyboard pages that can be scrolled by swiping horizontally or by selecting a tab.
+ * <li> Back to main keyboard button and enter button.
+ * </ol>
+ * Because of the above reasons, this class doesn't extend {@link KeyboardView}.
+ */
+public final class EmojiKeyboardView extends LinearLayout implements OnTabChangeListener,
+ ViewPager.OnPageChangeListener, View.OnClickListener,
+ ScrollKeyboardView.OnKeyClickListener {
+ private final int mKeyBackgroundId;
+ private final ColorStateList mTabLabelColor;
+ private final EmojiKeyboardAdapter mEmojiKeyboardAdapter;
+
+ private TabHost mTabHost;
+ private ViewPager mEmojiPager;
+
+ private KeyboardActionListener mKeyboardActionListener = KeyboardActionListener.EMPTY_LISTENER;
+
+ private int mCurrentCategory = CATEGORY_UNSPECIFIED;
+ private static final int CATEGORY_UNSPECIFIED = -1;
+ private static final int CATEGORY_RECENTS = 0;
+ private static final int CATEGORY_PEOPLE = 1;
+ private static final int CATEGORY_OBJECTS = 2;
+ private static final int CATEGORY_NATURE = 3;
+ private static final int CATEGORY_PLACES = 4;
+ private static final int CATEGORY_SYMBOLS = 5;
+ private static final int CATEGORY_EMOTICONS = 6;
+ private static final HashMap<String, Integer> sCategoryNameToIdMap =
+ CollectionUtils.newHashMap();
+ private static final String[] sCategoryName = {
+ "recents", "people", "objects", "nature", "places", "symbols", "emoticons"
+ };
+ private static final int[] sCategoryIcon = new int[] {
+ R.drawable.ic_emoji_recent_light,
+ R.drawable.ic_emoji_people_light,
+ R.drawable.ic_emoji_objects_light,
+ R.drawable.ic_emoji_nature_light,
+ R.drawable.ic_emoji_places_light,
+ R.drawable.ic_emoji_symbols_light,
+ 0
+ };
+ private static final String[] sCategoryLabel = {
+ null, null, null, null, null, null,
+ ":-)"
+ };
+ private static final int[] sCategoryElementId = {
+ KeyboardId.ELEMENT_EMOJI_RECENTS,
+ KeyboardId.ELEMENT_EMOJI_CATEGORY1,
+ KeyboardId.ELEMENT_EMOJI_CATEGORY2,
+ KeyboardId.ELEMENT_EMOJI_CATEGORY3,
+ KeyboardId.ELEMENT_EMOJI_CATEGORY4,
+ KeyboardId.ELEMENT_EMOJI_CATEGORY5,
+ KeyboardId.ELEMENT_EMOJI_CATEGORY6,
+ };
+
+ public EmojiKeyboardView(final Context context, final AttributeSet attrs) {
+ this(context, attrs, R.attr.emojiKeyboardViewStyle);
+ }
+
+ public EmojiKeyboardView(final Context context, final AttributeSet attrs, final int defStyle) {
+ super(context, attrs, defStyle);
+ final TypedArray keyboardViewAttr = context.obtainStyledAttributes(attrs,
+ R.styleable.KeyboardView, defStyle, R.style.KeyboardView);
+ mKeyBackgroundId = keyboardViewAttr.getResourceId(
+ R.styleable.KeyboardView_keyBackground, 0);
+ keyboardViewAttr.recycle();
+ final TypedArray emojiKeyboardViewAttr = context.obtainStyledAttributes(attrs,
+ R.styleable.EmojiKeyboardView, defStyle, R.style.EmojiKeyboardView);
+ mTabLabelColor = emojiKeyboardViewAttr.getColorStateList(
+ R.styleable.EmojiKeyboardView_emojiTabLabelColor);
+ emojiKeyboardViewAttr.recycle();
+ final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(
+ context, null /* editorInfo */);
+ final Resources res = context.getResources();
+ builder.setSubtype(SubtypeSwitcher.getInstance().getEmojiSubtype());
+ // TODO: Make Keyboard height variable.
+ builder.setKeyboardGeometry(ResourceUtils.getDefaultKeyboardWidth(res),
+ (int)(ResourceUtils.getDefaultKeyboardHeight(res)
+ - res.getDimension(R.dimen.suggestions_strip_height)));
+ builder.setOptions(false, false, false /* lanuageSwitchKeyEnabled */);
+ final KeyboardLayoutSet layoutSet = builder.build();
+ mEmojiKeyboardAdapter = new EmojiKeyboardAdapter(layoutSet, this);
+ // TODO: Save/restore recent keys from/to preferences.
+ }
+
+ @Override
+ protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ final Resources res = getContext().getResources();
+ // The main keyboard expands to the entire this {@link KeyboardView}.
+ final int width = ResourceUtils.getDefaultKeyboardWidth(res)
+ + getPaddingLeft() + getPaddingRight();
+ final int height = ResourceUtils.getDefaultKeyboardHeight(res)
+ + res.getDimensionPixelSize(R.dimen.suggestions_strip_height)
+ + getPaddingTop() + getPaddingBottom();
+ setMeasuredDimension(width, height);
+ }
+
+ private void addTab(final TabHost host, final int category) {
+ final String tabId = sCategoryName[category];
+ sCategoryNameToIdMap.put(tabId, category);
+ final TabHost.TabSpec tspec = host.newTabSpec(tabId);
+ tspec.setContent(R.id.emoji_keyboard_dummy);
+ if (sCategoryIcon[category] != 0) {
+ final ImageView iconView = (ImageView)LayoutInflater.from(getContext()).inflate(
+ R.layout.emoji_keyboard_tab_icon, null);
+ iconView.setImageResource(sCategoryIcon[category]);
+ tspec.setIndicator(iconView);
+ }
+ if (sCategoryLabel[category] != null) {
+ final TextView textView = (TextView)LayoutInflater.from(getContext()).inflate(
+ R.layout.emoji_keyboard_tab_label, null);
+ textView.setText(sCategoryLabel[category]);
+ textView.setTextColor(mTabLabelColor);
+ textView.setBackgroundResource(mKeyBackgroundId);
+ tspec.setIndicator(textView);
+ }
+ host.addTab(tspec);
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ mTabHost = (TabHost)findViewById(R.id.emoji_category_tabhost);
+ mTabHost.setup();
+ addTab(mTabHost, CATEGORY_RECENTS);
+ addTab(mTabHost, CATEGORY_PEOPLE);
+ addTab(mTabHost, CATEGORY_OBJECTS);
+ addTab(mTabHost, CATEGORY_NATURE);
+ addTab(mTabHost, CATEGORY_PLACES);
+ addTab(mTabHost, CATEGORY_SYMBOLS);
+ addTab(mTabHost, CATEGORY_EMOTICONS);
+ mTabHost.setOnTabChangedListener(this);
+ mTabHost.getTabWidget().setStripEnabled(true);
+
+ mEmojiPager = (ViewPager)findViewById(R.id.emoji_keyboard_pager);
+ mEmojiPager.setAdapter(mEmojiKeyboardAdapter);
+ mEmojiPager.setOnPageChangeListener(this);
+ mEmojiPager.setOffscreenPageLimit(0);
+ final ViewGroup.LayoutParams lp = mEmojiPager.getLayoutParams();
+ final Resources res = getResources();
+ lp.height = ResourceUtils.getDefaultKeyboardHeight(res)
+ - res.getDimensionPixelSize(R.dimen.suggestions_strip_height);
+ mEmojiPager.setLayoutParams(lp);
+
+ // TODO: Record current category.
+ final int category = CATEGORY_PEOPLE;
+ setCurrentCategory(category, true /* force */);
+
+ // TODO: Implement auto repeat, using View.OnTouchListener?
+ final View deleteKey = findViewById(R.id.emoji_keyboard_delete);
+ deleteKey.setBackgroundResource(mKeyBackgroundId);
+ deleteKey.setTag(Constants.CODE_DELETE);
+ deleteKey.setOnClickListener(this);
+ final View alphabetKey = findViewById(R.id.emoji_keyboard_alphabet);
+ alphabetKey.setBackgroundResource(mKeyBackgroundId);
+ alphabetKey.setTag(Constants.CODE_SWITCH_ALPHA_SYMBOL);
+ alphabetKey.setOnClickListener(this);
+ final View sendKey = findViewById(R.id.emoji_keyboard_send);
+ sendKey.setBackgroundResource(mKeyBackgroundId);
+ sendKey.setTag(Constants.CODE_ENTER);
+ sendKey.setOnClickListener(this);
+ }
+
+ @Override
+ public void onTabChanged(final String tabId) {
+ final int category = sCategoryNameToIdMap.get(tabId);
+ setCurrentCategory(category, false /* force */);
+ }
+
+
+ @Override
+ public void onPageSelected(final int position) {
+ setCurrentCategory(position, false /* force */);
+ }
+
+ @Override
+ public void onPageScrollStateChanged(final int state) {
+ // Ignore this message. Only want the actual page selected.
+ }
+
+ @Override
+ public void onPageScrolled(final int position, final float positionOffset,
+ final int positionOffsetPixels) {
+ // Ignore this message. Only want the actual page selected.
+ }
+
+ @Override
+ public void onClick(final View v) {
+ if (v.getTag() instanceof Integer) {
+ final int code = (Integer)v.getTag();
+ registerCode(code);
+ return;
+ }
+ }
+
+ private void registerCode(final int code) {
+ mKeyboardActionListener.onPressKey(code, 0 /* repeatCount */, true /* isSinglePointer */);
+ mKeyboardActionListener.onCodeInput(code, NOT_A_COORDINATE, NOT_A_COORDINATE);
+ mKeyboardActionListener.onReleaseKey(code, false /* withSliding */);
+ }
+
+ @Override
+ public void onKeyClick(final Key key) {
+ mEmojiKeyboardAdapter.addRecentKey(key);
+ final int code = key.getCode();
+ if (code == Constants.CODE_OUTPUT_TEXT) {
+ mKeyboardActionListener.onTextInput(key.getOutputText());
+ return;
+ }
+ registerCode(code);
+ }
+
+ public void setHardwareAcceleratedDrawingEnabled(final boolean enabled) {
+ // TODO:
+ }
+
+ public void setKeyboardActionListener(final KeyboardActionListener listener) {
+ mKeyboardActionListener = listener;
+ }
+
+ private void setCurrentCategory(final int category, final boolean force) {
+ if (mCurrentCategory == category && !force) {
+ return;
+ }
+
+ mCurrentCategory = category;
+ if (force || mEmojiPager.getCurrentItem() != category) {
+ mEmojiPager.setCurrentItem(category, true /* smoothScroll */);
+ }
+ if (force || mTabHost.getCurrentTab() != category) {
+ mTabHost.setCurrentTab(category);
+ }
+ // TODO: Record current category
+ }
+
+ private static class EmojiKeyboardAdapter extends PagerAdapter {
+ private final ScrollKeyboardView.OnKeyClickListener mListener;
+ private final KeyboardLayoutSet mLayoutSet;
+ private final RecentsKeyboard mRecentsKeyboard;
+ private final SparseArray<ScrollKeyboardView> mActiveKeyboardView =
+ CollectionUtils.newSparseArray();
+ private int mActivePosition = CATEGORY_UNSPECIFIED;
+
+ public EmojiKeyboardAdapter(final KeyboardLayoutSet layoutSet,
+ final ScrollKeyboardView.OnKeyClickListener listener) {
+ mListener = listener;
+ mLayoutSet = layoutSet;
+ mRecentsKeyboard = new RecentsKeyboard(
+ layoutSet.getKeyboard(KeyboardId.ELEMENT_EMOJI_RECENTS));
+ }
+
+ public void addRecentKey(final Key key) {
+ if (mActivePosition == CATEGORY_RECENTS) {
+ return;
+ }
+ mRecentsKeyboard.addRecentKey(key);
+ final KeyboardView recentKeyboardView = mActiveKeyboardView.get(CATEGORY_RECENTS);
+ if (recentKeyboardView != null) {
+ recentKeyboardView.invalidateAllKeys();
+ }
+ }
+
+ @Override
+ public int getCount() {
+ return sCategoryName.length;
+ }
+
+ @Override
+ public void setPrimaryItem(final View container, final int position, final Object object) {
+ if (mActivePosition == position) {
+ return;
+ }
+ final ScrollKeyboardView oldKeyboardView = mActiveKeyboardView.get(mActivePosition);
+ if (oldKeyboardView != null) {
+ oldKeyboardView.releaseCurrentKey();
+ oldKeyboardView.deallocateMemory();
+ }
+ mActivePosition = position;
+ }
+
+ @Override
+ public Object instantiateItem(final ViewGroup container, final int position) {
+ final int elementId = sCategoryElementId[position];
+ final Keyboard keyboard = (elementId == KeyboardId.ELEMENT_EMOJI_RECENTS)
+ ? mRecentsKeyboard : mLayoutSet.getKeyboard(elementId);
+ final LayoutInflater inflater = LayoutInflater.from(container.getContext());
+ final View view = inflater.inflate(
+ R.layout.emoji_keyboard_page, container, false /* attachToRoot */);
+ final ScrollKeyboardView keyboardView = (ScrollKeyboardView)view.findViewById(
+ R.id.emoji_keyboard_page);
+ keyboardView.setKeyboard(keyboard);
+ keyboardView.setOnKeyClickListener(mListener);
+ final ScrollViewWithNotifier scrollView = (ScrollViewWithNotifier)view.findViewById(
+ R.id.emoji_keyboard_scroller);
+ keyboardView.setScrollView(scrollView);
+ container.addView(view);
+ mActiveKeyboardView.put(position, keyboardView);
+ return view;
+ }
+
+ @Override
+ public boolean isViewFromObject(final View view, final Object object) {
+ return view == object;
+ }
+
+ @Override
+ public void destroyItem(final ViewGroup container, final int position,
+ final Object object) {
+ final ScrollKeyboardView keyboardView = mActiveKeyboardView.get(position);
+ if (keyboardView != null) {
+ keyboardView.deallocateMemory();
+ mActiveKeyboardView.remove(position);
+ }
+ container.removeView(keyboardView);
+ }
+ }
+}
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 143c6e848..3ea68806b 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -764,8 +764,9 @@ public class Key implements Comparable<Key> {
}
public final int getDrawX() {
+ final int x = getX();
final OptionalAttributes attrs = mOptionalAttributes;
- return (attrs == null) ? mX : mX + attrs.mVisualInsetsLeft;
+ return (attrs == null) ? x : x + attrs.mVisualInsetsLeft;
}
public final int getDrawWidth() {
@@ -823,9 +824,9 @@ public class Key implements Comparable<Key> {
* @return the square of the distance of the point from the nearest edge of the key
*/
public int squaredDistanceToEdge(final int x, final int y) {
- final int left = mX;
+ final int left = getX();
final int right = left + mWidth;
- final int top = mY;
+ final int top = getY();
final int bottom = top + mHeight;
final int edgeX = x < left ? left : (x > right ? right : x);
final int edgeY = y < top ? top : (y > bottom ? bottom : y);
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 098c8b3df..c319c57a1 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -66,7 +66,9 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
private SharedPreferences mPrefs;
private InputView mCurrentInputView;
+ private View mMainKeyboardFrame;
private MainKeyboardView mKeyboardView;
+ private EmojiKeyboardView mEmojiKeyboardView;
private LatinIME mLatinIME;
private Resources mResources;
@@ -167,6 +169,8 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
}
private void setKeyboard(final Keyboard keyboard) {
+ // Make {@link MainKeyboardView} visible and hide {@link EmojiKeyboardView}.
+ setMainKeyboardFrame();
final MainKeyboardView keyboardView = mKeyboardView;
final Keyboard oldKeyboard = keyboardView.getKeyboard();
keyboardView.setKeyboard(keyboard);
@@ -253,6 +257,18 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS));
}
+ private void setMainKeyboardFrame() {
+ mMainKeyboardFrame.setVisibility(View.VISIBLE);
+ mEmojiKeyboardView.setVisibility(View.GONE);
+ }
+
+ // Implements {@link KeyboardState.SwitchActions}.
+ @Override
+ public void setEmojiKeyboard() {
+ mMainKeyboardFrame.setVisibility(View.GONE);
+ mEmojiKeyboardView.setVisibility(View.VISIBLE);
+ }
+
// Implements {@link KeyboardState.SwitchActions}.
@Override
public void requestUpdatingShiftState() {
@@ -292,6 +308,20 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
mState.onCodeInput(code, mLatinIME.getCurrentAutoCapsState());
}
+ public boolean isShowingMoreKeysPanel() {
+ if (mEmojiKeyboardView.getVisibility() == View.VISIBLE) {
+ return false;
+ }
+ return mKeyboardView.isShowingMoreKeysPanel();
+ }
+
+ public View getVisibleKeyboardView() {
+ if (mEmojiKeyboardView.getVisibility() == View.VISIBLE) {
+ return mEmojiKeyboardView;
+ }
+ return mKeyboardView;
+ }
+
public MainKeyboardView getMainKeyboardView() {
return mKeyboardView;
}
@@ -304,10 +334,16 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
setContextThemeWrapper(mLatinIME, mKeyboardTheme);
mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate(
R.layout.input_view, null);
+ mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame);
+ mEmojiKeyboardView = (EmojiKeyboardView)mCurrentInputView.findViewById(
+ R.id.emoji_keyboard_view);
mKeyboardView = (MainKeyboardView) mCurrentInputView.findViewById(R.id.keyboard_view);
mKeyboardView.setHardwareAcceleratedDrawingEnabled(isHardwareAcceleratedDrawingEnabled);
mKeyboardView.setKeyboardActionListener(mLatinIME);
+ mEmojiKeyboardView.setHardwareAcceleratedDrawingEnabled(
+ isHardwareAcceleratedDrawingEnabled);
+ mEmojiKeyboardView.setKeyboardActionListener(mLatinIME);
// This always needs to be set since the accessibility state can
// potentially change without the input view being re-created.
diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
index c0c02f10a..cd127c760 100644
--- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
+++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
@@ -342,7 +342,9 @@ y |---+---+---+---+-v-+-|-+---+---+---+---+---| | thresholdBase and get
for (int centerY = yStart; centerY <= yEnd; centerY += mCellHeight) {
int index = baseIndexOfCurrentRow;
for (int centerX = xStart; centerX <= xEnd; centerX += mCellWidth) {
- if (key.squaredDistanceToEdge(centerX, centerY) < thresholdSquared) {
+ // TODO: Remove "index < neighborCountPerCell.length" below.
+ if (index < neighborCountPerCell.length
+ && key.squaredDistanceToEdge(centerX, centerY) < thresholdSquared) {
neighborsFlatBuffer[index * keyCount + neighborCountPerCell[index]] = key;
++neighborCountPerCell[index];
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
index b21ea3f71..05d855e31 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
@@ -124,10 +124,11 @@ public final class KeyStylesSet {
@Override
public int getFlags(final TypedArray a, final int index) {
+ final int parentFlags = mStyles.get(mParentStyleName).getFlags(a, index);
final Integer value = (Integer)mStyleAttributes.get(index);
- final int flags = a.getInt(index, (value != null) ? value : 0);
- final KeyStyle parentStyle = mStyles.get(mParentStyleName);
- return flags | parentStyle.getFlags(a, index);
+ final int styleFlags = (value != null) ? value : 0;
+ final int flags = a.getInt(index, 0);
+ return flags | styleFlags | parentFlags;
}
public void readKeyAttributes(final TypedArray keyAttr) {
@@ -163,7 +164,8 @@ public final class KeyStylesSet {
private void readFlags(final TypedArray a, final int index) {
if (a.hasValue(index)) {
final Integer value = (Integer)mStyleAttributes.get(index);
- mStyleAttributes.put(index, a.getInt(index, 0) | (value != null ? value : 0));
+ final int styleFlags = value != null ? value : 0;
+ mStyleAttributes.put(index, a.getInt(index, 0) | styleFlags);
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index 8c70389ba..22f7a83fc 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -625,6 +625,9 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
final AttributeSet attr = Xml.asAttributeSet(parser);
final TypedArray caseAttr = mResources.obtainAttributes(attr, R.styleable.Keyboard_Case);
try {
+ final boolean keyboardLayoutSetMatched = matchString(caseAttr,
+ R.styleable.Keyboard_Case_keyboardLayoutSet,
+ SubtypeLocaleUtils.getKeyboardLayoutSetName(id.mSubtype));
final boolean keyboardLayoutSetElementMatched = matchTypedValue(caseAttr,
R.styleable.Keyboard_Case_keyboardLayoutSetElement, id.mElementId,
KeyboardId.elementIdToName(id.mElementId));
@@ -657,15 +660,18 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
final boolean countryCodeMatched = matchString(caseAttr,
R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry());
- final boolean selected = keyboardLayoutSetElementMatched && modeMatched
- && navigateNextMatched && navigatePreviousMatched && passwordInputMatched
- && clobberSettingsKeyMatched && shortcutKeyEnabledMatched
- && shortcutKeyOnSymbolsMatched && hasShortcutKeyMatched
- && languageSwitchKeyEnabledMatched && isMultiLineMatched && imeActionMatched
- && localeCodeMatched && languageCodeMatched && countryCodeMatched;
+ final boolean selected = keyboardLayoutSetMatched && keyboardLayoutSetElementMatched
+ && modeMatched && navigateNextMatched && navigatePreviousMatched
+ && passwordInputMatched && clobberSettingsKeyMatched
+ && shortcutKeyEnabledMatched && shortcutKeyOnSymbolsMatched
+ && hasShortcutKeyMatched && languageSwitchKeyEnabledMatched
+ && isMultiLineMatched && imeActionMatched && localeCodeMatched
+ && languageCodeMatched && countryCodeMatched;
if (DEBUG) {
- startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
+ startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
+ textAttr(caseAttr.getString(
+ R.styleable.Keyboard_Case_keyboardLayoutSet), "keyboardLayoutSet"),
textAttr(caseAttr.getString(
R.styleable.Keyboard_Case_keyboardLayoutSetElement),
"keyboardLayoutSetElement"),
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index 0b10a1d1a..089db12a2 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
@@ -46,6 +46,7 @@ public final class KeyboardState {
public void setAlphabetShiftLockedKeyboard();
public void setAlphabetShiftLockShiftedKeyboard();
public void setSymbolsKeyboard();
+ public void setEmojiKeyboard();
/**
* Request to call back {@link KeyboardState#onUpdateShiftState(int, int)}.
@@ -71,7 +72,10 @@ public final class KeyboardState {
private static final int SWITCH_STATE_MOMENTARY_ALPHA_SHIFT = 5;
private int mSwitchState = SWITCH_STATE_ALPHA;
+ // TODO: Consolidate these two mode booleans into one integer to distinguish between alphabet,
+ // symbols, and emoji mode.
private boolean mIsAlphabetMode;
+ private boolean mIsEmojiMode;
private AlphabetShiftState mAlphabetShiftState = new AlphabetShiftState();
private boolean mPrevMainKeyboardWasShiftLocked;
private int mRecapitalizeMode;
@@ -86,6 +90,7 @@ public final class KeyboardState {
public boolean mIsValid;
public boolean mIsAlphabetMode;
public boolean mIsAlphabetShiftLocked;
+ public boolean mIsEmojiMode;
public int mShiftMode;
@Override
@@ -94,6 +99,8 @@ public final class KeyboardState {
if (mIsAlphabetMode) {
if (mIsAlphabetShiftLocked) return "ALPHABET_SHIFT_LOCKED";
return "ALPHABET_" + shiftModeToString(mShiftMode);
+ } else if (mIsEmojiMode) {
+ return "EMOJI";
} else {
return "SYMBOLS";
}
@@ -125,6 +132,7 @@ public final class KeyboardState {
public void onSaveKeyboardState() {
final SavedKeyboardState state = mSavedKeyboardState;
state.mIsAlphabetMode = mIsAlphabetMode;
+ state.mIsEmojiMode = mIsEmojiMode;
if (mIsAlphabetMode) {
state.mIsAlphabetShiftLocked = mAlphabetShiftState.isShiftLocked();
state.mShiftMode = mAlphabetShiftState.isAutomaticShifted() ? AUTOMATIC_SHIFT
@@ -145,6 +153,8 @@ public final class KeyboardState {
}
if (!state.mIsValid || state.mIsAlphabetMode) {
setAlphabetKeyboard();
+ } else if (state.mIsEmojiMode) {
+ setEmojiKeyboard();
} else {
setSymbolsKeyboard();
}
@@ -254,6 +264,7 @@ public final class KeyboardState {
mSwitchActions.setAlphabetKeyboard();
mIsAlphabetMode = true;
+ mIsEmojiMode = false;
mRecapitalizeMode = RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE;
mSwitchState = SWITCH_STATE_ALPHA;
mSwitchActions.requestUpdatingShiftState();
@@ -270,6 +281,15 @@ public final class KeyboardState {
mSwitchState = SWITCH_STATE_SYMBOL_BEGIN;
}
+ private void setEmojiKeyboard() {
+ if (DEBUG_ACTION) {
+ Log.d(TAG, "setEmojiKeyboard");
+ }
+ mIsAlphabetMode = false;
+ mIsEmojiMode = true;
+ mSwitchActions.setEmojiKeyboard();
+ }
+
public void onPressKey(final int code, final boolean isSinglePointer, final int autoCaps) {
if (DEBUG_EVENT) {
Log.d(TAG, "onPressKey: code=" + Constants.printableCode(code)
@@ -547,6 +567,8 @@ public final class KeyboardState {
// If the code is a letter, update keyboard shift state.
if (Constants.isLetterCode(code)) {
updateAlphabetShiftState(autoCaps, RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE);
+ } else if (code == Constants.CODE_EMOJI) {
+ setEmojiKeyboard();
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
index c6d652c0e..4d3bdb0ca 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
@@ -275,7 +275,7 @@ public final class KeyboardTextsSet {
/* 50 */ "\u00A2,\u00A3,\u20AC,\u00A5,\u20B1",
/* 51 */ "$",
/* 52 */ "$,\u00A2,\u20AC,\u00A3,\u00A5,\u20B1",
- /* 53 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)",
+ /* 53 */ "!fixedColumnOrder!3,!,\\,,?,:,;,@",
// U+2020: "†" DAGGER
// U+2021: "‡" DOUBLE DAGGER
// U+2605: "★" BLACK STAR
@@ -357,10 +357,9 @@ public final class KeyboardTextsSet {
// U+2030: "‰" PER MILLE SIGN
/* 103 */ "\u2030",
/* 104 */ ",",
- /* 105 */ "!",
- /* 106 */ "!",
- /* 107 */ "?",
- /* 108 */ "?",
+ /* 105~ */
+ EMPTY, EMPTY, EMPTY, EMPTY,
+ /* ~108 */
/* 109 */ "\'",
/* 110 */ "\"",
/* 111 */ "\"",
@@ -775,7 +774,7 @@ public final class KeyboardTextsSet {
null, null, null, null, null, null, null, null,
/* ~52 */
// U+00B7: "·" MIDDLE DOT
- /* 53 */ "!fixedColumnOrder!9,\u00B7,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(,)",
+ /* 53 */ "!fixedColumnOrder!4,\u00B7,!,\\,,?,:,;,@",
/* 54~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -1247,7 +1246,7 @@ public final class KeyboardTextsSet {
/* ~52 */
// U+00A1: "¡" INVERTED EXCLAMATION MARK
// U+00BF: "¿" INVERTED QUESTION MARK
- /* 53 */ "!fixedColumnOrder!9,\u00A1,\",\',#,-,:,!,\\,,?,\u00BF,@,&,\\%,+,;,/,(,)",
+ /* 53 */ "!fixedColumnOrder!4,;,!,\\,,?,:,\u00A1,@,\u00BF",
/* 54~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -1753,6 +1752,25 @@ public final class KeyboardTextsSet {
/* 49 */ "!text/double_raqm_laqm",
};
+ /* Language hy: Armenian */
+ private static final String[] LANGUAGE_hy = {
+ /* 0~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null,
+ /* ~52 */
+ // U+055E: "՞" ARMENIAN QUESTION MARK
+ /* 53 */ "!fixedColumnOrder!4,\u055E,!,\\,,?,:,;,@",
+ /* 54~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null,
+ /* ~107 */
+ /* 108 */ "\u055E,?",
+ };
+
/* Language is: Icelandic */
private static final String[] LANGUAGE_is = {
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
@@ -1894,7 +1912,7 @@ public final class KeyboardTextsSet {
// U+20AA: "₪" NEW SHEQEL SIGN
/* 51 */ "\u20AA",
/* 52 */ null,
- /* 53 */ "!fixedColumnOrder!8,\",\',#,-,:,!,\\,,?,@,&,\\%,+,;,/,(|),)|(",
+ /* 53 */ null,
// U+2605: "★" BLACK STAR
/* 54 */ "\u2605",
/* 55 */ null,
@@ -1912,6 +1930,15 @@ public final class KeyboardTextsSet {
// U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
/* 59 */ "!fixedColumnOrder!3,\u2039|\u203A,\u2264|\u2265,\u00AB|\u00BB",
/* 60 */ "!fixedColumnOrder!3,\u203A|\u2039,\u2265|\u2264,\u00BB|\u00AB",
+ /* 61~ */
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ /* ~104 */
+ /* 105 */ "!",
+ /* 106 */ "!",
+ /* 107 */ "?",
+ /* 108 */ "?",
};
/* Language ka: Georgian */
@@ -3288,6 +3315,7 @@ public final class KeyboardTextsSet {
"hi", LANGUAGE_hi, /* Hindi */
"hr", LANGUAGE_hr, /* Croatian */
"hu", LANGUAGE_hu, /* Hungarian */
+ "hy", LANGUAGE_hy, /* Armenian */
"is", LANGUAGE_is, /* Icelandic */
"it", LANGUAGE_it, /* Italian */
"iw", LANGUAGE_iw, /* Hebrew */
diff --git a/java/src/com/android/inputmethod/keyboard/internal/RecentsKeyboard.java b/java/src/com/android/inputmethod/keyboard/internal/RecentsKeyboard.java
new file mode 100644
index 000000000..629c60460
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/RecentsKeyboard.java
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import android.text.TextUtils;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.utils.CollectionUtils;
+
+import java.util.ArrayDeque;
+import java.util.Random;
+
+/**
+ * This is a Keyboard class to host recently used keys.
+ */
+// TODO: Save/restore recent keys from/to preferences.
+public class RecentsKeyboard extends Keyboard {
+ private static final int TEMPLATE_KEY_CODE_0 = 0x30;
+ private static final int TEMPLATE_KEY_CODE_1 = 0x31;
+
+ private final int mLeftPadding;
+ private final int mHorizontalStep;
+ private final int mVerticalStep;
+ private final int mColumnsNum;
+ private final int mMaxRecentKeyCount;
+ private final ArrayDeque<RecentKey> mRecentKeys = CollectionUtils.newArrayDeque();
+
+ private Key[] mCachedRecentKeys;
+
+ public RecentsKeyboard(final Keyboard templateKeyboard) {
+ super(templateKeyboard);
+ final Key key0 = getTemplateKey(TEMPLATE_KEY_CODE_0);
+ final Key key1 = getTemplateKey(TEMPLATE_KEY_CODE_1);
+ mLeftPadding = key0.getX();
+ mHorizontalStep = Math.abs(key1.getX() - key0.getX());
+ mVerticalStep = key0.getHeight() + mVerticalGap;
+ mColumnsNum = mBaseWidth / mHorizontalStep;
+ final int rowsNum = mBaseHeight / mVerticalStep;
+ mMaxRecentKeyCount = mColumnsNum * rowsNum;
+ }
+
+ private Key getTemplateKey(final int code) {
+ for (final Key key : super.getKeys()) {
+ if (key.getCode() == code) {
+ return key;
+ }
+ }
+ throw new RuntimeException("Can't find template key: code=" + code);
+ }
+
+ private final Random random = new Random();
+
+ public void addRecentKey(final Key usedKey) {
+ synchronized (mRecentKeys) {
+ mCachedRecentKeys = null;
+ final RecentKey key = (usedKey instanceof RecentKey)
+ ? (RecentKey)usedKey : new RecentKey(usedKey);
+ while (mRecentKeys.remove(key)) {
+ // Remove duplicate keys.
+ }
+ mRecentKeys.addFirst(key);
+ while (mRecentKeys.size() > mMaxRecentKeyCount) {
+ mRecentKeys.removeLast();
+ }
+ int index = 0;
+ for (final RecentKey recentKey : mRecentKeys) {
+ final int keyX = getKeyX(index);
+ final int keyY = getKeyY(index);
+ final int x = keyX+random.nextInt(recentKey.getWidth());
+ final int y = keyY+random.nextInt(recentKey.getHeight());
+ recentKey.updateCorrdinates(keyX, keyY);
+ index++;
+ }
+ }
+ }
+
+ private int getKeyX(final int index) {
+ final int column = index % mColumnsNum;
+ return column * mHorizontalStep + mLeftPadding;
+ }
+
+ private int getKeyY(final int index) {
+ final int row = index / mColumnsNum;
+ return row * mVerticalStep + mTopPadding;
+ }
+
+ @Override
+ public Key[] getKeys() {
+ synchronized (mRecentKeys) {
+ if (mCachedRecentKeys != null) {
+ return mCachedRecentKeys;
+ }
+ mCachedRecentKeys = mRecentKeys.toArray(new Key[mRecentKeys.size()]);
+ return mCachedRecentKeys;
+ }
+ }
+
+ @Override
+ public Key[] getNearestKeys(final int x, final int y) {
+ // TODO: Calculate the nearest key index in mRecentKeys from x and y.
+ return getKeys();
+ }
+
+ static final class RecentKey extends Key {
+ private int mCurrentX;
+ private int mCurrentY;
+
+ public RecentKey(final Key originalKey) {
+ super(originalKey);
+ }
+
+ public void updateCorrdinates(final int x, final int y) {
+ mCurrentX = x;
+ mCurrentY = y;
+ getHitBox().offsetTo(x, y);
+ }
+
+ @Override
+ public int getX() {
+ return mCurrentX;
+ }
+
+ @Override
+ public int getY() {
+ return mCurrentY;
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ if (!(o instanceof Key)) return false;
+ final Key key = (Key)o;
+ if (getCode() != key.getCode()) return false;
+ if (!TextUtils.equals(getLabel(), key.getLabel())) return false;
+ return TextUtils.equals(getOutputText(), key.getOutputText());
+ }
+
+ @Override
+ public String toString() {
+ return "RecentKey: " + super.toString();
+ }
+ }
+}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java b/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java
index 2628f59a8..b8ee976e8 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/ScrollKeyboardView.java
@@ -33,6 +33,7 @@ import com.android.inputmethod.latin.R;
* This is an extended {@link KeyboardView} class that hosts a scroll keyboard.
* Multi-touch unsupported. No {@link PointerTracker}s. No gesture support.
*/
+// TODO: Implement key popup preview.
public final class ScrollKeyboardView extends KeyboardView implements
ScrollViewWithNotifier.ScrollListener, GestureDetector.OnGestureListener {
private static final boolean PAGINATION = false;
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index eb19ef932..e8b06570f 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -21,7 +21,6 @@ import android.util.SparseArray;
import com.android.inputmethod.keyboard.ProximityInfo;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
-import com.android.inputmethod.latin.settings.AdditionalFeaturesSettingUtils;
import com.android.inputmethod.latin.settings.NativeSuggestOptions;
import com.android.inputmethod.latin.utils.CollectionUtils;
import com.android.inputmethod.latin.utils.JniUtils;
@@ -120,15 +119,16 @@ public final class BinaryDictionary extends Dictionary {
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
return getSuggestionsWithSessionId(composer, prevWord, proximityInfo, blockOffensiveWords,
- 0 /* sessionId */);
+ additionalFeaturesOptions, 0 /* sessionId */);
}
@Override
public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords, final int sessionId) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
+ final int sessionId) {
if (!isValidDictionary()) return null;
Arrays.fill(mInputCodePoints, Constants.NOT_A_CODE);
@@ -148,8 +148,7 @@ public final class BinaryDictionary extends Dictionary {
final InputPointers ips = composer.getInputPointers();
final int inputSize = isGesture ? ips.getPointerSize() : composerSize;
mNativeSuggestOptions.setIsGesture(isGesture);
- mNativeSuggestOptions.setAdditionalFeaturesOptions(
- AdditionalFeaturesSettingUtils.getAdditionalNativeSuggestOptions());
+ mNativeSuggestOptions.setAdditionalFeaturesOptions(additionalFeaturesOptions);
// proximityInfo and/or prevWordForBigrams may not be null.
final int count = getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(),
getTraverseSession(sessionId).getSession(), ips.getXCoordinates(),
diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java
index d9ded7ceb..8a3a88438 100644
--- a/java/src/com/android/inputmethod/latin/Dictionary.java
+++ b/java/src/com/android/inputmethod/latin/Dictionary.java
@@ -72,20 +72,23 @@ public abstract class Dictionary {
* @param prevWord the previous word, or null if none
* @param proximityInfo the object for key proximity. May be ignored by some implementations.
* @param blockOffensiveWords whether to block potentially offensive words
+ * @param additionalFeaturesOptions options about additional features used for the suggestion.
* @return the list of suggestions (possibly null if none)
*/
// TODO: pass more context than just the previous word, to enable better suggestions (n-gram
// and more)
abstract public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords);
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions);
// The default implementation of this method ignores sessionId.
// Subclasses that want to use sessionId need to override this method.
public ArrayList<SuggestedWordInfo> getSuggestionsWithSessionId(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords, final int sessionId) {
- return getSuggestions(composer, prevWord, proximityInfo, blockOffensiveWords);
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
+ final int sessionId) {
+ return getSuggestions(composer, prevWord, proximityInfo, blockOffensiveWords,
+ additionalFeaturesOptions);
}
/**
@@ -156,7 +159,7 @@ public abstract class Dictionary {
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
return null;
}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index d05bb1e55..bf075140e 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -58,18 +58,18 @@ public final class DictionaryCollection extends Dictionary {
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries;
if (dictionaries.isEmpty()) return null;
// To avoid creating unnecessary objects, we get the list out of the first
// dictionary and add the rest to it if not null, hence the get(0)
ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getSuggestions(composer,
- prevWord, proximityInfo, blockOffensiveWords);
+ prevWord, proximityInfo, blockOffensiveWords, additionalFeaturesOptions);
if (null == suggestions) suggestions = CollectionUtils.newArrayList();
final int length = dictionaries.size();
for (int i = 1; i < length; ++ i) {
final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getSuggestions(composer,
- prevWord, proximityInfo, blockOffensiveWords);
+ prevWord, proximityInfo, blockOffensiveWords, additionalFeaturesOptions);
if (null != sugg) suggestions.addAll(sugg);
}
return suggestions;
diff --git a/java/src/com/android/inputmethod/latin/DictionaryWriter.java b/java/src/com/android/inputmethod/latin/DictionaryWriter.java
index a97e053d0..5a453dde5 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryWriter.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryWriter.java
@@ -92,7 +92,7 @@ public class DictionaryWriter extends AbstractDictionaryWriter {
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- boolean blockOffensiveWords) {
+ boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
// This class doesn't support suggestion.
return null;
}
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index 939c2a03b..b92283c5b 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -272,19 +272,19 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
asyncReloadDictionaryIfRequired();
// Write lock because getSuggestions in native updates session status.
if (mLocalDictionaryController.writeLock().tryLock()) {
try {
final ArrayList<SuggestedWordInfo> inMemDictSuggestion =
mDictionaryWriter.getSuggestions(composer, prevWord, proximityInfo,
- blockOffensiveWords);
+ blockOffensiveWords, additionalFeaturesOptions);
// TODO: Remove checking mIsUpdatable and use native suggestion.
if (mBinaryDictionary != null && !mIsUpdatable) {
final ArrayList<SuggestedWordInfo> binarySuggestion =
mBinaryDictionary.getSuggestions(composer, prevWord, proximityInfo,
- blockOffensiveWords);
+ blockOffensiveWords, additionalFeaturesOptions);
if (inMemDictSuggestion == null) {
return binarySuggestion;
} else if (binarySuggestion == null) {
diff --git a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
index f5fa5d0d7..342dcfc5e 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -210,7 +210,7 @@ public class ExpandableDictionary extends Dictionary {
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
if (composer.size() > 1) {
if (composer.size() >= Constants.DICTIONARY_MAX_WORD_LENGTH) {
return null;
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 85001c30c..6be9ded5c 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -31,6 +31,7 @@ import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
+import android.graphics.Rect;
import android.inputmethodservice.InputMethodService;
import android.media.AudioManager;
import android.net.ConnectivityManager;
@@ -50,6 +51,7 @@ import android.util.Printer;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.View;
+import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.CompletionInfo;
@@ -71,6 +73,7 @@ import com.android.inputmethod.keyboard.KeyboardActionListener;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.KeyboardSwitcher;
import com.android.inputmethod.keyboard.MainKeyboardView;
+import com.android.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.define.ProductionFlag;
import com.android.inputmethod.latin.personalization.PersonalizationDictionary;
@@ -104,6 +107,8 @@ import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Locale;
import java.util.TreeSet;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
/**
* Input method implementation for Qwerty'ish keyboard.
@@ -126,6 +131,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private static final int PERIOD_FOR_AUDIO_AND_HAPTIC_FEEDBACK_IN_KEY_REPEAT = 2;
+ // TODO: Set this value appropriately.
+ private static final int GET_SUGGESTED_WORDS_TIMEOUT = 200;
+
/**
* The name of the scheme used by the Package Manager to warn of a new package installation,
* replacement or removal.
@@ -153,8 +161,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private final Settings mSettings;
- private View mInputView;
- private int mInputViewMinHeight;
+ private View mExtractArea;
+ private View mKeyPreviewBackingView;
private SuggestionStripView mSuggestionStripView;
// Never null
private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
@@ -218,6 +226,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private final boolean mIsHardwareAcceleratedDrawingEnabled;
public final UIHandler mHandler = new UIHandler(this);
+ private InputUpdater mInputUpdater;
public static final class UIHandler extends StaticInnerHandlerWrapper<LatinIME> {
private static final int MSG_UPDATE_SHIFT_STATE = 0;
@@ -226,8 +235,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
private static final int MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP = 3;
private static final int MSG_RESUME_SUGGESTIONS = 4;
private static final int MSG_REOPEN_DICTIONARIES = 5;
+ private static final int MSG_ON_END_BATCH_INPUT = 6;
+ private static final int ARG1_NOT_GESTURE_INPUT = 0;
private static final int ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 1;
+ private static final int ARG1_SHOW_GESTURE_FLOATING_PREVIEW_TEXT = 2;
private int mDelayUpdateSuggestions;
private int mDelayUpdateShiftState;
@@ -260,8 +272,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
switcher.updateShiftState();
break;
case MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP:
- latinIme.showGesturePreviewAndSuggestionStrip((SuggestedWords)msg.obj,
- msg.arg1 == ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT);
+ if (msg.arg1 == ARG1_NOT_GESTURE_INPUT) {
+ latinIme.showSuggestionStrip((SuggestedWords) msg.obj);
+ } else {
+ latinIme.showGesturePreviewAndSuggestionStrip((SuggestedWords) msg.obj,
+ msg.arg1 == ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT);
+ }
break;
case MSG_RESUME_SUGGESTIONS:
latinIme.restartSuggestionsOnWordTouchedByCursor();
@@ -273,6 +289,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// get any suggestions. Wait one frame.
postUpdateSuggestionStrip();
break;
+ case MSG_ON_END_BATCH_INPUT:
+ latinIme.onEndBatchInputAsyncInternal((SuggestedWords) msg.obj);
+ break;
}
}
@@ -314,11 +333,22 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final boolean dismissGestureFloatingPreviewText) {
removeMessages(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP);
final int arg1 = dismissGestureFloatingPreviewText
- ? ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT : 0;
+ ? ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT
+ : ARG1_SHOW_GESTURE_FLOATING_PREVIEW_TEXT;
obtainMessage(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP, arg1, 0, suggestedWords)
.sendToTarget();
}
+ public void showSuggestionStrip(final SuggestedWords suggestedWords) {
+ removeMessages(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP);
+ obtainMessage(MSG_SHOW_GESTURE_PREVIEW_AND_SUGGESTION_STRIP,
+ ARG1_NOT_GESTURE_INPUT, 0, suggestedWords).sendToTarget();
+ }
+
+ public void onEndBatchInput(final SuggestedWords suggestedWords) {
+ obtainMessage(MSG_ON_END_BATCH_INPUT, suggestedWords).sendToTarget();
+ }
+
public void startDoubleSpacePeriodTimer() {
mDoubleSpacePeriodTimerStart = SystemClock.uptimeMillis();
}
@@ -511,6 +541,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
final IntentFilter newDictFilter = new IntentFilter();
newDictFilter.addAction(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION);
registerReceiver(mDictionaryPackInstallReceiver, newDictFilter);
+
+ mInputUpdater = new InputUpdater(this);
}
// Has to be package-visible for unit tests
@@ -647,6 +679,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
PersonalizationDictionarySessionRegister.onDestroy(this);
LatinImeLogger.commit();
LatinImeLogger.onDestroy();
+ if (mInputUpdater != null) {
+ mInputUpdater.onDestroy();
+ mInputUpdater = null;
+ }
super.onDestroy();
}
@@ -673,25 +709,17 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
return mKeyboardSwitcher.onCreateInputView(mIsHardwareAcceleratedDrawingEnabled);
}
- private void setInputViewMinHeight(final int minHeight) {
- if (mInputView != null && mInputViewMinHeight != minHeight) {
- mInputView.setMinimumHeight(minHeight);
- mInputViewMinHeight = minHeight;
- }
- }
-
@Override
- public void setInputView(final View inputView) {
- super.setInputView(inputView);
- mInputView = inputView;
- setInputViewMinHeight(0);
- mSuggestionStripView = (SuggestionStripView)inputView.findViewById(
- R.id.suggestion_strip_view);
- if (mSuggestionStripView != null) {
- mSuggestionStripView.setListener(this, inputView);
- }
+ public void setInputView(final View view) {
+ super.setInputView(view);
+ mExtractArea = getWindow().getWindow().getDecorView()
+ .findViewById(android.R.id.extractArea);
+ mKeyPreviewBackingView = view.findViewById(R.id.key_preview_backing);
+ mSuggestionStripView = (SuggestionStripView)view.findViewById(R.id.suggestion_strip_view);
+ if (mSuggestionStripView != null)
+ mSuggestionStripView.setListener(this, view);
if (LatinImeLogger.sVISUALDEBUG) {
- inputView.setBackgroundColor(0x10FF0000);
+ mKeyPreviewBackingView.setBackgroundColor(0x10FF0000);
}
}
@@ -1169,11 +1197,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mSuggestionStripView.setVisibility(
shouldShowSuggestions ? View.VISIBLE : View.INVISIBLE);
}
- if (shouldShowSuggestions && mainKeyboardView != null) {
- final int remainingHeight = getWindow().getWindow().getDecorView().getHeight()
- - mainKeyboardView.getHeight() - mSuggestionStripView.getHeight();
- mSuggestionStripView.setMoreSuggestionsHeight(remainingHeight);
- }
}
}
@@ -1181,37 +1204,66 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
setSuggestionStripShownInternal(shown, /* needsInputViewShown */true);
}
+ private int getAdjustedBackingViewHeight() {
+ final int currentHeight = mKeyPreviewBackingView.getHeight();
+ if (currentHeight > 0) {
+ return currentHeight;
+ }
+
+ final View visibleKeyboardView = mKeyboardSwitcher.getVisibleKeyboardView();
+ if (visibleKeyboardView == null) {
+ return 0;
+ }
+ // TODO: !!!!!!!!!!!!!!!!!!!! Handle different backing view heights between the main !!!
+ // keyboard and the emoji keyboard. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ final int keyboardHeight = visibleKeyboardView.getHeight();
+ final int suggestionsHeight = mSuggestionStripView.getHeight();
+ final int displayHeight = getResources().getDisplayMetrics().heightPixels;
+ final Rect rect = new Rect();
+ mKeyPreviewBackingView.getWindowVisibleDisplayFrame(rect);
+ final int notificationBarHeight = rect.top;
+ final int remainingHeight = displayHeight - notificationBarHeight - suggestionsHeight
+ - keyboardHeight;
+
+ final LayoutParams params = mKeyPreviewBackingView.getLayoutParams();
+ params.height = mSuggestionStripView.setMoreSuggestionsHeight(remainingHeight);
+ mKeyPreviewBackingView.setLayoutParams(params);
+ return params.height;
+ }
+
@Override
public void onComputeInsets(final InputMethodService.Insets outInsets) {
super.onComputeInsets(outInsets);
- final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
- if (mainKeyboardView == null || mSuggestionStripView == null) {
+ final View visibleKeyboardView = mKeyboardSwitcher.getVisibleKeyboardView();
+ if (visibleKeyboardView == null || mSuggestionStripView == null) {
return;
}
- // This method is never called when in fullscreen mode.
- // The contentTop is the top coordinate of the keyboard. The application behind will be
- // resized/panned above this coordibnate to be able to show an input field.
- final int contentTop = mInputView.getHeight() - mainKeyboardView.getHeight();
- final int suggestionsHeight = (mSuggestionStripView.getVisibility() == View.VISIBLE)
- ? mSuggestionStripView.getHeight() : 0;
- // The visibleTop is the top coordinates of the visible part of this IME. The application
- // behind will never be resized, but may be panned or scrolled.
- final int visibleTop = mainKeyboardView.isShowingMoreKeysPanel() ? 0
- : contentTop - suggestionsHeight;
- outInsets.contentTopInsets = contentTop;
- outInsets.visibleTopInsets = visibleTop;
+ final int adjustedBackingHeight = getAdjustedBackingViewHeight();
+ final boolean backingGone = (mKeyPreviewBackingView.getVisibility() == View.GONE);
+ final int backingHeight = backingGone ? 0 : adjustedBackingHeight;
+ // In fullscreen mode, the height of the extract area managed by InputMethodService should
+ // be considered.
+ // See {@link android.inputmethodservice.InputMethodService#onComputeInsets}.
+ final int extractHeight = isFullscreenMode() ? mExtractArea.getHeight() : 0;
+ final int suggestionsHeight = (mSuggestionStripView.getVisibility() == View.GONE) ? 0
+ : mSuggestionStripView.getHeight();
+ final int extraHeight = extractHeight + backingHeight + suggestionsHeight;
+ int visibleTopY = extraHeight;
// Need to set touchable region only if input view is being shown
- if (mainKeyboardView.isShown()) {
- final int touchLeft = 0;
- final int touchTop = visibleTop;
- final int touchRight = touchLeft + mainKeyboardView.getWidth();
- final int touchBottom = contentTop + mainKeyboardView.getHeight()
+ if (visibleKeyboardView.isShown()) {
+ if (mSuggestionStripView.getVisibility() == View.VISIBLE) {
+ visibleTopY -= suggestionsHeight;
+ }
+ final int touchY = mKeyboardSwitcher.isShowingMoreKeysPanel() ? 0 : visibleTopY;
+ final int touchWidth = visibleKeyboardView.getWidth();
+ final int touchHeight = visibleKeyboardView.getHeight() + extraHeight
// Extend touchable region below the keyboard.
+ EXTENDED_TOUCHABLE_REGION_HEIGHT;
- // The touch event on touchableRegion will be delivered to this IME.
- outInsets.touchableRegion.set(touchLeft, touchTop, touchRight, touchBottom);
outInsets.touchableInsets = InputMethodService.Insets.TOUCHABLE_INSETS_REGION;
+ outInsets.touchableRegion.set(0, touchY, touchWidth, touchHeight);
}
+ outInsets.contentTopInsets = visibleTopY;
+ outInsets.visibleTopInsets = visibleTopY;
}
@Override
@@ -1234,11 +1286,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
@Override
public void updateFullscreenMode() {
super.updateFullscreenMode();
- if (!isFullscreenMode()) {
- // Expand the input view to cover entire display to be able to show key previews and
- // more suggestions view that may be displayed above the keyboard.
- setInputViewMinHeight(getResources().getDisplayMetrics().heightPixels);
- }
+
+ if (mKeyPreviewBackingView == null) return;
+ // In fullscreen mode, no need to have extra space to show the key preview.
+ // If not, we should have extra space above the keyboard to show the key preview.
+ mKeyPreviewBackingView.setVisibility(isFullscreenMode() ? View.GONE : View.VISIBLE);
}
// This will reset the whole input state to the starting state. It will clear
@@ -1532,7 +1584,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
handleLanguageSwitchKey();
break;
case Constants.CODE_EMOJI:
- // TODO: Implement emoji keyboard switch.
+ // Note: Switching emoji keyboard is being handled in
+ // {@link KeyboardState#onCodeInput(int,int)}.
break;
case Constants.CODE_ENTER:
final EditorInfo editorInfo = getCurrentInputEditorInfo();
@@ -1648,7 +1701,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
@Override
public void onStartBatchInput() {
- BatchInputUpdater.getInstance().onStartBatchInput(this);
+ mInputUpdater.onStartBatchInput();
mHandler.cancelUpdateSuggestionStrip();
mConnection.beginBatchEdit();
final SettingsValues settingsValues = mSettings.getCurrent();
@@ -1688,46 +1741,41 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mWordComposer.setCapitalizedModeAtStartComposingTime(getActualCapsMode());
}
- private static final class BatchInputUpdater implements Handler.Callback {
+ private static final class InputUpdater implements Handler.Callback {
private final Handler mHandler;
- private LatinIME mLatinIme;
+ private final LatinIME mLatinIme;
private final Object mLock = new Object();
private boolean mInBatchInput; // synchronized using {@link #mLock}.
- private BatchInputUpdater() {
+ private InputUpdater(final LatinIME latinIme) {
final HandlerThread handlerThread = new HandlerThread(
- BatchInputUpdater.class.getSimpleName());
+ InputUpdater.class.getSimpleName());
handlerThread.start();
mHandler = new Handler(handlerThread.getLooper(), this);
- }
-
- // Initialization-on-demand holder
- private static final class OnDemandInitializationHolder {
- public static final BatchInputUpdater sInstance = new BatchInputUpdater();
- }
-
- public static BatchInputUpdater getInstance() {
- return OnDemandInitializationHolder.sInstance;
+ mLatinIme = latinIme;
}
private static final int MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP = 1;
+ private static final int MSG_GET_SUGGESTED_WORDS = 2;
@Override
public boolean handleMessage(final Message msg) {
switch (msg.what) {
- case MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP:
- updateBatchInput((InputPointers)msg.obj);
- break;
+ case MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP:
+ updateBatchInput((InputPointers)msg.obj);
+ break;
+ case MSG_GET_SUGGESTED_WORDS:
+ mLatinIme.getSuggestedWords(msg.arg1, (OnGetSuggestedWordsCallback) msg.obj);
+ break;
}
return true;
}
// Run in the UI thread.
- public void onStartBatchInput(final LatinIME latinIme) {
+ public void onStartBatchInput() {
synchronized (mLock) {
mHandler.removeMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP);
mInBatchInput = true;
- mLatinIme = latinIme;
mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip(
SuggestedWords.EMPTY, false /* dismissGestureFloatingPreviewText */);
}
@@ -1740,9 +1788,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// Batch input has ended or canceled while the message was being delivered.
return;
}
- final SuggestedWords suggestedWords = getSuggestedWordsGestureLocked(batchPointers);
- mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip(
- suggestedWords, false /* dismissGestureFloatingPreviewText */);
+
+ getSuggestedWordsGestureLocked(batchPointers, new OnGetSuggestedWordsCallback() {
+ @Override
+ public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
+ mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip(
+ suggestedWords, false /* dismissGestureFloatingPreviewText */);
+ }
+ });
}
}
@@ -1765,35 +1818,57 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
// Run in the UI thread.
- public SuggestedWords onEndBatchInput(final InputPointers batchPointers) {
- synchronized (mLock) {
- mInBatchInput = false;
- final SuggestedWords suggestedWords = getSuggestedWordsGestureLocked(batchPointers);
- mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip(
- suggestedWords, true /* dismissGestureFloatingPreviewText */);
- return suggestedWords;
+ public void onEndBatchInput(final InputPointers batchPointers) {
+ synchronized(mLock) {
+ getSuggestedWordsGestureLocked(batchPointers, new OnGetSuggestedWordsCallback() {
+ @Override
+ public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
+ mInBatchInput = false;
+ mLatinIme.mHandler.showGesturePreviewAndSuggestionStrip(suggestedWords,
+ true /* dismissGestureFloatingPreviewText */);
+ mLatinIme.mHandler.onEndBatchInput(suggestedWords);
+ }
+ });
}
}
// {@link LatinIME#getSuggestedWords(int)} method calls with same session id have to
// be synchronized.
- private SuggestedWords getSuggestedWordsGestureLocked(final InputPointers batchPointers) {
+ private void getSuggestedWordsGestureLocked(final InputPointers batchPointers,
+ final OnGetSuggestedWordsCallback callback) {
mLatinIme.mWordComposer.setBatchInputPointers(batchPointers);
- final SuggestedWords suggestedWords =
- mLatinIme.getSuggestedWordsOrOlderSuggestions(Suggest.SESSION_GESTURE);
- final int suggestionCount = suggestedWords.size();
- if (suggestionCount <= 1) {
- final String mostProbableSuggestion = (suggestionCount == 0) ? null
- : suggestedWords.getWord(0);
- return mLatinIme.getOlderSuggestions(mostProbableSuggestion);
- }
- return suggestedWords;
+ mLatinIme.getSuggestedWordsOrOlderSuggestionsAsync(Suggest.SESSION_GESTURE,
+ new OnGetSuggestedWordsCallback() {
+ @Override
+ public void onGetSuggestedWords(SuggestedWords suggestedWords) {
+ final int suggestionCount = suggestedWords.size();
+ if (suggestionCount <= 1) {
+ final String mostProbableSuggestion = (suggestionCount == 0) ? null
+ : suggestedWords.getWord(0);
+ callback.onGetSuggestedWords(
+ mLatinIme.getOlderSuggestions(mostProbableSuggestion));
+ }
+ callback.onGetSuggestedWords(suggestedWords);
+ }
+ });
+ }
+
+ public void getSuggestedWords(final int sessionId,
+ final OnGetSuggestedWordsCallback callback) {
+ mHandler.obtainMessage(MSG_GET_SUGGESTED_WORDS, sessionId, 0, callback).sendToTarget();
+ }
+
+ private void onDestroy() {
+ mHandler.removeMessages(MSG_GET_SUGGESTED_WORDS);
+ mHandler.removeMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP);
+ mHandler.getLooper().quit();
}
}
+ // This method must run in UI Thread.
private void showGesturePreviewAndSuggestionStrip(final SuggestedWords suggestedWords,
final boolean dismissGestureFloatingPreviewText) {
- showSuggestionStrip(suggestedWords, null);
+ showSuggestionStrip(suggestedWords);
final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
mainKeyboardView.showGestureFloatingPreviewText(suggestedWords);
if (dismissGestureFloatingPreviewText) {
@@ -1809,13 +1884,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// TODO: implement auto-commit
}
}
- BatchInputUpdater.getInstance().onUpdateBatchInput(batchPointers);
+ mInputUpdater.onUpdateBatchInput(batchPointers);
}
- @Override
- public void onEndBatchInput(final InputPointers batchPointers) {
- final SuggestedWords suggestedWords = BatchInputUpdater.getInstance().onEndBatchInput(
- batchPointers);
+ // This method must run in UI Thread.
+ public void onEndBatchInputAsyncInternal(final SuggestedWords suggestedWords) {
final String batchInputText = suggestedWords.isEmpty()
? null : suggestedWords.getWord(0);
if (TextUtils.isEmpty(batchInputText)) {
@@ -1837,6 +1910,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mKeyboardSwitcher.updateShiftState();
}
+ @Override
+ public void onEndBatchInput(final InputPointers batchPointers) {
+ mInputUpdater.onEndBatchInput(batchPointers);
+ }
+
private String specificTldProcessingOnTextInput(final String text) {
if (text.length() <= 1 || text.charAt(0) != Constants.CODE_PERIOD
|| !Character.isLetter(text.charAt(1))) {
@@ -1872,7 +1950,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
@Override
public void onCancelBatchInput() {
- BatchInputUpdater.getInstance().onCancelBatchInput();
+ mInputUpdater.onCancelBatchInput();
}
private void handleBackspace(final int spaceState) {
@@ -2307,22 +2385,47 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
return;
}
- final SuggestedWords suggestedWords =
- getSuggestedWordsOrOlderSuggestions(Suggest.SESSION_TYPING);
- final String typedWord = mWordComposer.getTypedWord();
- showSuggestionStrip(suggestedWords, typedWord);
+ final CountDownLatch latch = new CountDownLatch(1);
+ final SuggestedWords[] suggestedWordsArray = new SuggestedWords[1];
+ getSuggestedWordsOrOlderSuggestionsAsync(Suggest.SESSION_TYPING,
+ new OnGetSuggestedWordsCallback() {
+ @Override
+ public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
+ suggestedWordsArray[0] = suggestedWords;
+ latch.countDown();
+ }
+ }
+ );
+
+ // TODO: Quit blocking the main thread.
+ try {
+ // Wait for the result of getSuggestedWords
+ // We set the time out to avoid ANR.
+ latch.await(GET_SUGGESTED_WORDS_TIMEOUT, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException e) {
+ // TODO: Cancel all pending "getSuggestedWords" tasks when it failed. We may want to add
+ // "onGetSuggestionFailed" to "OnGetSuggestedWordsCallback".
+ Log.e(TAG, "InterruptedException while waiting for getSuggestedWords.", e);
+ return;
+ }
+ if (suggestedWordsArray[0] != null) {
+ showSuggestionStrip(suggestedWordsArray[0]);
+ }
}
- private SuggestedWords getSuggestedWords(final int sessionId) {
+ private void getSuggestedWords(final int sessionId,
+ final OnGetSuggestedWordsCallback callback) {
final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
final Suggest suggest = mSuggest;
if (keyboard == null || suggest == null) {
- return SuggestedWords.EMPTY;
+ callback.onGetSuggestedWords(SuggestedWords.EMPTY);
+ return;
}
// Get the word on which we should search the bigrams. If we are composing a word, it's
// whatever is *before* the half-committed word in the buffer, hence 2; if we aren't, we
// should just skip whitespace if any, so 1.
final SettingsValues currentSettings = mSettings.getCurrent();
+ final int[] additionalFeaturesOptions = currentSettings.mAdditionalFeaturesSettingValues;
final String prevWord;
if (currentSettings.mCurrentLanguageHasSpaces) {
// If we are typing in a language with spaces we can just look up the previous
@@ -2333,14 +2436,20 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
prevWord = LastComposedWord.NOT_A_COMPOSED_WORD == mLastComposedWord ? null
: mLastComposedWord.mCommittedWord;
}
- return suggest.getSuggestedWords(mWordComposer, prevWord, keyboard.getProximityInfo(),
- currentSettings.mBlockPotentiallyOffensive,
- currentSettings.mCorrectionEnabled, sessionId);
+ suggest.getSuggestedWords(mWordComposer, prevWord, keyboard.getProximityInfo(),
+ currentSettings.mBlockPotentiallyOffensive, currentSettings.mCorrectionEnabled,
+ additionalFeaturesOptions, sessionId, callback);
}
- private SuggestedWords getSuggestedWordsOrOlderSuggestions(final int sessionId) {
- return maybeRetrieveOlderSuggestions(mWordComposer.getTypedWord(),
- getSuggestedWords(sessionId));
+ private void getSuggestedWordsOrOlderSuggestionsAsync(final int sessionId,
+ final OnGetSuggestedWordsCallback callback) {
+ mInputUpdater.getSuggestedWords(sessionId, new OnGetSuggestedWordsCallback() {
+ @Override
+ public void onGetSuggestedWords(SuggestedWords suggestedWords) {
+ callback.onGetSuggestedWords(maybeRetrieveOlderSuggestions(
+ mWordComposer.getTypedWord(), suggestedWords));
+ }
+ });
}
private SuggestedWords maybeRetrieveOlderSuggestions(final String typedWord,
@@ -2380,16 +2489,16 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
false /* isPrediction */);
}
- private void showSuggestionStrip(final SuggestedWords suggestedWords, final String typedWord) {
+ private void showSuggestionStrip(final SuggestedWords suggestedWords) {
if (suggestedWords.isEmpty()) {
clearSuggestionStrip();
return;
}
final String autoCorrection;
if (suggestedWords.mWillAutoCorrect) {
- autoCorrection = suggestedWords.getWord(1);
+ autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION);
} else {
- autoCorrection = typedWord;
+ autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_TYPED_WORD);
}
mWordComposer.setAutoCorrection(autoCorrection);
final boolean isAutoCorrection = suggestedWords.willAutoCorrect();
@@ -2638,41 +2747,52 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mConnection.setComposingRegion(
mLastSelectionStart - numberOfCharsInWordBeforeCursor,
mLastSelectionEnd + range.getNumberOfCharsInWordAfterCursor());
- final SuggestedWords suggestedWords;
if (suggestions.isEmpty()) {
// We come here if there weren't any suggestion spans on this word. We will try to
// compute suggestions for it instead.
- final SuggestedWords suggestedWordsIncludingTypedWord =
- getSuggestedWords(Suggest.SESSION_TYPING);
- if (suggestedWordsIncludingTypedWord.size() > 1) {
- // We were able to compute new suggestions for this word.
- // Remove the typed word, since we don't want to display it in this case.
- // The #getSuggestedWordsExcludingTypedWord() method sets willAutoCorrect to false.
- suggestedWords =
- suggestedWordsIncludingTypedWord.getSuggestedWordsExcludingTypedWord();
- } else {
- // No saved suggestions, and we were unable to compute any good one either.
- // Rather than displaying an empty suggestion strip, we'll display the original
- // word alone in the middle.
- // Since there is only one word, willAutoCorrect is false.
- suggestedWords = suggestedWordsIncludingTypedWord;
- }
+ mInputUpdater.getSuggestedWords(Suggest.SESSION_TYPING,
+ new OnGetSuggestedWordsCallback() {
+ @Override
+ public void onGetSuggestedWords(
+ final SuggestedWords suggestedWordsIncludingTypedWord) {
+ final SuggestedWords suggestedWords;
+ if (suggestedWordsIncludingTypedWord.size() > 1) {
+ // We were able to compute new suggestions for this word.
+ // Remove the typed word, since we don't want to display it in this case.
+ // The #getSuggestedWordsExcludingTypedWord() method sets willAutoCorrect to
+ // false.
+ suggestedWords = suggestedWordsIncludingTypedWord
+ .getSuggestedWordsExcludingTypedWord();
+ } else {
+ // No saved suggestions, and we were unable to compute any good one either.
+ // Rather than displaying an empty suggestion strip, we'll display the
+ // original word alone in the middle.
+ // Since there is only one word, willAutoCorrect is false.
+ suggestedWords = suggestedWordsIncludingTypedWord;
+ }
+ unsetIsAutoCorrectionIndicatorOnAndCallShowSuggestionStrip(suggestedWords);
+ }});
} else {
// We found suggestion spans in the word. We'll create the SuggestedWords out of
// them, and make willAutoCorrect false.
- suggestedWords = new SuggestedWords(suggestions,
+ final SuggestedWords suggestedWords = new SuggestedWords(suggestions,
true /* typedWordValid */, false /* willAutoCorrect */,
false /* isPunctuationSuggestions */, false /* isObsoleteSuggestions */,
false /* isPrediction */);
+ unsetIsAutoCorrectionIndicatorOnAndCallShowSuggestionStrip(suggestedWords);
}
+ }
+ public void unsetIsAutoCorrectionIndicatorOnAndCallShowSuggestionStrip(
+ final SuggestedWords suggestedWords) {
// Note that it's very important here that suggestedWords.mWillAutoCorrect is false.
- // We never want to auto-correct on a resumed suggestion. Please refer to the three
- // places above where suggestedWords is affected. We also need to reset
- // mIsAutoCorrectionIndicatorOn to avoid showSuggestionStrip touching the text to adapt it.
- // TODO: remove mIsAutoCorrectionIndicator on (see comment on definition)
+ // We never want to auto-correct on a resumed suggestion. Please refer to the three places
+ // above in restartSuggestionsOnWordTouchedByCursor() where suggestedWords is affected.
+ // We also need to unset mIsAutoCorrectionIndicatorOn to avoid showSuggestionStrip touching
+ // the text to adapt it.
+ // TODO: remove mIsAutoCorrectionIndicatorOn (see comment on definition)
mIsAutoCorrectionIndicatorOn = false;
- showSuggestionStrip(suggestedWords, typedWord);
+ mHandler.showSuggestionStrip(suggestedWords);
}
/**
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index be03d4ae5..0889f22ca 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -53,12 +53,22 @@ public final class SubtypeSwitcher {
private InputMethodInfo mShortcutInputMethodInfo;
private InputMethodSubtype mShortcutSubtype;
private InputMethodSubtype mNoLanguageSubtype;
+ private InputMethodSubtype mEmojiSubtype;
private boolean mIsNetworkConnected;
// Dummy no language QWERTY subtype. See {@link R.xml.method}.
private static final InputMethodSubtype DUMMY_NO_LANGUAGE_SUBTYPE = new InputMethodSubtype(
- R.string.subtype_no_language_qwerty, R.drawable.ic_subtype_keyboard, "zz", "keyboard",
- "KeyboardLayoutSet=qwerty,AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable",
+ R.string.subtype_no_language_qwerty, R.drawable.ic_subtype_keyboard,
+ SubtypeLocaleUtils.NO_LANGUAGE, "keyboard",
+ "KeyboardLayoutSet=" + SubtypeLocaleUtils.QWERTY
+ + ",AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable",
+ false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */);
+ // Caveat: We probably should remove this when we add an Emoji subtype in {@link R.xml.method}.
+ // Dummy Emoji subtype. See {@link R.xml.method}.
+ private static final InputMethodSubtype DUMMY_EMOJI_SUBTYPE = new InputMethodSubtype(
+ R.string.subtype_emoji, R.drawable.ic_subtype_keyboard,
+ SubtypeLocaleUtils.NO_LANGUAGE, "keyboard",
+ "KeyboardLayoutSet=" + SubtypeLocaleUtils.EMOJI,
false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */);
static final class NeedsToDisplayLanguage {
@@ -271,4 +281,17 @@ public final class SubtypeSwitcher {
+ DUMMY_NO_LANGUAGE_SUBTYPE);
return DUMMY_NO_LANGUAGE_SUBTYPE;
}
+
+ public InputMethodSubtype getEmojiSubtype() {
+ if (mEmojiSubtype == null) {
+ mEmojiSubtype = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+ SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.EMOJI);
+ }
+ if (mEmojiSubtype != null) {
+ return mEmojiSubtype;
+ }
+ Log.w(TAG, "Can't find Emoji subtype");
+ Log.w(TAG, "No input method subtype found; return dummy subtype: " + DUMMY_EMOJI_SUBTYPE);
+ return DUMMY_EMOJI_SUBTYPE;
+ }
}
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index c8a151a6c..18ba15872 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -211,24 +211,31 @@ public final class Suggest {
mAutoCorrectionThreshold = threshold;
}
- public SuggestedWords getSuggestedWords(final WordComposer wordComposer,
+ public interface OnGetSuggestedWordsCallback {
+ public void onGetSuggestedWords(final SuggestedWords suggestedWords);
+ }
+
+ public void getSuggestedWords(final WordComposer wordComposer,
final String prevWordForBigram, final ProximityInfo proximityInfo,
final boolean blockOffensiveWords, final boolean isCorrectionEnabled,
- final int sessionId) {
+ final int[] additionalFeaturesOptions, final int sessionId,
+ final OnGetSuggestedWordsCallback callback) {
LatinImeLogger.onStartSuggestion(prevWordForBigram);
if (wordComposer.isBatchMode()) {
- return getSuggestedWordsForBatchInput(
- wordComposer, prevWordForBigram, proximityInfo, blockOffensiveWords, sessionId);
+ getSuggestedWordsForBatchInput(wordComposer, prevWordForBigram, proximityInfo,
+ blockOffensiveWords, additionalFeaturesOptions, sessionId, callback);
} else {
- return getSuggestedWordsForTypingInput(wordComposer, prevWordForBigram, proximityInfo,
- blockOffensiveWords, isCorrectionEnabled);
+ getSuggestedWordsForTypingInput(wordComposer, prevWordForBigram, proximityInfo,
+ blockOffensiveWords, isCorrectionEnabled, additionalFeaturesOptions, callback);
}
}
- // Retrieves suggestions for the typing input.
- private SuggestedWords getSuggestedWordsForTypingInput(final WordComposer wordComposer,
+ // Retrieves suggestions for the typing input
+ // and calls the callback function with the suggestions.
+ private void getSuggestedWordsForTypingInput(final WordComposer wordComposer,
final String prevWordForBigram, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords, final boolean isCorrectionEnabled) {
+ final boolean blockOffensiveWords, final boolean isCorrectionEnabled,
+ final int[] additionalFeaturesOptions, final OnGetSuggestedWordsCallback callback) {
final int trailingSingleQuotesCount = wordComposer.trailingSingleQuotesCount();
final BoundedTreeSet suggestionsSet = new BoundedTreeSet(sSuggestedWordInfoComparator,
MAX_SUGGESTIONS);
@@ -251,8 +258,9 @@ public final class Suggest {
for (final String key : mDictionaries.keySet()) {
final Dictionary dictionary = mDictionaries.get(key);
- suggestionsSet.addAll(dictionary.getSuggestions(
- wordComposerForLookup, prevWordForBigram, proximityInfo, blockOffensiveWords));
+ suggestionsSet.addAll(dictionary.getSuggestions(wordComposerForLookup,
+ prevWordForBigram, proximityInfo, blockOffensiveWords,
+ additionalFeaturesOptions));
}
final String whitelistedWord;
@@ -329,7 +337,7 @@ public final class Suggest {
suggestionsList = suggestionsContainer;
}
- return new SuggestedWords(suggestionsList,
+ callback.onGetSuggestedWords(new SuggestedWords(suggestionsList,
// TODO: this first argument is lying. If this is a whitelisted word which is an
// actual word, it says typedWordValid = false, which looks wrong. We should either
// rename the attribute or change the value.
@@ -337,13 +345,15 @@ public final class Suggest {
hasAutoCorrection, /* willAutoCorrect */
false /* isPunctuationSuggestions */,
false /* isObsoleteSuggestions */,
- !wordComposer.isComposingWord() /* isPrediction */);
+ !wordComposer.isComposingWord() /* isPrediction */));
}
- // Retrieves suggestions for the batch input.
- private SuggestedWords getSuggestedWordsForBatchInput(final WordComposer wordComposer,
+ // Retrieves suggestions for the batch input
+ // and calls the callback function with the suggestions.
+ private void getSuggestedWordsForBatchInput(final WordComposer wordComposer,
final String prevWordForBigram, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords, final int sessionId) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions,
+ final int sessionId, final OnGetSuggestedWordsCallback callback) {
final BoundedTreeSet suggestionsSet = new BoundedTreeSet(sSuggestedWordInfoComparator,
MAX_SUGGESTIONS);
@@ -357,7 +367,8 @@ public final class Suggest {
}
final Dictionary dictionary = mDictionaries.get(key);
suggestionsSet.addAll(dictionary.getSuggestionsWithSessionId(wordComposer,
- prevWordForBigram, proximityInfo, blockOffensiveWords, sessionId));
+ prevWordForBigram, proximityInfo, blockOffensiveWords,
+ additionalFeaturesOptions, sessionId));
}
for (SuggestedWordInfo wordInfo : suggestionsSet) {
@@ -396,12 +407,12 @@ public final class Suggest {
// In the batch input mode, the most relevant suggested word should act as a "typed word"
// (typedWordValid=true), not as an "auto correct word" (willAutoCorrect=false).
- return new SuggestedWords(suggestionsContainer,
+ callback.onGetSuggestedWords(new SuggestedWords(suggestionsContainer,
true /* typedWordValid */,
false /* willAutoCorrect */,
false /* isPunctuationSuggestions */,
false /* isObsoleteSuggestions */,
- false /* isPrediction */);
+ false /* isPrediction */));
}
private static ArrayList<SuggestedWordInfo> getSuggestionsInfoListWithDebugInfo(
diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
index 92f96c027..67ef538ac 100644
--- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedContactsBinaryDictionary.java
@@ -34,9 +34,10 @@ public final class SynchronouslyLoadedContactsBinaryDictionary extends ContactsB
@Override
public synchronized ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes,
final String prevWordForBigrams, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
syncReloadDictionaryIfRequired();
- return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords);
+ return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords,
+ additionalFeaturesOptions);
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
index 33fe89611..bea522320 100644
--- a/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/SynchronouslyLoadedUserBinaryDictionary.java
@@ -37,9 +37,10 @@ public final class SynchronouslyLoadedUserBinaryDictionary extends UserBinaryDic
@Override
public synchronized ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer codes,
final String prevWordForBigrams, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
syncReloadDictionaryIfRequired();
- return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords);
+ return super.getSuggestions(codes, prevWordForBigrams, proximityInfo, blockOffensiveWords,
+ additionalFeaturesOptions);
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java b/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java
index 7f4f5e74a..d44660623 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DynamicPersonalizationDictionaryWriter.java
@@ -147,9 +147,9 @@ public class DynamicPersonalizationDictionaryWriter extends AbstractDictionaryWr
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- boolean blockOffensiveWords) {
+ boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
return mExpandableDictionary.getSuggestions(composer, prevWord, proximityInfo,
- blockOffensiveWords);
+ blockOffensiveWords, additionalFeaturesOptions);
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java
index be3a9f2f1..a08145b33 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DynamicPredictionDictionaryBase.java
@@ -63,7 +63,7 @@ public abstract class DynamicPredictionDictionaryBase extends ExpandableBinaryDi
/* package */ DynamicPredictionDictionaryBase(final Context context, final String locale,
final SharedPreferences sp, final String dictionaryType, final String fileName) {
- super(context, locale, dictionaryType, true);
+ super(context, fileName, dictionaryType, true);
mLocale = locale;
mFileName = fileName;
mPrefs = sp;
diff --git a/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java b/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
index 139f5e290..6543003e8 100644
--- a/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
+++ b/java/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
@@ -40,8 +40,4 @@ public class AdditionalFeaturesSettingUtils {
final SharedPreferences prefs, final int[] additionalFeaturesPreferences) {
// do nothing.
}
-
- public static int[] getAdditionalNativeSuggestOptions() {
- return Settings.getInstance().getCurrent().mAdditionalFeaturesSettingValues;
- }
}
diff --git a/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java b/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java
index 878c505bd..cd726c969 100644
--- a/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java
+++ b/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java
@@ -34,6 +34,9 @@ public class NativeSuggestOptions {
}
public void setAdditionalFeaturesOptions(final int[] additionalOptions) {
+ if (additionalOptions == null) {
+ return;
+ }
for (int i = 0; i < additionalOptions.length; i++) {
setIntegerOption(OPTIONS_SIZE + i, additionalOptions[i]);
}
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
index 6719e98da..69f9a467f 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
@@ -301,12 +301,14 @@ public abstract class AndroidWordLevelSpellCheckerSession extends Session {
// TODO: make a spell checker option to block offensive words or not
final ArrayList<SuggestedWordInfo> suggestions =
dictInfo.mDictionary.getSuggestions(composer, prevWord,
- dictInfo.getProximityInfo(),
- true /* blockOffensiveWords */);
- for (final SuggestedWordInfo suggestion : suggestions) {
- final String suggestionStr = suggestion.mWord;
- suggestionsGatherer.addWord(suggestionStr.toCharArray(), null, 0,
- suggestionStr.length(), suggestion.mScore);
+ dictInfo.getProximityInfo(), true /* blockOffensiveWords */,
+ null /* additionalFeaturesOptions */);
+ if (suggestions != null) {
+ for (final SuggestedWordInfo suggestion : suggestions) {
+ final String suggestionStr = suggestion.mWord;
+ suggestionsGatherer.addWord(suggestionStr.toCharArray(), null, 0,
+ suggestionStr.length(), suggestion.mScore);
+ }
}
isInDict = isInDictForAnyCapitalization(dictInfo.mDictionary, text, capitalizeType);
} finally {
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
index ac8f68781..a0aed2829 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/DictionaryPool.java
@@ -52,7 +52,7 @@ public final class DictionaryPool extends LinkedBlockingQueue<DictAndKeyboard> {
@Override
public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
final String prevWord, final ProximityInfo proximityInfo,
- final boolean blockOffensiveWords) {
+ final boolean blockOffensiveWords, final int[] additionalFeaturesOptions) {
return noSuggestions;
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
index aca249240..8d2689a7d 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
@@ -165,9 +165,20 @@ final class SuggestionStripLayoutHelper {
return mMaxMoreSuggestionsRow;
}
- public void setMoreSuggestionsHeight(final int remainingHeight) {
+ private int getMoreSuggestionsHeight() {
+ return mMaxMoreSuggestionsRow * mMoreSuggestionsRowHeight + mMoreSuggestionsBottomGap;
+ }
+
+ public int setMoreSuggestionsHeight(final int remainingHeight) {
+ final int currentHeight = getMoreSuggestionsHeight();
+ if (currentHeight <= remainingHeight) {
+ return currentHeight;
+ }
+
mMaxMoreSuggestionsRow = (remainingHeight - mMoreSuggestionsBottomGap)
/ mMoreSuggestionsRowHeight;
+ final int newHeight = getMoreSuggestionsHeight();
+ return newHeight;
}
private static Drawable getMoreSuggestionsHint(final Resources res, final float textSize,
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
index badc942b9..75f17c559 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -135,8 +135,8 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
}
}
- public void setMoreSuggestionsHeight(final int remainingHeight) {
- mLayoutHelper.setMoreSuggestionsHeight(remainingHeight);
+ public int setMoreSuggestionsHeight(final int remainingHeight) {
+ return mLayoutHelper.setMoreSuggestionsHeight(remainingHeight);
}
public boolean isShowingAddToDictionaryHint() {
diff --git a/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java b/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java
index 16728092d..102a41b4e 100644
--- a/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java
@@ -40,6 +40,7 @@ public final class SubtypeLocaleUtils {
// Special language code to represent "no language".
public static final String NO_LANGUAGE = "zz";
public static final String QWERTY = "qwerty";
+ public static final String EMOJI = "emoji";
public static final int UNKNOWN_KEYBOARD_LAYOUT = R.string.subtype_generic;
private static boolean sInitialized = false;