aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/drawable-hdpi/btn_close_candidates_pane.9.pngbin0 -> 1110 bytes
-rw-r--r--java/res/drawable-hdpi/btn_expand_candidates_pane.9.pngbin0 -> 1123 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_at_holo.9.pngbin973 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_at_large_holo.9.pngbin1013 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_colon_holo.9.pngbin515 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_colon_large_holo.9.pngbin503 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_comma_holo.9.pngbin371 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_comma_large_holo.9.pngbin394 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_exclamation_holo.9.pngbin518 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.pngbin540 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num0.9.pngbin379 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num1.9.pngbin301 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num2.9.pngbin404 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num3.9.pngbin413 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num4.9.pngbin341 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num5.9.pngbin388 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num6.9.pngbin413 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num7.9.pngbin367 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num8.9.pngbin417 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_num9.9.pngbin417 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_plus_holo.9.pngbin501 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_plus_large_holo.9.pngbin540 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_question_holo.9.pngbin679 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_question_large_holo.9.pngbin712 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_quote_holo.9.pngbin404 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_quote_large_holo.9.pngbin423 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_underline_holo.9.pngbin337 -> 0 bytes
-rw-r--r--java/res/drawable-hdpi/key_hint_underline_large_holo.9.pngbin350 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_at_holo.9.pngbin973 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_at_large_holo.9.pngbin1013 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_colon_holo.9.pngbin515 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.pngbin503 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_comma_holo.9.pngbin371 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.pngbin394 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.pngbin518 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.pngbin540 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_plus_holo.9.pngbin501 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.pngbin540 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_question_holo.9.pngbin679 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_question_large_holo.9.pngbin712 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_quote_holo.9.pngbin404 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.pngbin423 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_underline_holo.9.pngbin337 -> 0 bytes
-rw-r--r--java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.pngbin350 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_at_holo.9.pngbin481 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_at_large_holo.9.pngbin497 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_colon_holo.9.pngbin266 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.pngbin285 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_comma_holo.9.pngbin246 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.pngbin248 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.pngbin305 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.pngbin312 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_plus_holo.9.pngbin277 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.pngbin303 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_question_holo.9.pngbin368 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_question_large_holo.9.pngbin383 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_quote_holo.9.pngbin264 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_underline_holo.9.pngbin196 -> 0 bytes
-rw-r--r--java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.pngbin199 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_at_holo.9.pngbin1048 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_at_large_holo.9.pngbin1101 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_colon_holo.9.pngbin586 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_colon_large_holo.9.pngbin573 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_comma_holo.9.pngbin411 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_comma_large_holo.9.pngbin430 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_exclamation_holo.9.pngbin559 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_exclamation_large_holo.9.pngbin588 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_plus_holo.9.pngbin595 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_plus_large_holo.9.pngbin630 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_question_holo.9.pngbin739 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_question_large_holo.9.pngbin776 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_quote_holo.9.pngbin438 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_quote_large_holo.9.pngbin459 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_underline_holo.9.pngbin368 -> 0 bytes
-rw-r--r--java/res/drawable-land-xhdpi/key_hint_underline_large_holo.9.pngbin389 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/btn_close_candidates_pane.9.pngbin0 -> 713 bytes
-rw-r--r--java/res/drawable-mdpi/btn_expand_candidates_pane.9.pngbin0 -> 681 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_at_holo.9.pngbin481 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_at_large_holo.9.pngbin497 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_colon_holo.9.pngbin266 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_colon_large_holo.9.pngbin285 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_comma_holo.9.pngbin246 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_comma_large_holo.9.pngbin248 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_exclamation_holo.9.pngbin305 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.pngbin312 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num0.9.pngbin307 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num1.9.pngbin302 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num2.9.pngbin334 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num3.9.pngbin327 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num4.9.pngbin329 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num5.9.pngbin334 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num6.9.pngbin329 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num7.9.pngbin334 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num8.9.pngbin332 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_num9.9.pngbin339 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_plus_holo.9.pngbin277 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_plus_large_holo.9.pngbin303 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_question_holo.9.pngbin368 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_question_large_holo.9.pngbin383 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_quote_holo.9.pngbin264 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_quote_large_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_underline_holo.9.pngbin196 -> 0 bytes
-rw-r--r--java/res/drawable-mdpi/key_hint_underline_large_holo.9.pngbin199 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_at_holo.9.pngbin481 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_at_large_holo.9.pngbin497 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_colon_holo.9.pngbin266 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_colon_large_holo.9.pngbin285 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_comma_holo.9.pngbin246 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_comma_large_holo.9.pngbin248 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_exclamation_holo.9.pngbin305 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_exclamation_large_holo.9.pngbin312 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_plus_holo.9.pngbin277 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_plus_large_holo.9.pngbin303 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_question_holo.9.pngbin368 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_question_large_holo.9.pngbin383 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_quote_holo.9.pngbin264 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_quote_large_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_underline_holo.9.pngbin196 -> 0 bytes
-rw-r--r--java/res/drawable-sw600dp-mdpi/key_hint_underline_large_holo.9.pngbin199 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_at_holo.9.pngbin1621 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_at_large_holo.9.pngbin1651 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_colon_holo.9.pngbin1279 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_colon_large_holo.9.pngbin1318 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_comma_holo.9.pngbin1216 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_comma_large_holo.9.pngbin1226 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_holo.9.pngbin1317 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_large_holo.9.pngbin1338 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_plus_holo.9.pngbin1275 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_plus_large_holo.9.pngbin1328 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_question_holo.9.pngbin1433 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_question_large_holo.9.pngbin1473 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_quote_holo.9.pngbin1238 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_quote_large_holo.9.pngbin1249 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_underline_holo.9.pngbin1140 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-land-mdpi/key_hint_underline_large_holo.9.pngbin1154 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_at_holo.9.pngbin481 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_at_large_holo.9.pngbin497 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_colon_holo.9.pngbin266 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_colon_large_holo.9.pngbin285 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_comma_holo.9.pngbin246 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_comma_large_holo.9.pngbin248 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_exclamation_holo.9.pngbin305 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_exclamation_large_holo.9.pngbin312 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_plus_holo.9.pngbin277 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_plus_large_holo.9.pngbin303 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_question_holo.9.pngbin368 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_question_large_holo.9.pngbin383 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_quote_holo.9.pngbin264 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_quote_large_holo.9.pngbin268 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_underline_holo.9.pngbin196 -> 0 bytes
-rw-r--r--java/res/drawable-sw768dp-mdpi/key_hint_underline_large_holo.9.pngbin199 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_at_holo.9.pngbin1048 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_at_large_holo.9.pngbin1101 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_colon_holo.9.pngbin586 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_colon_large_holo.9.pngbin573 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_comma_holo.9.pngbin411 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_comma_large_holo.9.pngbin430 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_exclamation_holo.9.pngbin559 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_exclamation_large_holo.9.pngbin588 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_plus_holo.9.pngbin595 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_plus_large_holo.9.pngbin630 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_question_holo.9.pngbin739 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_question_large_holo.9.pngbin776 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_quote_holo.9.pngbin438 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_quote_large_holo.9.pngbin459 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_underline_holo.9.pngbin368 -> 0 bytes
-rw-r--r--java/res/drawable-xhdpi/key_hint_underline_large_holo.9.pngbin389 -> 0 bytes
-rw-r--r--java/res/layout/candidates_strip.xml59
-rw-r--r--java/res/layout/input_view.xml44
-rw-r--r--java/res/values-land/dimens.xml4
-rw-r--r--java/res/values-sw600dp-land/dimens.xml7
-rw-r--r--java/res/values-sw600dp/config.xml1
-rw-r--r--java/res/values-sw600dp/dimens.xml8
-rw-r--r--java/res/values-sw768dp-land/dimens.xml6
-rw-r--r--java/res/values-sw768dp/config.xml1
-rw-r--r--java/res/values-sw768dp/dimens.xml7
-rw-r--r--java/res/values/attrs.xml86
-rw-r--r--java/res/values/colors.xml3
-rw-r--r--java/res/values/config.xml1
-rw-r--r--java/res/values/dimens.xml4
-rw-r--r--java/res/values/styles.xml78
-rw-r--r--java/res/values/themes.xml22
-rw-r--r--java/res/xml-ar/kbd_qwerty.xml10
-rw-r--r--java/res/xml-cs/kbd_qwerty.xml10
-rw-r--r--java/res/xml-da/kbd_qwerty.xml10
-rw-r--r--java/res/xml-de/kbd_qwerty.xml10
-rw-r--r--java/res/xml-en/kbd_qwerty.xml37
-rw-r--r--java/res/xml-es/kbd_qwerty.xml10
-rw-r--r--java/res/xml-fi/kbd_qwerty.xml10
-rw-r--r--java/res/xml-fr-rCA/kbd_qwerty.xml10
-rw-r--r--java/res/xml-fr-rCH/kbd_qwerty.xml10
-rw-r--r--java/res/xml-fr/kbd_qwerty.xml10
-rw-r--r--java/res/xml-hu/kbd_qwerty.xml10
-rw-r--r--java/res/xml-iw/kbd_qwerty.xml10
-rw-r--r--java/res/xml-nb/kbd_qwerty.xml10
-rw-r--r--java/res/xml-pl/kbd_qwerty.xml10
-rw-r--r--java/res/xml-pt/kbd_qwerty.xml10
-rw-r--r--java/res/xml-ru/kbd_qwerty.xml10
-rw-r--r--java/res/xml-sr/kbd_qwerty.xml10
-rw-r--r--java/res/xml-sv/kbd_qwerty.xml10
-rw-r--r--java/res/xml-sw600dp/kbd_key_styles.xml11
-rw-r--r--java/res/xml-sw600dp/kbd_number.xml7
-rw-r--r--java/res/xml-sw600dp/kbd_phone.xml25
-rw-r--r--java/res/xml-sw600dp/kbd_phone_symbols.xml28
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty.xml34
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row3.xml10
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row4.xml35
-rw-r--r--java/res/xml-sw600dp/kbd_row3_right.xml10
-rw-r--r--java/res/xml-sw600dp/kbd_rows_arabic.xml134
-rw-r--r--java/res/xml-sw600dp/kbd_rows_azerty.xml (renamed from java/res/xml-sw600dp/kbd_azerty_rows.xml)17
-rw-r--r--java/res/xml-sw600dp/kbd_rows_hebrew.xml122
-rw-r--r--java/res/xml-sw600dp/kbd_rows_qwerty.xml (renamed from java/res/xml-sw600dp/kbd_qwerty_rows.xml)0
-rw-r--r--java/res/xml-sw600dp/kbd_rows_qwertz.xml (renamed from java/res/xml-sw600dp/kbd_qwertz_rows.xml)10
-rw-r--r--java/res/xml-sw600dp/kbd_rows_russian.xml (renamed from java/res/xml-sw600dp/kbd_ru_rows.xml)5
-rw-r--r--java/res/xml-sw600dp/kbd_rows_scandinavian.xml (renamed from java/res/xml-sw600dp/kbd_qwerty_rows_scandinavia.xml)62
-rw-r--r--java/res/xml-sw600dp/kbd_rows_serbian.xml (renamed from java/res/xml-sw600dp/kbd_sr_rows.xml)10
-rw-r--r--java/res/xml-sw600dp/kbd_symbols.xml7
-rw-r--r--java/res/xml-sw600dp/kbd_symbols_shift.xml7
-rw-r--r--java/res/xml-sw768dp/kbd_key_styles.xml7
-rw-r--r--java/res/xml-sw768dp/kbd_number.xml8
-rw-r--r--java/res/xml-sw768dp/kbd_phone.xml32
-rw-r--r--java/res/xml-sw768dp/kbd_phone_symbols.xml35
-rw-r--r--java/res/xml-sw768dp/kbd_qwerty_row4.xml25
-rw-r--r--java/res/xml-sw768dp/kbd_row3_right2.xml10
-rw-r--r--java/res/xml-sw768dp/kbd_rows_arabic.xml (renamed from java/res/xml-sw768dp/kbd_ar_rows.xml)0
-rw-r--r--java/res/xml-sw768dp/kbd_rows_azerty.xml (renamed from java/res/xml-sw768dp/kbd_azerty_rows.xml)15
-rw-r--r--java/res/xml-sw768dp/kbd_rows_hebrew.xml (renamed from java/res/xml-sw768dp/kbd_iw_rows.xml)0
-rw-r--r--java/res/xml-sw768dp/kbd_rows_qwerty.xml (renamed from java/res/xml-sw768dp/kbd_qwerty_rows.xml)0
-rw-r--r--java/res/xml-sw768dp/kbd_rows_qwertz.xml (renamed from java/res/xml-sw768dp/kbd_qwertz_rows.xml)10
-rw-r--r--java/res/xml-sw768dp/kbd_rows_russian.xml (renamed from java/res/xml-sw768dp/kbd_ru_rows.xml)0
-rw-r--r--java/res/xml-sw768dp/kbd_rows_scandinavian.xml (renamed from java/res/xml-sw768dp/kbd_qwerty_rows_scandinavia.xml)0
-rw-r--r--java/res/xml-sw768dp/kbd_rows_serbian.xml (renamed from java/res/xml-sw768dp/kbd_sr_rows.xml)0
-rw-r--r--java/res/xml-sw768dp/kbd_symbols.xml8
-rw-r--r--java/res/xml-sw768dp/kbd_symbols_shift.xml8
-rw-r--r--java/res/xml/kbd_key_styles.xml4
-rw-r--r--java/res/xml/kbd_number.xml8
-rw-r--r--java/res/xml/kbd_phone.xml8
-rw-r--r--java/res/xml/kbd_phone_symbols.xml8
-rw-r--r--java/res/xml/kbd_qwerty.xml10
-rw-r--r--java/res/xml/kbd_qwerty_f1.xml2
-rw-r--r--java/res/xml/kbd_qwerty_row1.xml20
-rw-r--r--java/res/xml/kbd_qwerty_row4.xml10
-rw-r--r--java/res/xml/kbd_rows_arabic.xml (renamed from java/res/xml/kbd_ar_rows.xml)0
-rw-r--r--java/res/xml/kbd_rows_azerty.xml (renamed from java/res/xml/kbd_azerty_rows.xml)20
-rw-r--r--java/res/xml/kbd_rows_hebrew.xml (renamed from java/res/xml/kbd_iw_rows.xml)0
-rw-r--r--java/res/xml/kbd_rows_qwerty.xml (renamed from java/res/xml/kbd_qwerty_rows.xml)0
-rw-r--r--java/res/xml/kbd_rows_qwertz.xml (renamed from java/res/xml/kbd_qwertz_rows.xml)20
-rw-r--r--java/res/xml/kbd_rows_russian.xml (renamed from java/res/xml/kbd_ru_rows.xml)20
-rw-r--r--java/res/xml/kbd_rows_scandinavian.xml (renamed from java/res/xml/kbd_qwerty_rows_scandinavia.xml)20
-rw-r--r--java/res/xml/kbd_rows_serbian.xml (renamed from java/res/xml/kbd_sr_rows.xml)20
-rw-r--r--java/res/xml/kbd_symbols.xml8
-rw-r--r--java/res/xml/kbd_symbols_row4.xml2
-rw-r--r--java/res/xml/kbd_symbols_shift.xml8
-rw-r--r--java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java37
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyStyles.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java12
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardId.java12
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardParser.java30
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java10
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java145
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboard.java54
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java16
-rw-r--r--java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java22
-rw-r--r--java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java39
-rw-r--r--java/src/com/android/inputmethod/latin/CandidateView.java232
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryCollection.java4
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java4
-rw-r--r--java/src/com/android/inputmethod/latin/Suggest.java2
270 files changed, 1172 insertions, 869 deletions
diff --git a/java/res/drawable-hdpi/btn_close_candidates_pane.9.png b/java/res/drawable-hdpi/btn_close_candidates_pane.9.png
new file mode 100644
index 000000000..6df00f229
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_close_candidates_pane.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png b/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png
new file mode 100644
index 000000000..63015ec5b
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_at_holo.9.png b/java/res/drawable-hdpi/key_hint_at_holo.9.png
deleted file mode 100644
index b93c2d3cf..000000000
--- a/java/res/drawable-hdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_at_large_holo.9.png b/java/res/drawable-hdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index 2b9295158..000000000
--- a/java/res/drawable-hdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_colon_holo.9.png b/java/res/drawable-hdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 8fa17e583..000000000
--- a/java/res/drawable-hdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index 1271341e6..000000000
--- a/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_comma_holo.9.png b/java/res/drawable-hdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index 44220ec96..000000000
--- a/java/res/drawable-hdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index 444b4d029..000000000
--- a/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index d5e688400..000000000
--- a/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index 5dab2f646..000000000
--- a/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num0.9.png b/java/res/drawable-hdpi/key_hint_num0.9.png
deleted file mode 100644
index 271264e92..000000000
--- a/java/res/drawable-hdpi/key_hint_num0.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num1.9.png b/java/res/drawable-hdpi/key_hint_num1.9.png
deleted file mode 100644
index eaf374262..000000000
--- a/java/res/drawable-hdpi/key_hint_num1.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num2.9.png b/java/res/drawable-hdpi/key_hint_num2.9.png
deleted file mode 100644
index 8a1657117..000000000
--- a/java/res/drawable-hdpi/key_hint_num2.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num3.9.png b/java/res/drawable-hdpi/key_hint_num3.9.png
deleted file mode 100644
index 34b501109..000000000
--- a/java/res/drawable-hdpi/key_hint_num3.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num4.9.png b/java/res/drawable-hdpi/key_hint_num4.9.png
deleted file mode 100644
index d4cc250dd..000000000
--- a/java/res/drawable-hdpi/key_hint_num4.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num5.9.png b/java/res/drawable-hdpi/key_hint_num5.9.png
deleted file mode 100644
index 6a054b42f..000000000
--- a/java/res/drawable-hdpi/key_hint_num5.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num6.9.png b/java/res/drawable-hdpi/key_hint_num6.9.png
deleted file mode 100644
index 66e91400a..000000000
--- a/java/res/drawable-hdpi/key_hint_num6.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num7.9.png b/java/res/drawable-hdpi/key_hint_num7.9.png
deleted file mode 100644
index 5eae24f4f..000000000
--- a/java/res/drawable-hdpi/key_hint_num7.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num8.9.png b/java/res/drawable-hdpi/key_hint_num8.9.png
deleted file mode 100644
index ea7f512fd..000000000
--- a/java/res/drawable-hdpi/key_hint_num8.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_num9.9.png b/java/res/drawable-hdpi/key_hint_num9.9.png
deleted file mode 100644
index 0bf85de93..000000000
--- a/java/res/drawable-hdpi/key_hint_num9.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_plus_holo.9.png b/java/res/drawable-hdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index a11b4ac07..000000000
--- a/java/res/drawable-hdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index 3c87c1f7e..000000000
--- a/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_question_holo.9.png b/java/res/drawable-hdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 670b4b902..000000000
--- a/java/res/drawable-hdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_question_large_holo.9.png b/java/res/drawable-hdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 692f4a68b..000000000
--- a/java/res/drawable-hdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_quote_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index 9cc86156e..000000000
--- a/java/res/drawable-hdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index 664467b3e..000000000
--- a/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_underline_holo.9.png b/java/res/drawable-hdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 2cb4077a7..000000000
--- a/java/res/drawable-hdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index 6b9a49170..000000000
--- a/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_at_holo.9.png b/java/res/drawable-land-hdpi/key_hint_at_holo.9.png
deleted file mode 100644
index b93c2d3cf..000000000
--- a/java/res/drawable-land-hdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index 2b9295158..000000000
--- a/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png b/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 8fa17e583..000000000
--- a/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index 1271341e6..000000000
--- a/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png b/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index 44220ec96..000000000
--- a/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index 444b4d029..000000000
--- a/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index d5e688400..000000000
--- a/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index 5dab2f646..000000000
--- a/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png b/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index a11b4ac07..000000000
--- a/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index 3c87c1f7e..000000000
--- a/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_question_holo.9.png b/java/res/drawable-land-hdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 670b4b902..000000000
--- a/java/res/drawable-land-hdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 692f4a68b..000000000
--- a/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png b/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index 9cc86156e..000000000
--- a/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index 664467b3e..000000000
--- a/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 2cb4077a7..000000000
--- a/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index 6b9a49170..000000000
--- a/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_at_holo.9.png b/java/res/drawable-land-mdpi/key_hint_at_holo.9.png
deleted file mode 100644
index 8c84654c9..000000000
--- a/java/res/drawable-land-mdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index b9e095b99..000000000
--- a/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 3cd0e3c4b..000000000
--- a/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index 01b47b25f..000000000
--- a/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index b70f71b55..000000000
--- a/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index 1ae82d404..000000000
--- a/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index 3409535fb..000000000
--- a/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index 8dd2f27c4..000000000
--- a/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index 51e86ba11..000000000
--- a/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index bf30f92d8..000000000
--- a/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_question_holo.9.png b/java/res/drawable-land-mdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 38b5d6102..000000000
--- a/java/res/drawable-land-mdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 448a02700..000000000
--- a/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index 92fe8eaf8..000000000
--- a/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index a777d0187..000000000
--- a/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 7a452c5e2..000000000
--- a/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index f738b0202..000000000
--- a/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_at_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_at_holo.9.png
deleted file mode 100644
index 1d257cba2..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_at_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index 53de283da..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_colon_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 73394b57b..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index a4a6acbe1..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_comma_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index d4dbdf4bf..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index aea5c8ed5..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index 078d1d8f7..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index ddd6b13cb..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_plus_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index d0ce9c948..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index 9cf20e8b1..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_question_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 1e886d897..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_question_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 826228796..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_quote_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index fd8bbad83..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index 51d5b498c..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_underline_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 37d2fa58e..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-land-xhdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-land-xhdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index 4249a8edf..000000000
--- a/java/res/drawable-land-xhdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_close_candidates_pane.9.png b/java/res/drawable-mdpi/btn_close_candidates_pane.9.png
new file mode 100644
index 000000000..5ea56925d
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_close_candidates_pane.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png b/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png
new file mode 100644
index 000000000..83cb65305
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_at_holo.9.png b/java/res/drawable-mdpi/key_hint_at_holo.9.png
deleted file mode 100644
index 8c84654c9..000000000
--- a/java/res/drawable-mdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-mdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index b9e095b99..000000000
--- a/java/res/drawable-mdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-mdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 3cd0e3c4b..000000000
--- a/java/res/drawable-mdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index 01b47b25f..000000000
--- a/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-mdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index b70f71b55..000000000
--- a/java/res/drawable-mdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index 1ae82d404..000000000
--- a/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index 3409535fb..000000000
--- a/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index 8dd2f27c4..000000000
--- a/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num0.9.png b/java/res/drawable-mdpi/key_hint_num0.9.png
deleted file mode 100644
index 61ad1b50a..000000000
--- a/java/res/drawable-mdpi/key_hint_num0.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num1.9.png b/java/res/drawable-mdpi/key_hint_num1.9.png
deleted file mode 100644
index cd7772e71..000000000
--- a/java/res/drawable-mdpi/key_hint_num1.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num2.9.png b/java/res/drawable-mdpi/key_hint_num2.9.png
deleted file mode 100644
index fa5f8b79c..000000000
--- a/java/res/drawable-mdpi/key_hint_num2.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num3.9.png b/java/res/drawable-mdpi/key_hint_num3.9.png
deleted file mode 100644
index 0c7336cb7..000000000
--- a/java/res/drawable-mdpi/key_hint_num3.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num4.9.png b/java/res/drawable-mdpi/key_hint_num4.9.png
deleted file mode 100644
index 73ef06c0e..000000000
--- a/java/res/drawable-mdpi/key_hint_num4.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num5.9.png b/java/res/drawable-mdpi/key_hint_num5.9.png
deleted file mode 100644
index aea460e1c..000000000
--- a/java/res/drawable-mdpi/key_hint_num5.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num6.9.png b/java/res/drawable-mdpi/key_hint_num6.9.png
deleted file mode 100644
index 16a9237e3..000000000
--- a/java/res/drawable-mdpi/key_hint_num6.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num7.9.png b/java/res/drawable-mdpi/key_hint_num7.9.png
deleted file mode 100644
index 6747a19c0..000000000
--- a/java/res/drawable-mdpi/key_hint_num7.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num8.9.png b/java/res/drawable-mdpi/key_hint_num8.9.png
deleted file mode 100644
index 28be2fb86..000000000
--- a/java/res/drawable-mdpi/key_hint_num8.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_num9.9.png b/java/res/drawable-mdpi/key_hint_num9.9.png
deleted file mode 100644
index 731d63b1b..000000000
--- a/java/res/drawable-mdpi/key_hint_num9.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-mdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index 51e86ba11..000000000
--- a/java/res/drawable-mdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index bf30f92d8..000000000
--- a/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_question_holo.9.png b/java/res/drawable-mdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 38b5d6102..000000000
--- a/java/res/drawable-mdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-mdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 448a02700..000000000
--- a/java/res/drawable-mdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index 92fe8eaf8..000000000
--- a/java/res/drawable-mdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index a777d0187..000000000
--- a/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-mdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 7a452c5e2..000000000
--- a/java/res/drawable-mdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index f738b0202..000000000
--- a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_at_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_at_holo.9.png
deleted file mode 100644
index 8c84654c9..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index b9e095b99..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 3cd0e3c4b..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index 01b47b25f..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index b70f71b55..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index 1ae82d404..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index 3409535fb..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index 8dd2f27c4..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index 51e86ba11..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index bf30f92d8..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_question_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 38b5d6102..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 448a02700..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index 92fe8eaf8..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index a777d0187..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 7a452c5e2..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw600dp-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-sw600dp-mdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index f738b0202..000000000
--- a/java/res/drawable-sw600dp-mdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_at_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_at_holo.9.png
deleted file mode 100644
index 5b946ff9b..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index 852f899ed..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 1d9346e6f..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index 17e9091b4..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index c2a913c04..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index 846f213f1..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index ce8e8de43..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index 035dcf85d..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index 931390b45..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index e6f9f8a9c..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_question_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 6cbeb5993..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index bfd58de09..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index 3b361b71c..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index 2a08aa12e..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 06f3efb7e..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index 50f99a191..000000000
--- a/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_at_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_at_holo.9.png
deleted file mode 100644
index 8c84654c9..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index b9e095b99..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 3cd0e3c4b..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index 01b47b25f..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index b70f71b55..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index 1ae82d404..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index 3409535fb..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index 8dd2f27c4..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index 51e86ba11..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index bf30f92d8..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_question_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 38b5d6102..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 448a02700..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index 92fe8eaf8..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index a777d0187..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 7a452c5e2..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-sw768dp-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-sw768dp-mdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index f738b0202..000000000
--- a/java/res/drawable-sw768dp-mdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_at_holo.9.png b/java/res/drawable-xhdpi/key_hint_at_holo.9.png
deleted file mode 100644
index 1d257cba2..000000000
--- a/java/res/drawable-xhdpi/key_hint_at_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_at_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_at_large_holo.9.png
deleted file mode 100644
index 53de283da..000000000
--- a/java/res/drawable-xhdpi/key_hint_at_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_colon_holo.9.png b/java/res/drawable-xhdpi/key_hint_colon_holo.9.png
deleted file mode 100644
index 73394b57b..000000000
--- a/java/res/drawable-xhdpi/key_hint_colon_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_colon_large_holo.9.png
deleted file mode 100644
index a4a6acbe1..000000000
--- a/java/res/drawable-xhdpi/key_hint_colon_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_comma_holo.9.png b/java/res/drawable-xhdpi/key_hint_comma_holo.9.png
deleted file mode 100644
index d4dbdf4bf..000000000
--- a/java/res/drawable-xhdpi/key_hint_comma_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_comma_large_holo.9.png
deleted file mode 100644
index aea5c8ed5..000000000
--- a/java/res/drawable-xhdpi/key_hint_comma_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-xhdpi/key_hint_exclamation_holo.9.png
deleted file mode 100644
index 078d1d8f7..000000000
--- a/java/res/drawable-xhdpi/key_hint_exclamation_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_exclamation_large_holo.9.png
deleted file mode 100644
index ddd6b13cb..000000000
--- a/java/res/drawable-xhdpi/key_hint_exclamation_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_plus_holo.9.png b/java/res/drawable-xhdpi/key_hint_plus_holo.9.png
deleted file mode 100644
index d0ce9c948..000000000
--- a/java/res/drawable-xhdpi/key_hint_plus_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_plus_large_holo.9.png
deleted file mode 100644
index 9cf20e8b1..000000000
--- a/java/res/drawable-xhdpi/key_hint_plus_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_question_holo.9.png b/java/res/drawable-xhdpi/key_hint_question_holo.9.png
deleted file mode 100644
index 1e886d897..000000000
--- a/java/res/drawable-xhdpi/key_hint_question_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_question_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_question_large_holo.9.png
deleted file mode 100644
index 826228796..000000000
--- a/java/res/drawable-xhdpi/key_hint_question_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_quote_holo.9.png b/java/res/drawable-xhdpi/key_hint_quote_holo.9.png
deleted file mode 100644
index fd8bbad83..000000000
--- a/java/res/drawable-xhdpi/key_hint_quote_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_quote_large_holo.9.png
deleted file mode 100644
index 51d5b498c..000000000
--- a/java/res/drawable-xhdpi/key_hint_quote_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_underline_holo.9.png b/java/res/drawable-xhdpi/key_hint_underline_holo.9.png
deleted file mode 100644
index 37d2fa58e..000000000
--- a/java/res/drawable-xhdpi/key_hint_underline_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-xhdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-xhdpi/key_hint_underline_large_holo.9.png
deleted file mode 100644
index 4249a8edf..000000000
--- a/java/res/drawable-xhdpi/key_hint_underline_large_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/candidates_strip.xml
new file mode 100644
index 000000000..88f4c3830
--- /dev/null
+++ b/java/res/layout/candidates_strip.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ android:id="@+id/candidate_left"
+ layout="@layout/candidate" />
+ <include
+ layout="@layout/candidate_divider" />
+ <include
+ android:id="@+id/candidate_center"
+ layout="@layout/candidate" />
+ <include
+ layout="@layout/candidate_divider" />
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_weight="1.0"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ >
+ <include
+ android:id="@+id/candidate_right"
+ layout="@layout/candidate" />
+ <!-- Image drawables are set in CandidateView constructor -->
+ <ImageButton
+ android:id="@+id/expand_candidates_pane"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ style="?attr/suggestionsStripBackgroundStyle" />
+ <ImageButton
+ android:id="@+id/close_candidates_pane"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ style="?attr/suggestionsStripBackgroundStyle" />
+ </LinearLayout>
+</merge>
diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml
index 5da1a4826..f0a8ef956 100644
--- a/java/res/layout/input_view.xml
+++ b/java/res/layout/input_view.xml
@@ -32,32 +32,46 @@
android:id="@+id/candidates_container"
android:orientation="horizontal"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- style="?attr/suggestionsStripBackgroundStyle"
+ android:layout_height="@dimen/candidate_strip_minimum_height"
+ android:gravity="bottom"
>
<View
android:layout_width="@dimen/candidate_strip_padding"
android:layout_height="@dimen/candidate_strip_height"
style="?attr/suggestionsStripBackgroundStyle" />
- <HorizontalScrollView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="@dimen/candidate_strip_fading_edge_length"
- android:scrollbars="none"
- >
- <com.android.inputmethod.latin.CandidateView
- android:id="@+id/candidates"
- android:layout_width="match_parent"
- android:layout_height="@dimen/candidate_strip_height"
- android:gravity="center_vertical" />
- </HorizontalScrollView>
+ <com.android.inputmethod.latin.CandidateView
+ android:id="@+id/candidates"
+ android:layout_weight="1.0"
+ android:layout_width="0dp"
+ android:layout_height="@dimen/candidate_strip_height"
+ android:gravity="center_vertical" />
<View
android:layout_width="@dimen/candidate_strip_padding"
android:layout_height="@dimen/candidate_strip_height"
style="?attr/suggestionsStripBackgroundStyle" />
</LinearLayout>
+ <LinearLayout
+ android:id="@+id/candidates_pane_container"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone"
+ style="?attr/suggestionsStripBackgroundStyle"
+ >
+ <View
+ android:layout_width="@dimen/candidate_strip_padding"
+ android:layout_height="@dimen/candidate_strip_height" />
+ <FrameLayout
+ android:id="@+id/candidates_pane"
+ android:layout_weight="1.0"
+ android:layout_width="0dp"
+ android:layout_height="match_parent" />
+ <View
+ android:layout_width="@dimen/candidate_strip_padding"
+ android:layout_height="@dimen/candidate_strip_height" />
+ </LinearLayout>
+
<com.android.inputmethod.keyboard.LatinKeyboardView
android:id="@+id/keyboard_view"
android:layout_alignParentBottom="true"
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index 6b52ad4e1..7fc1571b2 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -30,7 +30,9 @@
<dimen name="keyboard_bottom_padding">0.0in</dimen>
<dimen name="keyboard_horizontal_edges_padding">0.0in</dimen>
<fraction name="key_letter_ratio">55%</fraction>
- <fraction name="key_label_text_ratio">35%</fraction>
+ <fraction name="key_label_ratio">35%</fraction>
+ <fraction name="key_hint_letter_ratio">28%</fraction>
+ <fraction name="key_uppercase_letter_ratio">40%</fraction>
<dimen name="key_preview_offset">0.08in</dimen>
<fraction name="key_preview_text_ratio">90%</fraction>
<dimen name="candidate_strip_height">38dip</dimen>
diff --git a/java/res/values-sw600dp-land/dimens.xml b/java/res/values-sw600dp-land/dimens.xml
index 618b7f44c..a7167af76 100644
--- a/java/res/values-sw600dp-land/dimens.xml
+++ b/java/res/values-sw600dp-land/dimens.xml
@@ -21,6 +21,7 @@
<resources>
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3 -->
<dimen name="keyboardHeight">45.0mm</dimen>
+ <fraction name="minKeyboardHeight">45%p</fraction>
<!-- key_height + key_bottom_gap = popup_key_height -->
<!-- <dimen name="key_height">14.5mm</dimen> -->
<dimen name="key_bottom_gap">1.3mm</dimen>
@@ -31,8 +32,10 @@
<!-- key_height x 1.0 -->
<dimen name="key_preview_height">13.0mm</dimen>
- <dimen name="key_letter_size">25dip</dimen>
- <dimen name="key_label_text_size">18dip</dimen>
+ <fraction name="key_letter_ratio">45%</fraction>
+ <fraction name="key_label_ratio">32%</fraction>
+ <fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_uppercase_letter_ratio">29%</fraction>
<!-- left or right padding of label alignment -->
<dimen name="key_label_horizontal_alignment_padding">18dip</dimen>
<dimen name="candidate_strip_padding">40.0mm</dimen>
diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml
index c3d34456e..6125270a3 100644
--- a/java/res/values-sw600dp/config.xml
+++ b/java/res/values-sw600dp/config.xml
@@ -26,7 +26,6 @@
<bool name="config_enable_show_recorrection_option">false</bool>
<bool name="config_enable_quick_fixes_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool>
- <bool name="config_candidate_highlight_font_color_enabled">false</bool>
<bool name="config_swipe_down_dismiss_keyboard_enabled">false</bool>
<bool name="config_sliding_key_input_enabled">false</bool>
<bool name="config_digit_popup_characters_enabled">false</bool>
diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml
index 7cdf72726..8ecf542eb 100644
--- a/java/res/values-sw600dp/dimens.xml
+++ b/java/res/values-sw600dp/dimens.xml
@@ -22,7 +22,7 @@
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3 -->
<dimen name="keyboardHeight">48.0mm</dimen>
<fraction name="maxKeyboardHeight">50%p</fraction>
- <fraction name="minKeyboardHeight">-61.8%p</fraction>
+ <fraction name="minKeyboardHeight">-35.0%p</fraction>
<!-- key_height + key_bottom_gap = popup_key_height -->
<!-- <dimen name="key_height">14.5mm</dimen> -->
<dimen name="key_bottom_gap">1.0mm</dimen>
@@ -39,8 +39,10 @@
<!-- popup_key_height x -1.0 -->
<dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen>
- <fraction name="key_letter_ratio">45%</fraction>
- <fraction name="key_label_text_ratio">29%</fraction>
+ <fraction name="key_letter_ratio">37%</fraction>
+ <fraction name="key_label_ratio">22%</fraction>
+ <fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_uppercase_letter_ratio">25%</fraction>
<fraction name="key_preview_text_ratio">82%</fraction>
<!-- left or right padding of label alignment -->
<dimen name="key_label_horizontal_alignment_padding">6dip</dimen>
diff --git a/java/res/values-sw768dp-land/dimens.xml b/java/res/values-sw768dp-land/dimens.xml
index ce3614516..73885c2af 100644
--- a/java/res/values-sw768dp-land/dimens.xml
+++ b/java/res/values-sw768dp-land/dimens.xml
@@ -31,8 +31,10 @@
<dimen name="keyboard_bottom_padding">0.0mm</dimen>
<dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen>
- <fraction name="key_letter_ratio">30.7%</fraction>
- <fraction name="key_label_text_ratio">21.9%</fraction>
+ <fraction name="key_letter_ratio">38%</fraction>
+ <fraction name="key_label_ratio">26%</fraction>
+ <fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_uppercase_letter_ratio">24%</fraction>
<!-- left or right padding of label alignment -->
<dimen name="key_label_horizontal_alignment_padding">18dip</dimen>
<dimen name="key_preview_height_holo">26.5mm</dimen>
diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index 663332fe1..95d5e7e63 100644
--- a/java/res/values-sw768dp/config.xml
+++ b/java/res/values-sw768dp/config.xml
@@ -26,7 +26,6 @@
<bool name="config_enable_show_recorrection_option">false</bool>
<bool name="config_enable_quick_fixes_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool>
- <bool name="config_candidate_highlight_font_color_enabled">false</bool>
<bool name="config_swipe_down_dismiss_keyboard_enabled">false</bool>
<bool name="config_sliding_key_input_enabled">false</bool>
<bool name="config_digit_popup_characters_enabled">false</bool>
diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml
index cb380fbe4..d8d133264 100644
--- a/java/res/values-sw768dp/dimens.xml
+++ b/java/res/values-sw768dp/dimens.xml
@@ -21,6 +21,7 @@
<resources>
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=12mm -->
<dimen name="keyboardHeight">48.0mm</dimen>
+ <fraction name="maxKeyboardHeight">50%p</fraction>
<fraction name="minKeyboardHeight">-35.0%p</fraction>
<!-- key_height + key_bottom_gap = popup_key_height -->
<!-- <dimen name="key_height">14.5mm</dimen> -->
@@ -38,8 +39,10 @@
<!-- popup_key_height x -1.0 -->
<dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen>
- <fraction name="key_letter_ratio">34.4%</fraction>
- <fraction name="key_label_text_ratio">21.2%</fraction>
+ <fraction name="key_letter_ratio">38%</fraction>
+ <fraction name="key_label_ratio">26%</fraction>
+ <fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_uppercase_letter_ratio">25%</fraction>
<!-- left or right padding of label alignment -->
<dimen name="key_label_horizontal_alignment_padding">6dip</dimen>
<fraction name="key_preview_text_ratio">26.3%</fraction>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 5557dde1e..73f62c6f1 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -16,6 +16,10 @@
<resources>
<declare-styleable name="KeyboardTheme">
+ <!-- Keyboard style -->
+ <attr name="keyboardStyle" format="reference" />
+ <!-- LatinKeyboard style -->
+ <attr name="latinKeyboardStyle" format="reference" />
<!-- KeyboardView style -->
<attr name="keyboardViewStyle" format="reference" />
<attr name="keyPreviewStyle" format="reference" />
@@ -26,6 +30,7 @@
<attr name="suggestionsStripBackgroundStyle" format="reference" />
<attr name="suggestionBackgroundStyle" format="reference" />
<attr name="suggestionPreviewBackgroundStyle" format="reference" />
+ <attr name="candidateViewStyle" format="reference" />
</declare-styleable>
<declare-styleable name="KeyboardView">
@@ -34,19 +39,27 @@
checkable+checked+pressed. -->
<attr name="keyBackground" format="reference" />
- <!-- Size of the text for one letter character keys, in the proportion of key height.
- -->
+ <!-- Size of the text for one letter keys, in the proportion of key height. -->
<attr name="keyLetterRatio" format="float" />
-
- <!-- Size of the text for custom keys with some text and no icon, in the proportion of key
- height. -->
- <attr name="labelTextRatio" format="float" />
+ <!-- Size of the text for keys with some text, in the proportion of key height. -->
+ <attr name="keyLabelRatio" format="float" />
+ <!-- Size of the text for hint letter, in the proportion of key height. -->
+ <attr name="keyHintLetterRatio" format="float" />
+ <!-- Size of the text for upper case letter, in the proportion of key height. -->
+ <attr name="keyUppercaseLetterRatio" format="float" />
<!-- Color to use for the label in a key. -->
<attr name="keyTextColor" format="color" />
+ <!-- Color to use for the label in a key when in inactivated state. -->
+ <attr name="keyTextInactivatedColor" format="color" />
+ <!-- Key hint letter color -->
+ <attr name="keyHintLetterColor" format="color" />
+ <!-- Upper case letter colors -->
+ <attr name="keyUppercaseLetterInactivatedColor" format="color" />
+ <attr name="keyUppercaseLetterActivatedColor" format="color" />
- <!-- Color to use for the label in a key when in disabled state. -->
- <attr name="keyTextColorDisabled" format="color" />
+ <!-- Popup hint icon "..." -->
+ <attr name="keyPopupHintIcon" format="reference" />
<!-- Layout resource for key press feedback.-->
<attr name="keyPreviewLayout" format="reference" />
@@ -70,7 +83,7 @@
<attr name="shadowRadius" format="float" />
<attr name="backgroundDimAmount" format="float" />
- <attr name="keyLetterStyle" format="enum">
+ <attr name="keyTextStyle" format="enum">
<!-- This should be aligned with Typeface.NORMAL etc. -->
<enum name="normal" value="0" />
<enum name="bold" value="1" />
@@ -86,6 +99,19 @@
</declare-styleable>
+ <declare-styleable name="CandidateView">
+ <attr name="autoCorrectHighlight" format="integer">
+ <flag name="autoCorrectBold" value="0x01" />
+ <flag name="autoCorrectUnderline" value="0x02" />
+ <flag name="autoCorrectInvert" value="0x04" />
+ </attr>
+ <attr name="colorTypedWord" format="color" />
+ <attr name="colorAutoCorrect" format="color" />
+ <attr name="colorSuggested" format="color" />
+ <attr name="iconExpandPane" format="reference" />
+ <attr name="iconClosePane" format="reference" />
+ </declare-styleable>
+
<declare-styleable name="Keyboard">
<!-- Default keyboard height -->
<attr name="keyboardHeight" format="dimension" />
@@ -143,23 +169,20 @@
<attr name="keyOutputText" format="string" />
<!-- The label to display on the key. -->
<attr name="keyLabel" format="string" />
- <!-- The key label option -->
+ <!-- The hint letter to display on the key in conjunction with the label. -->
+ <attr name="keyHintLetter" format="string" />
+ <!-- The key label option. -->
<attr name="keyLabelOption" format="integer">
- <!-- This should be aligned with KeyboardView.KEY_LABEL_OPTION_* -->
- <flag name="alignLeft" value="1" />
- <flag name="alignRight" value="2" />
- <flag name="alignBottom" value="8" />
- <flag name="fontNormal" value="16" />
+ <!-- This should be aligned with Key.LABEL_OPTION_* -->
+ <flag name="alignLeft" value="0x01" />
+ <flag name="alignRight" value="0x02" />
+ <flag name="alignBottom" value="0x08" />
+ <flag name="fontNormal" value="0x10" />
+ <flag name="popupHint" value="0x20" />
+ <flag name="hasUppercaseLetter" value="0x40" />
</attr>
- <!-- The unicode that this key generates in manual temporary upper case mode. -->
- <attr name="manualTemporaryUpperCaseCode" format="integer" />
<!-- The icon to display on the key instead of the label. -->
<attr name="keyIcon" format="reference" />
- <!-- The hint icon to display on the key in conjunction with the label -->
- <attr name="keyHintIcon" format="reference" />
- <!-- The hint icon to display on the key when keyboard is in manual temporary upper case
- mode. -->
- <attr name="manualTemporaryUpperCaseHintIcon" format="reference" />
<!-- The key style to specify a set of key attributes defined by <key_style/> -->
<attr name="keyStyle" format="string" />
<!-- Shift key icon for shifted state -->
@@ -198,11 +221,11 @@
<enum name="phone" value="4" />
<enum name="number" value="5" />
</attr>
- <attr name="webInput" format="boolean" />
+ <attr name="navigateAction" format="boolean" />
<attr name="passwordInput" format="boolean" />
- <attr name="hasSettingsKey" format="string" />
- <attr name="voiceKeyEnabled" format="string" />
- <attr name="hasVoiceKey" format="string" />
+ <attr name="hasSettingsKey" format="boolean" />
+ <attr name="voiceKeyEnabled" format="boolean" />
+ <attr name="hasVoiceKey" format="boolean" />
<attr name="imeAction" format="enum">
<!-- This should be aligned with EditorInfo.IME_ACTION_* -->
<enum name="actionUnspecified" value="0" />
@@ -223,4 +246,15 @@
<attr name="styleName" format="string" />
<attr name="parentStyle" format="string" />
</declare-styleable>
+
+ <declare-styleable name="LatinKeyboard">
+ <attr name="autoCorrectionSpacebarLedIcon" format="reference" />
+ <attr name="disabledShortcutIcon" format="reference" />
+ <attr name="spacebarTextColor" format="color" />
+ <attr name="spacebarTextShadowColor" format="color" />
+ <attr name="spacebarArrowLeftIcon" format="reference" />
+ <attr name="spacebarArrowRightIcon" format="reference" />
+ <attr name="spacebarArrowPreviewLeftIcon" format="reference" />
+ <attr name="spacebarArrowPreviewRightIcon" format="reference" />
+ </declare-styleable>
</resources>
diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml
index 05d137e4b..d78691864 100644
--- a/java/res/values/colors.xml
+++ b/java/res/values/colors.xml
@@ -18,9 +18,6 @@
*/
-->
<resources>
- <color name="candidate_typed_word">#FFFFFFFF</color>
- <color name="candidate_auto_correct">#FFFCAE00</color>
- <color name="candidate_suggested">#FFFCAE00</color>
<color name="latinkeyboard_bar_language_shadow_white">#80000000</color>
<color name="latinkeyboard_bar_language_shadow_black">#80FFFFFF</color>
<color name="latinkeyboard_bar_language_text">#FFC0C0C0</color>
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index c61a6d52a..a08e2ae33 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -27,7 +27,6 @@
<bool name="config_enable_quick_fixes_option">true</bool>
<bool name="config_enable_bigram_suggestions_option">true</bool>
<bool name="config_enable_usability_study_mode_option">false</bool>
- <bool name="config_candidate_highlight_font_color_enabled">true</bool>
<bool name="config_swipe_down_dismiss_keyboard_enabled">true</bool>
<bool name="config_sliding_key_input_enabled">true</bool>
<bool name="config_digit_popup_characters_enabled">true</bool>
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index e26cad3f2..a76c78a4c 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -44,7 +44,9 @@
<dimen name="keyboard_vertical_correction">-0.05in</dimen>
<fraction name="key_letter_ratio">45%</fraction>
- <fraction name="key_label_text_ratio">29%</fraction>
+ <fraction name="key_label_ratio">29%</fraction>
+ <fraction name="key_hint_letter_ratio">23%</fraction>
+ <fraction name="key_uppercase_letter_ratio">35%</fraction>
<!-- left or right padding of label alignment -->
<dimen name="key_label_horizontal_alignment_padding">21dip</dimen>
<dimen name="key_preview_height">80sp</dimen>
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 7cb4593fa..e3ee36116 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -16,17 +16,43 @@
<resources>
<!-- Theme "Basic" -->
+ <style name="Keyboard">
+ <item name="rowHeight">25%p</item>
+ <item name="keyboardHeight">@dimen/keyboardHeight</item>
+ <item name="maxKeyboardHeight">@fraction/maxKeyboardHeight</item>
+ <item name="minKeyboardHeight">@fraction/minKeyboardHeight</item>
+ <item name="popupKeyboardTemplate">@xml/kbd_popup_template</item>
+ <item name="horizontalGap">@dimen/key_horizontal_gap</item>
+ <item name="verticalGap">@dimen/key_bottom_gap</item>
+ <item name="maxPopupKeyboardColumn">@integer/config_max_popup_keyboard_column</item>
+ </style>
+ <style name="LatinKeyboard">
+ <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item>
+ <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item>
+ <item name="spacebarTextColor">@color/latinkeyboard_bar_language_text</item>
+ <item name="spacebarTextShadowColor">@color/latinkeyboard_bar_language_shadow_white</item>
+ <item name="spacebarArrowLeftIcon">@drawable/sym_keyboard_language_arrows_left</item>
+ <item name="spacebarArrowRightIcon">@drawable/sym_keyboard_language_arrows_right</item>
+ <item name="spacebarArrowPreviewLeftIcon">@drawable/sym_keyboard_feedback_language_arrows_left</item>
+ <item name="spacebarArrowPreviewRightIcon">@drawable/sym_keyboard_feedback_language_arrows_right</item>
+ </style>
<style name="KeyboardView">
<item name="android:background">@drawable/keyboard_background</item>
<item name="keyBackground">@drawable/btn_keyboard_key</item>
<item name="keyLetterRatio">@fraction/key_letter_ratio</item>
- <item name="keyLetterStyle">normal</item>
+ <item name="keyLabelRatio">@fraction/key_label_ratio</item>
+ <item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item>
+ <item name="keyUppercaseLetterRatio">@fraction/key_uppercase_letter_ratio</item>
+ <item name="keyTextStyle">normal</item>
<item name="keyTextColor">#FFFFFFFF</item>
- <item name="keyTextColorDisabled">#FFFFFFFF</item>
+ <item name="keyTextInactivatedColor">#FFFFFFFF</item>
+ <item name="keyHintLetterColor">#80000000</item>
+ <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item>
+ <item name="keyUppercaseLetterActivatedColor">#CCE0E4E5</item>
+ <item name="keyPopupHintIcon">@drawable/hint_popup</item>
<item name="keyPreviewLayout">@layout/key_preview</item>
<item name="keyPreviewOffset">@dimen/key_preview_offset</item>
<item name="keyPreviewHeight">@dimen/key_preview_height</item>
- <item name="labelTextRatio">@fraction/key_label_text_ratio</item>
<item name="popupLayout">@layout/keyboard_popup</item>
<item name="keyHysteresisDistance">@dimen/key_hysteresis_distance</item>
<item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>
@@ -57,16 +83,28 @@
<style name="SuggestionPreviewBackgroundStyle">
<item name="android:background">@drawable/candidate_feedback_background</item>
</style>
+ <style name="CandidateViewStyle" parent="SuggestionsStripBackgroundStyle">
+ <item name="colorTypedWord">#FFFFFFFF</item>
+ <item name="colorAutoCorrect">#FFFCAE00</item>
+ <item name="colorSuggested">#FFFCAE00</item>
+ <item name="iconExpandPane">@drawable/btn_expand_candidates_pane</item>
+ <item name="iconClosePane">@drawable/btn_close_candidates_pane</item>"
+ </style>
<!-- Theme "Basic high contrast" -->
<style name="KeyboardView.HighContrast" parent="KeyboardView">
<item name="android:background">@android:color/black</item>
<item name="keyBackground">@drawable/btn_keyboard_key3</item>
</style>
<!-- Theme "Stone" -->
+ <style name="LatinKeyboard.Stone" patent="LatinKeyboard">
+ <item name="spacebarTextColor">#FF444444</item>
+ <item name="spacebarTextShadowColor">@color/latinkeyboard_bar_language_shadow_black</item>
+ <item name="disabledShortcutIcon">@drawable/sym_bkeyboard_voice_off</item>
+ </style>
<style name="KeyboardView.Stone" parent="KeyboardView">
<item name="keyBackground">@drawable/btn_keyboard_key_stone</item>
<item name="keyTextColor">@color/latinkeyboard_key_color_black</item>
- <item name="keyTextColorDisabled">#FF808080</item>
+ <item name="keyTextInactivatedColor">#FF808080</item>
<item name="shadowColor">@color/latinkeyboard_key_color_white</item>
<item name="colorScheme">black</item>
</style>
@@ -77,25 +115,35 @@
</style>
<!-- Theme "Stone bold" -->
<style name="KeyboardView.Stone.Bold" parent="KeyboardView.Stone">
- <item name="keyLetterStyle">bold</item>
+ <item name="keyTextStyle">bold</item>
</style>
<!-- Theme "Gingerbread" -->
<style name="KeyboardView.Gingerbread" parent="KeyboardView">
<item name="android:background">@drawable/keyboard_dark_background</item>
<item name="keyBackground">@drawable/btn_keyboard_key_gingerbread</item>
- <item name="keyLetterStyle">bold</item>
+ <item name="keyTextStyle">bold</item>
</style>
<style name="PopupMiniKeyboardView.Gingerbread" parent="PopupMiniKeyboardView">
<item name="android:background">@null</item>
</style>
<!-- Theme "Honeycomb" -->
+ <style name="Keyboard.Honeycomb" parent="Keyboard" >
+ </style>
+ <style name="LatinKeyboard.Honeycomb" parent="LatinKeyboard">
+ <item name="autoCorrectionSpacebarLedIcon">@null</item>
+ <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</item>
+ </style>
<style name="KeyboardView.Honeycomb" parent="KeyboardView">
<item name="android:background">@drawable/keyboard_background_holo</item>
<item name="keyBackground">@drawable/btn_keyboard_key_honeycomb</item>
+ <item name="keyTextStyle">bold</item>
+ <item name="keyTextInactivatedColor">#66E0E4E5</item>
+ <item name="keyHintLetterColor">#80000000</item>
+ <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item>
+ <item name="keyUppercaseLetterActivatedColor">#FFFFFFFF</item>
+ <item name="keyPopupHintIcon">@drawable/hint_popup_holo</item>
<item name="keyPreviewHeight">@dimen/key_preview_height_holo</item>
<item name="keyPreviewOffset">@dimen/key_preview_offset_holo</item>
- <item name="keyTextColorDisabled">#FF63666D</item>
- <item name="keyLetterStyle">bold</item>
<item name="shadowColor">#00000000</item>
<item name="shadowRadius">0.0</item>
</style>
@@ -111,15 +159,23 @@
<item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding_holo</item>
<item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding_holo</item>
</style>
- <style name="SuggestionsStripBackgroundStyle.Holo">
+ <style name="SuggestionsStripBackgroundStyle.Honeycomb">
<item name="android:background">@drawable/keyboard_suggest_strip_holo</item>
</style>
- <style name="SuggestionBackgroundStyle.Holo">
+ <style name="SuggestionBackgroundStyle.Honeycomb">
<item name="android:background">@drawable/btn_candidate_holo</item>
</style>
- <style name="SuggestionPreviewBackgroundStyle.Holo">
+ <style name="SuggestionPreviewBackgroundStyle.Honeycomb">
<item name="android:background">@drawable/keyboard_popup_panel_background_holo</item>
</style>
+ <style name="CandidateViewStyle.Honeycomb" parent="SuggestionsStripBackgroundStyle.Honeycomb">
+ <item name="autoCorrectHighlight">autoCorrectUnderline|autoCorrectInvert</item>
+ <item name="colorTypedWord">#FFFFFFFF</item>
+ <item name="colorAutoCorrect">#FFFFFFFF</item>
+ <item name="colorSuggested">#FFFFFFFF</item>
+ <item name="iconExpandPane">@drawable/btn_expand_candidates_pane</item>
+ <item name="iconClosePane">@drawable/btn_close_candidates_pane</item>"
+ </style>
<style name="PopupMiniKeyboardAnimation">
<item name="android:windowEnterAnimation">@anim/mini_keyboard_fadein</item>
<item name="android:windowExitAnimation">@anim/mini_keyboard_fadeout</item>
diff --git a/java/res/values/themes.xml b/java/res/values/themes.xml
index 5315a9a90..728ce5a02 100644
--- a/java/res/values/themes.xml
+++ b/java/res/values/themes.xml
@@ -16,6 +16,8 @@
<resources>
<style name="KeyboardTheme" parent="android:Theme">
+ <item name="keyboardStyle">@style/Keyboard</item>
+ <item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
@@ -23,45 +25,61 @@
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
+ <item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.HighContrast" parent="android:Theme">
+ <item name="keyboardStyle">@style/Keyboard</item>
+ <item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
+ <item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Stone" parent="android:Theme.Light">
+ <item name="keyboardStyle">@style/Keyboard</item>
+ <item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
+ <item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Stone.Bold" parent="android:Theme.Light">
+ <item name="keyboardStyle">@style/Keyboard</item>
+ <item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
+ <item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Gingerbread" parent="android:Theme.Black">
+ <item name="keyboardStyle">@style/Keyboard</item>
+ <item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Gingerbread</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
+ <item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
<style name="KeyboardTheme.Honeycomb" parent="android:Theme.Holo">
+ <item name="keyboardStyle">@style/Keyboard.Honeycomb</item>
+ <item name="latinKeyboardStyle">@style/LatinKeyboard.Honeycomb</item>
<item name="keyboardViewStyle">@style/KeyboardView.Honeycomb</item>
<item name="keyPreviewStyle">@style/KeyPreviewStyle.Honeycomb</item>
<item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Honeycomb</item>
<item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle.Honeycomb</item>
- <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.Holo</item>
- <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.Holo</item>
+ <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.Honeycomb</item>
+ <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.Honeycomb</item>
+ <item name="candidateViewStyle">@style/CandidateViewStyle.Honeycomb</item>
</style>
</resources>
diff --git a/java/res/xml-ar/kbd_qwerty.xml b/java/res/xml-ar/kbd_qwerty.xml
index 57823c9ac..57a6d2caf 100644
--- a/java/res/xml-ar/kbd_qwerty.xml
+++ b/java/res/xml-ar/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="ar"
>
<include
- latin:keyboardLayout="@xml/kbd_ar_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_arabic" />
</Keyboard>
diff --git a/java/res/xml-cs/kbd_qwerty.xml b/java/res/xml-cs/kbd_qwerty.xml
index 9ead49c3b..9991ea2d2 100644
--- a/java/res/xml-cs/kbd_qwerty.xml
+++ b/java/res/xml-cs/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="cs"
>
<include
- latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwertz" />
</Keyboard>
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index 12ea33c13..37a50fdfd 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="da"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+ latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
</Keyboard>
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 5c51bbdae..89e10b26d 100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="de"
>
<include
- latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwertz" />
</Keyboard>
diff --git a/java/res/xml-en/kbd_qwerty.xml b/java/res/xml-en/kbd_qwerty.xml
deleted file mode 100644
index 33e24d373..000000000
--- a/java/res/xml-en/kbd_qwerty.xml
+++ /dev/null
@@ -1,37 +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.
-*/
--->
-
-<!-- TODO: This is work around to avoid resource selection issue. This file must be removed when the
- issue is sorted out. -->
-<Keyboard
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
- latin:keyboardLocale="en,en_US,en_GB"
->
- <include
- latin:keyboardLayout="@xml/kbd_qwerty_rows" />
-</Keyboard>
diff --git a/java/res/xml-es/kbd_qwerty.xml b/java/res/xml-es/kbd_qwerty.xml
index f98649177..3973a6a5a 100644
--- a/java/res/xml-es/kbd_qwerty.xml
+++ b/java/res/xml-es/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="es,es_US"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwerty" />
</Keyboard>
diff --git a/java/res/xml-fi/kbd_qwerty.xml b/java/res/xml-fi/kbd_qwerty.xml
index e35ab2b41..75721e057 100644
--- a/java/res/xml-fi/kbd_qwerty.xml
+++ b/java/res/xml-fi/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="fi"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+ latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
</Keyboard>
diff --git a/java/res/xml-fr-rCA/kbd_qwerty.xml b/java/res/xml-fr-rCA/kbd_qwerty.xml
index 7f25848e2..7bdfbadf1 100644
--- a/java/res/xml-fr-rCA/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCA/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="fr_CA"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwerty" />
</Keyboard>
diff --git a/java/res/xml-fr-rCH/kbd_qwerty.xml b/java/res/xml-fr-rCH/kbd_qwerty.xml
index 2baed3ce5..41b701d83 100644
--- a/java/res/xml-fr-rCH/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCH/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="fr_CH"
>
<include
- latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwertz" />
</Keyboard>
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 1b1065516..8c730a24f 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="fr"
>
<include
- latin:keyboardLayout="@xml/kbd_azerty_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_azerty" />
</Keyboard>
diff --git a/java/res/xml-hu/kbd_qwerty.xml b/java/res/xml-hu/kbd_qwerty.xml
index 250b4553f..3195d5b1f 100644
--- a/java/res/xml-hu/kbd_qwerty.xml
+++ b/java/res/xml-hu/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="hu"
>
<include
- latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwertz" />
</Keyboard>
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index e93927f1a..dc2c5d35a 100644
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="iw"
>
<include
- latin:keyboardLayout="@xml/kbd_iw_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_hebrew" />
</Keyboard>
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index e7a743ca9..1f4e86e89 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="nb"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+ latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
</Keyboard>
diff --git a/java/res/xml-pl/kbd_qwerty.xml b/java/res/xml-pl/kbd_qwerty.xml
index 7d9476d7b..44312c52c 100644
--- a/java/res/xml-pl/kbd_qwerty.xml
+++ b/java/res/xml-pl/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="pl"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwerty" />
</Keyboard>
diff --git a/java/res/xml-pt/kbd_qwerty.xml b/java/res/xml-pt/kbd_qwerty.xml
index 1a8995510..f5dcbc61b 100644
--- a/java/res/xml-pt/kbd_qwerty.xml
+++ b/java/res/xml-pt/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="pt"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwerty" />
</Keyboard>
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index 826818c46..aee1b1bfc 100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="ru"
>
<include
- latin:keyboardLayout="@xml/kbd_ru_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_russian" />
</Keyboard>
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 6116c7536..58fc187c2 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="sr"
>
<include
- latin:keyboardLayout="@xml/kbd_sr_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_serbian" />
</Keyboard>
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index 69f0b3fa0..e29d9abce 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="sv"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+ latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
</Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_key_styles.xml b/java/res/xml-sw600dp/kbd_key_styles.xml
index a98ffe679..a38887910 100644
--- a/java/res/xml-sw600dp/kbd_key_styles.xml
+++ b/java/res/xml-sw600dp/kbd_key_styles.xml
@@ -75,7 +75,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyHintIcon="@drawable/hint_popup_holo"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<switch>
@@ -87,7 +87,7 @@
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_keyboard_voice_holo"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
- latin:keyHintIcon="@drawable/hint_popup_holo"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
@@ -137,7 +137,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyHintIcon="@drawable/hint_popup_holo"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<switch>
@@ -149,7 +149,7 @@
latin:code="@integer/key_shortcut"
latin:keyIcon="@drawable/sym_bkeyboard_mic"
latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
- latin:keyHintIcon="@drawable/hint_popup_holo"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
@@ -192,9 +192,8 @@
<key-style
latin:styleName="comKeyStyle"
latin:keyLabel="@string/keylabel_for_popular_domain"
- latin:keyLabelOption="fontNormal"
+ latin:keyLabelOption="fontNormal|popupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
- latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="@string/alternates_for_popular_domain" />
<switch>
<case
diff --git a/java/res/xml-sw600dp/kbd_number.xml b/java/res/xml-sw600dp/kbd_number.xml
index f9096fc2c..0ff1da9bc 100644
--- a/java/res/xml-sw600dp/kbd_number.xml
+++ b/java/res/xml-sw600dp/kbd_number.xml
@@ -20,14 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="50%p"
- latin:rowHeight="25%p"
latin:keyWidth="16.75%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sw600dp/kbd_phone.xml b/java/res/xml-sw600dp/kbd_phone.xml
index b20bb243f..20b284923 100644
--- a/java/res/xml-sw600dp/kbd_phone.xml
+++ b/java/res/xml-sw600dp/kbd_phone.xml
@@ -20,14 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="50%p"
- latin:rowHeight="25%p"
latin:keyWidth="16.75%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
@@ -36,13 +29,11 @@
<!-- This row is intentionally not marked as a top row -->
<Row>
<Key
- latin:code="45"
- latin:keyLabel=" - "
+ latin:keyLabel="-"
latin:keyXPos="15.625%p"
latin:keyWidth="9.25%p" />
<Key
- latin:code="43"
- latin:keyLabel=" + "
+ latin:keyLabel="+"
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num1KeyStyle"
@@ -59,13 +50,11 @@
</Row>
<Row>
<Key
- latin:code="44"
- latin:keyLabel=" , "
+ latin:keyLabel=","
latin:keyXPos="15.625%p"
latin:keyWidth="9.25%p" />
<Key
- latin:code="46"
- latin:keyLabel=" . "
+ latin:keyLabel="."
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num4KeyStyle"
@@ -88,13 +77,11 @@
<!-- There is an empty area below the "More" key and left of the "(" key. To ignore
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
- latin:code="40"
- latin:keyLabel=" ( "
+ latin:keyLabel="("
latin:keyXPos="15.625%p"
latin:keyWidth="9.25%p" />
<Key
- latin:code="41"
- latin:keyLabel=" ) "
+ latin:keyLabel=")"
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num7KeyStyle"
diff --git a/java/res/xml-sw600dp/kbd_phone_symbols.xml b/java/res/xml-sw600dp/kbd_phone_symbols.xml
index 7f6267341..a5ae9456c 100644
--- a/java/res/xml-sw600dp/kbd_phone_symbols.xml
+++ b/java/res/xml-sw600dp/kbd_phone_symbols.xml
@@ -20,14 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="50%p"
- latin:rowHeight="25%p"
latin:keyWidth="16.75%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
@@ -36,13 +29,11 @@
<!-- This row is intentionally not marked as a top row -->
<Row>
<Key
- latin:code="45"
- latin:keyLabel=" - "
+ latin:keyLabel="-"
latin:keyXPos="11.00%p"
latin:keyWidth="9.25%p" />
<Key
- latin:code="43"
- latin:keyLabel=" + "
+ latin:keyLabel="+"
latin:keyWidth="9.25%p" />
<Key
latin:code="44"
@@ -63,13 +54,11 @@
</Row>
<Row>
<Key
- latin:code="44"
- latin:keyLabel=" , "
+ latin:keyLabel=","
latin:keyXPos="11.00%p"
latin:keyWidth="9.25%p" />
<Key
- latin:code="46"
- latin:keyLabel=" . "
+ latin:keyLabel="."
latin:keyWidth="9.25%p" />
<Key
latin:code="59"
@@ -96,16 +85,13 @@
<!-- There is an empty area below the "More" key and left of the "(" key. To ignore
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
- latin:code="40"
- latin:keyLabel=" ( "
+ latin:keyLabel="("
latin:keyWidth="9.25%p" />
<Key
- latin:code="41"
- latin:keyLabel=" ) "
+ latin:keyLabel=")"
latin:keyWidth="9.25%p" />
<Key
- latin:code="78"
- latin:keyLabel=" N "
+ latin:keyLabel="N"
latin:keyWidth="9.25%p" />
<Key
latin:keyStyle="num7KeyStyle"
diff --git a/java/res/xml-sw600dp/kbd_qwerty.xml b/java/res/xml-sw600dp/kbd_qwerty.xml
deleted file mode 100644
index 9541e13fd..000000000
--- a/java/res/xml-sw600dp/kbd_qwerty.xml
+++ /dev/null
@@ -1,34 +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.
-*/
--->
-
-<Keyboard
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="50%p"
- latin:rowHeight="25%p"
- latin:keyWidth="10%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
->
- <include
- latin:keyboardLayout="@xml/kbd_qwerty_rows" />
-</Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row3.xml b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
index 4118ee197..0dbc5cf66 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row3.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
@@ -58,15 +58,13 @@
<default>
<Key
latin:keyLabel=","
- latin:manualTemporaryUpperCaseCode="33"
- latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="63"
- latin:keyHintIcon="@drawable/key_hint_question_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row4.xml b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
index 3e5492e3d..49e377fa7 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
@@ -48,9 +48,8 @@
<default>
<Key
latin:keyLabel="/"
- latin:manualTemporaryUpperCaseCode="64"
- latin:keyHintIcon="@drawable/key_hint_at_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\@"
latin:popupCharacters="\@" />
</default>
</switch>
@@ -75,18 +74,16 @@
>
<Key
latin:keyLabel="/"
- latin:manualTemporaryUpperCaseCode="58"
- latin:keyHintIcon="@drawable/key_hint_colon_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter=":"
latin:popupCharacters=":"
latin:keyWidth="9.750%p" />
</case>
<default>
<Key
latin:keyLabel="\?"
- latin:manualTemporaryUpperCaseCode="95"
- latin:keyHintIcon="@drawable/key_hint_underline_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="_"
latin:popupCharacters="_"
latin:keyWidth="9.750%p" />
</default>
@@ -102,9 +99,8 @@
<default>
<Key
latin:keyLabel="!"
- latin:manualTemporaryUpperCaseCode="39"
- latin:keyHintIcon="@drawable/key_hint_quote_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\'"
latin:popupCharacters="\'"
latin:keyWidth="9.750%p" />
</default>
@@ -125,18 +121,16 @@
>
<Key
latin:keyLabel="/"
- latin:manualTemporaryUpperCaseCode="58"
- latin:keyHintIcon="@drawable/key_hint_colon_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter=":"
latin:popupCharacters=":"
latin:keyWidth="9.750%p" />
</case>
<default>
<Key
latin:keyLabel="\'"
- latin:manualTemporaryUpperCaseCode="34"
- latin:keyHintIcon="@drawable/key_hint_quote_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="&quot;"
latin:popupCharacters="&quot;"
latin:keyWidth="9.750%p" />
</default>
@@ -152,9 +146,8 @@
<default>
<Key
latin:keyLabel="-"
- latin:manualTemporaryUpperCaseCode="95"
- latin:keyHintIcon="@drawable/key_hint_underline_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="_"
latin:popupCharacters="_"
latin:keyWidth="9.750%p" />
</default>
diff --git a/java/res/xml-sw600dp/kbd_row3_right.xml b/java/res/xml-sw600dp/kbd_row3_right.xml
index 6f7d40bda..a9c5eb371 100644
--- a/java/res/xml-sw600dp/kbd_row3_right.xml
+++ b/java/res/xml-sw600dp/kbd_row3_right.xml
@@ -36,9 +36,8 @@
>
<Key
latin:keyLabel="-"
- latin:manualTemporaryUpperCaseCode="95"
- latin:keyHintIcon="@drawable/key_hint_underline_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="_"
latin:popupCharacters="_"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth"
@@ -49,9 +48,8 @@
>
<Key
latin:keyLabel=":"
- latin:manualTemporaryUpperCaseCode="43"
- latin:keyHintIcon="@drawable/key_hint_plus_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="+"
latin:popupCharacters="+"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth"
diff --git a/java/res/xml-sw600dp/kbd_rows_arabic.xml b/java/res/xml-sw600dp/kbd_rows_arabic.xml
new file mode 100644
index 000000000..bc37d5a9f
--- /dev/null
+++ b/java/res/xml-sw600dp/kbd_rows_arabic.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- This file for Arabic layout is an alpha version. It allows to enter -->
+<!-- some right-to-left text, but it has gone through no study whatsoever, -->
+<!-- and needs to be run through UX. -->
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_key_styles" />
+ <Row
+ latin:keyWidth="8.0%p"
+ >
+ <Key
+ latin:keyLabel="ض"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="ص" />
+ <Key
+ latin:keyLabel="ث" />
+ <Key
+ latin:keyLabel="ق" />
+ <Key
+ latin:keyLabel="ف"
+ latin:popupCharacters="ف,ڤ" />
+ <Key
+ latin:keyLabel="غ" />
+ <Key
+ latin:keyLabel="ع" />
+ <Key
+ latin:keyLabel="ه"
+ latin:popupCharacters="ه,هـ" />
+ <Key
+ latin:keyLabel="خ" />
+ <Key
+ latin:keyLabel="ح" />
+ <Key
+ latin:keyLabel="ج"
+ latin:popupCharacters="ج,چ" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyXPos="-10.0%p"
+ latin:keyWidth="fillBoth"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="8.0%p"
+ >
+ <Key
+ latin:keyLabel="ش"
+ latin:keyXPos="3.0%p" />
+ <Key
+ latin:keyLabel="س" />
+ <Key
+ latin:keyLabel="ي" />
+ <Key
+ latin:keyLabel="ب"
+ latin:popupCharacters="ب,پ" />
+ <Key
+ latin:keyLabel="ل"
+ latin:popupCharacters="ل,لا" />
+ <Key
+ latin:keyLabel="ا"
+ latin:popupCharacters="ا,أ,إ,آ" />
+ <Key
+ latin:keyLabel="ت" />
+ <Key
+ latin:keyLabel="ن" />
+ <Key
+ latin:keyLabel="م" />
+ <Key
+ latin:keyLabel="ك"
+ latin:popupCharacters="ك,گ" />
+ <Key
+ latin:keyLabel="ط" />
+ <Key
+ latin:keyStyle="returnKeyStyle"
+ latin:keyXPos="-14.6%p"
+ latin:keyWidth="fillBoth"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="7.65%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="8.0%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="ئ" />
+ <Key
+ latin:keyLabel="ء" />
+ <Key
+ latin:keyLabel="ؤ" />
+ <Key
+ latin:keyLabel="ر" />
+ <Key
+ latin:keyLabel="ذ" />
+ <Key
+ latin:keyLabel="ى" />
+ <Key
+ latin:keyLabel="ة" />
+ <Key
+ latin:keyLabel="و" />
+ <Key
+ latin:keyLabel="ز"
+ latin:popupCharacters="ز,ژ" />
+ <Key
+ latin:keyLabel="ظ" />
+ <Key
+ latin:keyLabel="د" />
+ <include
+ latin:keyboardLayout="@xml/kbd_row3_right" />
+ </Row>
+ <include latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_azerty_rows.xml b/java/res/xml-sw600dp/kbd_rows_azerty.xml
index 99c56e4cf..4df45eb34 100644
--- a/java/res/xml-sw600dp/kbd_azerty_rows.xml
+++ b/java/res/xml-sw600dp/kbd_rows_azerty.xml
@@ -24,7 +24,7 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
- latin:keyWidth="9.0%p"
+ latin:keyWidth="8.5%p"
latin:rowEdgeFlags="top"
>
<Key
@@ -65,11 +65,12 @@
latin:keyEdgeFlags="right" />
</Row>
<Row
- latin:keyWidth="9.0%p"
+ latin:keyWidth="8.5%p"
>
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q"
+ latin:keyXPos="5.0%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="s"
@@ -101,7 +102,7 @@
latin:keyEdgeFlags="right" />
</Row>
<Row
- latin:keyWidth="8.9%p"
+ latin:keyWidth="8.5%p"
>
<Key
latin:keyStyle="shiftKeyStyle"
@@ -137,15 +138,13 @@
<default>
<Key
latin:keyLabel=","
- latin:manualTemporaryUpperCaseCode="33"
- latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="63"
- latin:keyHintIcon="@drawable/key_hint_question_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_rows_hebrew.xml b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
new file mode 100644
index 000000000..a1475376b
--- /dev/null
+++ b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_key_styles" />
+ <Row
+ latin:keyWidth="8.600%p"
+ latin:rowEdgeFlags="top"
+ >
+ <Key
+ latin:keyLabel="," />
+ <Key
+ latin:keyLabel="." />
+ <Key
+ latin:keyLabel="ק" />
+ <Key
+ latin:keyLabel="ר" />
+ <Key
+ latin:keyLabel="א" />
+ <Key
+ latin:keyLabel="ט" />
+ <Key
+ latin:keyLabel="ו" />
+ <Key
+ latin:keyLabel="ן" />
+ <Key
+ latin:keyLabel="ם" />
+ <Key
+ latin:keyLabel="פ" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyXPos="-12.000%p"
+ latin:keyWidth="fillBoth"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="8.600%p"
+ >
+ <Key
+ latin:keyLabel="ש"
+ latin:keyXPos="4.000%p" />
+ <Key
+ latin:keyLabel="ד" />
+ <Key
+ latin:keyLabel="ג"
+ latin:popupCharacters="ג,ג׳" />
+ <Key
+ latin:keyLabel="כ" />
+ <Key
+ latin:keyLabel="ע" />
+ <Key
+ latin:keyLabel="י"
+ latin:popupCharacters="י,ײַ" />
+ <Key
+ latin:keyLabel="ח"
+ latin:popupCharacters="ח,ח׳" />
+ <Key
+ latin:keyLabel="ל" />
+ <Key
+ latin:keyLabel="ך" />
+ <Key
+ latin:keyLabel="ף" />
+ <Key
+ latin:keyStyle="returnKeyStyle"
+ latin:keyXPos="-10.400%p"
+ latin:keyWidth="fillBoth"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="8.600%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.000%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="ז"
+ latin:popupCharacters="ז,ז׳" />
+ <Key
+ latin:keyLabel="ס" />
+ <Key
+ latin:keyLabel="ב" />
+ <Key
+ latin:keyLabel="ה" />
+ <Key
+ latin:keyLabel="נ" />
+ <Key
+ latin:keyLabel="מ" />
+ <Key
+ latin:keyLabel="צ"
+ latin:popupCharacters="צ,צ׳" />
+ <Key
+ latin:keyLabel="ת"
+ latin:popupCharacters="ת,ת׳" />
+ <Key
+ latin:keyLabel="ץ"
+ latin:popupCharacters="ץ,ץ׳" />
+ <include
+ latin:keyboardLayout="@xml/kbd_row3_right" />
+ </Row>
+ <include latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_rows.xml b/java/res/xml-sw600dp/kbd_rows_qwerty.xml
index a2d26b3de..a2d26b3de 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_rows.xml
+++ b/java/res/xml-sw600dp/kbd_rows_qwerty.xml
diff --git a/java/res/xml-sw600dp/kbd_qwertz_rows.xml b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
index 9e717c804..7ea9b0f37 100644
--- a/java/res/xml-sw600dp/kbd_qwertz_rows.xml
+++ b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
@@ -103,15 +103,13 @@
<default>
<Key
latin:keyLabel=","
- latin:manualTemporaryUpperCaseCode="33"
- latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="63"
- latin:keyHintIcon="@drawable/key_hint_question_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_ru_rows.xml b/java/res/xml-sw600dp/kbd_rows_russian.xml
index 714d1a8d2..43fa665e6 100644
--- a/java/res/xml-sw600dp/kbd_ru_rows.xml
+++ b/java/res/xml-sw600dp/kbd_rows_russian.xml
@@ -118,9 +118,8 @@
latin:keyLabel="ю" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="44"
- latin:keyHintIcon="@drawable/key_hint_comma_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_comma_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter=","
latin:popupCharacters="," />
<include
latin:keyboardLayout="@xml/kbd_row3_right" />
diff --git a/java/res/xml-sw600dp/kbd_qwerty_rows_scandinavia.xml b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
index 0bdcd21f4..3666ead51 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_rows_scandinavia.xml
+++ b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
@@ -24,13 +24,12 @@
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
<Row
- latin:keyWidth="8.0%p"
+ latin:keyWidth="7.9%p"
latin:rowEdgeFlags="top"
>
<Key
latin:keyLabel="q"
latin:popupCharacters="@string/alternates_for_q"
- latin:keyXPos="2.15%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
@@ -68,10 +67,11 @@
latin:keyEdgeFlags="right" />
</Row>
<Row
- latin:keyWidth="8.0%p"
+ latin:keyWidth="7.9%p"
>
<Key
latin:keyLabel="a"
+ latin:keyXPos="3.5%p"
latin:popupCharacters="@string/alternates_for_a"
latin:keyEdgeFlags="left" />
<Key
@@ -107,8 +107,60 @@
latin:keyWidth="fillBoth"
latin:keyEdgeFlags="right" />
</Row>
- <include
- latin:keyboardLayout="@xml/kbd_qwerty_row3" />
+ <Row
+ latin:keyWidth="7.9%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="10.0%p"
+ latin:keyEdgeFlags="left" />
+ <Spacer
+ latin:keyWidth="4.35%p" />
+ <Key
+ latin:keyLabel="z"
+ latin:popupCharacters="@string/alternates_for_z" />
+ <Key
+ latin:keyLabel="x" />
+ <Key
+ latin:keyLabel="c"
+ latin:popupCharacters="@string/alternates_for_c" />
+ <Key
+ latin:keyLabel="v"
+ latin:popupCharacters="@string/alternates_for_v" />
+ <Key
+ latin:keyLabel="b" />
+ <Key
+ latin:keyLabel="n"
+ latin:popupCharacters="@string/alternates_for_n" />
+ <Key
+ latin:keyLabel="m" />
+ <switch>
+ <case
+ latin:mode="email"
+ >
+ <Key
+ latin:keyLabel="," />
+ <Key
+ latin:keyLabel="." />
+ </case>
+ <default>
+ <Key
+ latin:keyLabel=","
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
+ latin:popupCharacters="!" />
+ <Key
+ latin:keyLabel="."
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
+ latin:popupCharacters="\?" />
+ </default>
+ </switch>
+ <Spacer
+ latin:keyWidth="4.35%p" />
+ <include
+ latin:keyboardLayout="@xml/kbd_row3_right" />
+ </Row>
<include
latin:keyboardLayout="@xml/kbd_qwerty_row4" />
</merge>
diff --git a/java/res/xml-sw600dp/kbd_sr_rows.xml b/java/res/xml-sw600dp/kbd_rows_serbian.xml
index 62c3b71d0..80debdadb 100644
--- a/java/res/xml-sw600dp/kbd_sr_rows.xml
+++ b/java/res/xml-sw600dp/kbd_rows_serbian.xml
@@ -126,15 +126,13 @@
<default>
<Key
latin:keyLabel=","
- latin:manualTemporaryUpperCaseCode="33"
- latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="63"
- latin:keyHintIcon="@drawable/key_hint_question_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw600dp/kbd_symbols.xml b/java/res/xml-sw600dp/kbd_symbols.xml
index 3593c7788..4d3e7d3a2 100644
--- a/java/res/xml-sw600dp/kbd_symbols.xml
+++ b/java/res/xml-sw600dp/kbd_symbols.xml
@@ -20,13 +20,6 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="50%p"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sw600dp/kbd_symbols_shift.xml b/java/res/xml-sw600dp/kbd_symbols_shift.xml
index 4cef3a78f..1743c0ff2 100644
--- a/java/res/xml-sw600dp/kbd_symbols_shift.xml
+++ b/java/res/xml-sw600dp/kbd_symbols_shift.xml
@@ -20,13 +20,6 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="50%p"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sw768dp/kbd_key_styles.xml b/java/res/xml-sw768dp/kbd_key_styles.xml
index 57eaccbae..4388e8959 100644
--- a/java/res/xml-sw768dp/kbd_key_styles.xml
+++ b/java/res/xml-sw768dp/kbd_key_styles.xml
@@ -62,7 +62,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyHintIcon="@drawable/hint_popup_holo"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
@@ -116,7 +116,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyHintIcon="@drawable/hint_popup_holo"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5" />
<key-style
@@ -161,9 +161,8 @@
<key-style
latin:styleName="comKeyStyle"
latin:keyLabel="@string/keylabel_for_popular_domain"
- latin:keyLabelOption="fontNormal"
+ latin:keyLabelOption="fontNormal|popupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
- latin:keyHintIcon="@drawable/hint_popup_holo"
latin:popupCharacters="@string/alternates_for_popular_domain" />
<switch>
<case
diff --git a/java/res/xml-sw768dp/kbd_number.xml b/java/res/xml-sw768dp/kbd_number.xml
index faab38ade..4f33e4154 100644
--- a/java/res/xml-sw768dp/kbd_number.xml
+++ b/java/res/xml-sw768dp/kbd_number.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="13.250%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sw768dp/kbd_phone.xml b/java/res/xml-sw768dp/kbd_phone.xml
index 51627aa6a..69169ffd1 100644
--- a/java/res/xml-sw768dp/kbd_phone.xml
+++ b/java/res/xml-sw768dp/kbd_phone.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="13.250%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
@@ -41,16 +33,12 @@
latin:keyLabelOption="alignLeft"
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
- <!-- To match one character label size with "Tab", I placed spaces around the char '-'
- and '+'. -->
<Key
- latin:code="45"
- latin:keyLabel=" - "
+ latin:keyLabel="-"
latin:keyXPos="20.400%p"
latin:keyWidth="8.047%p" />
<Key
- latin:code="43"
- latin:keyLabel=" + "
+ latin:keyLabel="+"
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num1KeyStyle"
@@ -70,16 +58,12 @@
latin:keyStyle="moreKeyStyle"
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
- <!-- To match one character label size with "More", I placed spaces around the char ','
- and '.'. -->
<Key
- latin:code="44"
- latin:keyLabel=" , "
+ latin:keyLabel=","
latin:keyXPos="20.400%p"
latin:keyWidth="8.047%p" />
<Key
- latin:code="46"
- latin:keyLabel=" . "
+ latin:keyLabel="."
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num4KeyStyle"
@@ -95,18 +79,14 @@
latin:keyEdgeFlags="right" />
</Row>
<Row>
- <!-- To match one character label size with "More", I placed spaces around the char '('
- and ')'. -->
<!-- There is an empty area below the "More" key and left of the "(" key. To ignore
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
- latin:code="40"
- latin:keyLabel=" ( "
+ latin:keyLabel="("
latin:keyXPos="20.400%p"
latin:keyWidth="8.047%p" />
<Key
- latin:code="41"
- latin:keyLabel=" ) "
+ latin:keyLabel=")"
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num7KeyStyle"
diff --git a/java/res/xml-sw768dp/kbd_phone_symbols.xml b/java/res/xml-sw768dp/kbd_phone_symbols.xml
index b086b4137..e95579c0a 100644
--- a/java/res/xml-sw768dp/kbd_phone_symbols.xml
+++ b/java/res/xml-sw768dp/kbd_phone_symbols.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="13.250%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
@@ -42,20 +34,16 @@
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
<Key
- latin:code="45"
- latin:keyLabel=" - "
+ latin:keyLabel="-"
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
- latin:code="43"
- latin:keyLabel=" + "
+ latin:keyLabel="+"
latin:keyWidth="8.047%p" />
<Key
latin:code="44"
latin:keyLabel="@string/label_pause_key"
latin:keyWidth="8.047%p" />
- <!-- To match one character label size with "Tab" and "Pause, I placed spaces around the
- char '-' and '+'. -->
<Key
latin:keyStyle="num1KeyStyle"
latin:keyXPos="43.125%p" />
@@ -75,20 +63,16 @@
latin:keyWidth="11.172%p"
latin:keyEdgeFlags="left" />
<Key
- latin:code="44"
- latin:keyLabel=" , "
+ latin:keyLabel=","
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
- latin:code="46"
- latin:keyLabel=" . "
+ latin:keyLabel="."
latin:keyWidth="8.047%p" />
<Key
latin:code="59"
latin:keyLabel="@string/label_wait_key"
latin:keyWidth="8.047%p" />
- <!-- To match one character label size with "More" and "Wait", I placed spaces around the
- char ',' and '.'. -->
<Key
latin:keyStyle="num4KeyStyle"
latin:keyXPos="43.125%p" />
@@ -103,22 +87,17 @@
latin:keyEdgeFlags="right" />
</Row>
<Row>
- <!-- To match one character label size with "More" and etc., I placed spaces around the
- char 'N', '(' and ')'. -->
<!-- There is an empty area below the "More" key and left of the "(" key. To ignore
the touch event on the area, "(" is intentionally not marked as a left edge key. -->
<Key
- latin:code="40"
- latin:keyLabel=" ( "
+ latin:keyLabel="("
latin:keyXPos="13.829%p"
latin:keyWidth="8.047%p" />
<Key
- latin:code="41"
- latin:keyLabel=" ) "
+ latin:keyLabel=")"
latin:keyWidth="8.047%p" />
<Key
- latin:code="78"
- latin:keyLabel=" N "
+ latin:keyLabel="N"
latin:keyWidth="8.047%p" />
<Key
latin:keyStyle="num7KeyStyle"
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row4.xml b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
index 0e71cbfd4..fba2a65dd 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
@@ -58,9 +58,8 @@
>
<Key
latin:keyLabel=":"
- latin:manualTemporaryUpperCaseCode="43"
- latin:keyHintIcon="@drawable/key_hint_plus_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="+"
latin:popupCharacters="+" />
</case>
<default>
@@ -78,9 +77,8 @@
<default>
<Key
latin:keyLabel="/"
- latin:manualTemporaryUpperCaseCode="64"
- latin:keyHintIcon="@drawable/key_hint_at_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\@"
latin:popupCharacters="\@" />
</default>
</switch>
@@ -102,17 +100,15 @@
>
<Key
latin:keyLabel="/"
- latin:manualTemporaryUpperCaseCode="58"
- latin:keyHintIcon="@drawable/key_hint_colon_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter=":"
latin:popupCharacters=":" />
</case>
<default>
<Key
latin:keyLabel="\'"
- latin:manualTemporaryUpperCaseCode="34"
- latin:keyHintIcon="@drawable/key_hint_quote_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="&quot;"
latin:popupCharacters="&quot;" />
</default>
</switch>
@@ -126,9 +122,8 @@
<default>
<Key
latin:keyLabel="-"
- latin:manualTemporaryUpperCaseCode="95"
- latin:keyHintIcon="@drawable/key_hint_underline_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="_"
latin:popupCharacters="_" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_row3_right2.xml b/java/res/xml-sw768dp/kbd_row3_right2.xml
index 1759ea192..e90de8eec 100644
--- a/java/res/xml-sw768dp/kbd_row3_right2.xml
+++ b/java/res/xml-sw768dp/kbd_row3_right2.xml
@@ -33,15 +33,13 @@
<default>
<Key
latin:keyLabel=","
- latin:manualTemporaryUpperCaseCode="33"
- latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="63"
- latin:keyHintIcon="@drawable/key_hint_question_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_ar_rows.xml b/java/res/xml-sw768dp/kbd_rows_arabic.xml
index c1810026b..c1810026b 100644
--- a/java/res/xml-sw768dp/kbd_ar_rows.xml
+++ b/java/res/xml-sw768dp/kbd_rows_arabic.xml
diff --git a/java/res/xml-sw768dp/kbd_azerty_rows.xml b/java/res/xml-sw768dp/kbd_rows_azerty.xml
index 5288ccf91..3bcba0042 100644
--- a/java/res/xml-sw768dp/kbd_azerty_rows.xml
+++ b/java/res/xml-sw768dp/kbd_rows_azerty.xml
@@ -133,9 +133,8 @@
latin:popupCharacters="@string/alternates_for_n" />
<Key
latin:keyLabel="\'"
- latin:manualTemporaryUpperCaseCode="58"
- latin:keyHintIcon="@drawable/key_hint_colon_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter=":"
latin:popupCharacters=":" />
<switch>
<case
@@ -149,15 +148,13 @@
<default>
<Key
latin:keyLabel=","
- latin:manualTemporaryUpperCaseCode="33"
- latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="63"
- latin:keyHintIcon="@drawable/key_hint_question_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_iw_rows.xml b/java/res/xml-sw768dp/kbd_rows_hebrew.xml
index 5275a1f15..5275a1f15 100644
--- a/java/res/xml-sw768dp/kbd_iw_rows.xml
+++ b/java/res/xml-sw768dp/kbd_rows_hebrew.xml
diff --git a/java/res/xml-sw768dp/kbd_qwerty_rows.xml b/java/res/xml-sw768dp/kbd_rows_qwerty.xml
index 6237712f6..6237712f6 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_rows.xml
+++ b/java/res/xml-sw768dp/kbd_rows_qwerty.xml
diff --git a/java/res/xml-sw768dp/kbd_qwertz_rows.xml b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
index 4e937acda..8d5f1e6d4 100644
--- a/java/res/xml-sw768dp/kbd_qwertz_rows.xml
+++ b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
@@ -106,15 +106,13 @@
<default>
<Key
latin:keyLabel=","
- latin:manualTemporaryUpperCaseCode="33"
- latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="!"
latin:popupCharacters="!" />
<Key
latin:keyLabel="."
- latin:manualTemporaryUpperCaseCode="63"
- latin:keyHintIcon="@drawable/key_hint_question_holo"
- latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:keyLabelOption="hasUppercaseLetter"
+ latin:keyHintLetter="\?"
latin:popupCharacters="\?" />
</default>
</switch>
diff --git a/java/res/xml-sw768dp/kbd_ru_rows.xml b/java/res/xml-sw768dp/kbd_rows_russian.xml
index ee91481c1..ee91481c1 100644
--- a/java/res/xml-sw768dp/kbd_ru_rows.xml
+++ b/java/res/xml-sw768dp/kbd_rows_russian.xml
diff --git a/java/res/xml-sw768dp/kbd_qwerty_rows_scandinavia.xml b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
index 7e9f604f5..7e9f604f5 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_rows_scandinavia.xml
+++ b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
diff --git a/java/res/xml-sw768dp/kbd_sr_rows.xml b/java/res/xml-sw768dp/kbd_rows_serbian.xml
index 4997dabb9..4997dabb9 100644
--- a/java/res/xml-sw768dp/kbd_sr_rows.xml
+++ b/java/res/xml-sw768dp/kbd_rows_serbian.xml
diff --git a/java/res/xml-sw768dp/kbd_symbols.xml b/java/res/xml-sw768dp/kbd_symbols.xml
index 5b359bfbf..d1a83c479 100644
--- a/java/res/xml-sw768dp/kbd_symbols.xml
+++ b/java/res/xml-sw768dp/kbd_symbols.xml
@@ -20,14 +20,6 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml-sw768dp/kbd_symbols_shift.xml b/java/res/xml-sw768dp/kbd_symbols_shift.xml
index 94bd761ba..dde144fdf 100644
--- a/java/res/xml-sw768dp/kbd_symbols_shift.xml
+++ b/java/res/xml-sw768dp/kbd_symbols_shift.xml
@@ -20,14 +20,6 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index f888b231e..63c019d2c 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -50,7 +50,7 @@
<default>
<key-style
latin:styleName="settingsPopupStyle"
- latin:keyHintIcon="@drawable/hint_popup"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="\@drawable/sym_keyboard_settings_holo|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
@@ -308,7 +308,7 @@
latin:styleName="smileyKeyStyle"
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
- latin:keyHintIcon="@drawable/hint_popup"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_smiley"
latin:maxPopupKeyboardColumn="5"
latin:parentStyle="functionalKeyStyle" />
diff --git a/java/res/xml/kbd_number.xml b/java/res/xml/kbd_number.xml
index 23b88a5bd..429b81846 100644
--- a/java/res/xml/kbd_number.xml
+++ b/java/res/xml/kbd_number.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="26.67%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml
index e1d1ee8d0..211f7b7f7 100644
--- a/java/res/xml/kbd_phone.xml
+++ b/java/res/xml/kbd_phone.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="26.67%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml
index 2af218cfe..c6513632c 100644
--- a/java/res/xml/kbd_phone_symbols.xml
+++ b/java/res/xml/kbd_phone_symbols.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="26.67%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index f0c1fa7fc..40917b921 100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -20,16 +20,8 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
latin:keyboardLocale="en_GB,en_US"
>
<include
- latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+ latin:keyboardLayout="@xml/kbd_rows_qwerty" />
</Keyboard>
diff --git a/java/res/xml/kbd_qwerty_f1.xml b/java/res/xml/kbd_qwerty_f1.xml
index e89d02d91..88dfab116 100644
--- a/java/res/xml/kbd_qwerty_f1.xml
+++ b/java/res/xml/kbd_qwerty_f1.xml
@@ -46,7 +46,7 @@
</case>
<!-- latin:hasVoiceKey="false" -->
<case
- latin:webInput="true"
+ latin:navigateAction="true"
>
<Key
latin:keyLabel="."
diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml
index ba804d321..8c3669de0 100644
--- a/java/res/xml/kbd_qwerty_row1.xml
+++ b/java/res/xml/kbd_qwerty_row1.xml
@@ -27,44 +27,44 @@
>
<Key
latin:keyLabel="q"
- latin:keyHintIcon="@drawable/key_hint_num1"
+ latin:keyHintLetter="1"
latin:popupCharacters="@string/alternates_for_q"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
- latin:keyHintIcon="@drawable/key_hint_num2"
+ latin:keyHintLetter="2"
latin:popupCharacters="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:keyHintIcon="@drawable/key_hint_num3"
+ latin:keyHintLetter="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintIcon="@drawable/key_hint_num4"
+ latin:keyHintLetter="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintIcon="@drawable/key_hint_num5"
+ latin:keyHintLetter="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:keyHintIcon="@drawable/key_hint_num6"
+ latin:keyHintLetter="6"
latin:popupCharacters="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:keyHintIcon="@drawable/key_hint_num7"
+ latin:keyHintLetter="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintIcon="@drawable/key_hint_num8"
+ latin:keyHintLetter="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintIcon="@drawable/key_hint_num9"
+ latin:keyHintLetter="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintIcon="@drawable/key_hint_num0"
+ latin:keyHintLetter="0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
diff --git a/java/res/xml/kbd_qwerty_row4.xml b/java/res/xml/kbd_qwerty_row4.xml
index 21d80eb0b..95be66dfa 100644
--- a/java/res/xml/kbd_qwerty_row4.xml
+++ b/java/res/xml/kbd_qwerty_row4.xml
@@ -56,18 +56,18 @@
</switch>
<switch>
<case
- latin:webInput="true"
+ latin:navigateAction="true"
>
<Key
- latin:keyHintIcon="@drawable/hint_popup"
+ latin:keyStyle="tabKeyStyle"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_web_tab_punctuation"
- latin:maxPopupKeyboardColumn="8"
- latin:keyStyle="tabKeyStyle" />
+ latin:maxPopupKeyboardColumn="8" />
</case>
<default>
<Key
latin:keyLabel="."
- latin:keyHintIcon="@drawable/hint_popup"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_punctuation"
latin:maxPopupKeyboardColumn="7"
latin:keyStyle="functionalKeyStyle" />
diff --git a/java/res/xml/kbd_ar_rows.xml b/java/res/xml/kbd_rows_arabic.xml
index a548775a4..a548775a4 100644
--- a/java/res/xml/kbd_ar_rows.xml
+++ b/java/res/xml/kbd_rows_arabic.xml
diff --git a/java/res/xml/kbd_azerty_rows.xml b/java/res/xml/kbd_rows_azerty.xml
index 9c81aad71..9825c4a10 100644
--- a/java/res/xml/kbd_azerty_rows.xml
+++ b/java/res/xml/kbd_rows_azerty.xml
@@ -29,44 +29,44 @@
>
<Key
latin:keyLabel="a"
- latin:keyHintIcon="@drawable/key_hint_num1"
+ latin:keyHintLetter="1"
latin:popupCharacters="@string/alternates_for_a"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="z"
- latin:keyHintIcon="@drawable/key_hint_num2"
+ latin:keyHintLetter="2"
latin:popupCharacters="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
- latin:keyHintIcon="@drawable/key_hint_num3"
+ latin:keyHintLetter="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintIcon="@drawable/key_hint_num4"
+ latin:keyHintLetter="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintIcon="@drawable/key_hint_num5"
+ latin:keyHintLetter="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:keyHintIcon="@drawable/key_hint_num6"
+ latin:keyHintLetter="6"
latin:popupCharacters="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:keyHintIcon="@drawable/key_hint_num7"
+ latin:keyHintLetter="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintIcon="@drawable/key_hint_num8"
+ latin:keyHintLetter="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintIcon="@drawable/key_hint_num9"
+ latin:keyHintLetter="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintIcon="@drawable/key_hint_num0"
+ latin:keyHintLetter="0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
diff --git a/java/res/xml/kbd_iw_rows.xml b/java/res/xml/kbd_rows_hebrew.xml
index c3c8f7d3e..c3c8f7d3e 100644
--- a/java/res/xml/kbd_iw_rows.xml
+++ b/java/res/xml/kbd_rows_hebrew.xml
diff --git a/java/res/xml/kbd_qwerty_rows.xml b/java/res/xml/kbd_rows_qwerty.xml
index 6237712f6..6237712f6 100644
--- a/java/res/xml/kbd_qwerty_rows.xml
+++ b/java/res/xml/kbd_rows_qwerty.xml
diff --git a/java/res/xml/kbd_qwertz_rows.xml b/java/res/xml/kbd_rows_qwertz.xml
index 603cf351c..0d70b2637 100644
--- a/java/res/xml/kbd_qwertz_rows.xml
+++ b/java/res/xml/kbd_rows_qwertz.xml
@@ -29,44 +29,44 @@
>
<Key
latin:keyLabel="q"
- latin:keyHintIcon="@drawable/key_hint_num1"
+ latin:keyHintLetter="1"
latin:popupCharacters="@string/alternates_for_q"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
- latin:keyHintIcon="@drawable/key_hint_num2"
+ latin:keyHintLetter="2"
latin:popupCharacters="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:keyHintIcon="@drawable/key_hint_num3"
+ latin:keyHintLetter="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintIcon="@drawable/key_hint_num4"
+ latin:keyHintLetter="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintIcon="@drawable/key_hint_num5"
+ latin:keyHintLetter="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
- latin:keyHintIcon="@drawable/key_hint_num6"
+ latin:keyHintLetter="6"
latin:popupCharacters="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
- latin:keyHintIcon="@drawable/key_hint_num7"
+ latin:keyHintLetter="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintIcon="@drawable/key_hint_num8"
+ latin:keyHintLetter="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintIcon="@drawable/key_hint_num9"
+ latin:keyHintLetter="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintIcon="@drawable/key_hint_num0"
+ latin:keyHintLetter="0"
latin:popupCharacters="@string/alternates_for_p"
latin:keyWidth="fillRight"
latin:keyEdgeFlags="right" />
diff --git a/java/res/xml/kbd_ru_rows.xml b/java/res/xml/kbd_rows_russian.xml
index 76250a303..ff9fef409 100644
--- a/java/res/xml/kbd_ru_rows.xml
+++ b/java/res/xml/kbd_rows_russian.xml
@@ -29,45 +29,45 @@
>
<Key
latin:keyLabel="й"
- latin:keyHintIcon="@drawable/key_hint_num1"
+ latin:keyHintLetter="1"
latin:popupCharacters="1"
latin:keyWidth="8.75%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="ц"
- latin:keyHintIcon="@drawable/key_hint_num2"
+ latin:keyHintLetter="2"
latin:popupCharacters="2" />
<Key
latin:keyLabel="у"
- latin:keyHintIcon="@drawable/key_hint_num3"
+ latin:keyHintLetter="3"
latin:popupCharacters="3" />
<Key
latin:keyLabel="к"
- latin:keyHintIcon="@drawable/key_hint_num4"
+ latin:keyHintLetter="4"
latin:popupCharacters="4" />
<Key
latin:keyLabel="е"
- latin:keyHintIcon="@drawable/key_hint_num5"
+ latin:keyHintLetter="5"
latin:popupCharacters="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н"
- latin:keyHintIcon="@drawable/key_hint_num6"
+ latin:keyHintLetter="6"
latin:popupCharacters="6" />
<Key
latin:keyLabel="г"
- latin:keyHintIcon="@drawable/key_hint_num7"
+ latin:keyHintLetter="7"
latin:popupCharacters="7" />
<Key
latin:keyLabel="ш"
- latin:keyHintIcon="@drawable/key_hint_num8"
+ latin:keyHintLetter="8"
latin:popupCharacters="8" />
<Key
latin:keyLabel="щ"
- latin:keyHintIcon="@drawable/key_hint_num9"
+ latin:keyHintLetter="9"
latin:popupCharacters="9" />
<Key
latin:keyLabel="з"
- latin:keyHintIcon="@drawable/key_hint_num0"
+ latin:keyHintLetter="0"
latin:popupCharacters="0" />
<Key
latin:keyLabel="х"
diff --git a/java/res/xml/kbd_qwerty_rows_scandinavia.xml b/java/res/xml/kbd_rows_scandinavian.xml
index 8cb0640e5..2d7dcde7a 100644
--- a/java/res/xml/kbd_qwerty_rows_scandinavia.xml
+++ b/java/res/xml/kbd_rows_scandinavian.xml
@@ -29,45 +29,45 @@
>
<Key
latin:keyLabel="q"
- latin:keyHintIcon="@drawable/key_hint_num1"
+ latin:keyHintLetter="1"
latin:popupCharacters="@string/alternates_for_q"
latin:keyWidth="8.75%p"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="w"
- latin:keyHintIcon="@drawable/key_hint_num2"
+ latin:keyHintLetter="2"
latin:popupCharacters="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:keyHintIcon="@drawable/key_hint_num3"
+ latin:keyHintLetter="3"
latin:popupCharacters="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:keyHintIcon="@drawable/key_hint_num4"
+ latin:keyHintLetter="4"
latin:popupCharacters="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:keyHintIcon="@drawable/key_hint_num5"
+ latin:keyHintLetter="5"
latin:popupCharacters="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:keyHintIcon="@drawable/key_hint_num6"
+ latin:keyHintLetter="6"
latin:popupCharacters="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:keyHintIcon="@drawable/key_hint_num7"
+ latin:keyHintLetter="7"
latin:popupCharacters="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:keyHintIcon="@drawable/key_hint_num8"
+ latin:keyHintLetter="8"
latin:popupCharacters="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:keyHintIcon="@drawable/key_hint_num9"
+ latin:keyHintLetter="9"
latin:popupCharacters="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:keyHintIcon="@drawable/key_hint_num0"
+ latin:keyHintLetter="0"
latin:popupCharacters="@string/alternates_for_p" />
<Key
latin:keyLabel="å"
diff --git a/java/res/xml/kbd_sr_rows.xml b/java/res/xml/kbd_rows_serbian.xml
index 139af80f5..9f4b6a203 100644
--- a/java/res/xml/kbd_sr_rows.xml
+++ b/java/res/xml/kbd_rows_serbian.xml
@@ -29,44 +29,44 @@
>
<Key
latin:keyLabel="љ"
- latin:keyHintIcon="@drawable/key_hint_num1"
+ latin:keyHintLetter="1"
latin:popupCharacters="1"
latin:keyEdgeFlags="left" />
<Key
latin:keyLabel="њ"
- latin:keyHintIcon="@drawable/key_hint_num2"
+ latin:keyHintLetter="2"
latin:popupCharacters="2" />
<Key
latin:keyLabel="е"
- latin:keyHintIcon="@drawable/key_hint_num3"
+ latin:keyHintLetter="3"
latin:popupCharacters="3" />
<Key
latin:keyLabel="р"
- latin:keyHintIcon="@drawable/key_hint_num4"
+ latin:keyHintLetter="4"
latin:popupCharacters="4" />
<Key
latin:keyLabel="т"
- latin:keyHintIcon="@drawable/key_hint_num5"
+ latin:keyHintLetter="5"
latin:popupCharacters="5" />
<Key
latin:keyLabel="з"
- latin:keyHintIcon="@drawable/key_hint_num6"
+ latin:keyHintLetter="6"
latin:popupCharacters="6" />
<Key
latin:keyLabel="у"
- latin:keyHintIcon="@drawable/key_hint_num7"
+ latin:keyHintLetter="7"
latin:popupCharacters="7" />
<Key
latin:keyLabel="и"
- latin:keyHintIcon="@drawable/key_hint_num8"
+ latin:keyHintLetter="8"
latin:popupCharacters="8" />
<Key
latin:keyLabel="о"
- latin:keyHintIcon="@drawable/key_hint_num9"
+ latin:keyHintLetter="9"
latin:popupCharacters="9" />
<Key
latin:keyLabel="п"
- latin:keyHintIcon="@drawable/key_hint_num0"
+ latin:keyHintLetter="0"
latin:popupCharacters="0" />
<Key
latin:keyLabel="ш"
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index a58a51874..8e9124f74 100644
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="10%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/res/xml/kbd_symbols_row4.xml b/java/res/xml/kbd_symbols_row4.xml
index 726f7c37a..704402aaf 100644
--- a/java/res/xml/kbd_symbols_row4.xml
+++ b/java/res/xml/kbd_symbols_row4.xml
@@ -56,7 +56,7 @@
</switch>
<Key
latin:keyLabel="."
- latin:keyHintIcon="@drawable/hint_popup"
+ latin:keyLabelOption="popupHint"
latin:popupCharacters="@string/alternates_for_punctuation"
latin:maxPopupKeyboardColumn="7"
latin:keyStyle="functionalKeyStyle" />
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index 96e741bbc..f22d45aff 100644
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -20,15 +20,7 @@
<Keyboard
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
- latin:keyboardHeight="@dimen/keyboardHeight"
- latin:maxKeyboardHeight="@fraction/maxKeyboardHeight"
- latin:minKeyboardHeight="@fraction/minKeyboardHeight"
- latin:rowHeight="25%p"
latin:keyWidth="10%p"
- latin:horizontalGap="@dimen/key_horizontal_gap"
- latin:verticalGap="@dimen/key_bottom_gap"
- latin:popupKeyboardTemplate="@xml/kbd_popup_template"
- latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
>
<include
latin:keyboardLayout="@xml/kbd_key_styles" />
diff --git a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java
index 2789bcb39..bcdcef7dc 100644
--- a/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/EditorInfoCompatUtils.java
@@ -27,7 +27,7 @@ public class EditorInfoCompatUtils {
private static final Field FIELD_IME_FLAG_NAVIGATE_PREVIOUS = CompatUtils.getField(
EditorInfo.class, "IME_FLAG_NAVIGATE_PREVIOUS");
private static final Field FIELD_IME_ACTION_PREVIOUS = CompatUtils.getField(
- EditorInfo.class, "IME_FLAG_ACTION_PREVIOUS");
+ EditorInfo.class, "IME_ACTION_PREVIOUS");
private static final Integer OBJ_IME_FLAG_NAVIGATE_NEXT = (Integer) CompatUtils
.getFieldValue(null, null, FIELD_IME_FLAG_NAVIGATE_NEXT);
private static final Integer OBJ_IME_FLAG_NAVIGATE_PREVIOUS = (Integer) CompatUtils
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index cb529461a..e5ee272a2 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -37,25 +37,24 @@ public class Key {
* The key code (unicode or custom code) that this key generates.
*/
public final int mCode;
- /** The unicode that this key generates in manual temporary upper case mode. */
- public final int mManualTemporaryUpperCaseCode;
/** Label to display */
public final CharSequence mLabel;
+ /** Hint letter to display on the key in conjunction with the label */
+ public final CharSequence mHintLetter;
/** Option of the label */
public final int mLabelOption;
+ public static final int LABEL_OPTION_ALIGN_LEFT = 0x01;
+ public static final int LABEL_OPTION_ALIGN_RIGHT = 0x02;
+ public static final int LABEL_OPTION_ALIGN_BOTTOM = 0x08;
+ public static final int LABEL_OPTION_FONT_NORMAL = 0x10;
+ private static final int LABEL_OPTION_POPUP_HINT = 0x20;
+ private static final int LABEL_OPTION_HAS_UPPERCASE_LETTER = 0x40;
/** Icon to display instead of a label. Icon takes precedence over a label */
private Drawable mIcon;
/** Preview version of the icon, for the preview popup */
private Drawable mPreviewIcon;
- /** Hint icon to display on the key in conjunction with the label */
- public final Drawable mHintIcon;
- /**
- * The hint icon to display on the key when keyboard is in manual temporary upper case
- * mode.
- */
- public final Drawable mManualTemporaryUpperCaseHintIcon;
/** Width of the key, not including the gap */
public final int mWidth;
@@ -154,9 +153,7 @@ public class Key {
mVisualInsetsLeft = mVisualInsetsRight = 0;
mWidth = width - mGap;
mEdgeFlags = edgeFlags;
- mHintIcon = null;
- mManualTemporaryUpperCaseHintIcon = null;
- mManualTemporaryUpperCaseCode = Keyboard.CODE_DUMMY;
+ mHintLetter = null;
mLabelOption = 0;
mFunctional = false;
mSticky = false;
@@ -273,16 +270,10 @@ public class Key {
Keyboard.setDefaultBounds(mPreviewIcon);
mIcon = style.getDrawable(keyAttr, R.styleable.Keyboard_Key_keyIcon);
Keyboard.setDefaultBounds(mIcon);
- mHintIcon = style.getDrawable(keyAttr, R.styleable.Keyboard_Key_keyHintIcon);
- Keyboard.setDefaultBounds(mHintIcon);
- mManualTemporaryUpperCaseHintIcon = style.getDrawable(keyAttr,
- R.styleable.Keyboard_Key_manualTemporaryUpperCaseHintIcon);
- Keyboard.setDefaultBounds(mManualTemporaryUpperCaseHintIcon);
+ mHintLetter = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter);
mLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
mLabelOption = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption, 0);
- mManualTemporaryUpperCaseCode = style.getInt(keyAttr,
- R.styleable.Keyboard_Key_manualTemporaryUpperCaseCode, Keyboard.CODE_DUMMY);
mOutputText = style.getText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
// Choose the first letter of the label as primary code if not
// specified.
@@ -305,6 +296,14 @@ public class Key {
}
}
+ public boolean hasPopupHint() {
+ return (mLabelOption & LABEL_OPTION_POPUP_HINT) != 0;
+ }
+
+ public boolean hasUppercaseLetter() {
+ return (mLabelOption & LABEL_OPTION_HAS_UPPERCASE_LETTER) != 0;
+ }
+
private static boolean isDigitPopupCharacter(CharSequence label) {
return label != null && label.length() == 1 && Character.isDigit(label.charAt(0));
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/KeyStyles.java
index d53df788f..ce5ee5495 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyStyles.java
@@ -183,7 +183,7 @@ public class KeyStyles {
readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
readDrawable(keyAttr, R.styleable.Keyboard_Key_keyIcon);
readDrawable(keyAttr, R.styleable.Keyboard_Key_iconPreview);
- readDrawable(keyAttr, R.styleable.Keyboard_Key_keyHintIcon);
+ readText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter);
readDrawable(keyAttr, R.styleable.Keyboard_Key_shiftedIcon);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isFunctional);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky);
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index 267abccb3..58629ba51 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -16,15 +16,15 @@
package com.android.inputmethod.keyboard;
-import com.android.inputmethod.latin.R;
-
-import org.xmlpull.v1.XmlPullParserException;
-
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.util.Log;
+import com.android.inputmethod.latin.R;
+
+import org.xmlpull.v1.XmlPullParserException;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -171,8 +171,8 @@ public class Keyboard {
mDefaultVerticalGap = 0;
mDefaultHeight = mDefaultWidth;
mId = id;
- loadKeyboard(context, xmlLayoutResId);
mProximityInfo = new ProximityInfo(GRID_WIDTH, GRID_HEIGHT);
+ loadKeyboard(context, xmlLayoutResId);
}
public int getProximityInfo() {
@@ -434,7 +434,7 @@ public class Keyboard {
private void loadKeyboard(Context context, int xmlLayoutResId) {
try {
- KeyboardParser parser = new KeyboardParser(this, context.getResources());
+ KeyboardParser parser = new KeyboardParser(this, context);
parser.parseKeyboard(xmlLayoutResId);
// mMinWidth is the width of this keyboard which is maximum width of row.
mMinWidth = parser.getMaxRowWidth();
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
index 7c03ec71e..cdaed95a5 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
@@ -43,7 +43,7 @@ public class KeyboardId {
public final int mMode;
public final int mXmlId;
public final int mColorScheme;
- public final boolean mWebInput;
+ public final boolean mNavigateAction;
public final boolean mPasswordInput;
public final boolean mHasSettingsKey;
public final boolean mVoiceKeyEnabled;
@@ -67,7 +67,9 @@ public class KeyboardId {
this.mMode = mode;
this.mXmlId = xmlId;
this.mColorScheme = colorScheme;
- this.mWebInput = InputTypeCompatUtils.isWebInputType(inputType);
+ this.mNavigateAction = InputTypeCompatUtils.isWebInputType(inputType)
+ || EditorInfoCompatUtils.hasFlagNavigateNext(imeOptions)
+ || EditorInfoCompatUtils.hasFlagNavigatePrevious(imeOptions);
this.mPasswordInput = InputTypeCompatUtils.isPasswordInputType(inputType)
|| InputTypeCompatUtils.isVisiblePasswordInputType(inputType);
this.mHasSettingsKey = hasSettingsKey;
@@ -89,7 +91,7 @@ public class KeyboardId {
mode,
xmlId,
colorScheme,
- mWebInput,
+ mNavigateAction,
mPasswordInput,
hasSettingsKey,
voiceKeyEnabled,
@@ -143,7 +145,7 @@ public class KeyboardId {
&& other.mMode == this.mMode
&& other.mXmlId == this.mXmlId
&& other.mColorScheme == this.mColorScheme
- && other.mWebInput == this.mWebInput
+ && other.mNavigateAction == this.mNavigateAction
&& other.mPasswordInput == this.mPasswordInput
&& other.mHasSettingsKey == this.mHasSettingsKey
&& other.mVoiceKeyEnabled == this.mVoiceKeyEnabled
@@ -166,7 +168,7 @@ public class KeyboardId {
modeName(mMode),
EditorInfoCompatUtils.imeOptionsName(mImeAction),
colorSchemeName(mColorScheme),
- (mWebInput ? " webInput" : ""),
+ (mNavigateAction ? " navigateAction" : ""),
(mPasswordInput ? " passwordInput" : ""),
(mHasSettingsKey ? " hasSettingsKey" : ""),
(mVoiceKeyEnabled ? " voiceKeyEnabled" : ""),
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
index c2db62a1c..20af12bc5 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
@@ -16,12 +16,6 @@
package com.android.inputmethod.keyboard;
-import com.android.inputmethod.compat.EditorInfoCompatUtils;
-import com.android.inputmethod.latin.R;
-
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -31,6 +25,12 @@ import android.util.TypedValue;
import android.util.Xml;
import android.view.InflateException;
+import com.android.inputmethod.compat.EditorInfoCompatUtils;
+import com.android.inputmethod.latin.R;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@@ -121,6 +121,7 @@ public class KeyboardParser {
public static final String TAG_KEY_STYLE = "key-style";
private final Keyboard mKeyboard;
+ private final Context mContext;
private final Resources mResources;
private int mHorizontalEdgesPadding;
@@ -131,8 +132,10 @@ public class KeyboardParser {
private Row mCurrentRow = null;
private final KeyStyles mKeyStyles = new KeyStyles();
- public KeyboardParser(Keyboard keyboard, Resources res) {
+ public KeyboardParser(Keyboard keyboard, Context context) {
mKeyboard = keyboard;
+ mContext = context;
+ final Resources res = context.getResources();
mResources = res;
mHorizontalEdgesPadding = (int)res.getDimension(R.dimen.keyboard_horizontal_edges_padding);
}
@@ -187,8 +190,9 @@ public class KeyboardParser {
private void parseKeyboardAttributes(XmlResourceParser parser) {
final Keyboard keyboard = mKeyboard;
- final TypedArray keyboardAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser),
- R.styleable.Keyboard);
+ final TypedArray keyboardAttr = mContext.obtainStyledAttributes(
+ Xml.asAttributeSet(parser), R.styleable.Keyboard, R.attr.keyboardStyle,
+ R.style.Keyboard);
final TypedArray keyAttr = mResources.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard_Key);
try {
@@ -469,8 +473,8 @@ public class KeyboardParser {
try {
final boolean modeMatched = matchTypedValue(a,
R.styleable.Keyboard_Case_mode, id.mMode, KeyboardId.modeName(id.mMode));
- final boolean webInputMatched = matchBoolean(a,
- R.styleable.Keyboard_Case_webInput, id.mWebInput);
+ final boolean navigateActionMatched = matchBoolean(a,
+ R.styleable.Keyboard_Case_navigateAction, id.mNavigateAction);
final boolean passwordInputMatched = matchBoolean(a,
R.styleable.Keyboard_Case_passwordInput, id.mPasswordInput);
final boolean settingsKeyMatched = matchBoolean(a,
@@ -493,7 +497,7 @@ public class KeyboardParser {
R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
final boolean countryCodeMatched = matchString(a,
R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry());
- final boolean selected = modeMatched && webInputMatched && passwordInputMatched
+ final boolean selected = modeMatched && navigateActionMatched && passwordInputMatched
&& settingsKeyMatched && voiceEnabledMatched && voiceKeyMatched
&& colorSchemeMatched && imeActionMatched && localeCodeMatched
&& languageCodeMatched && countryCodeMatched;
@@ -503,7 +507,7 @@ public class KeyboardParser {
textAttr(KeyboardId.colorSchemeName(
viewAttr.getInt(
R.styleable.KeyboardView_colorScheme, -1)), "colorScheme"),
- booleanAttr(a, R.styleable.Keyboard_Case_webInput, "webInput"),
+ booleanAttr(a, R.styleable.Keyboard_Case_navigateAction, "navigateAction"),
booleanAttr(a, R.styleable.Keyboard_Case_passwordInput, "passwordInput"),
booleanAttr(a, R.styleable.Keyboard_Case_hasSettingsKey, "hasSettingsKey"),
booleanAttr(a, R.styleable.Keyboard_Case_voiceKeyEnabled, "voiceKeyEnabled"),
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 7c68c93f2..50c61ffae 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -57,6 +57,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
private SubtypeSwitcher mSubtypeSwitcher;
private SharedPreferences mPrefs;
+ private View mCurrentInputView;
private LatinKeyboardView mKeyboardView;
private LatinIME mInputMethodService;
@@ -201,7 +202,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
final Locale savedLocale = Utils.setSystemLocale(res,
mSubtypeSwitcher.getInputLocale());
- keyboard = new LatinKeyboard(mInputMethodService, id, id.mWidth);
+ final Context themeContext = new ContextThemeWrapper(mInputMethodService,
+ KEYBOARD_THEMES[mThemeIndex]);
+ keyboard = new LatinKeyboard(themeContext, id, id.mWidth);
if (id.mEnableShiftLock) {
keyboard.enableShiftLock();
@@ -294,7 +297,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
}
public boolean isInputViewShown() {
- return mKeyboardView != null && mKeyboardView.isShown();
+ return mCurrentInputView != null && mCurrentInputView.isShown();
}
public boolean isKeyboardAvailable() {
@@ -714,9 +717,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
return createInputView(mThemeIndex, true);
}
- // Instance variable only for {@link #createInputView(int, boolean)}.
- private View mCurrentInputView;
-
private View createInputView(final int newThemeIndex, final boolean forceRecreate) {
if (mCurrentInputView != null && mThemeIndex == newThemeIndex && !forceRecreate)
return mCurrentInputView;
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index f8bce40b1..44f2ff3ff 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -16,9 +16,6 @@
package com.android.inputmethod.keyboard;
-import com.android.inputmethod.latin.LatinImeLogger;
-import com.android.inputmethod.latin.R;
-
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
@@ -50,6 +47,9 @@ import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
+import com.android.inputmethod.latin.LatinImeLogger;
+import com.android.inputmethod.latin.R;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.WeakHashMap;
@@ -63,13 +63,18 @@ import java.util.WeakHashMap;
* @attr ref R.styleable#KeyboardView_keyBackground
* @attr ref R.styleable#KeyboardView_keyHysteresisDistance
* @attr ref R.styleable#KeyboardView_keyLetterRatio
- * @attr ref R.styleable#KeyboardView_keyLetterStyle
+ * @attr ref R.styleable#KeyboardView_keyLabelRatio
+ * @attr ref R.styleable#KeyboardView_keyHintLetterRatio
+ * @attr ref R.styleable#KeyboardView_keyUppercaseLetterRatio
+ * @attr ref R.styleable#KeyboardView_keyTextStyle
* @attr ref R.styleable#KeyboardView_keyPreviewLayout
* @attr ref R.styleable#KeyboardView_keyPreviewOffset
* @attr ref R.styleable#KeyboardView_keyPreviewHeight
* @attr ref R.styleable#KeyboardView_keyTextColor
* @attr ref R.styleable#KeyboardView_keyTextColorDisabled
- * @attr ref R.styleable#KeyboardView_labelTextRatio
+ * @attr ref R.styleable#KeyboardView_keyHintLetterColor
+ * @attr ref R.styleable#KeyboardView_keyUppercaseLetterInactivatedColor
+ * @attr ref R.styleable#KeyboardView_keyUppercaseLetterActivatedColor
* @attr ref R.styleable#KeyboardView_verticalCorrection
* @attr ref R.styleable#KeyboardView_popupLayout
* @attr ref R.styleable#KeyboardView_shadowColor
@@ -96,9 +101,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
// XML attribute
private final float mKeyLetterRatio;
private final int mKeyTextColor;
- private final int mKeyTextColorDisabled;
- private final Typeface mKeyLetterStyle;
- private final float mLabelTextRatio;
+ private final int mKeyTextInactivatedColor;
+ private final Typeface mKeyTextStyle;
+ private final float mKeyLabelRatio;
+ private final float mKeyHintLetterRatio;
+ private final float mKeyUppercaseLetterRatio;
private final int mColorScheme;
private final int mShadowColor;
private final float mShadowRadius;
@@ -109,11 +116,17 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
private final int mPreviewOffset;
private final int mPreviewHeight;
private final int mPopupLayout;
+ private final Drawable mKeyPopupHintIcon;
+ private final int mKeyHintLetterColor;
+ private final int mKeyUppercaseLetterInactivatedColor;
+ private final int mKeyUppercaseLetterActivatedColor;
// Main keyboard
private Keyboard mKeyboard;
private int mKeyLetterSize;
- private int mLabelTextSize;
+ private int mKeyLabelSize;
+ private int mKeyHintLetterSize;
+ private int mKeyUppercaseLetterSize;
// Key preview
private boolean mInForeground;
@@ -168,18 +181,17 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
private Bitmap mBuffer;
/** The canvas for the above mutable keyboard bitmap */
private Canvas mCanvas;
- private final Paint mPaint;
- private final Rect mPadding;
+ private final Paint mPaint = new Paint();
+ private final Rect mPadding = new Rect();
+ private final Rect mTextBounds = new Rect();
// This map caches key label text height in pixel as value and key label text size as map key.
private final HashMap<Integer, Integer> mTextHeightCache = new HashMap<Integer, Integer>();
+ // This map caches key label text width in pixel as value and key label text size as map key.
+ private final HashMap<Integer, Integer> mTextWidthCache = new HashMap<Integer, Integer>();
// Distance from horizontal center of the key, proportional to key label text height and width.
- private final float KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER = 0.45f;
- private final float KEY_LABEL_VERTICAL_PADDING_FACTOR = 1.60f;
- private final String KEY_LABEL_REFERENCE_CHAR = "H";
- private final int KEY_LABEL_OPTION_ALIGN_LEFT = 1;
- private final int KEY_LABEL_OPTION_ALIGN_RIGHT = 2;
- private final int KEY_LABEL_OPTION_ALIGN_BOTTOM = 8;
- private final int KEY_LABEL_OPTION_FONT_NORMAL = 16;
+ private static final float KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER = 0.45f;
+ private static final float KEY_LABEL_VERTICAL_PADDING_FACTOR = 1.60f;
+ private static final String KEY_LABEL_REFERENCE_CHAR = "M";
private final int mKeyLabelHorizontalPadding;
private final UIHandler mHandler = new UIHandler();
@@ -321,18 +333,28 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
mPreviewOffset = a.getDimensionPixelOffset(R.styleable.KeyboardView_keyPreviewOffset, 0);
mPreviewHeight = a.getDimensionPixelSize(R.styleable.KeyboardView_keyPreviewHeight, 80);
mKeyLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLetterRatio);
+ mKeyLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLabelRatio);
+ mKeyHintLetterRatio = getRatio(a, R.styleable.KeyboardView_keyHintLetterRatio);
+ mKeyUppercaseLetterRatio = getRatio(a,
+ R.styleable.KeyboardView_keyUppercaseLetterRatio);
mKeyTextColor = a.getColor(R.styleable.KeyboardView_keyTextColor, 0xFF000000);
- mKeyTextColorDisabled = a.getColor(
- R.styleable.KeyboardView_keyTextColorDisabled, 0xFF000000);
- mLabelTextRatio = getRatio(a, R.styleable.KeyboardView_labelTextRatio);
+ mKeyTextInactivatedColor = a.getColor(
+ R.styleable.KeyboardView_keyTextInactivatedColor, 0xFF000000);
+ mKeyPopupHintIcon = a.getDrawable(R.styleable.KeyboardView_keyPopupHintIcon);
+ mKeyHintLetterColor = a.getColor(R.styleable.KeyboardView_keyHintLetterColor, 0);
+ mKeyUppercaseLetterInactivatedColor = a.getColor(
+ R.styleable.KeyboardView_keyUppercaseLetterInactivatedColor, 0);
+ mKeyUppercaseLetterActivatedColor = a.getColor(
+ R.styleable.KeyboardView_keyUppercaseLetterActivatedColor, 0);
+ mKeyTextStyle = Typeface.defaultFromStyle(
+ a.getInt(R.styleable.KeyboardView_keyTextStyle, Typeface.NORMAL));
mPopupLayout = a.getResourceId(R.styleable.KeyboardView_popupLayout, 0);
mShadowColor = a.getColor(R.styleable.KeyboardView_shadowColor, 0);
mShadowRadius = a.getFloat(R.styleable.KeyboardView_shadowRadius, 0f);
// TODO: Use Theme (android.R.styleable.Theme_backgroundDimAmount)
mBackgroundDimAmount = a.getFloat(R.styleable.KeyboardView_backgroundDimAmount, 0.5f);
- mKeyLetterStyle = Typeface.defaultFromStyle(
- a.getInt(R.styleable.KeyboardView_keyLetterStyle, Typeface.NORMAL));
mColorScheme = a.getInt(R.styleable.KeyboardView_colorScheme, COLOR_SCHEME_WHITE);
+ a.recycle();
final Resources res = getResources();
@@ -347,12 +369,10 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
mKeyLabelHorizontalPadding = (int)res.getDimension(
R.dimen.key_label_horizontal_alignment_padding);
- mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setTextAlign(Align.CENTER);
mPaint.setAlpha(255);
- mPadding = new Rect(0, 0, 0, 0);
mKeyBackground.getPadding(mPadding);
mSwipeThreshold = (int) (500 * res.getDisplayMetrics().density);
@@ -496,7 +516,10 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
mPopupPanelCache.clear();
final int keyHeight = keyboard.getRowHeight() - keyboard.getVerticalGap();
mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio);
- mLabelTextSize = (int)(keyHeight * mLabelTextRatio);
+ mKeyLabelSize = (int)(keyHeight * mKeyLabelRatio);
+ mKeyHintLetterSize = (int)(keyHeight * mKeyHintLetterRatio);
+ mKeyUppercaseLetterSize = (int)(
+ keyHeight * mKeyUppercaseLetterRatio);
mPreviewTextSize = (int)(keyHeight * mPreviewTextRatio);
}
@@ -683,7 +706,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
// Vertical label text alignment.
final float baseline;
- if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_BOTTOM) != 0) {
+ if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_BOTTOM) != 0) {
baseline = key.mHeight - labelCharHeight * KEY_LABEL_VERTICAL_PADDING_FACTOR;
if (DEBUG_SHOW_ALIGN)
drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000,
@@ -697,12 +720,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
}
// Horizontal label text alignment
final int positionX;
- if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_LEFT) != 0) {
+ if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) {
positionX = mKeyLabelHorizontalPadding + padding.left;
paint.setTextAlign(Align.LEFT);
if (DEBUG_SHOW_ALIGN)
drawVerticalLine(canvas, positionX, rowHeight, 0xc0800080, new Paint());
- } else if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_RIGHT) != 0) {
+ } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) {
positionX = keyDrawWidth - mKeyLabelHorizontalPadding - padding.right;
paint.setTextAlign(Align.RIGHT);
if (DEBUG_SHOW_ALIGN)
@@ -715,8 +738,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
drawVerticalLine(canvas, positionX, rowHeight, 0xc0008080, new Paint());
}
}
- if (key.mManualTemporaryUpperCaseHintIcon != null && isManualTemporaryUpperCase) {
- paint.setColor(mKeyTextColorDisabled);
+ if (key.hasUppercaseLetter() && isManualTemporaryUpperCase) {
+ paint.setColor(mKeyTextInactivatedColor);
} else {
paint.setColor(mKeyTextColor);
}
@@ -732,6 +755,27 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
paint.setShadowLayer(0, 0, 0, 0);
}
+ // Draw hint letter.
+ if (key.mHintLetter != null) {
+ final String label = key.mHintLetter.toString();
+ final int textColor;
+ final int textSize;
+ if (key.hasUppercaseLetter()) {
+ textColor = isManualTemporaryUpperCase ? mKeyUppercaseLetterActivatedColor
+ : mKeyUppercaseLetterInactivatedColor;
+ textSize = mKeyUppercaseLetterSize;
+ } else {
+ textColor = mKeyHintLetterColor;
+ textSize = mKeyHintLetterSize;
+ }
+ paint.setColor(textColor);
+ paint.setTextSize(textSize);
+ // Note: padding.right for drawX?
+ final float drawX = keyDrawWidth - getLabelCharWidth(textSize, paint);
+ final float drawY = -paint.ascent() + padding.top;
+ canvas.drawText(label, drawX, drawY, paint);
+ }
+
// Draw key icon.
final Drawable icon = key.getIcon();
if (key.mLabel == null && icon != null) {
@@ -739,11 +783,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
final int drawableHeight = icon.getIntrinsicHeight();
final int drawableX;
final int drawableY = (key.mHeight + padding.top - padding.bottom - drawableHeight) / 2;
- if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_LEFT) != 0) {
+ if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) {
drawableX = padding.left + mKeyLabelHorizontalPadding;
if (DEBUG_SHOW_ALIGN)
drawVerticalLine(canvas, drawableX, rowHeight, 0xc0800080, new Paint());
- } else if ((key.mLabelOption & KEY_LABEL_OPTION_ALIGN_RIGHT) != 0) {
+ } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) {
drawableX = keyDrawWidth - padding.right - mKeyLabelHorizontalPadding
- drawableWidth;
if (DEBUG_SHOW_ALIGN)
@@ -761,15 +805,14 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
0x80c00000, new Paint());
}
- // Draw hint icon.
- if (key.mHintIcon != null) {
+ // Draw popup hint icon "...".
+ // TODO: Draw "..." by text.
+ if (key.hasPopupHint()) {
final int drawableWidth = keyDrawWidth;
final int drawableHeight = key.mHeight;
final int drawableX = 0;
final int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL;
- Drawable hintIcon = (isManualTemporaryUpperCase
- && key.mManualTemporaryUpperCaseHintIcon != null)
- ? key.mManualTemporaryUpperCaseHintIcon : key.mHintIcon;
+ final Drawable hintIcon = mKeyPopupHintIcon;
drawIcon(canvas, hintIcon, drawableX, drawableY, drawableWidth, drawableHeight);
if (DEBUG_SHOW_ALIGN)
drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight,
@@ -784,15 +827,15 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
final int labelSize;
final Typeface labelStyle;
if (label.length() > 1) {
- labelSize = mLabelTextSize;
- if ((keyLabelOption & KEY_LABEL_OPTION_FONT_NORMAL) != 0) {
+ labelSize = mKeyLabelSize;
+ if ((keyLabelOption & Key.LABEL_OPTION_FONT_NORMAL) != 0) {
labelStyle = Typeface.DEFAULT;
} else {
labelStyle = Typeface.DEFAULT_BOLD;
}
} else {
labelSize = mKeyLetterSize;
- labelStyle = mKeyLetterStyle;
+ labelStyle = mKeyTextStyle;
}
paint.setTextSize(labelSize);
paint.setTypeface(labelStyle);
@@ -805,14 +848,26 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
if (labelHeightValue != null) {
labelCharHeight = labelHeightValue;
} else {
- Rect textBounds = new Rect();
- paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, textBounds);
- labelCharHeight = textBounds.height();
+ paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds);
+ labelCharHeight = mTextBounds.height();
mTextHeightCache.put(labelSize, labelCharHeight);
}
return labelCharHeight;
}
+ private int getLabelCharWidth(int labelSize, Paint paint) {
+ Integer labelWidthValue = mTextWidthCache.get(labelSize);
+ final int labelCharWidth;
+ if (labelWidthValue != null) {
+ labelCharWidth = labelWidthValue;
+ } else {
+ paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds);
+ labelCharWidth = mTextBounds.width();
+ mTextWidthCache.put(labelSize, labelCharWidth);
+ }
+ return labelCharWidth;
+ }
+
private static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width,
int height) {
canvas.translate(x, y);
@@ -935,7 +990,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
previewText.setTypeface(Typeface.DEFAULT_BOLD);
} else {
previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSize);
- previewText.setTypeface(mKeyLetterStyle);
+ previewText.setTypeface(mKeyTextStyle);
}
} else {
final Drawable previewIcon = key.getPreviewIcon();
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
index fe27ab412..a6ac76751 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
@@ -57,9 +57,9 @@ public class LatinKeyboard extends Keyboard {
private final Drawable mSpaceIcon;
private final Drawable mSpacePreviewIcon;
private final int mSpaceKeyIndex;
- private final Drawable mSpaceAutoCorrectionIndicator;
- private final Drawable mButtonArrowLeftIcon;
- private final Drawable mButtonArrowRightIcon;
+ private final Drawable mAutoCorrectionSpacebarLedIcon;
+ private final Drawable mSpacebarArrowLeftIcon;
+ private final Drawable mSpacebarArrowRightIcon;
private final int mSpacebarTextColor;
private final int mSpacebarTextShadowColor;
private float mSpacebarTextFadeFactor = 0.0f;
@@ -90,7 +90,6 @@ public class LatinKeyboard extends Keyboard {
public LatinKeyboard(Context context, KeyboardId id, int width) {
super(context, id.getXmlId(), id, width);
- final Resources res = context.getResources();
mContext = context;
final List<Key> keys = getKeys();
@@ -118,19 +117,20 @@ public class LatinKeyboard extends Keyboard {
mShortcutKey = (shortcutKeyIndex >= 0) ? keys.get(shortcutKeyIndex) : null;
mEnabledShortcutIcon = (mShortcutKey != null) ? mShortcutKey.getIcon() : null;
- mSpacebarTextColor = res.getColor(R.color.latinkeyboard_bar_language_text);
- if (id.mColorScheme == KeyboardView.COLOR_SCHEME_BLACK) {
- mSpacebarTextShadowColor = res.getColor(
- R.color.latinkeyboard_bar_language_shadow_black);
- mDisabledShortcutIcon = res.getDrawable(R.drawable.sym_bkeyboard_voice_off);
- } else { // default color scheme is KeyboardView.COLOR_SCHEME_WHITE
- mSpacebarTextShadowColor = res.getColor(
- R.color.latinkeyboard_bar_language_shadow_white);
- mDisabledShortcutIcon = res.getDrawable(R.drawable.sym_keyboard_voice_off_holo);
- }
- mSpaceAutoCorrectionIndicator = res.getDrawable(R.drawable.sym_keyboard_space_led);
- mButtonArrowLeftIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_left);
- mButtonArrowRightIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_right);
+ final TypedArray a = context.obtainStyledAttributes(
+ null, R.styleable.LatinKeyboard, R.attr.latinKeyboardStyle, R.style.LatinKeyboard);
+ mAutoCorrectionSpacebarLedIcon = a.getDrawable(
+ R.styleable.LatinKeyboard_autoCorrectionSpacebarLedIcon);
+ mDisabledShortcutIcon = a.getDrawable(R.styleable.LatinKeyboard_disabledShortcutIcon);
+ mSpacebarTextColor = a.getColor(R.styleable.LatinKeyboard_spacebarTextColor, 0);
+ mSpacebarTextShadowColor = a.getColor(
+ R.styleable.LatinKeyboard_spacebarTextShadowColor, 0);
+ mSpacebarArrowLeftIcon = a.getDrawable(
+ R.styleable.LatinKeyboard_spacebarArrowLeftIcon);
+ mSpacebarArrowRightIcon = a.getDrawable(
+ R.styleable.LatinKeyboard_spacebarArrowRightIcon);
+ a.recycle();
+
// The threshold is "key width" x 1.25
mSpacebarLanguageSwitchThreshold = (getMostCommonKeyWidth() * 5) / 4;
}
@@ -163,6 +163,10 @@ public class LatinKeyboard extends Keyboard {
view.invalidateKey(mShortcutKey);
}
+ public boolean needsAutoCorrectionSpacebarLed() {
+ return mAutoCorrectionSpacebarLedIcon != null;
+ }
+
/**
* @return a key which should be invalidated.
*/
@@ -282,7 +286,7 @@ public class LatinKeyboard extends Keyboard {
}
final String language = layoutSpacebar(paint, inputLocale,
- mButtonArrowLeftIcon, mButtonArrowRightIcon, width, height,
+ mSpacebarArrowLeftIcon, mSpacebarArrowRightIcon, width, height,
getTextSizeFromTheme(mContext.getTheme(), textStyle, defaultTextSize));
// Draw language text with shadow
@@ -303,21 +307,21 @@ public class LatinKeyboard extends Keyboard {
if (mSubtypeSwitcher.useSpacebarLanguageSwitcher()
&& mSubtypeSwitcher.getEnabledKeyboardLocaleCount() > 1
&& !(isPhoneKeyboard() || isNumberKeyboard())) {
- mButtonArrowLeftIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor));
- mButtonArrowRightIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor));
- mButtonArrowLeftIcon.draw(canvas);
- mButtonArrowRightIcon.draw(canvas);
+ mSpacebarArrowLeftIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor));
+ mSpacebarArrowRightIcon.setColorFilter(getSpacebarDrawableFilter(textFadeFactor));
+ mSpacebarArrowLeftIcon.draw(canvas);
+ mSpacebarArrowRightIcon.draw(canvas);
}
}
// Draw the spacebar icon at the bottom
if (isAutoCorrection) {
final int iconWidth = width * SPACE_LED_LENGTH_PERCENT / 100;
- final int iconHeight = mSpaceAutoCorrectionIndicator.getIntrinsicHeight();
+ final int iconHeight = mAutoCorrectionSpacebarLedIcon.getIntrinsicHeight();
int x = (width - iconWidth) / 2;
int y = height - iconHeight;
- mSpaceAutoCorrectionIndicator.setBounds(x, y, x + iconWidth, y + iconHeight);
- mSpaceAutoCorrectionIndicator.draw(canvas);
+ mAutoCorrectionSpacebarLedIcon.setBounds(x, y, x + iconWidth, y + iconHeight);
+ mAutoCorrectionSpacebarLedIcon.draw(canvas);
} else if (mSpaceIcon != null) {
final int iconWidth = mSpaceIcon.getIntrinsicWidth();
final int iconHeight = mSpaceIcon.getIntrinsicHeight();
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 6b4e9469f..397ac7eec 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -22,6 +22,7 @@ import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.SubtypeSwitcher;
import android.content.res.Resources;
+import android.os.SystemClock;
import android.util.Log;
import android.view.MotionEvent;
@@ -540,8 +541,11 @@ public class PointerTracker {
public void onLongPressed(PointerTrackerQueue queue) {
mKeyAlreadyProcessed = true;
- if (queue != null)
+ if (queue != null) {
+ // TODO: Support chording + long-press input.
+ queue.releaseAllPointersExcept(this, SystemClock.uptimeMillis(), true);
queue.remove(this);
+ }
}
public void onCancelEvent(int x, int y, long eventTime, PointerTrackerQueue queue) {
@@ -635,8 +639,7 @@ public class PointerTracker {
Key key = getKey(keyIndex);
if (key.mCode == Keyboard.CODE_SHIFT) {
mHandler.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this);
- } else if (key.mManualTemporaryUpperCaseCode != Keyboard.CODE_DUMMY
- && mKeyboard.isManualTemporaryUpperCase()) {
+ } else if (key.hasUppercaseLetter() && mKeyboard.isManualTemporaryUpperCase()) {
// We need not start long press timer on the key which has manual temporary upper case
// code defined and the keyboard is in manual temporary upper case mode.
return;
@@ -663,10 +666,9 @@ public class PointerTracker {
mKeyDetector.getKeyIndexAndNearbyCodes(x, y, codes);
// If keyboard is in manual temporary upper case state and key has manual temporary
- // shift code, alternate character code should be sent.
- if (mKeyboard.isManualTemporaryUpperCase()
- && key.mManualTemporaryUpperCaseCode != Keyboard.CODE_DUMMY) {
- code = key.mManualTemporaryUpperCaseCode;
+ // uppercase letter as key hint letter, alternate character code should be sent.
+ if (mKeyboard.isManualTemporaryUpperCase() && key.hasUppercaseLetter()) {
+ code = key.mHintLetter.charAt(0);
codes[0] = code;
}
diff --git a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
index 60d87f789..ff64c73cd 100644
--- a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
@@ -37,7 +37,6 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
private int mOriginX;
private int mOriginY;
- private int mTrackerId;
private long mDownTime;
public PopupMiniKeyboardView(Context context, AttributeSet attrs) {
@@ -98,30 +97,19 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
mOriginX = x + container.getPaddingLeft() - mCoordinates[0];
mOriginY = y + container.getPaddingTop() - mCoordinates[1];
- mTrackerId = tracker.mPointerId;
mDownTime = SystemClock.uptimeMillis();
// Inject down event on the key to mini keyboard.
- final MotionEvent downEvent = translateMotionEvent(MotionEvent.ACTION_DOWN, pointX,
- pointY + parentKey.mHeight / 2, mDownTime);
+ final MotionEvent downEvent = MotionEvent.obtain(mDownTime, mDownTime,
+ MotionEvent.ACTION_DOWN, pointX - mOriginX,
+ pointY + parentKey.mHeight / 2 - mOriginY, 0);
onTouchEvent(downEvent);
downEvent.recycle();
}
- private MotionEvent translateMotionEvent(int action, float x, float y, long eventTime) {
- return MotionEvent.obtain(mDownTime, eventTime, action, x - mOriginX, y - mOriginY, 0);
- }
-
@Override
public boolean onTouchEvent(MotionEvent me) {
- final int index = me.getActionIndex();
- final int id = me.getPointerId(index);
- if (id == mTrackerId) {
- final MotionEvent translated = translateMotionEvent(me.getAction(), me.getX(index),
- me.getY(index), me.getEventTime());
- super.onTouchEvent(translated);
- translated.recycle();
- }
- return true;
+ me.offsetLocation(-mOriginX, -mOriginY);
+ return super.onTouchEvent(me);
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java b/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java
index 5cf31cb14..a20bf1cd3 100644
--- a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java
+++ b/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java
@@ -16,22 +16,21 @@
package com.android.inputmethod.keyboard;
-import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.SubtypeSwitcher;
-
import android.content.Context;
-import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
-import android.graphics.PixelFormat;
import android.graphics.Paint.Align;
+import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.text.TextPaint;
import android.view.ViewConfiguration;
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.SubtypeSwitcher;
+
/**
* Animation to be displayed on the spacebar preview popup when switching languages by swiping the
* spacebar. It draws the current, previous and next languages and moves them by the delta of touch
@@ -39,16 +38,16 @@ import android.view.ViewConfiguration;
*/
public class SlidingLocaleDrawable extends Drawable {
private static final int SLIDE_SPEED_MULTIPLIER_RATIO = 150;
- private final Context mContext;
- private final Resources mRes;
private final int mWidth;
private final int mHeight;
private final Drawable mBackground;
+ private final int mSpacebarTextColor;
private final TextPaint mTextPaint;
private final int mMiddleX;
private final Drawable mLeftDrawable;
private final Drawable mRightDrawable;
private final int mThreshold;
+
private int mDiff;
private boolean mHitThreshold;
private String mCurrentLanguage;
@@ -56,29 +55,31 @@ public class SlidingLocaleDrawable extends Drawable {
private String mPrevLanguage;
public SlidingLocaleDrawable(Context context, Drawable background, int width, int height) {
- mContext = context;
- mRes = context.getResources();
mBackground = background;
Keyboard.setDefaultBounds(mBackground);
mWidth = width;
mHeight = height;
final TextPaint textPaint = new TextPaint();
- textPaint.setTextSize(getTextSizeFromTheme(android.R.style.TextAppearance_Medium, 18));
+ textPaint.setTextSize(getTextSizeFromTheme(
+ context, android.R.style.TextAppearance_Medium, 18));
textPaint.setColor(Color.TRANSPARENT);
textPaint.setTextAlign(Align.CENTER);
textPaint.setAntiAlias(true);
mTextPaint = textPaint;
mMiddleX = (mWidth - mBackground.getIntrinsicWidth()) / 2;
- final Resources res = mRes;
- mLeftDrawable = res.getDrawable(
- R.drawable.sym_keyboard_feedback_language_arrows_left);
- mRightDrawable = res.getDrawable(
- R.drawable.sym_keyboard_feedback_language_arrows_right);
- mThreshold = ViewConfiguration.get(mContext).getScaledTouchSlop();
+
+ final TypedArray a = context.obtainStyledAttributes(
+ null, R.styleable.LatinKeyboard, R.attr.latinKeyboardStyle, R.style.LatinKeyboard);
+ mSpacebarTextColor = a.getColor(R.styleable.LatinKeyboard_spacebarTextColor, 0);
+ mLeftDrawable = a.getDrawable(R.styleable.LatinKeyboard_spacebarArrowPreviewLeftIcon);
+ mRightDrawable = a.getDrawable(R.styleable.LatinKeyboard_spacebarArrowPreviewRightIcon);
+ a.recycle();
+
+ mThreshold = ViewConfiguration.get(context).getScaledTouchSlop();
}
- private int getTextSizeFromTheme(int style, int defValue) {
- TypedArray array = mContext.getTheme().obtainStyledAttributes(
+ private static int getTextSizeFromTheme(Context context, int style, int defValue) {
+ TypedArray array = context.getTheme().obtainStyledAttributes(
style, new int[] { android.R.attr.textSize });
int textSize = array.getDimensionPixelSize(array.getResourceId(0, 0), defValue);
return textSize;
@@ -118,7 +119,7 @@ public class SlidingLocaleDrawable extends Drawable {
// Draw language text with shadow
final float baseline = mHeight * LatinKeyboard.SPACEBAR_LANGUAGE_BASELINE
- paint.descent();
- paint.setColor(mRes.getColor(R.color.latinkeyboard_feedback_language_text));
+ paint.setColor(mSpacebarTextColor);
canvas.drawText(mCurrentLanguage, width / 2 + diff, baseline, paint);
canvas.drawText(mNextLanguage, diff - width / 2, baseline, paint);
canvas.drawText(mPrevLanguage, diff + width + width / 2, baseline, paint);
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index b4f6b2c91..2a29e1f8f 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -18,6 +18,7 @@ package com.android.inputmethod.latin;
import android.content.Context;
import android.content.res.Resources;
+import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Handler;
@@ -38,6 +39,7 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
@@ -56,16 +58,29 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD);
private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
- private static final int MAX_SUGGESTIONS = 16;
+ // The maximum number of suggestions available. See {@link Suggest#mPrefMaxSuggestions}.
+ private static final int MAX_SUGGESTIONS = 18;
+ private static final int UNSPECIFIED_MEASURESPEC = MeasureSpec.makeMeasureSpec(
+ 0, MeasureSpec.UNSPECIFIED);
private static final boolean DBG = LatinImeLogger.sDBG;
+ private static final int NUM_CANDIDATES_IN_STRIP = 3;
+ private final ImageView mExpandCandidatesPane;
+ private final ImageView mCloseCandidatesPane;
+ private ViewGroup mCandidatesPane;
+ private ViewGroup mCandidatesPaneContainer;
+ private View mKeyboardView;
private final ArrayList<TextView> mWords = new ArrayList<TextView>();
private final ArrayList<View> mDividers = new ArrayList<View>();
private final int mCandidatePadding;
- private final boolean mConfigCandidateHighlightFontColorEnabled;
+ private final int mCandidateStripHeight;
private final CharacterStyle mInvertedForegroundColorSpan;
private final CharacterStyle mInvertedBackgroundColorSpan;
+ private final int mAutoCorrectHighlight;
+ private static final int AUTO_CORRECT_BOLD = 0x01;
+ private static final int AUTO_CORRECT_UNDERLINE = 0x02;
+ private static final int AUTO_CORRECT_INVERT = 0x04;
private final int mColorTypedWord;
private final int mColorAutoCorrect;
private final int mColorSuggestedCandidate;
@@ -129,27 +144,44 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
* @param attrs
*/
public CandidateView(Context context, AttributeSet attrs) {
- super(context, attrs);
+ this(context, attrs, R.attr.candidateViewStyle);
+ }
+
+ public CandidateView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
Resources res = context.getResources();
- mPreviewPopup = new PopupWindow(context);
LayoutInflater inflater = LayoutInflater.from(context);
+ inflater.inflate(R.layout.candidates_strip, this);
+
+ mPreviewPopup = new PopupWindow(context);
mPreviewText = (TextView) inflater.inflate(R.layout.candidate_preview, null);
mPreviewPopup.setWindowLayoutMode(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
mPreviewPopup.setContentView(mPreviewText);
mPreviewPopup.setBackgroundDrawable(null);
- mConfigCandidateHighlightFontColorEnabled =
- res.getBoolean(R.bool.config_candidate_highlight_font_color_enabled);
- mColorTypedWord = res.getColor(R.color.candidate_typed_word);
- mColorAutoCorrect = res.getColor(R.color.candidate_auto_correct);
- mColorSuggestedCandidate = res.getColor(R.color.candidate_suggested);
- mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorTypedWord ^ 0x00ffffff);
- mInvertedBackgroundColorSpan = new BackgroundColorSpan(mColorTypedWord);
mCandidatePadding = res.getDimensionPixelOffset(R.dimen.candidate_padding);
+ mCandidateStripHeight = res.getDimensionPixelOffset(R.dimen.candidate_strip_height);
for (int i = 0; i < MAX_SUGGESTIONS; i++) {
- final TextView tv = (TextView)inflater.inflate(R.layout.candidate, null);
+ final TextView tv;
+ switch (i) {
+ case 0:
+ tv = (TextView)findViewById(R.id.candidate_left);
+ tv.setPadding(mCandidatePadding, 0, 0, 0);
+ break;
+ case 1:
+ tv = (TextView)findViewById(R.id.candidate_center);
+ break;
+ case 2:
+ tv = (TextView)findViewById(R.id.candidate_right);
+ break;
+ default:
+ tv = (TextView)inflater.inflate(R.layout.candidate, null);
+ break;
+ }
+ if (i < NUM_CANDIDATES_IN_STRIP)
+ setLayoutWeight(tv, 1.0f);
tv.setTag(i);
tv.setOnClickListener(this);
if (i == 0)
@@ -157,19 +189,53 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mWords.add(tv);
if (i > 0) {
final View divider = inflater.inflate(R.layout.candidate_divider, null);
+ divider.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC);
mDividers.add(divider);
}
}
- scrollTo(0, getScrollY());
+ final TypedArray a = context.obtainStyledAttributes(
+ attrs, R.styleable.CandidateView, defStyle, R.style.CandidateViewStyle);
+ mAutoCorrectHighlight = a.getInt(R.styleable.CandidateView_autoCorrectHighlight, 0);
+ mColorTypedWord = a.getColor(R.styleable.CandidateView_colorTypedWord, 0);
+ mColorAutoCorrect = a.getColor(R.styleable.CandidateView_colorAutoCorrect, 0);
+ mColorSuggestedCandidate = a.getColor(R.styleable.CandidateView_colorSuggested, 0);
+ mInvertedForegroundColorSpan = new ForegroundColorSpan(mColorTypedWord ^ 0x00ffffff);
+ mInvertedBackgroundColorSpan = new BackgroundColorSpan(mColorTypedWord);
+
+ mExpandCandidatesPane = (ImageView)findViewById(R.id.expand_candidates_pane);
+ mExpandCandidatesPane.setImageDrawable(
+ a.getDrawable(R.styleable.CandidateView_iconExpandPane));
+ mExpandCandidatesPane.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ expandCandidatesPane();
+ }
+ });
+ mCloseCandidatesPane = (ImageView)findViewById(R.id.close_candidates_pane);
+ mCloseCandidatesPane.setImageDrawable(
+ a.getDrawable(R.styleable.CandidateView_iconClosePane));
+ mCloseCandidatesPane.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ closeCandidatesPane();
+ }
+ });
+
+ a.recycle();
}
/**
* A connection back to the input method.
* @param listener
*/
- public void setListener(Listener listener) {
+ public void setListener(Listener listener, View inputView) {
mListener = listener;
+ mKeyboardView = inputView.findViewById(R.id.keyboard_view);
+ mCandidatesPane = (ViewGroup)inputView.findViewById(R.id.candidates_pane);
+ mCandidatesPane.setOnClickListener(this);
+ mCandidatesPaneContainer = (ViewGroup)inputView.findViewById(
+ R.id.candidates_pane_container);
}
public void setSuggestions(SuggestedWords suggestions) {
@@ -183,22 +249,32 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
}
}
+ private static void setLayoutWeight(View v, float weight) {
+ ViewGroup.LayoutParams lp = v.getLayoutParams();
+ if (lp instanceof LinearLayout.LayoutParams) {
+ LinearLayout.LayoutParams llp = (LinearLayout.LayoutParams)lp;
+ llp.width = 0;
+ llp.weight = weight;
+ }
+ }
+
private CharSequence getStyledCandidateWord(CharSequence word, boolean isAutoCorrect) {
if (!isAutoCorrect)
return word;
- final CharacterStyle style = mConfigCandidateHighlightFontColorEnabled ? BOLD_SPAN
- : UNDERLINE_SPAN;
final Spannable spannedWord = new SpannableString(word);
- spannedWord.setSpan(style, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ if ((mAutoCorrectHighlight & AUTO_CORRECT_BOLD) != 0)
+ spannedWord.setSpan(BOLD_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ if ((mAutoCorrectHighlight & AUTO_CORRECT_UNDERLINE) != 0)
+ spannedWord.setSpan(UNDERLINE_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
return spannedWord;
}
private int getCandidateTextColor(boolean isAutoCorrect, boolean isSuggestedCandidate,
SuggestedWordInfo info) {
final int color;
- if (isAutoCorrect && mConfigCandidateHighlightFontColorEnabled) {
+ if (isAutoCorrect) {
color = mColorAutoCorrect;
- } else if (isSuggestedCandidate && mConfigCandidateHighlightFontColorEnabled) {
+ } else if (isSuggestedCandidate) {
color = mColorSuggestedCandidate;
} else {
color = mColorTypedWord;
@@ -216,7 +292,14 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final List<SuggestedWordInfo> suggestedWordInfoList = suggestions.mSuggestedWordInfoList;
clear();
+ final int paneWidth = getWidth();
+ final int dividerWidth = mDividers.get(0).getMeasuredWidth();
+ int x = 0;
+ int y = 0;
+ int fromIndex = NUM_CANDIDATES_IN_STRIP;
final int count = Math.min(mWords.size(), suggestions.size());
+ closeCandidatesPane();
+ mExpandCandidatesPane.setEnabled(count >= NUM_CANDIDATES_IN_STRIP);
for (int i = 0; i < count; i++) {
final CharSequence word = suggestions.getWord(i);
if (word == null) continue;
@@ -233,39 +316,97 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final boolean isPunctuationSuggestions = (word.length() == 1 && count > 1);
final TextView tv = mWords.get(i);
+ // TODO: Reorder candidates in strip as appropriate. The center candidate should hold
+ // the word when space is typed (valid typed word or auto corrected word).
tv.setTextColor(getCandidateTextColor(isAutoCorrect,
isSuggestedCandidate || isPunctuationSuggestions, info));
tv.setText(getStyledCandidateWord(word, isAutoCorrect));
- if (i == 0) {
- tv.setPadding(mCandidatePadding, 0, 0, 0);
- } else if (i == count - 1) {
- tv.setPadding(0, 0, mCandidatePadding, 0);
- } else {
- tv.setPadding(0, 0, 0, 0);
+ // TODO: call TextView.setTextScaleX() to fit the candidate in single line.
+ if (i >= NUM_CANDIDATES_IN_STRIP) {
+ tv.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC);
+ final int width = tv.getMeasuredWidth();
+ // TODO: Handle overflow case.
+ if (dividerWidth + x + width >= paneWidth) {
+ centeringCandidates(fromIndex, i - 1, x, paneWidth);
+ x = 0;
+ y += mCandidateStripHeight;
+ fromIndex = i;
+ }
+ if (x != 0) {
+ final View divider = mDividers.get(i - NUM_CANDIDATES_IN_STRIP);
+ mCandidatesPane.addView(divider);
+ placeCandidateAt(divider, x, y);
+ x += dividerWidth;
+ }
+ mCandidatesPane.addView(tv);
+ placeCandidateAt(tv, x, y);
+ x += width;
}
- if (i > 0)
- addView(mDividers.get(i - 1));
- addView(tv);
if (DBG && info != null) {
final TextView dv = new TextView(getContext(), null);
dv.setTextSize(10.0f);
dv.setTextColor(0xff808080);
dv.setText(info.getDebugString());
- addView(dv);
+ // TODO: debug view for candidate strip needed.
+ mCandidatesPane.addView(dv);
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)dv.getLayoutParams();
lp.gravity = Gravity.BOTTOM;
}
}
+ if (x != 0) {
+ // Centering last candidates row.
+ centeringCandidates(fromIndex, count - 1, x, paneWidth);
+ }
+ }
+
+ private void placeCandidateAt(View v, int x, int y) {
+ ViewGroup.LayoutParams lp = v.getLayoutParams();
+ if (lp instanceof ViewGroup.MarginLayoutParams) {
+ ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams)lp;
+ mlp.width = v.getMeasuredWidth();
+ mlp.height = v.getMeasuredHeight();
+ mlp.setMargins(x, y + (mCandidateStripHeight - mlp.height) / 2, 0, 0);
+ }
+ }
- scrollTo(0, getScrollY());
- requestLayout();
+ private void centeringCandidates(int from, int to, int width, int paneWidth) {
+ final ViewGroup pane = mCandidatesPane;
+ final int fromIndex = pane.indexOfChild(mWords.get(from));
+ final int toIndex = pane.indexOfChild(mWords.get(to));
+ final int offset = (paneWidth - width) / 2;
+ for (int index = fromIndex; index <= toIndex; index++) {
+ offsetMargin(pane.getChildAt(index), offset, 0);
+ }
+ }
+
+ private static void offsetMargin(View v, int dx, int dy) {
+ if (v == null)
+ return;
+ ViewGroup.LayoutParams lp = v.getLayoutParams();
+ if (lp instanceof ViewGroup.MarginLayoutParams) {
+ ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams)lp;
+ mlp.setMargins(mlp.leftMargin + dx, mlp.topMargin + dy, 0, 0);
+ }
+ }
+
+ private void expandCandidatesPane() {
+ mExpandCandidatesPane.setVisibility(View.GONE);
+ mCloseCandidatesPane.setVisibility(View.VISIBLE);
+ mCandidatesPaneContainer.setMinimumHeight(mKeyboardView.getMeasuredHeight());
+ mCandidatesPaneContainer.setVisibility(View.VISIBLE);
+ mKeyboardView.setVisibility(View.GONE);
+ }
+
+ private void closeCandidatesPane() {
+ mExpandCandidatesPane.setVisibility(View.VISIBLE);
+ mCloseCandidatesPane.setVisibility(View.GONE);
+ mCandidatesPaneContainer.setVisibility(View.GONE);
+ mKeyboardView.setVisibility(View.VISIBLE);
}
public void onAutoCorrectionInverted(CharSequence autoCorrectedWord) {
- // Displaying auto corrected word as inverted is enabled only when highlighting candidate
- // with color is disabled.
- if (mConfigCandidateHighlightFontColorEnabled)
+ if ((mAutoCorrectHighlight & AUTO_CORRECT_INVERT) == 0)
return;
final TextView tv = mWords.get(1);
final Spannable word = new SpannableString(autoCorrectedWord);
@@ -278,10 +419,6 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mShowingAutoCorrectionInverted = true;
}
- public boolean isConfigCandidateHighlightFontColorEnabled() {
- return mConfigCandidateHighlightFontColorEnabled;
- }
-
public boolean isShowingAddToDictionaryHint() {
return mShowingAddToDictionary;
}
@@ -310,7 +447,9 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
public void clear() {
mShowingAddToDictionary = false;
mShowingAutoCorrectionInverted = false;
- removeAllViews();
+ for (int i = 0; i < NUM_CANDIDATES_IN_STRIP; i++)
+ mWords.get(i).setText(null);
+ mCandidatesPane.removeAllViews();
}
private void hidePreview() {
@@ -349,9 +488,13 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
@Override
public boolean onLongClick(View view) {
- final int index = (Integer) view.getTag();
+ final Object tag = view.getTag();
+ if (!(tag instanceof Integer))
+ return true;
+ final int index = (Integer) tag;
if (index >= mSuggestions.size())
return true;
+
final CharSequence word = mSuggestions.getWord(index);
if (word.length() < 2)
return false;
@@ -361,15 +504,22 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
@Override
public void onClick(View view) {
- final int index = (Integer) view.getTag();
+ final Object tag = view.getTag();
+ if (!(tag instanceof Integer))
+ return;
+ final int index = (Integer) tag;
if (index >= mSuggestions.size())
return;
+
final CharSequence word = mSuggestions.getWord(index);
if (mShowingAddToDictionary && index == 0) {
addToDictionary(word);
} else {
mListener.pickSuggestionManually(index, word);
}
+ // Because some punctuation letters are not treated as word separator depending on locale,
+ // {@link #setSuggestions} might not be called and candidates pane left opened.
+ closeCandidatesPane();
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index 3fcb6ed55..5e7de3e6b 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -54,8 +54,8 @@ public class DictionaryCollection extends Dictionary {
@Override
public boolean isValidWord(CharSequence word) {
- for (final Dictionary dict : mDictionaries)
- if (dict.isValidWord(word)) return true;
+ for (int i = mDictionaries.size() - 1; i >= 0; --i)
+ if (mDictionaries.get(i).isValidWord(word)) return true;
return false;
}
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 940f6b835..87912eb00 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -502,7 +502,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
super.setInputView(view);
mCandidateViewContainer = view.findViewById(R.id.candidates_container);
mCandidateView = (CandidateView) view.findViewById(R.id.candidates);
- mCandidateView.setListener(this);
+ mCandidateView.setListener(this, view);
mCandidateStripHeight = (int)mResources.getDimension(R.dimen.candidate_strip_height);
}
@@ -1464,7 +1464,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
if (mCandidateView != null) {
mCandidateView.setSuggestions(words);
- if (mCandidateView.isConfigCandidateHighlightFontColorEnabled()) {
+ if (mKeyboardSwitcher.getLatinKeyboard().needsAutoCorrectionSpacebarLed()) {
mKeyboardSwitcher.onAutoCorrectionStateChanged(
words.hasWordAboveAutoCorrectionScoreThreshold());
}
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 33f9820cc..62788fb9e 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -84,7 +84,7 @@ public class Suggest implements Dictionary.WordCallback {
private final Map<String, Dictionary> mUnigramDictionaries = new HashMap<String, Dictionary>();
private final Map<String, Dictionary> mBigramDictionaries = new HashMap<String, Dictionary>();
- private int mPrefMaxSuggestions = 12;
+ private int mPrefMaxSuggestions = 18;
private static final int PREF_MAX_BIGRAMS = 60;