diff options
Diffstat (limited to 'java')
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 Binary files differnew file mode 100644 index 000000000..6df00f229 --- /dev/null +++ b/java/res/drawable-hdpi/btn_close_candidates_pane.9.png diff --git a/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png b/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..63015ec5b --- /dev/null +++ b/java/res/drawable-hdpi/btn_expand_candidates_pane.9.png diff --git a/java/res/drawable-hdpi/key_hint_at_holo.9.png b/java/res/drawable-hdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index b93c2d3cf..000000000 --- a/java/res/drawable-hdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_at_large_holo.9.png b/java/res/drawable-hdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index 2b9295158..000000000 --- a/java/res/drawable-hdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_colon_holo.9.png b/java/res/drawable-hdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index 8fa17e583..000000000 --- a/java/res/drawable-hdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index 1271341e6..000000000 --- a/java/res/drawable-hdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_comma_holo.9.png b/java/res/drawable-hdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index 44220ec96..000000000 --- a/java/res/drawable-hdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 444b4d029..000000000 --- a/java/res/drawable-hdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index d5e688400..000000000 --- a/java/res/drawable-hdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index 5dab2f646..000000000 --- a/java/res/drawable-hdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num0.9.png b/java/res/drawable-hdpi/key_hint_num0.9.png Binary files differdeleted file mode 100644 index 271264e92..000000000 --- a/java/res/drawable-hdpi/key_hint_num0.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num1.9.png b/java/res/drawable-hdpi/key_hint_num1.9.png Binary files differdeleted file mode 100644 index eaf374262..000000000 --- a/java/res/drawable-hdpi/key_hint_num1.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num2.9.png b/java/res/drawable-hdpi/key_hint_num2.9.png Binary files differdeleted file mode 100644 index 8a1657117..000000000 --- a/java/res/drawable-hdpi/key_hint_num2.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num3.9.png b/java/res/drawable-hdpi/key_hint_num3.9.png Binary files differdeleted file mode 100644 index 34b501109..000000000 --- a/java/res/drawable-hdpi/key_hint_num3.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num4.9.png b/java/res/drawable-hdpi/key_hint_num4.9.png Binary files differdeleted file mode 100644 index d4cc250dd..000000000 --- a/java/res/drawable-hdpi/key_hint_num4.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num5.9.png b/java/res/drawable-hdpi/key_hint_num5.9.png Binary files differdeleted file mode 100644 index 6a054b42f..000000000 --- a/java/res/drawable-hdpi/key_hint_num5.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num6.9.png b/java/res/drawable-hdpi/key_hint_num6.9.png Binary files differdeleted file mode 100644 index 66e91400a..000000000 --- a/java/res/drawable-hdpi/key_hint_num6.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num7.9.png b/java/res/drawable-hdpi/key_hint_num7.9.png Binary files differdeleted file mode 100644 index 5eae24f4f..000000000 --- a/java/res/drawable-hdpi/key_hint_num7.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num8.9.png b/java/res/drawable-hdpi/key_hint_num8.9.png Binary files differdeleted file mode 100644 index ea7f512fd..000000000 --- a/java/res/drawable-hdpi/key_hint_num8.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_num9.9.png b/java/res/drawable-hdpi/key_hint_num9.9.png Binary files differdeleted file mode 100644 index 0bf85de93..000000000 --- a/java/res/drawable-hdpi/key_hint_num9.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_plus_holo.9.png b/java/res/drawable-hdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index a11b4ac07..000000000 --- a/java/res/drawable-hdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index 3c87c1f7e..000000000 --- a/java/res/drawable-hdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_question_holo.9.png b/java/res/drawable-hdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 670b4b902..000000000 --- a/java/res/drawable-hdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_question_large_holo.9.png b/java/res/drawable-hdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index 692f4a68b..000000000 --- a/java/res/drawable-hdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_quote_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index 9cc86156e..000000000 --- a/java/res/drawable-hdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index 664467b3e..000000000 --- a/java/res/drawable-hdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_underline_holo.9.png b/java/res/drawable-hdpi/key_hint_underline_holo.9.png Binary files differdeleted file mode 100644 index 2cb4077a7..000000000 --- a/java/res/drawable-hdpi/key_hint_underline_holo.9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png Binary files differdeleted file mode 100644 index 6b9a49170..000000000 --- a/java/res/drawable-hdpi/key_hint_underline_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_at_holo.9.png b/java/res/drawable-land-hdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index b93c2d3cf..000000000 --- a/java/res/drawable-land-hdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index 2b9295158..000000000 --- a/java/res/drawable-land-hdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png b/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index 8fa17e583..000000000 --- a/java/res/drawable-land-hdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index 1271341e6..000000000 --- a/java/res/drawable-land-hdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png b/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index 44220ec96..000000000 --- a/java/res/drawable-land-hdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 444b4d029..000000000 --- a/java/res/drawable-land-hdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index d5e688400..000000000 --- a/java/res/drawable-land-hdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index 5dab2f646..000000000 --- a/java/res/drawable-land-hdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png b/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index a11b4ac07..000000000 --- a/java/res/drawable-land-hdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index 3c87c1f7e..000000000 --- a/java/res/drawable-land-hdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_question_holo.9.png b/java/res/drawable-land-hdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 670b4b902..000000000 --- a/java/res/drawable-land-hdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index 692f4a68b..000000000 --- a/java/res/drawable-land-hdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png b/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index 9cc86156e..000000000 --- a/java/res/drawable-land-hdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index 664467b3e..000000000 --- a/java/res/drawable-land-hdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png Binary files differdeleted file mode 100644 index 2cb4077a7..000000000 --- a/java/res/drawable-land-hdpi/key_hint_underline_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png Binary files differdeleted file mode 100644 index 6b9a49170..000000000 --- a/java/res/drawable-land-hdpi/key_hint_underline_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_at_holo.9.png b/java/res/drawable-land-mdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index 8c84654c9..000000000 --- a/java/res/drawable-land-mdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index b9e095b99..000000000 --- a/java/res/drawable-land-mdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index 3cd0e3c4b..000000000 --- a/java/res/drawable-land-mdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index 01b47b25f..000000000 --- a/java/res/drawable-land-mdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index b70f71b55..000000000 --- a/java/res/drawable-land-mdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 1ae82d404..000000000 --- a/java/res/drawable-land-mdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index 3409535fb..000000000 --- a/java/res/drawable-land-mdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index 8dd2f27c4..000000000 --- a/java/res/drawable-land-mdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index 51e86ba11..000000000 --- a/java/res/drawable-land-mdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index bf30f92d8..000000000 --- a/java/res/drawable-land-mdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_question_holo.9.png b/java/res/drawable-land-mdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 38b5d6102..000000000 --- a/java/res/drawable-land-mdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index 448a02700..000000000 --- a/java/res/drawable-land-mdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index 92fe8eaf8..000000000 --- a/java/res/drawable-land-mdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index a777d0187..000000000 --- a/java/res/drawable-land-mdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png Binary files differdeleted file mode 100644 index 7a452c5e2..000000000 --- a/java/res/drawable-land-mdpi/key_hint_underline_holo.9.png +++ /dev/null diff --git a/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png Binary files differdeleted file mode 100644 index f738b0202..000000000 --- a/java/res/drawable-land-mdpi/key_hint_underline_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1d257cba2..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_at_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 53de283da..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_at_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 73394b57b..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_colon_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index a4a6acbe1..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_colon_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index d4dbdf4bf..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_comma_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index aea5c8ed5..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_comma_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 078d1d8f7..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_exclamation_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ddd6b13cb..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index d0ce9c948..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_plus_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 9cf20e8b1..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_plus_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1e886d897..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_question_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 826228796..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_question_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index fd8bbad83..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_quote_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 51d5b498c..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_quote_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 37d2fa58e..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_underline_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4249a8edf..000000000 --- a/java/res/drawable-land-xhdpi/key_hint_underline_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/btn_close_candidates_pane.9.png b/java/res/drawable-mdpi/btn_close_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..5ea56925d --- /dev/null +++ b/java/res/drawable-mdpi/btn_close_candidates_pane.9.png diff --git a/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png b/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png Binary files differnew file mode 100644 index 000000000..83cb65305 --- /dev/null +++ b/java/res/drawable-mdpi/btn_expand_candidates_pane.9.png diff --git a/java/res/drawable-mdpi/key_hint_at_holo.9.png b/java/res/drawable-mdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index 8c84654c9..000000000 --- a/java/res/drawable-mdpi/key_hint_at_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_at_large_holo.9.png b/java/res/drawable-mdpi/key_hint_at_large_holo.9.png Binary files differdeleted file mode 100644 index b9e095b99..000000000 --- a/java/res/drawable-mdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_colon_holo.9.png b/java/res/drawable-mdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index 3cd0e3c4b..000000000 --- a/java/res/drawable-mdpi/key_hint_colon_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png b/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png Binary files differdeleted file mode 100644 index 01b47b25f..000000000 --- a/java/res/drawable-mdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_comma_holo.9.png b/java/res/drawable-mdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index b70f71b55..000000000 --- a/java/res/drawable-mdpi/key_hint_comma_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png b/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png Binary files differdeleted file mode 100644 index 1ae82d404..000000000 --- a/java/res/drawable-mdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index 3409535fb..000000000 --- a/java/res/drawable-mdpi/key_hint_exclamation_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png b/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png Binary files differdeleted file mode 100644 index 8dd2f27c4..000000000 --- a/java/res/drawable-mdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num0.9.png b/java/res/drawable-mdpi/key_hint_num0.9.png Binary files differdeleted file mode 100644 index 61ad1b50a..000000000 --- a/java/res/drawable-mdpi/key_hint_num0.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num1.9.png b/java/res/drawable-mdpi/key_hint_num1.9.png Binary files differdeleted file mode 100644 index cd7772e71..000000000 --- a/java/res/drawable-mdpi/key_hint_num1.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num2.9.png b/java/res/drawable-mdpi/key_hint_num2.9.png Binary files differdeleted file mode 100644 index fa5f8b79c..000000000 --- a/java/res/drawable-mdpi/key_hint_num2.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num3.9.png b/java/res/drawable-mdpi/key_hint_num3.9.png Binary files differdeleted file mode 100644 index 0c7336cb7..000000000 --- a/java/res/drawable-mdpi/key_hint_num3.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num4.9.png b/java/res/drawable-mdpi/key_hint_num4.9.png Binary files differdeleted file mode 100644 index 73ef06c0e..000000000 --- a/java/res/drawable-mdpi/key_hint_num4.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num5.9.png b/java/res/drawable-mdpi/key_hint_num5.9.png Binary files differdeleted file mode 100644 index aea460e1c..000000000 --- a/java/res/drawable-mdpi/key_hint_num5.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num6.9.png b/java/res/drawable-mdpi/key_hint_num6.9.png Binary files differdeleted file mode 100644 index 16a9237e3..000000000 --- a/java/res/drawable-mdpi/key_hint_num6.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num7.9.png b/java/res/drawable-mdpi/key_hint_num7.9.png Binary files differdeleted file mode 100644 index 6747a19c0..000000000 --- a/java/res/drawable-mdpi/key_hint_num7.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num8.9.png b/java/res/drawable-mdpi/key_hint_num8.9.png Binary files differdeleted file mode 100644 index 28be2fb86..000000000 --- a/java/res/drawable-mdpi/key_hint_num8.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_num9.9.png b/java/res/drawable-mdpi/key_hint_num9.9.png Binary files differdeleted file mode 100644 index 731d63b1b..000000000 --- a/java/res/drawable-mdpi/key_hint_num9.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_plus_holo.9.png b/java/res/drawable-mdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index 51e86ba11..000000000 --- a/java/res/drawable-mdpi/key_hint_plus_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png b/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png Binary files differdeleted file mode 100644 index bf30f92d8..000000000 --- a/java/res/drawable-mdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_question_holo.9.png b/java/res/drawable-mdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 38b5d6102..000000000 --- a/java/res/drawable-mdpi/key_hint_question_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_question_large_holo.9.png b/java/res/drawable-mdpi/key_hint_question_large_holo.9.png Binary files differdeleted file mode 100644 index 448a02700..000000000 --- a/java/res/drawable-mdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_quote_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index 92fe8eaf8..000000000 --- a/java/res/drawable-mdpi/key_hint_quote_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png b/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png Binary files differdeleted file mode 100644 index a777d0187..000000000 --- a/java/res/drawable-mdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/key_hint_underline_holo.9.png b/java/res/drawable-mdpi/key_hint_underline_holo.9.png Binary files differdeleted file mode 100644 index 7a452c5e2..000000000 --- a/java/res/drawable-mdpi/key_hint_underline_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index f738b0202..000000000 --- a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8c84654c9..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_at_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index b9e095b99..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_at_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3cd0e3c4b..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_colon_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 01b47b25f..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_colon_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index b70f71b55..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_comma_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1ae82d404..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_comma_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3409535fb..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8dd2f27c4..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 51e86ba11..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_plus_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index bf30f92d8..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_plus_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 38b5d6102..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_question_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 448a02700..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_question_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 92fe8eaf8..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_quote_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index a777d0187..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_quote_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 7a452c5e2..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_underline_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index f738b0202..000000000 --- a/java/res/drawable-sw600dp-mdpi/key_hint_underline_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5b946ff9b..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_at_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 852f899ed..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_at_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1d9346e6f..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 17e9091b4..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_colon_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index c2a913c04..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 846f213f1..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_comma_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ce8e8de43..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 035dcf85d..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 931390b45..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index e6f9f8a9c..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_plus_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 6cbeb5993..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_question_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index bfd58de09..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_question_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3b361b71c..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 2a08aa12e..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_quote_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 06f3efb7e..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 50f99a191..000000000 --- a/java/res/drawable-sw768dp-land-mdpi/key_hint_underline_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8c84654c9..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_at_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index b9e095b99..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_at_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3cd0e3c4b..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_colon_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 01b47b25f..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_colon_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index b70f71b55..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_comma_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 1ae82d404..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_comma_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3409535fb..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 8dd2f27c4..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 51e86ba11..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_plus_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index bf30f92d8..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_plus_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 38b5d6102..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_question_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 448a02700..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_question_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 92fe8eaf8..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_quote_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index a777d0187..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_quote_large_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 7a452c5e2..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_underline_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index f738b0202..000000000 --- a/java/res/drawable-sw768dp-mdpi/key_hint_underline_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_at_holo.9.png b/java/res/drawable-xhdpi/key_hint_at_holo.9.png Binary files differdeleted file mode 100644 index 1d257cba2..000000000 --- a/java/res/drawable-xhdpi/key_hint_at_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 53de283da..000000000 --- a/java/res/drawable-xhdpi/key_hint_at_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_colon_holo.9.png b/java/res/drawable-xhdpi/key_hint_colon_holo.9.png Binary files differdeleted file mode 100644 index 73394b57b..000000000 --- a/java/res/drawable-xhdpi/key_hint_colon_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index a4a6acbe1..000000000 --- a/java/res/drawable-xhdpi/key_hint_colon_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_comma_holo.9.png b/java/res/drawable-xhdpi/key_hint_comma_holo.9.png Binary files differdeleted file mode 100644 index d4dbdf4bf..000000000 --- a/java/res/drawable-xhdpi/key_hint_comma_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index aea5c8ed5..000000000 --- a/java/res/drawable-xhdpi/key_hint_comma_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_exclamation_holo.9.png b/java/res/drawable-xhdpi/key_hint_exclamation_holo.9.png Binary files differdeleted file mode 100644 index 078d1d8f7..000000000 --- a/java/res/drawable-xhdpi/key_hint_exclamation_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ddd6b13cb..000000000 --- a/java/res/drawable-xhdpi/key_hint_exclamation_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_plus_holo.9.png b/java/res/drawable-xhdpi/key_hint_plus_holo.9.png Binary files differdeleted file mode 100644 index d0ce9c948..000000000 --- a/java/res/drawable-xhdpi/key_hint_plus_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 9cf20e8b1..000000000 --- a/java/res/drawable-xhdpi/key_hint_plus_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_question_holo.9.png b/java/res/drawable-xhdpi/key_hint_question_holo.9.png Binary files differdeleted file mode 100644 index 1e886d897..000000000 --- a/java/res/drawable-xhdpi/key_hint_question_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 826228796..000000000 --- a/java/res/drawable-xhdpi/key_hint_question_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_quote_holo.9.png b/java/res/drawable-xhdpi/key_hint_quote_holo.9.png Binary files differdeleted file mode 100644 index fd8bbad83..000000000 --- a/java/res/drawable-xhdpi/key_hint_quote_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 51d5b498c..000000000 --- a/java/res/drawable-xhdpi/key_hint_quote_large_holo.9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/key_hint_underline_holo.9.png b/java/res/drawable-xhdpi/key_hint_underline_holo.9.png Binary files differdeleted file mode 100644 index 37d2fa58e..000000000 --- a/java/res/drawable-xhdpi/key_hint_underline_holo.9.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4249a8edf..000000000 --- a/java/res/drawable-xhdpi/key_hint_underline_large_holo.9.png +++ /dev/null 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=""" latin:popupCharacters=""" 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=""" latin:popupCharacters=""" /> </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; |