diff options
Diffstat (limited to 'java')
160 files changed, 895 insertions, 650 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 differindex bdd949577..6df00f229 100644 --- a/java/res/drawable-hdpi/btn_close_candidates_pane.9.png +++ b/java/res/drawable-hdpi/btn_close_candidates_pane.9.png diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num0.png b/java/res/drawable-hdpi/sym_bkeyboard_num0.png Binary files differdeleted file mode 100644 index 02f281166..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num0.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num1.png b/java/res/drawable-hdpi/sym_bkeyboard_num1.png Binary files differdeleted file mode 100644 index 304acfd31..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num1.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num2.png b/java/res/drawable-hdpi/sym_bkeyboard_num2.png Binary files differdeleted file mode 100644 index 295eba1e4..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num2.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num3.png b/java/res/drawable-hdpi/sym_bkeyboard_num3.png Binary files differdeleted file mode 100644 index 9ee6e4437..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num3.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num4.png b/java/res/drawable-hdpi/sym_bkeyboard_num4.png Binary files differdeleted file mode 100644 index ab4392dcb..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num4.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num5.png b/java/res/drawable-hdpi/sym_bkeyboard_num5.png Binary files differdeleted file mode 100644 index 004ecd72e..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num5.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num6.png b/java/res/drawable-hdpi/sym_bkeyboard_num6.png Binary files differdeleted file mode 100644 index 2aa317d77..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num6.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num7.png b/java/res/drawable-hdpi/sym_bkeyboard_num7.png Binary files differdeleted file mode 100644 index 721361c29..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num7.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num8.png b/java/res/drawable-hdpi/sym_bkeyboard_num8.png Binary files differdeleted file mode 100644 index 941359f6b..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num8.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_bkeyboard_num9.png b/java/res/drawable-hdpi/sym_bkeyboard_num9.png Binary files differdeleted file mode 100644 index 74e08a087..000000000 --- a/java/res/drawable-hdpi/sym_bkeyboard_num9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_123_mic_holo.png b/java/res/drawable-hdpi/sym_keyboard_123_mic_holo.png Binary files differnew file mode 100644 index 000000000..6f0aec24c --- /dev/null +++ b/java/res/drawable-hdpi/sym_keyboard_123_mic_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_delete_holo.png b/java/res/drawable-hdpi/sym_keyboard_delete_holo.png Binary files differindex 9d87ba619..0591b82cd 100644 --- a/java/res/drawable-hdpi/sym_keyboard_delete_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_delete_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_num0.png b/java/res/drawable-hdpi/sym_keyboard_num0.png Binary files differdeleted file mode 100644 index 2024f416b..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num0.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num0_holo.png b/java/res/drawable-hdpi/sym_keyboard_num0_holo.png Binary files differdeleted file mode 100644 index fbd55d68d..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num0_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num1.png b/java/res/drawable-hdpi/sym_keyboard_num1.png Binary files differdeleted file mode 100644 index 5e66b9a31..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num1.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num1_holo.png b/java/res/drawable-hdpi/sym_keyboard_num1_holo.png Binary files differdeleted file mode 100644 index e651c3e85..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num1_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num2.png b/java/res/drawable-hdpi/sym_keyboard_num2.png Binary files differdeleted file mode 100644 index 3933270dc..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num2.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num2_holo.png b/java/res/drawable-hdpi/sym_keyboard_num2_holo.png Binary files differdeleted file mode 100644 index 8458f5313..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num2_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num3.png b/java/res/drawable-hdpi/sym_keyboard_num3.png Binary files differdeleted file mode 100644 index c69548345..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num3.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num3_holo.png b/java/res/drawable-hdpi/sym_keyboard_num3_holo.png Binary files differdeleted file mode 100644 index 81025c635..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num3_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num4.png b/java/res/drawable-hdpi/sym_keyboard_num4.png Binary files differdeleted file mode 100644 index ef20add54..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num4.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num4_holo.png b/java/res/drawable-hdpi/sym_keyboard_num4_holo.png Binary files differdeleted file mode 100644 index 30a0c77c7..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num4_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num5.png b/java/res/drawable-hdpi/sym_keyboard_num5.png Binary files differdeleted file mode 100644 index 9a2f51f8d..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num5.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num5_holo.png b/java/res/drawable-hdpi/sym_keyboard_num5_holo.png Binary files differdeleted file mode 100644 index 147f056fc..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num5_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num6.png b/java/res/drawable-hdpi/sym_keyboard_num6.png Binary files differdeleted file mode 100644 index 6829f81d1..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num6.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num6_holo.png b/java/res/drawable-hdpi/sym_keyboard_num6_holo.png Binary files differdeleted file mode 100644 index b96830844..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num6_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num7.png b/java/res/drawable-hdpi/sym_keyboard_num7.png Binary files differdeleted file mode 100644 index dc608d4e1..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num7.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num7_holo.png b/java/res/drawable-hdpi/sym_keyboard_num7_holo.png Binary files differdeleted file mode 100644 index 7d44bfb45..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num7_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num8.png b/java/res/drawable-hdpi/sym_keyboard_num8.png Binary files differdeleted file mode 100644 index f0978c611..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num8.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num8_holo.png b/java/res/drawable-hdpi/sym_keyboard_num8_holo.png Binary files differdeleted file mode 100644 index 093cd743a..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num8_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num9.png b/java/res/drawable-hdpi/sym_keyboard_num9.png Binary files differdeleted file mode 100644 index 4b8328d1f..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num9.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_num9_holo.png b/java/res/drawable-hdpi/sym_keyboard_num9_holo.png Binary files differdeleted file mode 100644 index f35e80dab..000000000 --- a/java/res/drawable-hdpi/sym_keyboard_num9_holo.png +++ /dev/null diff --git a/java/res/drawable-hdpi/sym_keyboard_return_holo.png b/java/res/drawable-hdpi/sym_keyboard_return_holo.png Binary files differindex ef04d6767..9743c7f2f 100644 --- a/java/res/drawable-hdpi/sym_keyboard_return_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_return_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_settings_holo.png b/java/res/drawable-hdpi/sym_keyboard_settings_holo.png Binary files differindex 29085e5ea..1e5bf939e 100644 --- a/java/res/drawable-hdpi/sym_keyboard_settings_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_settings_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_holo.png b/java/res/drawable-hdpi/sym_keyboard_shift_holo.png Binary files differindex 1e074a716..8e3d0320c 100644 --- a/java/res/drawable-hdpi/sym_keyboard_shift_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png Binary files differindex ab77b9542..d345634a6 100644 --- a/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_shift_locked_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_space_holo.png b/java/res/drawable-hdpi/sym_keyboard_space_holo.png Binary files differindex 143a89964..780733ec5 100644 --- a/java/res/drawable-hdpi/sym_keyboard_space_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_space_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_tab_holo.png b/java/res/drawable-hdpi/sym_keyboard_tab_holo.png Binary files differindex 321c541cc..3d1c5c0ea 100644 --- a/java/res/drawable-hdpi/sym_keyboard_tab_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_tab_holo.png diff --git a/java/res/drawable-hdpi/sym_keyboard_voice_holo.png b/java/res/drawable-hdpi/sym_keyboard_voice_holo.png Binary files differindex d3cb46e0d..520a40f09 100644 --- a/java/res/drawable-hdpi/sym_keyboard_voice_holo.png +++ b/java/res/drawable-hdpi/sym_keyboard_voice_holo.png diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num0.png b/java/res/drawable-mdpi/sym_bkeyboard_num0.png Binary files differdeleted file mode 100644 index 7188f9ca5..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num0.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num1.png b/java/res/drawable-mdpi/sym_bkeyboard_num1.png Binary files differdeleted file mode 100644 index 2a31bd458..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num1.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num2.png b/java/res/drawable-mdpi/sym_bkeyboard_num2.png Binary files differdeleted file mode 100644 index c1e9cc9b1..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num2.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num3.png b/java/res/drawable-mdpi/sym_bkeyboard_num3.png Binary files differdeleted file mode 100644 index e9987668c..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num3.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num4.png b/java/res/drawable-mdpi/sym_bkeyboard_num4.png Binary files differdeleted file mode 100644 index 7f0f3cccc..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num4.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num5.png b/java/res/drawable-mdpi/sym_bkeyboard_num5.png Binary files differdeleted file mode 100644 index 5f748b416..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num5.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num6.png b/java/res/drawable-mdpi/sym_bkeyboard_num6.png Binary files differdeleted file mode 100644 index 78aae74a0..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num6.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num7.png b/java/res/drawable-mdpi/sym_bkeyboard_num7.png Binary files differdeleted file mode 100644 index 5bb874c47..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num7.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num8.png b/java/res/drawable-mdpi/sym_bkeyboard_num8.png Binary files differdeleted file mode 100644 index 6b58fdc8a..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num8.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_bkeyboard_num9.png b/java/res/drawable-mdpi/sym_bkeyboard_num9.png Binary files differdeleted file mode 100644 index f348c92af..000000000 --- a/java/res/drawable-mdpi/sym_bkeyboard_num9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num0.png b/java/res/drawable-mdpi/sym_keyboard_num0.png Binary files differdeleted file mode 100644 index e7007c871..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num0.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num0_holo.png b/java/res/drawable-mdpi/sym_keyboard_num0_holo.png Binary files differdeleted file mode 100644 index 2c57adf8b..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num0_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num1.png b/java/res/drawable-mdpi/sym_keyboard_num1.png Binary files differdeleted file mode 100644 index aaac11b0c..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num1.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num1_holo.png b/java/res/drawable-mdpi/sym_keyboard_num1_holo.png Binary files differdeleted file mode 100644 index 509e28f9b..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num1_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num2.png b/java/res/drawable-mdpi/sym_keyboard_num2.png Binary files differdeleted file mode 100644 index 4372eb8f0..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num2.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num2_holo.png b/java/res/drawable-mdpi/sym_keyboard_num2_holo.png Binary files differdeleted file mode 100644 index 0da18e772..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num2_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num3.png b/java/res/drawable-mdpi/sym_keyboard_num3.png Binary files differdeleted file mode 100644 index 6f54c850f..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num3.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num3_holo.png b/java/res/drawable-mdpi/sym_keyboard_num3_holo.png Binary files differdeleted file mode 100644 index e8470586f..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num3_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num4.png b/java/res/drawable-mdpi/sym_keyboard_num4.png Binary files differdeleted file mode 100644 index 3e50bb957..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num4.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num4_holo.png b/java/res/drawable-mdpi/sym_keyboard_num4_holo.png Binary files differdeleted file mode 100644 index 13c216d3a..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num4_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num5.png b/java/res/drawable-mdpi/sym_keyboard_num5.png Binary files differdeleted file mode 100644 index c39ef4404..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num5.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num5_holo.png b/java/res/drawable-mdpi/sym_keyboard_num5_holo.png Binary files differdeleted file mode 100644 index 0065153fc..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num5_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num6.png b/java/res/drawable-mdpi/sym_keyboard_num6.png Binary files differdeleted file mode 100644 index ea88ceb94..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num6.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num6_holo.png b/java/res/drawable-mdpi/sym_keyboard_num6_holo.png Binary files differdeleted file mode 100644 index 09fab76a1..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num6_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num7.png b/java/res/drawable-mdpi/sym_keyboard_num7.png Binary files differdeleted file mode 100644 index ce800ba42..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num7.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num7_holo.png b/java/res/drawable-mdpi/sym_keyboard_num7_holo.png Binary files differdeleted file mode 100644 index d350fddc8..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num7_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num8.png b/java/res/drawable-mdpi/sym_keyboard_num8.png Binary files differdeleted file mode 100644 index 1a8ff94bf..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num8.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num8_holo.png b/java/res/drawable-mdpi/sym_keyboard_num8_holo.png Binary files differdeleted file mode 100644 index c40cb89a5..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num8_holo.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num9.png b/java/res/drawable-mdpi/sym_keyboard_num9.png Binary files differdeleted file mode 100644 index 8b344c0a6..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num9.png +++ /dev/null diff --git a/java/res/drawable-mdpi/sym_keyboard_num9_holo.png b/java/res/drawable-mdpi/sym_keyboard_num9_holo.png Binary files differdeleted file mode 100644 index 73526939d..000000000 --- a/java/res/drawable-mdpi/sym_keyboard_num9_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num0.png b/java/res/drawable-xhdpi/sym_bkeyboard_num0.png Binary files differdeleted file mode 100644 index da8d50a8c..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num0.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num1.png b/java/res/drawable-xhdpi/sym_bkeyboard_num1.png Binary files differdeleted file mode 100644 index 62443eb1c..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num1.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num2.png b/java/res/drawable-xhdpi/sym_bkeyboard_num2.png Binary files differdeleted file mode 100644 index 4b3ef7ecc..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num2.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num3.png b/java/res/drawable-xhdpi/sym_bkeyboard_num3.png Binary files differdeleted file mode 100644 index 48315e499..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num3.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num4.png b/java/res/drawable-xhdpi/sym_bkeyboard_num4.png Binary files differdeleted file mode 100644 index 17958d7cc..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num4.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num5.png b/java/res/drawable-xhdpi/sym_bkeyboard_num5.png Binary files differdeleted file mode 100644 index 43716c424..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num5.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num6.png b/java/res/drawable-xhdpi/sym_bkeyboard_num6.png Binary files differdeleted file mode 100644 index 09f2b428d..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num6.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num7.png b/java/res/drawable-xhdpi/sym_bkeyboard_num7.png Binary files differdeleted file mode 100644 index 72438ec0f..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num7.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num8.png b/java/res/drawable-xhdpi/sym_bkeyboard_num8.png Binary files differdeleted file mode 100644 index 403b53f71..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num8.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_bkeyboard_num9.png b/java/res/drawable-xhdpi/sym_bkeyboard_num9.png Binary files differdeleted file mode 100644 index 644c2a4df..000000000 --- a/java/res/drawable-xhdpi/sym_bkeyboard_num9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num0.png b/java/res/drawable-xhdpi/sym_keyboard_num0.png Binary files differdeleted file mode 100644 index 06bd3bfc7..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num0.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png Binary files differdeleted file mode 100644 index 33e80bdc3..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num0_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num1.png b/java/res/drawable-xhdpi/sym_keyboard_num1.png Binary files differdeleted file mode 100644 index dfa0cfe78..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num1.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png Binary files differdeleted file mode 100644 index dce3ee801..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num1_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num2.png b/java/res/drawable-xhdpi/sym_keyboard_num2.png Binary files differdeleted file mode 100644 index 4bd2ead08..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num2.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png Binary files differdeleted file mode 100644 index e776efb33..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num2_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num3.png b/java/res/drawable-xhdpi/sym_keyboard_num3.png Binary files differdeleted file mode 100644 index 39db11228..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num3.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png Binary files differdeleted file mode 100644 index 66e7b3735..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num3_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num4.png b/java/res/drawable-xhdpi/sym_keyboard_num4.png Binary files differdeleted file mode 100644 index 60356947e..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num4.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png Binary files differdeleted file mode 100644 index bf70e2890..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num4_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num5.png b/java/res/drawable-xhdpi/sym_keyboard_num5.png Binary files differdeleted file mode 100644 index 3238b3f40..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num5.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png Binary files differdeleted file mode 100644 index 98d0b5cc9..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num5_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num6.png b/java/res/drawable-xhdpi/sym_keyboard_num6.png Binary files differdeleted file mode 100644 index c8da5a9d0..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num6.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png Binary files differdeleted file mode 100644 index 67340ef6a..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num6_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num7.png b/java/res/drawable-xhdpi/sym_keyboard_num7.png Binary files differdeleted file mode 100644 index 553cf5f0d..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num7.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png Binary files differdeleted file mode 100644 index 843224954..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num7_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num8.png b/java/res/drawable-xhdpi/sym_keyboard_num8.png Binary files differdeleted file mode 100644 index eaaf53390..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num8.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png Binary files differdeleted file mode 100644 index 6d520bca9..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num8_holo.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num9.png b/java/res/drawable-xhdpi/sym_keyboard_num9.png Binary files differdeleted file mode 100644 index b510d3774..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num9.png +++ /dev/null diff --git a/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png b/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png Binary files differdeleted file mode 100644 index 158c87957..000000000 --- a/java/res/drawable-xhdpi/sym_keyboard_num9_holo.png +++ /dev/null diff --git a/java/res/layout/candidate_divider.xml b/java/res/layout/candidate_divider.xml index 1d75e52b3..748163074 100644 --- a/java/res/layout/candidate_divider.xml +++ b/java/res/layout/candidate_divider.xml @@ -23,8 +23,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:src="@drawable/keyboard_suggest_strip_divider" - android:paddingRight="@dimen/candidate_padding" - android:paddingLeft="@dimen/candidate_padding" + android:padding="0dp" android:focusable="false" android:clickable="false" android:gravity="center_vertical|center_horizontal" /> diff --git a/java/res/layout/candidate_word.xml b/java/res/layout/candidate_word.xml index 94ae2b44e..7b6db2fe8 100644 --- a/java/res/layout/candidate_word.xml +++ b/java/res/layout/candidate_word.xml @@ -20,8 +20,14 @@ <Button xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_width="match_parent" + android:layout_height="match_parent" android:minWidth="@dimen/candidate_min_width" android:textSize="@dimen/candidate_text_size" + android:paddingLeft="@dimen/candidate_padding" + android:paddingTop="0dp" + android:paddingRight="@dimen/candidate_padding" + android:paddingBottom="0dp" + android:singleLine="true" + android:ellipsize="none" style="?attr/suggestionBackgroundStyle" /> diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/candidates_strip.xml index c23c29cbe..ea6708ee7 100644 --- a/java/res/layout/candidates_strip.xml +++ b/java/res/layout/candidates_strip.xml @@ -22,42 +22,11 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > - <RelativeLayout - android:layout_weight="1.0" - android:layout_width="0dp" - android:layout_height="match_parent" - android:gravity="center" - > - <include - android:id="@+id/word_left" - layout="@layout/candidate_word" /> - <include - android:id="@+id/info_left" - layout="@layout/candidate_info" /> - </RelativeLayout> - <include - layout="@layout/candidate_divider" /> - <RelativeLayout - android:layout_weight="1.0" - android:layout_width="0dp" - android:layout_height="match_parent" - android:gravity="center" - > - <include - android:id="@+id/word_center" - layout="@layout/candidate_word" /> - <include - android:id="@+id/info_center" - layout="@layout/candidate_info" /> - </RelativeLayout> - <include - layout="@layout/candidate_divider" /> <LinearLayout + android:id="@+id/candidates_strip" android:orientation="horizontal" - android:layout_weight="1.0" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:gravity="center_vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" > <RelativeLayout android:layout_weight="1.0" @@ -66,24 +35,90 @@ android:gravity="center" > <include - android:id="@+id/word_right" + android:id="@+id/word_left" layout="@layout/candidate_word" /> <include - android:id="@+id/info_right" + android:id="@+id/info_left" layout="@layout/candidate_info" /> </RelativeLayout> - <!-- 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" /> + <include + layout="@layout/candidate_divider" /> + <RelativeLayout + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:gravity="center" + > + <include + android:id="@+id/word_center" + layout="@layout/candidate_word" /> + <include + android:id="@+id/info_center" + layout="@layout/candidate_info" /> + </RelativeLayout> + <include + layout="@layout/candidate_divider" /> + <LinearLayout + android:orientation="horizontal" + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:gravity="center_vertical" + > + <RelativeLayout + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:gravity="center" + > + <include + android:id="@+id/word_right" + layout="@layout/candidate_word" /> + <include + android:id="@+id/info_right" + layout="@layout/candidate_info" /> + </RelativeLayout> + <!-- 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" + android:background="@null" /> + <ImageButton + android:id="@+id/close_candidates_pane" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:visibility="gone" + android:background="@null" /> + </LinearLayout> + </LinearLayout> + <LinearLayout + android:id="@+id/touch_to_save" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:visibility="gone" + > + <Button + android:id="@+id/word_to_save" + android:layout_weight="1.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_gravity="center_vertical" + android:textSize="@dimen/candidate_text_size" + android:singleLine="true" + android:ellipsize="middle" + style="?attr/suggestionBackgroundStyle" /> + <include + layout="@layout/candidate_divider" /> + <TextView + android:layout_weight="2.0" + android:layout_width="0dp" + android:layout_height="match_parent" + android:gravity="left|center_vertical" + android:text="@string/hint_add_to_dictionary" + android:textSize="@dimen/candidate_text_size" + android:background="@null" /> </LinearLayout> </merge> diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml index 8f6eb2339..d6e096278 100644 --- a/java/res/values-land/dimens.xml +++ b/java/res/values-land/dimens.xml @@ -33,13 +33,21 @@ <dimen name="keyboard_top_padding_ics">0.03in</dimen> <dimen name="keyboard_bottom_padding_ics">0.00in</dimen> <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> + + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">8dip</dimen> + <fraction name="key_letter_ratio">55%</fraction> + <fraction name="key_large_letter_ratio">68%</fraction> <fraction name="key_label_ratio">35%</fraction> <fraction name="key_hint_letter_ratio">28%</fraction> + <fraction name="key_hint_label_ratio">45%</fraction> <fraction name="key_uppercase_letter_ratio">40%</fraction> <fraction name="key_preview_text_ratio">90%</fraction> <dimen name="key_preview_offset">0.08in</dimen> + <dimen name="key_preview_offset_ics">0.01in</dimen> + <dimen name="candidate_strip_height">38dip</dimen> <dimen name="candidate_strip_fading_edge_length">63dip</dimen> <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> diff --git a/java/res/values-large-land/dimens.xml b/java/res/values-large-land/dimens.xml index 6e583e3bf..5d1fbc748 100644 --- a/java/res/values-large-land/dimens.xml +++ b/java/res/values-large-land/dimens.xml @@ -34,11 +34,15 @@ <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> <dimen name="popup_key_height">13.0mm</dimen> + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">18dip</dimen> + <fraction name="key_letter_ratio">45%</fraction> + <fraction name="key_large_letter_ratio">45%</fraction> <fraction name="key_label_ratio">32%</fraction> <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_hint_label_ratio">34%</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> </resources> diff --git a/java/res/values-large/dimens.xml b/java/res/values-large/dimens.xml index 274b62b4c..675f40c2e 100644 --- a/java/res/values-large/dimens.xml +++ b/java/res/values-large/dimens.xml @@ -41,16 +41,21 @@ <!-- popup_key_height x -1.0 --> <dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen> + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> + <fraction name="key_letter_ratio">37%</fraction> + <fraction name="key_large_letter_ratio">37%</fraction> <fraction name="key_label_ratio">22%</fraction> <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_hint_label_ratio">26%</fraction> <fraction name="key_uppercase_letter_ratio">25%</fraction> <fraction name="key_preview_text_ratio">50%</fraction> <dimen name="key_preview_height">15.0mm</dimen> <dimen name="key_preview_offset">0.1in</dimen> + + <dimen name="key_preview_height_ics">15.0mm</dimen> <dimen name="key_preview_offset_ics">0.05in</dimen> - <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> <dimen name="candidate_strip_height">46dip</dimen> <dimen name="candidate_strip_padding">15.0mm</dimen> diff --git a/java/res/values-xlarge-land/dimens.xml b/java/res/values-xlarge-land/dimens.xml index 74eb08aa3..2201ce8a3 100644 --- a/java/res/values-xlarge-land/dimens.xml +++ b/java/res/values-xlarge-land/dimens.xml @@ -35,15 +35,19 @@ <dimen name="popup_key_height">13.0mm</dimen> <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">18dip</dimen> + <fraction name="key_letter_ratio">38%</fraction> + <fraction name="key_large_letter_ratio">38%</fraction> <fraction name="key_label_ratio">26%</fraction> <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_hint_label_ratio">26%</fraction> <fraction name="key_uppercase_letter_ratio">24%</fraction> <dimen name="key_preview_height">17.0mm</dimen> - <!-- 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> - <dimen name="key_preview_offset_holo">7.5mm</dimen> + + <dimen name="key_preview_height_ics">26.5mm</dimen> + <dimen name="key_preview_offset_ics">0.05in</dimen> <dimen name="candidate_strip_padding">40.0mm</dimen> </resources> diff --git a/java/res/values-xlarge/dimens.xml b/java/res/values-xlarge/dimens.xml index b5d5a8496..2e41db52a 100644 --- a/java/res/values-xlarge/dimens.xml +++ b/java/res/values-xlarge/dimens.xml @@ -35,7 +35,7 @@ <dimen name="keyboard_bottom_padding_ics">0.0mm</dimen> <dimen name="popup_key_height">10.0mm</dimen> <dimen name="keyboard_horizontal_edges_padding">0.0mm</dimen> - <dimen name="mini_keyboard_horizontal_padding_holo">40dip</dimen> + <dimen name="mini_keyboard_horizontal_padding_ics">40dip</dimen> <dimen name="mini_keyboard_key_horizontal_padding">12dip</dimen> <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> <!-- popup_key_height x 1.2 --> @@ -43,16 +43,21 @@ <!-- popup_key_height x -1.0 --> <dimen name="mini_keyboard_vertical_correction">-13.0mm</dimen> + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> + <fraction name="key_letter_ratio">38%</fraction> + <fraction name="key_large_letter_ratio">38%</fraction> <fraction name="key_label_ratio">26%</fraction> <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_hint_label_ratio">26%</fraction> <fraction name="key_uppercase_letter_ratio">25%</fraction> <fraction name="key_preview_text_ratio">50%</fraction> <dimen name="key_preview_height">15.0mm</dimen> <dimen name="key_preview_offset">0.1in</dimen> + + <dimen name="key_preview_height_ics">15.0mm</dimen> <dimen name="key_preview_offset_ics">0.05in</dimen> - <!-- left or right padding of label alignment --> - <dimen name="key_label_horizontal_alignment_padding">6dip</dimen> <dimen name="candidate_strip_height">46dip</dimen> <!-- candidate_strip_minimum_height = diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index e9b6354a5..6dabb0cb9 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -41,10 +41,15 @@ <!-- Size of the text for one letter keys, in the proportion of key height. --> <attr name="keyLetterRatio" format="float" /> + <!-- Large size of the text for one letter keys, in the proportion of key height. --> + <attr name="keyLargeLetterRatio" 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. --> + <!-- Size of the text for hint letter (= one character hint label), in the proportion of + key height. --> <attr name="keyHintLetterRatio" format="float" /> + <!-- Size of the text for hint label, in the proportion of key height. --> + <attr name="keyHintLabelRatio" format="float" /> <!-- Size of the text for upper case letter, in the proportion of key height. --> <attr name="keyUppercaseLetterRatio" format="float" /> @@ -52,8 +57,10 @@ <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 --> + <!-- Key hint letter (= one character hint label) color --> <attr name="keyHintLetterColor" format="color" /> + <!-- Key hint label color --> + <attr name="keyHintLabelColor" format="color" /> <!-- Upper case letter colors --> <attr name="keyUppercaseLetterInactivatedColor" format="color" /> <attr name="keyUppercaseLetterActivatedColor" format="color" /> @@ -67,6 +74,8 @@ <attr name="keyPreviewOffset" format="dimension" /> <!-- Height of the key press feedback popup. --> <attr name="keyPreviewHeight" format="dimension" /> + <!-- Size of the text for key press feedback popup, int the proportion of key height --> + <attr name="keyPreviewTextRatio" format="float" /> <!-- Hysteresis distance for key debouncing --> <attr name="keyHysteresisDistance" format="dimension" /> @@ -146,16 +155,6 @@ <attr name="iconReturnKey" format="reference" /> <attr name="iconSearchKey" format="reference" /> <attr name="iconTabKey" format="reference" /> - <attr name="iconNum1Key" format="reference" /> - <attr name="iconNum2Key" format="reference" /> - <attr name="iconNum3Key" format="reference" /> - <attr name="iconNum4Key" format="reference" /> - <attr name="iconNum5Key" format="reference" /> - <attr name="iconNum6Key" format="reference" /> - <attr name="iconNum7Key" format="reference" /> - <attr name="iconNum8Key" format="reference" /> - <attr name="iconNum9Key" format="reference" /> - <attr name="iconNum0Key" format="reference" /> <attr name="iconShiftedShiftKey" format="reference" /> <attr name="iconPreviewSpaceKey" format="reference" /> <attr name="iconPreviewTabKey" format="reference" /> @@ -187,19 +186,23 @@ <attr name="keyOutputText" format="string" /> <!-- The label to display on the key. --> <attr name="keyLabel" format="string" /> - <!-- The hint letter to display on the key in conjunction with the label. --> - <attr name="keyHintLetter" format="string" /> + <!-- The hint label to display on the key in conjunction with the label. --> + <attr name="keyHintLabel" format="string" /> <!-- The key label option. --> <attr name="keyLabelOption" format="integer"> <!-- 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="fontFixedWidth" value="0x20" /> - <flag name="followKeyLetterRatio" value="0x40" /> - <flag name="popupHint" value="0x80" /> - <flag name="hasUppercaseLetter" value="0x100" /> + <flag name="alignBottom" value="0x04" /> + <flag name="alignLeftOfCenter" value="0x08" /> + <flag name="largeLetter" value="0x10" /> + <flag name="fontNormal" value="0x20" /> + <flag name="fontMonoSpace" value="0x40" /> + <flag name="followKeyLetterRatio" value="0x80" /> + <flag name="followKeyHintLabelRatio" value="0x100" /> + <flag name="hasPopupHint" value="0x200" /> + <flag name="hasUppercaseLetter" value="0x400" /> + <flag name="hasHintLabel" value="0x800" /> </attr> <!-- The icon to display on the key instead of the label. --> <attr name="keyIcon" format="enum"> @@ -214,29 +217,19 @@ <enum name="iconReturnKey" value="8" /> <enum name="iconSearchKey" value="9" /> <enum name="iconTabKey" value="10" /> - <enum name="iconNum1Key" value="11" /> - <enum name="iconNum2Key" value="12" /> - <enum name="iconNum3Key" value="13" /> - <enum name="iconNum4Key" value="14" /> - <enum name="iconNum5Key" value="15" /> - <enum name="iconNum6Key" value="16" /> - <enum name="iconNum7Key" value="17" /> - <enum name="iconNum8Key" value="18" /> - <enum name="iconNum9Key" value="19" /> - <enum name="iconNum0Key" value="20" /> </attr> <!-- Shift key icon for shifted state --> <attr name="keyIconShifted" format="enum"> <!-- This should be aligned with KeyboardIcons.ICON_SHIFTED_* --> - <enum name="iconShiftedShiftKey" value="21" /> + <enum name="iconShiftedShiftKey" value="11" /> </attr> <!-- The icon to show in the popup preview. --> <attr name="keyIconPreview" format="enum"> <!-- This should be aligned with KeyboardIcons.ICON_PREVIEW_* --> - <enum name="iconPreviewSpaceKey" value="22" /> - <enum name="iconPreviewTabKey" value="23" /> - <enum name="iconPreviewSettingsKey" value="24" /> - <enum name="iconPreviewShortcutKey" value="25" /> + <enum name="iconPreviewSpaceKey" value="12" /> + <enum name="iconPreviewTabKey" value="13" /> + <enum name="iconPreviewSettingsKey" value="14" /> + <enum name="iconPreviewShortcutKey" value="15" /> </attr> <!-- The key style to specify a set of key attributes defined by <key_style/> --> <attr name="keyStyle" format="string" /> diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml index 54256de3c..0dd1be3d2 100644 --- a/java/res/values/dimens.xml +++ b/java/res/values/dimens.xml @@ -32,14 +32,16 @@ <dimen name="keyboard_bottom_padding">0.06in</dimen> <dimen name="key_bottom_gap_stone">0.00in</dimen> <dimen name="key_horizontal_gap_stone">0.00in</dimen> + <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> + <dimen name="mini_keyboard_horizontal_padding">16dip</dimen> + <dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen> + <dimen name="key_bottom_gap_ics">0.06in</dimen> <dimen name="key_horizontal_gap_ics">0.01in</dimen> <dimen name="keyboard_top_padding_ics">0.03in</dimen> <dimen name="keyboard_bottom_padding_ics">0.06in</dimen> - <dimen name="keyboard_horizontal_edges_padding">0.0in</dimen> - <dimen name="mini_keyboard_horizontal_padding">16dip</dimen> - <dimen name="mini_keyboard_horizontal_padding_holo">38dip</dimen> - <dimen name="mini_keyboard_key_horizontal_padding">8dip</dimen> + <dimen name="mini_keyboard_horizontal_padding_ics">38dip</dimen> + <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. --> <!-- popup_key_height x 1.2 --> <dimen name="mini_keyboard_slide_allowance">0.396in</dimen> @@ -49,15 +51,20 @@ to user's finger. --> <dimen name="keyboard_vertical_correction">-0.05in</dimen> + <!-- left or right padding of label alignment --> + <dimen name="key_label_horizontal_alignment_padding">4dip</dimen> + <fraction name="key_letter_ratio">45%</fraction> + <fraction name="key_large_letter_ratio">55%</fraction> <fraction name="key_label_ratio">29%</fraction> <fraction name="key_hint_letter_ratio">23%</fraction> + <fraction name="key_hint_label_ratio">36%</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> <fraction name="key_preview_text_ratio">82%</fraction> <dimen name="key_preview_height">80sp</dimen> <dimen name="key_preview_offset">0.1in</dimen> + + <dimen name="key_preview_height_ics">80sp</dimen> <dimen name="key_preview_offset_ics">0.05in</dimen> <dimen name="candidate_strip_height">42dip</dimen> @@ -66,7 +73,7 @@ <dimen name="candidate_strip_minimum_height">100sp</dimen> <dimen name="candidate_strip_fading_edge_length">63dip</dimen> <dimen name="candidate_strip_padding">0dip</dimen> - <dimen name="candidate_min_width">32dip</dimen> + <dimen name="candidate_min_width">44dip</dimen> <dimen name="candidate_padding">6dip</dimen> <dimen name="candidate_text_size">18dip</dimen> <!-- If the screen height in landscape is larger than the below value, then the keyboard diff --git a/java/res/values/keyboard-icons-black.xml b/java/res/values/keyboard-icons-black.xml index 3ba345580..89631bb01 100644 --- a/java/res/values/keyboard-icons-black.xml +++ b/java/res/values/keyboard-icons-black.xml @@ -26,16 +26,6 @@ <item name="iconReturnKey">@drawable/sym_bkeyboard_return</item> <item name="iconSearchKey">@drawable/sym_bkeyboard_search</item> <item name="iconTabKey">@drawable/sym_bkeyboard_tab</item> - <item name="iconNum1Key">@drawable/sym_bkeyboard_num1</item> - <item name="iconNum2Key">@drawable/sym_bkeyboard_num2</item> - <item name="iconNum3Key">@drawable/sym_bkeyboard_num3</item> - <item name="iconNum4Key">@drawable/sym_bkeyboard_num4</item> - <item name="iconNum5Key">@drawable/sym_bkeyboard_num5</item> - <item name="iconNum6Key">@drawable/sym_bkeyboard_num6</item> - <item name="iconNum7Key">@drawable/sym_bkeyboard_num7</item> - <item name="iconNum8Key">@drawable/sym_bkeyboard_num8</item> - <item name="iconNum9Key">@drawable/sym_bkeyboard_num9</item> - <item name="iconNum0Key">@drawable/sym_bkeyboard_num0</item> <item name="iconShiftedShiftKey">@drawable/sym_bkeyboard_shift_locked</item> <item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item> <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item> diff --git a/java/res/values/keyboard-icons-ics.xml b/java/res/values/keyboard-icons-ics.xml index 750cd3504..722ef1dc5 100644 --- a/java/res/values/keyboard-icons-ics.xml +++ b/java/res/values/keyboard-icons-ics.xml @@ -17,62 +17,44 @@ <resources> <style name="KeyboardIcons.IceCreamSandwich" parent="android:Theme"> <!-- Keyboard icons --> -<!-- <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo</item> --> - <item name="iconShiftKey">@drawable/sym_keyboard_shift</item> -<!-- <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_voice_holo</item> --> - <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic</item> -<!-- <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item> --> - <item name="iconDeleteKey">@drawable/sym_keyboard_delete</item> -<!-- <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item> --> - <item name="iconSettingsKey">@drawable/sym_keyboard_settings</item> -<!-- <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item> --> - <item name="iconShortcutKey">@drawable/sym_keyboard_mic</item> -<!-- <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo</item> --> - <item name="iconSpaceKey">@drawable/sym_keyboard_space</item> -<!-- <item name="iconReturnKey">@drawable/sym_keyboard_return_holo</item> --> - <item name="iconReturnKey">@drawable/sym_keyboard_return</item> -<!-- <item name="iconSearchKey">@drawable/sym_keyboard_search_holo</item> --> + <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are too + large for phone. + sym_keyboard_shift_holo + sym_keyboard_shift_locked_holo + sym_keyboard_delete_holo, + sym_keyboard_settings_holo + sym_keyboard_voice_holo + sym_keyboard_voice_holo_off + sym_keyboard_space_holo + sym_keyboard_return_holo + sym_keyboard_tab_holo + --> + <!-- TODO: The following holo icon for phone (drawable-hdpi and drawable-xhdpi) are missing. + sym_keyboard_123_mic_holo + sym_keyboard_search_holo + sym_keyboard_feedback_tab_holo + sym_keyboard_feedback_voice_holo + --> + <item name="iconShiftKey">@drawable/sym_keyboard_shift_holo</item> + <item name="iconToSymbolKeyWithShortcut">@drawable/sym_keyboard_123_mic_holo</item> + <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item> + <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item> + <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item> + <item name="iconSpaceKey">@drawable/sym_keyboard_space_holo</item> + <item name="iconReturnKey">@drawable/sym_keyboard_return_holo</item> <item name="iconSearchKey">@drawable/sym_keyboard_search</item> -<!-- <item name="iconTabKey">@drawable/sym_keyboard_tab_holo</item> --> - <item name="iconTabKey">@drawable/sym_keyboard_tab</item> -<!-- <item name="iconNum1Key">@drawable/sym_keyboard_num1_holo</item> --> -<!-- <item name="iconNum2Key">@drawable/sym_keyboard_num2_holo</item> --> -<!-- <item name="iconNum3Key">@drawable/sym_keyboard_num3_holo</item> --> -<!-- <item name="iconNum4Key">@drawable/sym_keyboard_num4_holo</item> --> -<!-- <item name="iconNum5Key">@drawable/sym_keyboard_num5_holo</item> --> -<!-- <item name="iconNum6Key">@drawable/sym_keyboard_num6_holo</item> --> -<!-- <item name="iconNum7Key">@drawable/sym_keyboard_num7_holo</item> --> -<!-- <item name="iconNum8Key">@drawable/sym_keyboard_num8_holo</item> --> -<!-- <item name="iconNum9Key">@drawable/sym_keyboard_num9_holo</item> --> -<!-- <item name="iconNum0Key">@drawable/sym_keyboard_num0_holo</item> --> -<!-- <item name="iconNumStarKey">@drawable/sym_keyboard_numbstar_holo</item> --> -<!-- <item name="iconNumPoundKey">@drawable/sym_keyboard_numbpound_holo</item> --> -<!-- <item name="iconNumAltKey">@drawable/sym_keyboard_numalt_holo</item> --> - <item name="iconNum1Key">@drawable/sym_keyboard_num1</item> - <item name="iconNum2Key">@drawable/sym_keyboard_num2</item> - <item name="iconNum3Key">@drawable/sym_keyboard_num3</item> - <item name="iconNum4Key">@drawable/sym_keyboard_num4</item> - <item name="iconNum5Key">@drawable/sym_keyboard_num5</item> - <item name="iconNum6Key">@drawable/sym_keyboard_num6</item> - <item name="iconNum7Key">@drawable/sym_keyboard_num7</item> - <item name="iconNum8Key">@drawable/sym_keyboard_num8</item> - <item name="iconNum9Key">@drawable/sym_keyboard_num9</item> - <item name="iconNum0Key">@drawable/sym_keyboard_num0</item> -<!-- <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked_holo</item> --> - <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked</item> + <item name="iconTabKey">@drawable/sym_keyboard_tab_holo</item> + <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked_holo</item> <item name="iconPreviewSpaceKey">@drawable/transparent</item> -<!-- <item name="iconPreviewTabKey">@drawable/sym_keyboard_tab_holo</item> --> <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item> -<!-- <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings_holo</item> --> - <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings</item> -<!-- <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_voice_holo</item> --> + <item name="iconPreviewSettingsKey">@drawable/sym_keyboard_settings_holo</item> <item name="iconPreviewShortcutKey">@drawable/sym_keyboard_feedback_mic</item> <!-- LatinKeyboard icons --> <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led</item> <item name="disabledShortcutIcon">@drawable/sym_keyboard_voice_off_holo</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> --> + <item name="spacebarArrowPreviewLeftIcon">@null</item> + <item name="spacebarArrowPreviewRightIcon">@null</item> </style> </resources> diff --git a/java/res/values/keyboard-icons-white.xml b/java/res/values/keyboard-icons-white.xml index 9f5fb5a5b..f9726d157 100644 --- a/java/res/values/keyboard-icons-white.xml +++ b/java/res/values/keyboard-icons-white.xml @@ -26,16 +26,6 @@ <item name="iconReturnKey">@drawable/sym_keyboard_return</item> <item name="iconSearchKey">@drawable/sym_keyboard_search</item> <item name="iconTabKey">@drawable/sym_keyboard_tab</item> - <item name="iconNum1Key">@drawable/sym_keyboard_num1</item> - <item name="iconNum2Key">@drawable/sym_keyboard_num2</item> - <item name="iconNum3Key">@drawable/sym_keyboard_num3</item> - <item name="iconNum4Key">@drawable/sym_keyboard_num4</item> - <item name="iconNum5Key">@drawable/sym_keyboard_num5</item> - <item name="iconNum6Key">@drawable/sym_keyboard_num6</item> - <item name="iconNum7Key">@drawable/sym_keyboard_num7</item> - <item name="iconNum8Key">@drawable/sym_keyboard_num8</item> - <item name="iconNum9Key">@drawable/sym_keyboard_num9</item> - <item name="iconNum0Key">@drawable/sym_keyboard_num0</item> <item name="iconShiftedShiftKey">@drawable/sym_keyboard_shift_locked</item> <item name="iconPreviewSpaceKey">@drawable/sym_keyboard_feedback_space</item> <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item> diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml index cd11ee6f6..08cd35db3 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -105,7 +105,7 @@ <!-- Option to suggest auto correction candidates aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] --> <string name="auto_correction_threshold_mode_aggeressive">Aggressive</string> <!-- Option to suggest auto correction candidates very aggressively. Auto-corrects to a word which has even large edit distance from typed word. [CHAR LIMIT=20] --> - <string name="auto_correction_threshold_mode_very_aggeressive">Very Aggressive</string> + <string name="auto_correction_threshold_mode_very_aggeressive">Very aggressive</string> <!-- Option to enable bigram correction --> <string name="bigram_suggestion">Bigram suggestions</string> @@ -322,7 +322,7 @@ <string name="prefs_enable_recorrection_summary">Touch entered words to correct them, only when suggestions are visible</string> <!-- Title of the item to change the keyboard theme [CHAR LIMIT=20]--> - <string name="keyboard_layout">Keyboard Theme</string> + <string name="keyboard_layout">Keyboard theme</string> <!-- Description for Czech keyboard subtype [CHAR LIMIT=35] --> <string name="subtype_mode_cs_keyboard">Czech Keyboard</string> @@ -409,5 +409,5 @@ <string name="subtype_mode_zu_voice">isiZulu Voice</string> <!-- Title of an option for usability study mode --> - <string name="prefs_usability_study_mode">Usability Study Mode</string> + <string name="prefs_usability_study_mode">Usability study mode</string> </resources> diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml index 05defcb52..ff91e9ef1 100644 --- a/java/res/values/styles.xml +++ b/java/res/values/styles.xml @@ -37,19 +37,23 @@ <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="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item> <item name="keyLabelRatio">@fraction/key_label_ratio</item> <item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item> + <item name="keyHintLabelRatio">@fraction/key_hint_label_ratio</item> <item name="keyUppercaseLetterRatio">@fraction/key_uppercase_letter_ratio</item> <item name="keyTextStyle">normal</item> <item name="keyTextColor">#FFFFFFFF</item> <item name="keyTextInactivatedColor">#FFFFFFFF</item> <item name="keyHintLetterColor">#80000000</item> + <item name="keyHintLabelColor">#E0E0E4E5</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="keyPreviewTextRatio">@fraction/key_preview_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> @@ -106,6 +110,10 @@ <item name="keyBackground">@drawable/btn_keyboard_key_stone</item> <item name="keyTextColor">#FF000000</item> <item name="keyTextInactivatedColor">#FF808080</item> + <item name="keyHintLetterColor">#80FFFFFF</item> + <item name="keyHintLabelColor">#E0000000</item> + <item name="keyUppercaseLetterInactivatedColor">#66000000</item> + <item name="keyUppercaseLetterActivatedColor">#CC000000</item> <item name="shadowColor">#FFFFFFFF</item> </style> <style name="PopupMiniKeyboardView.Stone" parent="PopupMiniKeyboardView"> @@ -142,10 +150,10 @@ <item name="keyTextStyle">bold</item> <item name="keyTextInactivatedColor">#66E0E4E5</item> <item name="keyHintLetterColor">#80000000</item> + <item name="keyHintLabelColor">#A0FFFFFF</item> <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item> <item name="keyUppercaseLetterActivatedColor">#FFFFFFFF</item> - <item name="keyPopupHintIcon">@drawable/hint_popup</item> - <item name="keyPreviewHeight">@dimen/key_preview_height</item> + <item name="keyPreviewHeight">@dimen/key_preview_height_ics</item> <item name="keyPreviewOffset">@dimen/key_preview_offset_ics</item> <item name="shadowColor">#00000000</item> <item name="shadowRadius">0.0</item> @@ -159,8 +167,8 @@ </style> <style name="PopupMiniKeyboardPanelStyle.IceCreamSandwich"> <item name="android:background">@drawable/keyboard_popup_panel_background_holo</item> - <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding_holo</item> - <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding_holo</item> + <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_padding_ics</item> + <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_padding_ics</item> </style> <style name="SuggestionsStripBackgroundStyle.IceCreamSandwich"> <item name="android:background">@drawable/keyboard_suggest_strip_holo</item> diff --git a/java/res/xml-large/kbd_key_styles.xml b/java/res/xml-large/kbd_key_styles.xml index e8e80ac03..dbea4dcfd 100644 --- a/java/res/xml-large/kbd_key_styles.xml +++ b/java/res/xml-large/kbd_key_styles.xml @@ -37,7 +37,7 @@ <default> <key-style latin:styleName="settingsPopupStyle" - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="\@icon/5|\@integer/key_settings" latin:parentStyle="functionalKeyStyle" /> </default> @@ -73,7 +73,7 @@ latin:styleName="smileyKeyStyle" latin:keyLabel=":-)" latin:keyOutputText=":-) " - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_smiley" latin:maxPopupKeyboardColumn="5" /> <key-style @@ -116,7 +116,7 @@ <key-style latin:styleName="comKeyStyle" latin:keyLabel="@string/keylabel_for_popular_domain" - latin:keyLabelOption="fontNormal|popupHint" + latin:keyLabelOption="fontNormal|hasPopupHint" latin:keyOutputText="@string/keylabel_for_popular_domain" latin:popupCharacters="@string/alternates_for_popular_domain" /> <switch> diff --git a/java/res/xml-large/kbd_number.xml b/java/res/xml-large/kbd_number.xml index 2c7af0ae2..b3a1010d7 100644 --- a/java/res/xml-large/kbd_number.xml +++ b/java/res/xml-large/kbd_number.xml @@ -91,24 +91,27 @@ <Row> <Key latin:keyLabel="-" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="11.00%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="+" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="1" + latin:keyStyle="numKeyStyle" latin:keyXPos="38.75%p" /> <Key - latin:keyLabel="2" /> + latin:keyLabel="2" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="3" /> + latin:keyLabel="3" + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyXPos="-11.00%p" @@ -117,25 +120,27 @@ </Row> <Row> <Key - latin:keyLabel="*" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numStarKeyStyle" latin:keyXPos="11.00%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="/" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="," - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="4" + latin:keyStyle="numKeyStyle" latin:keyXPos="38.75%p" /> <Key - latin:keyLabel="5" /> + latin:keyLabel="5" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="6" /> + latin:keyLabel="6" + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="returnKeyStyle" latin:keyXPos="-11.00%p" @@ -148,24 +153,27 @@ edge key. --> <Key latin:keyLabel="(" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="11.00%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel=")" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="=" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="7" + latin:keyStyle="numKeyStyle" latin:keyXPos="38.75%p" /> <Key - latin:keyLabel="8" /> + latin:keyLabel="8" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="9" /> + latin:keyLabel="9" + latin:keyStyle="numKeyStyle" /> </Row> <!-- This row is intentionally not marked as a bottom row --> <Row> @@ -180,10 +188,11 @@ latin:keyStyle="numStarKeyStyle" latin:keyXPos="38.75%p" /> <Key - latin:keyLabel="0" /> + latin:keyLabel="0" + latin:keyStyle="numKeyStyle" /> <Key latin:keyLabel="#" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Spacer latin:keyXPos="-11.00%p" latin:keyWidth="0%p" /> diff --git a/java/res/xml-large/kbd_phone.xml b/java/res/xml-large/kbd_phone.xml index 4dee882e9..dd53a206a 100644 --- a/java/res/xml-large/kbd_phone.xml +++ b/java/res/xml-large/kbd_phone.xml @@ -30,12 +30,12 @@ <Row> <Key latin:keyLabel="-" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="15.625%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="+" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyStyle="num1KeyStyle" @@ -53,12 +53,12 @@ <Row> <Key latin:keyLabel="," - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="15.625%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyStyle="num4KeyStyle" @@ -82,12 +82,12 @@ the touch event on the area, "(" is intentionally not marked as a left edge key. --> <Key latin:keyLabel="(" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="15.625%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel=")" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyStyle="num7KeyStyle" @@ -114,7 +114,7 @@ latin:keyStyle="num0KeyStyle" /> <Key latin:keyLabel="#" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Spacer latin:keyXPos="-11.00%p" latin:keyWidth="0%p" /> diff --git a/java/res/xml-large/kbd_phone_symbols.xml b/java/res/xml-large/kbd_phone_symbols.xml index 87de880d9..d083ecb60 100644 --- a/java/res/xml-large/kbd_phone_symbols.xml +++ b/java/res/xml-large/kbd_phone_symbols.xml @@ -30,12 +30,12 @@ <Row> <Key latin:keyLabel="-" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="11.00%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="+" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:code="44" @@ -57,12 +57,12 @@ <Row> <Key latin:keyLabel="," - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="11.00%p" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:code="59" @@ -90,15 +90,15 @@ the touch event on the area, "(" is intentionally not marked as a left edge key. --> <Key latin:keyLabel="(" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel=")" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyLabel="N" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="9.25%p" /> <Key latin:keyStyle="num7KeyStyle" @@ -124,7 +124,7 @@ latin:keyStyle="num0KeyStyle" /> <Key latin:keyLabel="#" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Spacer latin:keyXPos="-11.00%p" latin:keyWidth="0%p" /> diff --git a/java/res/xml-large/kbd_qwerty_row3.xml b/java/res/xml-large/kbd_qwerty_row3.xml index 0dbc5cf66..278db13fc 100644 --- a/java/res/xml-large/kbd_qwerty_row3.xml +++ b/java/res/xml-large/kbd_qwerty_row3.xml @@ -59,12 +59,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml-large/kbd_qwerty_row4.xml b/java/res/xml-large/kbd_qwerty_row4.xml index 8fd65fe0e..4f41c17b4 100644 --- a/java/res/xml-large/kbd_qwerty_row4.xml +++ b/java/res/xml-large/kbd_qwerty_row4.xml @@ -49,7 +49,7 @@ <Key latin:keyLabel="/" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\@" + latin:keyHintLabel="\@" latin:popupCharacters="\@" /> </default> </switch> @@ -75,7 +75,7 @@ <Key latin:keyLabel="/" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter=":" + latin:keyHintLabel=":" latin:popupCharacters=":" latin:keyWidth="9.750%p" /> </case> @@ -83,7 +83,7 @@ <Key latin:keyLabel="\?" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="_" + latin:keyHintLabel="_" latin:popupCharacters="_" latin:keyWidth="9.750%p" /> </default> @@ -100,7 +100,7 @@ <Key latin:keyLabel="!" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\'" + latin:keyHintLabel="\'" latin:popupCharacters="\'" latin:keyWidth="9.750%p" /> </default> @@ -122,7 +122,7 @@ <Key latin:keyLabel="/" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter=":" + latin:keyHintLabel=":" latin:popupCharacters=":" latin:keyWidth="9.750%p" /> </case> @@ -130,7 +130,7 @@ <Key latin:keyLabel="\'" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter=""" + latin:keyHintLabel=""" latin:popupCharacters=""" latin:keyWidth="9.750%p" /> </default> @@ -147,7 +147,7 @@ <Key latin:keyLabel="-" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="_" + latin:keyHintLabel="_" latin:popupCharacters="_" latin:keyWidth="9.750%p" /> </default> diff --git a/java/res/xml-large/kbd_row3_right.xml b/java/res/xml-large/kbd_row3_right.xml index a9c5eb371..5e9584f2d 100644 --- a/java/res/xml-large/kbd_row3_right.xml +++ b/java/res/xml-large/kbd_row3_right.xml @@ -37,7 +37,7 @@ <Key latin:keyLabel="-" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="_" + latin:keyHintLabel="_" latin:popupCharacters="_" latin:keyXPos="-8.9%p" latin:keyWidth="fillBoth" @@ -49,7 +49,7 @@ <Key latin:keyLabel=":" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="+" + latin:keyHintLabel="+" latin:popupCharacters="+" latin:keyXPos="-8.9%p" latin:keyWidth="fillBoth" diff --git a/java/res/xml-large/kbd_rows_azerty.xml b/java/res/xml-large/kbd_rows_azerty.xml index b53bbbbf9..7ba716bc5 100644 --- a/java/res/xml-large/kbd_rows_azerty.xml +++ b/java/res/xml-large/kbd_rows_azerty.xml @@ -139,12 +139,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml-large/kbd_rows_qwertz.xml b/java/res/xml-large/kbd_rows_qwertz.xml index 7ea9b0f37..7f85fe778 100644 --- a/java/res/xml-large/kbd_rows_qwertz.xml +++ b/java/res/xml-large/kbd_rows_qwertz.xml @@ -104,12 +104,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml-large/kbd_rows_russian.xml b/java/res/xml-large/kbd_rows_russian.xml index 43fa665e6..b72324745 100644 --- a/java/res/xml-large/kbd_rows_russian.xml +++ b/java/res/xml-large/kbd_rows_russian.xml @@ -119,7 +119,7 @@ <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="," + latin:keyHintLabel="," latin:popupCharacters="," /> <include latin:keyboardLayout="@xml/kbd_row3_right" /> diff --git a/java/res/xml-large/kbd_rows_scandinavian.xml b/java/res/xml-large/kbd_rows_scandinavian.xml index 3666ead51..645ef625a 100644 --- a/java/res/xml-large/kbd_rows_scandinavian.xml +++ b/java/res/xml-large/kbd_rows_scandinavian.xml @@ -147,12 +147,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml-large/kbd_rows_serbian.xml b/java/res/xml-large/kbd_rows_serbian.xml index 80debdadb..4dfe94400 100644 --- a/java/res/xml-large/kbd_rows_serbian.xml +++ b/java/res/xml-large/kbd_rows_serbian.xml @@ -127,12 +127,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml-xlarge/kbd_key_styles.xml b/java/res/xml-xlarge/kbd_key_styles.xml index 5d8c081a6..4c1e3b63e 100644 --- a/java/res/xml-xlarge/kbd_key_styles.xml +++ b/java/res/xml-xlarge/kbd_key_styles.xml @@ -55,7 +55,7 @@ latin:styleName="smileyKeyStyle" latin:keyLabel=":-)" latin:keyOutputText=":-) " - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_smiley" latin:maxPopupKeyboardColumn="5" /> <key-style @@ -98,7 +98,7 @@ <key-style latin:styleName="comKeyStyle" latin:keyLabel="@string/keylabel_for_popular_domain" - latin:keyLabelOption="fontNormal|popupHint" + latin:keyLabelOption="fontNormal|hasPopupHint" latin:keyOutputText="@string/keylabel_for_popular_domain" latin:popupCharacters="@string/alternates_for_popular_domain" /> <switch> diff --git a/java/res/xml-xlarge/kbd_number.xml b/java/res/xml-xlarge/kbd_number.xml index 1ae6984a5..a3bed2f3a 100644 --- a/java/res/xml-xlarge/kbd_number.xml +++ b/java/res/xml-xlarge/kbd_number.xml @@ -98,24 +98,27 @@ latin:keyEdgeFlags="left" /> <Key latin:keyLabel="-" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="13.829%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="+" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="1" + latin:keyStyle="numKeyStyle" latin:keyXPos="43.125%p" /> <Key - latin:keyLabel="2" /> + latin:keyLabel="2" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="3" /> + latin:keyLabel="3" + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyXPos="-11.172%p" @@ -124,25 +127,27 @@ </Row> <Row> <Key - latin:keyLabel="*" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numStarKeyStyle" latin:keyXPos="13.829%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="/" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="," - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="4" + latin:keyStyle="numKeyStyle" latin:keyXPos="43.125%p" /> <Key - latin:keyLabel="5" /> + latin:keyLabel="5" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="6" /> + latin:keyLabel="6" + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="returnKeyStyle" latin:keyXPos="-11.172%p" @@ -155,24 +160,27 @@ edge key. --> <Key latin:keyLabel="(" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="13.829%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel=")" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="=" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="7" + latin:keyStyle="numKeyStyle" latin:keyXPos="43.125%p" /> <Key - latin:keyLabel="8" /> + latin:keyLabel="8" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="9" /> + latin:keyLabel="9" + latin:keyStyle="numKeyStyle" /> <!-- There is an empty area below the "Enter" key and right of the "9" key. To ignore the touch event on the area, "9" is intentionally not marked as a right edge key. --> @@ -191,14 +199,14 @@ latin:keyXPos="13.829%p" latin:keyWidth="24.140%p" /> <Key - latin:keyLabel="*" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numStarKeyStyle" latin:keyXPos="43.125%p" /> <Key - latin:keyLabel="0" /> + latin:keyLabel="0" + latin:keyStyle="numKeyStyle" /> <Key latin:keyLabel="#" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <switch> <case latin:voiceKeyEnabled="true" diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml index 6801ac5cc..0935992fd 100644 --- a/java/res/xml-xlarge/kbd_phone.xml +++ b/java/res/xml-xlarge/kbd_phone.xml @@ -35,12 +35,12 @@ latin:keyEdgeFlags="left" /> <Key latin:keyLabel="-" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="20.400%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="+" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyStyle="num1KeyStyle" @@ -62,12 +62,12 @@ latin:keyEdgeFlags="left" /> <Key latin:keyLabel="," - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="20.400%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyStyle="num4KeyStyle" @@ -87,12 +87,12 @@ the touch event on the area, "(" is intentionally not marked as a left edge key. --> <Key latin:keyLabel="(" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="20.400%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel=")" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyStyle="num7KeyStyle" @@ -124,7 +124,7 @@ latin:keyStyle="num0KeyStyle" /> <Key latin:keyLabel="#" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <switch> <case latin:voiceKeyEnabled="true" diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml index 22f78b6d3..6ee57d6a5 100644 --- a/java/res/xml-xlarge/kbd_phone_symbols.xml +++ b/java/res/xml-xlarge/kbd_phone_symbols.xml @@ -35,12 +35,12 @@ latin:keyEdgeFlags="left" /> <Key latin:keyLabel="-" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="13.829%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="+" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:code="44" @@ -66,12 +66,12 @@ latin:keyEdgeFlags="left" /> <Key latin:keyLabel="," - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="13.829%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:code="59" @@ -95,16 +95,16 @@ the touch event on the area, "(" is intentionally not marked as a left edge key. --> <Key latin:keyLabel="(" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyXPos="13.829%p" latin:keyWidth="8.047%p" /> <Key latin:keyLabel=")" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyLabel="N" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyWidth="8.047%p" /> <Key latin:keyStyle="num7KeyStyle" @@ -136,7 +136,7 @@ latin:keyStyle="num0KeyStyle" /> <Key latin:keyLabel="#" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <switch> <case latin:voiceKeyEnabled="true" diff --git a/java/res/xml-xlarge/kbd_qwerty_row4.xml b/java/res/xml-xlarge/kbd_qwerty_row4.xml index 00eabab9e..bdef89dcc 100644 --- a/java/res/xml-xlarge/kbd_qwerty_row4.xml +++ b/java/res/xml-xlarge/kbd_qwerty_row4.xml @@ -59,7 +59,7 @@ <Key latin:keyLabel=":" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="+" + latin:keyHintLabel="+" latin:popupCharacters="+" /> </case> <default> @@ -78,7 +78,7 @@ <Key latin:keyLabel="/" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\@" + latin:keyHintLabel="\@" latin:popupCharacters="\@" /> </default> </switch> @@ -101,14 +101,14 @@ <Key latin:keyLabel="/" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter=":" + latin:keyHintLabel=":" latin:popupCharacters=":" /> </case> <default> <Key latin:keyLabel="\'" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter=""" + latin:keyHintLabel=""" latin:popupCharacters=""" /> </default> </switch> @@ -123,7 +123,7 @@ <Key latin:keyLabel="-" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="_" + latin:keyHintLabel="_" latin:popupCharacters="_" /> </default> </switch> diff --git a/java/res/xml-xlarge/kbd_row3_right2.xml b/java/res/xml-xlarge/kbd_row3_right2.xml index e90de8eec..25453160f 100644 --- a/java/res/xml-xlarge/kbd_row3_right2.xml +++ b/java/res/xml-xlarge/kbd_row3_right2.xml @@ -34,12 +34,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml-xlarge/kbd_rows_azerty.xml b/java/res/xml-xlarge/kbd_rows_azerty.xml index 3bcba0042..373bda9ce 100644 --- a/java/res/xml-xlarge/kbd_rows_azerty.xml +++ b/java/res/xml-xlarge/kbd_rows_azerty.xml @@ -134,7 +134,7 @@ <Key latin:keyLabel="\'" latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter=":" + latin:keyHintLabel=":" latin:popupCharacters=":" /> <switch> <case @@ -149,12 +149,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml-xlarge/kbd_rows_qwertz.xml b/java/res/xml-xlarge/kbd_rows_qwertz.xml index 8d5f1e6d4..6567c3166 100644 --- a/java/res/xml-xlarge/kbd_rows_qwertz.xml +++ b/java/res/xml-xlarge/kbd_rows_qwertz.xml @@ -107,12 +107,12 @@ <Key latin:keyLabel="," latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="!" + latin:keyHintLabel="!" latin:popupCharacters="!" /> <Key latin:keyLabel="." latin:keyLabelOption="hasUppercaseLetter" - latin:keyHintLetter="\?" + latin:keyHintLabel="\?" latin:popupCharacters="\?" /> </default> </switch> diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml index 63d519c4c..3d8600391 100644 --- a/java/res/xml/kbd_key_styles.xml +++ b/java/res/xml/kbd_key_styles.xml @@ -46,7 +46,7 @@ <default> <key-style latin:styleName="settingsPopupStyle" - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="\@icon/5|\@integer/key_settings" latin:parentStyle="functionalKeyStyle" /> </default> @@ -129,7 +129,7 @@ latin:styleName="smileyKeyStyle" latin:keyLabel=":-)" latin:keyOutputText=":-) " - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" 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 429b81846..4d7b6d9a9 100644 --- a/java/res/xml/kbd_number.xml +++ b/java/res/xml/kbd_number.xml @@ -83,39 +83,48 @@ > <Key latin:keyLabel="1" + latin:keyStyle="numKeyStyle" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="2" /> + latin:keyLabel="2" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="3" /> + latin:keyLabel="3" + latin:keyStyle="numKeyStyle" /> <Key latin:keyLabel="-" - latin:keyStyle="functionalKeyStyle" + latin:keyStyle="numFunctionalKeyStyle" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> <Key latin:keyLabel="4" + latin:keyStyle="numKeyStyle" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="5" /> + latin:keyLabel="5" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="6" /> + latin:keyLabel="6" + latin:keyStyle="numKeyStyle" /> <Key latin:keyLabel="," - latin:keyStyle="functionalKeyStyle" + latin:keyStyle="numFunctionalKeyStyle" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> <Key latin:keyLabel="7" + latin:keyStyle="numKeyStyle" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="8" /> + latin:keyLabel="8" + latin:keyStyle="numKeyStyle"/> <Key - latin:keyLabel="9" /> + latin:keyLabel="9" + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" @@ -128,9 +137,11 @@ latin:keyStyle="numSpaceKeyStyle" latin:keyEdgeFlags="left" /> <Key - latin:keyLabel="0" /> + latin:keyLabel="0" + latin:keyStyle="numKeyStyle" /> <Key - latin:keyLabel="." /> + latin:keyLabel="." + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="returnKeyStyle" latin:keyWidth="fillRight" diff --git a/java/res/xml/kbd_numkey_styles.xml b/java/res/xml/kbd_numkey_styles.xml index 3a26a022b..657bfbcbf 100644 --- a/java/res/xml/kbd_numkey_styles.xml +++ b/java/res/xml/kbd_numkey_styles.xml @@ -22,71 +22,83 @@ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" > <key-style + latin:styleName="numKeyStyle" + latin:keyLabelOption="largeLetter|followKeyLetterRatio" /> + <key-style + latin:styleName="numModeKeyStyle" + latin:keyLabelOption="fontNormal|followKeyLetterRatio" /> + <key-style + latin:styleName="numFunctionalKeyStyle" + latin:keyLabelOption="largeLetter|followKeyLetterRatio" + latin:parentStyle="functionalKeyStyle" /> + <key-style + latin:styleName="numberKeyStyle" + latin:keyLabelOption="alignLeftOfCenter|hasHintLabel" + latin:parentStyle="numKeyStyle" /> + <key-style latin:styleName="num0KeyStyle" latin:code="48" - latin:keyIcon="iconNum0Key" /> + latin:keyLabel="0 +" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num1KeyStyle" - latin:code="49" - latin:keyIcon="iconNum1Key" /> + latin:keyLabel="1" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num2KeyStyle" - latin:code="50" - latin:keyIcon="iconNum2Key" /> + latin:keyLabel="2" + latin:keyHintLabel="ABC" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num3KeyStyle" - latin:code="51" - latin:keyIcon="iconNum3Key" /> + latin:keyLabel="3" + latin:keyHintLabel="DEF" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num4KeyStyle" - latin:code="52" - latin:keyIcon="iconNum4Key" /> + latin:keyLabel="4" + latin:keyHintLabel="GHI" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num5KeyStyle" - latin:code="53" - latin:keyIcon="iconNum5Key" /> + latin:keyLabel="5" + latin:keyHintLabel="JKL" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num6KeyStyle" - latin:code="54" - latin:keyIcon="iconNum6Key" /> + latin:keyLabel="6" + latin:keyHintLabel="MNO" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num7KeyStyle" - latin:code="55" - latin:keyIcon="iconNum7Key" /> + latin:keyLabel="7" + latin:keyHintLabel="PQRS" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num8KeyStyle" - latin:code="56" - latin:keyIcon="iconNum8Key" /> + latin:keyLabel="8" + latin:keyHintLabel="TUV" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="num9KeyStyle" - latin:code="57" - latin:keyIcon="iconNum9Key" /> - <key-style - latin:styleName="numLabelStyle" - latin:keyLabelOption="fontFixedWidth|followKeyLetterRatio" /> - <key-style - latin:styleName="numLabelFunctionalStyle" - latin:keyLabelOption="fontFixedWidth|followKeyLetterRatio" - latin:parentStyle="functionalKeyStyle" /> + latin:keyLabel="9" + latin:keyHintLabel="WXYZ" + latin:parentStyle="numberKeyStyle" /> <key-style latin:styleName="numStarKeyStyle" latin:code="42" latin:keyLabel="\uff0a" - latin:parentStyle="numLabelStyle" /> - <key-style - latin:styleName="numPoundKeyStyle" - latin:keyLabel="#" - latin:parentStyle="numLabelStyle" /> + latin:parentStyle="numKeyStyle" /> <key-style latin:styleName="numSwitchToAltKeyStyle" latin:code="@integer/key_switch_alpha_symbol" latin:keyLabel="@string/label_to_phone_symbols_key" - latin:parentStyle="numLabelStyle" /> + latin:parentStyle="numModeKeyStyle" /> <key-style latin:styleName="numSwitchToNumericKeyStyle" latin:code="@integer/key_switch_alpha_symbol" latin:keyLabel="@string/label_to_phone_numeric_key" - latin:parentStyle="numLabelStyle" /> + latin:parentStyle="numModeKeyStyle" /> <key-style latin:styleName="numSpaceKeyStyle" latin:code="@integer/key_space" diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml index 794528c2b..c6508fb03 100644 --- a/java/res/xml/kbd_phone.xml +++ b/java/res/xml/kbd_phone.xml @@ -38,7 +38,7 @@ latin:keyStyle="num3KeyStyle" /> <Key latin:keyLabel="-" - latin:keyStyle="numLabelFunctionalStyle" + latin:keyStyle="numFunctionalKeyStyle" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> @@ -52,7 +52,7 @@ latin:keyStyle="num6KeyStyle" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelFunctionalStyle" + latin:keyStyle="numFunctionalKeyStyle" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml index 1405c3c21..5d9912229 100644 --- a/java/res/xml/kbd_phone_symbols.xml +++ b/java/res/xml/kbd_phone_symbols.xml @@ -31,36 +31,36 @@ > <Key latin:keyLabel="(" - latin:keyStyle="numLabelStyle" + latin:keyStyle="numKeyStyle" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="/" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Key latin:keyLabel=")" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Key latin:keyLabel="-" - latin:keyStyle="numLabelFunctionalStyle" + latin:keyStyle="numFunctionalKeyStyle" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> <Row> <Key latin:keyLabel="N" - latin:keyStyle="numLabelStyle" latin:keyEdgeFlags="left" /> <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this has changed. --> <Key latin:code="44" - latin:keyLabel="Pause" /> + latin:keyLabel="@string/label_pause_key" + latin:keyLabelOption="followKeyHintLabelRatio" /> <Key latin:keyLabel="," - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Key latin:keyLabel="." - latin:keyStyle="numLabelFunctionalStyle" + latin:keyStyle="numFunctionalKeyStyle" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> </Row> @@ -71,10 +71,11 @@ <!-- Wait is a semicolon. --> <Key latin:code="59" - latin:keyLabel="Wait" /> + latin:keyLabel="@string/label_wait_key" + latin:keyLabelOption="followKeyHintLabelRatio" /> <Key latin:keyLabel="#" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" @@ -88,7 +89,7 @@ latin:keyEdgeFlags="left" /> <Key latin:keyLabel="+" - latin:keyStyle="numLabelStyle" /> + latin:keyStyle="numKeyStyle" /> <Key latin:keyStyle="numSpaceKeyStyle" /> <Key diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml index 8c3669de0..cfd2efd2a 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:keyHintLetter="1" + latin:keyHintLabel="1" latin:popupCharacters="@string/alternates_for_q" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" - latin:keyHintLetter="2" + latin:keyHintLabel="2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" - latin:keyHintLetter="3" + latin:keyHintLabel="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintLetter="4" + latin:keyHintLabel="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintLetter="5" + latin:keyHintLabel="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" - latin:keyHintLetter="6" + latin:keyHintLabel="6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" - latin:keyHintLetter="7" + latin:keyHintLabel="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintLetter="8" + latin:keyHintLabel="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintLetter="9" + latin:keyHintLabel="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintLetter="0" + latin:keyHintLabel="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 095133929..ff2ef3acd 100644 --- a/java/res/xml/kbd_qwerty_row4.xml +++ b/java/res/xml/kbd_qwerty_row4.xml @@ -47,7 +47,7 @@ > <Key latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_web_tab_punctuation" latin:keyWidth="9.2%p" latin:maxPopupKeyboardColumn="8" /> @@ -55,7 +55,7 @@ <default> <Key latin:keyLabel="." - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_punctuation" latin:keyWidth="9.2%p" latin:maxPopupKeyboardColumn="7" @@ -80,14 +80,14 @@ > <Key latin:keyStyle="tabKeyStyle" - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_web_tab_punctuation" latin:maxPopupKeyboardColumn="8" /> </case> <default> <Key latin:keyLabel="." - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_punctuation" latin:maxPopupKeyboardColumn="7" latin:keyStyle="functionalKeyStyle" /> diff --git a/java/res/xml/kbd_rows_azerty.xml b/java/res/xml/kbd_rows_azerty.xml index 9825c4a10..96efb6646 100644 --- a/java/res/xml/kbd_rows_azerty.xml +++ b/java/res/xml/kbd_rows_azerty.xml @@ -29,44 +29,44 @@ > <Key latin:keyLabel="a" - latin:keyHintLetter="1" + latin:keyHintLabel="1" latin:popupCharacters="@string/alternates_for_a" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="z" - latin:keyHintLetter="2" + latin:keyHintLabel="2" latin:popupCharacters="@string/alternates_for_z" /> <Key latin:keyLabel="e" - latin:keyHintLetter="3" + latin:keyHintLabel="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintLetter="4" + latin:keyHintLabel="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintLetter="5" + latin:keyHintLabel="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" - latin:keyHintLetter="6" + latin:keyHintLabel="6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" - latin:keyHintLetter="7" + latin:keyHintLabel="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintLetter="8" + latin:keyHintLabel="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintLetter="9" + latin:keyHintLabel="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintLetter="0" + latin:keyHintLabel="0" latin:popupCharacters="@string/alternates_for_p" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> diff --git a/java/res/xml/kbd_rows_qwertz.xml b/java/res/xml/kbd_rows_qwertz.xml index 0d70b2637..347ef60ad 100644 --- a/java/res/xml/kbd_rows_qwertz.xml +++ b/java/res/xml/kbd_rows_qwertz.xml @@ -29,44 +29,44 @@ > <Key latin:keyLabel="q" - latin:keyHintLetter="1" + latin:keyHintLabel="1" latin:popupCharacters="@string/alternates_for_q" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" - latin:keyHintLetter="2" + latin:keyHintLabel="2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" - latin:keyHintLetter="3" + latin:keyHintLabel="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintLetter="4" + latin:keyHintLabel="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintLetter="5" + latin:keyHintLabel="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="z" - latin:keyHintLetter="6" + latin:keyHintLabel="6" latin:popupCharacters="@string/alternates_for_z" /> <Key latin:keyLabel="u" - latin:keyHintLetter="7" + latin:keyHintLabel="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintLetter="8" + latin:keyHintLabel="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintLetter="9" + latin:keyHintLabel="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintLetter="0" + latin:keyHintLabel="0" latin:popupCharacters="@string/alternates_for_p" latin:keyWidth="fillRight" latin:keyEdgeFlags="right" /> diff --git a/java/res/xml/kbd_rows_russian.xml b/java/res/xml/kbd_rows_russian.xml index ff9fef409..2c10c3141 100644 --- a/java/res/xml/kbd_rows_russian.xml +++ b/java/res/xml/kbd_rows_russian.xml @@ -29,45 +29,45 @@ > <Key latin:keyLabel="й" - latin:keyHintLetter="1" + latin:keyHintLabel="1" latin:popupCharacters="1" latin:keyWidth="8.75%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="ц" - latin:keyHintLetter="2" + latin:keyHintLabel="2" latin:popupCharacters="2" /> <Key latin:keyLabel="у" - latin:keyHintLetter="3" + latin:keyHintLabel="3" latin:popupCharacters="3" /> <Key latin:keyLabel="к" - latin:keyHintLetter="4" + latin:keyHintLabel="4" latin:popupCharacters="4" /> <Key latin:keyLabel="е" - latin:keyHintLetter="5" + latin:keyHintLabel="5" latin:popupCharacters="@string/alternates_for_cyrillic_e" /> <Key latin:keyLabel="н" - latin:keyHintLetter="6" + latin:keyHintLabel="6" latin:popupCharacters="6" /> <Key latin:keyLabel="г" - latin:keyHintLetter="7" + latin:keyHintLabel="7" latin:popupCharacters="7" /> <Key latin:keyLabel="ш" - latin:keyHintLetter="8" + latin:keyHintLabel="8" latin:popupCharacters="8" /> <Key latin:keyLabel="щ" - latin:keyHintLetter="9" + latin:keyHintLabel="9" latin:popupCharacters="9" /> <Key latin:keyLabel="з" - latin:keyHintLetter="0" + latin:keyHintLabel="0" latin:popupCharacters="0" /> <Key latin:keyLabel="х" diff --git a/java/res/xml/kbd_rows_scandinavian.xml b/java/res/xml/kbd_rows_scandinavian.xml index 2d7dcde7a..3f2560128 100644 --- a/java/res/xml/kbd_rows_scandinavian.xml +++ b/java/res/xml/kbd_rows_scandinavian.xml @@ -29,45 +29,45 @@ > <Key latin:keyLabel="q" - latin:keyHintLetter="1" + latin:keyHintLabel="1" latin:popupCharacters="@string/alternates_for_q" latin:keyWidth="8.75%p" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="w" - latin:keyHintLetter="2" + latin:keyHintLabel="2" latin:popupCharacters="@string/alternates_for_w" /> <Key latin:keyLabel="e" - latin:keyHintLetter="3" + latin:keyHintLabel="3" latin:popupCharacters="@string/alternates_for_e" /> <Key latin:keyLabel="r" - latin:keyHintLetter="4" + latin:keyHintLabel="4" latin:popupCharacters="@string/alternates_for_r" /> <Key latin:keyLabel="t" - latin:keyHintLetter="5" + latin:keyHintLabel="5" latin:popupCharacters="@string/alternates_for_t" /> <Key latin:keyLabel="y" - latin:keyHintLetter="6" + latin:keyHintLabel="6" latin:popupCharacters="@string/alternates_for_y" /> <Key latin:keyLabel="u" - latin:keyHintLetter="7" + latin:keyHintLabel="7" latin:popupCharacters="@string/alternates_for_u" /> <Key latin:keyLabel="i" - latin:keyHintLetter="8" + latin:keyHintLabel="8" latin:popupCharacters="@string/alternates_for_i" /> <Key latin:keyLabel="o" - latin:keyHintLetter="9" + latin:keyHintLabel="9" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" - latin:keyHintLetter="0" + latin:keyHintLabel="0" latin:popupCharacters="@string/alternates_for_p" /> <Key latin:keyLabel="å" diff --git a/java/res/xml/kbd_rows_serbian.xml b/java/res/xml/kbd_rows_serbian.xml index 9f4b6a203..2bed276d3 100644 --- a/java/res/xml/kbd_rows_serbian.xml +++ b/java/res/xml/kbd_rows_serbian.xml @@ -29,44 +29,44 @@ > <Key latin:keyLabel="љ" - latin:keyHintLetter="1" + latin:keyHintLabel="1" latin:popupCharacters="1" latin:keyEdgeFlags="left" /> <Key latin:keyLabel="њ" - latin:keyHintLetter="2" + latin:keyHintLabel="2" latin:popupCharacters="2" /> <Key latin:keyLabel="е" - latin:keyHintLetter="3" + latin:keyHintLabel="3" latin:popupCharacters="3" /> <Key latin:keyLabel="р" - latin:keyHintLetter="4" + latin:keyHintLabel="4" latin:popupCharacters="4" /> <Key latin:keyLabel="т" - latin:keyHintLetter="5" + latin:keyHintLabel="5" latin:popupCharacters="5" /> <Key latin:keyLabel="з" - latin:keyHintLetter="6" + latin:keyHintLabel="6" latin:popupCharacters="6" /> <Key latin:keyLabel="у" - latin:keyHintLetter="7" + latin:keyHintLabel="7" latin:popupCharacters="7" /> <Key latin:keyLabel="и" - latin:keyHintLetter="8" + latin:keyHintLabel="8" latin:popupCharacters="8" /> <Key latin:keyLabel="о" - latin:keyHintLetter="9" + latin:keyHintLabel="9" latin:popupCharacters="9" /> <Key latin:keyLabel="п" - latin:keyHintLetter="0" + latin:keyHintLabel="0" latin:popupCharacters="0" /> <Key latin:keyLabel="ш" diff --git a/java/res/xml/kbd_symbols_row4.xml b/java/res/xml/kbd_symbols_row4.xml index 9323d4fd1..68b79e84d 100644 --- a/java/res/xml/kbd_symbols_row4.xml +++ b/java/res/xml/kbd_symbols_row4.xml @@ -43,7 +43,7 @@ latin:keyWidth="35.83%p" /> <Key latin:keyLabel="." - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_punctuation" latin:keyWidth="9.2%p" latin:maxPopupKeyboardColumn="7" @@ -62,7 +62,7 @@ latin:keyWidth="50%p" /> <Key latin:keyLabel="." - latin:keyLabelOption="popupHint" + latin:keyLabelOption="hasPopupHint" latin:popupCharacters="@string/alternates_for_punctuation" latin:maxPopupKeyboardColumn="7" latin:keyStyle="functionalKeyStyle" /> diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java index 043266c70..7199550a9 100644 --- a/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java +++ b/java/src/com/android/inputmethod/accessibility/AccessibleInputMethodServiceProxy.java @@ -18,7 +18,6 @@ package com.android.inputmethod.accessibility; import android.content.SharedPreferences; import android.inputmethodservice.InputMethodService; -import android.os.Handler; import android.os.Looper; import android.os.Message; import android.text.TextUtils; @@ -26,6 +25,7 @@ import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.StaticInnerHandlerWrapper; public class AccessibleInputMethodServiceProxy implements AccessibleKeyboardActionListener { private static final AccessibleInputMethodServiceProxy sInstance = @@ -42,18 +42,20 @@ public class AccessibleInputMethodServiceProxy implements AccessibleKeyboardActi private AccessibilityHandler mAccessibilityHandler; - private class AccessibilityHandler extends Handler { + private static class AccessibilityHandler + extends StaticInnerHandlerWrapper<AccessibleInputMethodServiceProxy> { private static final int MSG_NO_HOVER_SELECTION = 0; - public AccessibilityHandler(Looper looper) { - super(looper); + public AccessibilityHandler(AccessibleInputMethodServiceProxy outerInstance, + Looper looper) { + super(outerInstance, looper); } @Override public void handleMessage(Message msg) { switch (msg.what) { case MSG_NO_HOVER_SELECTION: - notifyNoHoverSelection(); + getOuterInstance().notifyNoHoverSelection(); break; } } @@ -82,7 +84,7 @@ public class AccessibleInputMethodServiceProxy implements AccessibleKeyboardActi private void initInternal(InputMethodService inputMethod, SharedPreferences prefs) { mInputMethod = inputMethod; - mAccessibilityHandler = new AccessibilityHandler(inputMethod.getMainLooper()); + mAccessibilityHandler = new AccessibilityHandler(this, inputMethod.getMainLooper()); } /** diff --git a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java index 154f4af91..a31911d60 100644 --- a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java +++ b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java @@ -134,7 +134,7 @@ public class KeyCodeDescriptionMapper { return context.getString(mKeyLabelMap.get(label)); } else if (label.length() == 1 || (keyboard.isManualTemporaryUpperCase() && !TextUtils - .isEmpty(key.mHintLetter))) { + .isEmpty(key.mHintLabel))) { return getDescriptionForKeyCode(context, keyboard, key); } else { return label; @@ -181,8 +181,8 @@ public class KeyCodeDescriptionMapper { * @return the key code for the specified key */ private int getCorrectKeyCode(Keyboard keyboard, Key key) { - if (keyboard.isManualTemporaryUpperCase() && !TextUtils.isEmpty(key.mHintLetter)) { - return key.mHintLetter.charAt(0); + if (keyboard.isManualTemporaryUpperCase() && !TextUtils.isEmpty(key.mHintLabel)) { + return key.mHintLabel.charAt(0); } else { return key.mCode; } diff --git a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java index b718ebbb7..8969a2168 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java +++ b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java @@ -19,6 +19,7 @@ package com.android.inputmethod.deprecated.voice; import com.android.inputmethod.latin.EditingUtils; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.StaticInnerHandlerWrapper; import android.content.ContentResolver; import android.content.Context; @@ -26,7 +27,6 @@ import android.content.Intent; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.os.Message; import android.os.Parcelable; import android.speech.RecognitionListener; @@ -132,13 +132,20 @@ public class VoiceInput implements OnClickListener { private final static int MSG_RESET = 1; - private final Handler mHandler = new Handler() { + private final UIHandler mHandler = new UIHandler(this); + + private static class UIHandler extends StaticInnerHandlerWrapper<VoiceInput> { + public UIHandler(VoiceInput outerInstance) { + super(outerInstance); + } + @Override public void handleMessage(Message msg) { if (msg.what == MSG_RESET) { - mState = DEFAULT; - mRecognitionView.finish(); - mUiListener.onCancelVoice(); + final VoiceInput voiceInput = getOuterInstance(); + voiceInput.mState = DEFAULT; + voiceInput.mRecognitionView.finish(); + voiceInput.mUiListener.onCancelVoice(); } } }; diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 2850c95df..872fbf823 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -19,17 +19,18 @@ package com.android.inputmethod.keyboard; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; +import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.text.TextUtils; import android.util.Xml; import com.android.inputmethod.keyboard.internal.KeyStyles; +import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle; import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; import com.android.inputmethod.keyboard.internal.KeyboardParser; +import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException; import com.android.inputmethod.keyboard.internal.PopupCharactersParser; import com.android.inputmethod.keyboard.internal.Row; -import com.android.inputmethod.keyboard.internal.KeyStyles.KeyStyle; -import com.android.inputmethod.keyboard.internal.KeyboardParser.ParseException; import com.android.inputmethod.latin.R; import java.util.ArrayList; @@ -45,18 +46,22 @@ public class Key { /** Label to display */ public final CharSequence mLabel; - /** Hint letter to display on the key in conjunction with the label */ - public final CharSequence mHintLetter; + /** Hint label to display on the key in conjunction with the label */ + public final CharSequence mHintLabel; /** 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; - public static final int LABEL_OPTION_FONT_FIXED_WIDTH = 0x20; - public static final int LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO = 0x40; - private static final int LABEL_OPTION_POPUP_HINT = 0x80; - private static final int LABEL_OPTION_HAS_UPPERCASE_LETTER = 0x100; + public static final int LABEL_OPTION_ALIGN_BOTTOM = 0x04; + public static final int LABEL_OPTION_ALIGN_LEFT_OF_CENTER = 0x08; + private static final int LABEL_OPTION_LARGE_LETTER = 0x10; + private static final int LABEL_OPTION_FONT_NORMAL = 0x20; + private static final int LABEL_OPTION_FONT_MONO_SPACE = 0x40; + private static final int LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO = 0x80; + private static final int LABEL_OPTION_FOLLOW_KEY_HINT_LABEL_RATIO = 0x100; + private static final int LABEL_OPTION_HAS_POPUP_HINT = 0x200; + private static final int LABEL_OPTION_HAS_UPPERCASE_LETTER = 0x400; + private static final int LABEL_OPTION_HAS_HINT_LABEL = 0x800; /** Icon to display instead of a label. Icon takes precedence over a label */ private Drawable mIcon; @@ -160,7 +165,7 @@ public class Key { mVisualInsetsLeft = mVisualInsetsRight = 0; mWidth = width - mGap; mEdgeFlags = edgeFlags; - mHintLetter = null; + mHintLabel = null; mLabelOption = 0; mFunctional = false; mSticky = false; @@ -282,7 +287,7 @@ public class Key { keyAttr, R.styleable.Keyboard_Key_keyIcon, KeyboardIconsSet.ICON_UNDEFINED)); Keyboard.setDefaultBounds(mIcon); - mHintLetter = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter); + mHintLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel); mLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyLabel); mLabelOption = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption, 0); @@ -309,14 +314,43 @@ public class Key { } } + public Typeface selectTypeface(Typeface defaultTypeface) { + // TODO: Handle "bold" here too? + if ((mLabelOption & LABEL_OPTION_FONT_NORMAL) != 0) { + return Typeface.DEFAULT; + } else if ((mLabelOption & LABEL_OPTION_FONT_MONO_SPACE) != 0) { + return Typeface.MONOSPACE; + } else { + return defaultTypeface; + } + } + + public int selectTextSize(int letter, int largeLetter, int label, int hintLabel) { + if (mLabel.length() > 1 + && (mLabelOption & (LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO + | LABEL_OPTION_FOLLOW_KEY_HINT_LABEL_RATIO)) == 0) { + return label; + } else if ((mLabelOption & LABEL_OPTION_FOLLOW_KEY_HINT_LABEL_RATIO) != 0) { + return hintLabel; + } else if ((mLabelOption & LABEL_OPTION_LARGE_LETTER) != 0) { + return largeLetter; + } else { + return letter; + } + } + public boolean hasPopupHint() { - return (mLabelOption & LABEL_OPTION_POPUP_HINT) != 0; + return (mLabelOption & LABEL_OPTION_HAS_POPUP_HINT) != 0; } public boolean hasUppercaseLetter() { return (mLabelOption & LABEL_OPTION_HAS_UPPERCASE_LETTER) != 0; } + public boolean hasHintLabel() { + return (mLabelOption & LABEL_OPTION_HAS_HINT_LABEL) != 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/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 9dc019c61..8ca6ade6c 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -30,7 +30,6 @@ import android.graphics.Rect; import android.graphics.Region.Op; import android.graphics.Typeface; import android.graphics.drawable.Drawable; -import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.util.Log; @@ -53,6 +52,7 @@ import com.android.inputmethod.keyboard.internal.PointerTrackerQueue; import com.android.inputmethod.keyboard.internal.SwipeTracker; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.StaticInnerHandlerWrapper; import java.util.ArrayList; import java.util.HashMap; @@ -66,16 +66,20 @@ 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_keyLargeLetterRatio * @attr ref R.styleable#KeyboardView_keyLabelRatio * @attr ref R.styleable#KeyboardView_keyHintLetterRatio * @attr ref R.styleable#KeyboardView_keyUppercaseLetterRatio + * @attr ref R.styleable#KeyboardView_keyHintLabelRatio * @attr ref R.styleable#KeyboardView_keyTextStyle * @attr ref R.styleable#KeyboardView_keyPreviewLayout + * @attr ref R.styleable#KeyboardView_keyPreviewTextRatio * @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_keyHintLetterColor + * @attr ref R.styleable#KeyboardView_keyHintLabelColor * @attr ref R.styleable#KeyboardView_keyUppercaseLetterInactivatedColor * @attr ref R.styleable#KeyboardView_keyUppercaseLetterActivatedColor * @attr ref R.styleable#KeyboardView_verticalCorrection @@ -99,13 +103,15 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private static final int HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL = -1; // XML attribute - private final float mKeyLetterRatio; private final int mKeyTextColor; private final int mKeyTextInactivatedColor; private final Typeface mKeyTextStyle; + private final float mKeyLetterRatio; + private final float mKeyLargeLetterRatio; private final float mKeyLabelRatio; private final float mKeyHintLetterRatio; private final float mKeyUppercaseLetterRatio; + private final float mKeyHintLabelRatio; private final int mShadowColor; private final float mShadowRadius; private final Drawable mKeyBackground; @@ -117,15 +123,18 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private final int mPopupLayout; private final Drawable mKeyPopupHintIcon; private final int mKeyHintLetterColor; + private final int mKeyHintLabelColor; private final int mKeyUppercaseLetterInactivatedColor; private final int mKeyUppercaseLetterActivatedColor; // Main keyboard private Keyboard mKeyboard; private int mKeyLetterSize; + private int mKeyLargeLetterSize; private int mKeyLabelSize; private int mKeyHintLetterSize; private int mKeyUppercaseLetterSize; + private int mKeyHintLabelSize; // Key preview private boolean mInForeground; @@ -182,7 +191,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private Canvas mCanvas; 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. @@ -193,9 +201,9 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private static final String KEY_LABEL_REFERENCE_CHAR = "M"; private final int mKeyLabelHorizontalPadding; - private final UIHandler mHandler = new UIHandler(); + private final UIHandler mHandler = new UIHandler(this); - class UIHandler extends Handler { + public static class UIHandler extends StaticInnerHandlerWrapper<KeyboardView> { private static final int MSG_SHOW_KEY_PREVIEW = 1; private static final int MSG_DISMISS_KEY_PREVIEW = 2; private static final int MSG_REPEAT_KEY = 3; @@ -205,34 +213,40 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private boolean mInKeyRepeat; + public UIHandler(KeyboardView outerInstance) { + super(outerInstance); + } + @Override public void handleMessage(Message msg) { + final KeyboardView keyboardView = getOuterInstance(); final PointerTracker tracker = (PointerTracker) msg.obj; switch (msg.what) { case MSG_SHOW_KEY_PREVIEW: - showKey(msg.arg1, tracker); + keyboardView.showKey(msg.arg1, tracker); break; case MSG_DISMISS_KEY_PREVIEW: - mPreviewText.setVisibility(View.INVISIBLE); + keyboardView.mPreviewText.setVisibility(View.INVISIBLE); break; case MSG_REPEAT_KEY: tracker.onRepeatKey(msg.arg1); - startKeyRepeatTimer(mKeyRepeatInterval, msg.arg1, tracker); + startKeyRepeatTimer(keyboardView.mKeyRepeatInterval, msg.arg1, tracker); break; case MSG_LONGPRESS_KEY: - openMiniKeyboardIfRequired(msg.arg1, tracker); + keyboardView.openMiniKeyboardIfRequired(msg.arg1, tracker); break; case MSG_LONGPRESS_SHIFT_KEY: - onLongPressShiftKey(tracker); + keyboardView.onLongPressShiftKey(tracker); break; } } public void showKeyPreview(long delay, int keyIndex, PointerTracker tracker) { + final KeyboardView keyboardView = getOuterInstance(); removeMessages(MSG_SHOW_KEY_PREVIEW); - if (mPreviewText.getVisibility() == VISIBLE || delay == 0) { + if (keyboardView.mPreviewText.getVisibility() == VISIBLE || delay == 0) { // Show right away, if it's already visible and finger is moving around - showKey(keyIndex, tracker); + keyboardView.showKey(keyIndex, tracker); } else { sendMessageDelayed( obtainMessage(MSG_SHOW_KEY_PREVIEW, keyIndex, 0, tracker), delay); @@ -332,15 +346,19 @@ 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); + mKeyLargeLetterRatio = getRatio(a, R.styleable.KeyboardView_keyLargeLetterRatio); mKeyLabelRatio = getRatio(a, R.styleable.KeyboardView_keyLabelRatio); mKeyHintLetterRatio = getRatio(a, R.styleable.KeyboardView_keyHintLetterRatio); mKeyUppercaseLetterRatio = getRatio(a, R.styleable.KeyboardView_keyUppercaseLetterRatio); + mKeyHintLabelRatio = getRatio(a, R.styleable.KeyboardView_keyHintLabelRatio); + mPreviewTextRatio = getRatio(a, R.styleable.KeyboardView_keyPreviewTextRatio); mKeyTextColor = a.getColor(R.styleable.KeyboardView_keyTextColor, 0xFF000000); mKeyTextInactivatedColor = a.getColor( R.styleable.KeyboardView_keyTextInactivatedColor, 0xFF000000); mKeyPopupHintIcon = a.getDrawable(R.styleable.KeyboardView_keyPopupHintIcon); mKeyHintLetterColor = a.getColor(R.styleable.KeyboardView_keyHintLetterColor, 0); + mKeyHintLabelColor = a.getColor(R.styleable.KeyboardView_keyHintLabelColor, 0); mKeyUppercaseLetterInactivatedColor = a.getColor( R.styleable.KeyboardView_keyUppercaseLetterInactivatedColor, 0); mKeyUppercaseLetterActivatedColor = a.getColor( @@ -359,7 +377,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { if (previewLayout != 0) { mPreviewText = (TextView) LayoutInflater.from(context).inflate(previewLayout, null); mPreviewBackground = mPreviewText.getBackground(); - mPreviewTextRatio = getRatio(res, R.fraction.key_preview_text_ratio); } else { mShowKeyPreviewPopup = false; } @@ -456,11 +473,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { return a.getFraction(index, 1000, 1000, 1) / 1000.0f; } - // Read fraction value in resource as float. - private static float getRatio(Resources res, int id) { - return res.getFraction(id, 1000, 1000) / 1000.0f; - } - public void startIgnoringDoubleTap() { if (ENABLE_CAPSLOCK_BY_DOUBLETAP) mHandler.startIgnoringDoubleTap(); @@ -515,10 +527,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mPopupPanelCache.clear(); final int keyHeight = keyboard.getRowHeight() - keyboard.getVerticalGap(); mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio); + mKeyLargeLetterSize = (int)(keyHeight * mKeyLargeLetterRatio); mKeyLabelSize = (int)(keyHeight * mKeyLabelRatio); mKeyHintLetterSize = (int)(keyHeight * mKeyHintLetterRatio); mKeyUppercaseLetterSize = (int)( keyHeight * mKeyUppercaseLetterRatio); + mKeyHintLabelSize = (int)(keyHeight * mKeyHintLabelRatio); mPreviewTextSize = (int)(keyHeight * mPreviewTextRatio); } @@ -581,7 +595,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { protected CharSequence adjustCase(CharSequence label) { if (mKeyboard.isShiftedOrShiftLocked() && label != null && label.length() < 3 && Character.isLowerCase(label.charAt(0))) { - return label.toString().toUpperCase(); + return label.toString().toUpperCase(mKeyboard.mId.mLocale); } return label; } @@ -683,6 +697,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { final int kbdPaddingTop = getPaddingTop(); final int keyDrawX = key.mX + key.mVisualInsetsLeft; final int keyDrawWidth = key.mWidth - key.mVisualInsetsLeft - key.mVisualInsetsRight; + final int centerX = (keyDrawWidth + padding.left - padding.right) / 2; + final float centerY = (key.mHeight + padding.top - padding.bottom) / 2; final int rowHeight = padding.top + key.mHeight; final boolean isManualTemporaryUpperCase = mKeyboard.isManualTemporaryUpperCase(); @@ -698,47 +714,48 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { keyBackground.draw(canvas); // Draw key label. + int positionX = centerX; if (key.mLabel != null) { // Switch the character to uppercase if shift is pressed - final String label = key.mLabel == null ? null : adjustCase(key.mLabel).toString(); - // For characters, use large font. For labels like "Done", use small font. - final int labelSize = getLabelSizeAndSetPaint(label, key.mLabelOption, paint); - final int labelCharHeight = getLabelCharHeight(labelSize, paint); + final CharSequence label = key.mLabel == null ? null : adjustCase(key.mLabel); + // For characters, use large font. For labels like "Done", use smaller font. + paint.setTypeface(key.selectTypeface(mKeyTextStyle)); + final int labelSize = key.selectTextSize(mKeyLetterSize, mKeyLargeLetterSize, + mKeyLabelSize, mKeyHintLabelSize); + paint.setTextSize(labelSize); + final int labelCharHeight = getLabelCharHeight(paint); + final int labelCharWidth = getLabelCharWidth(paint); // Vertical label text alignment. final float baseline; + // TODO: Generalize the following calculations. 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, - new Paint()); } else { // Align center - final float centerY = (key.mHeight + padding.top - padding.bottom) / 2; baseline = centerY + labelCharHeight * KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER; - if (DEBUG_SHOW_ALIGN) - drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000, - new Paint()); } + // Horizontal label text alignment - final int positionX; if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) { - positionX = mKeyLabelHorizontalPadding + padding.left; + positionX = padding.left + mKeyLabelHorizontalPadding; 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) { positionX = keyDrawWidth - mKeyLabelHorizontalPadding - padding.right; paint.setTextAlign(Align.RIGHT); - if (DEBUG_SHOW_ALIGN) - drawVerticalLine(canvas, positionX, rowHeight, 0xc0808000, new Paint()); + } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT_OF_CENTER) != 0) { + // TODO: Parameterise this? + positionX = centerX - labelCharWidth * 7 / 4; + paint.setTextAlign(Align.LEFT); } else { - positionX = (keyDrawWidth + padding.left - padding.right) / 2; + positionX = centerX; paint.setTextAlign(Align.CENTER); - if (DEBUG_SHOW_ALIGN) { - if (label.length() > 1) - drawVerticalLine(canvas, positionX, rowHeight, 0xc0008080, new Paint()); - } } + if (DEBUG_SHOW_ALIGN) { + final Paint line = new Paint(); + drawHorizontalLine(canvas, (int)baseline, keyDrawWidth, 0xc0008000, line); + drawVerticalLine(canvas, positionX, rowHeight, 0xc0800080, line); + } + if (key.hasUppercaseLetter() && isManualTemporaryUpperCase) { paint.setColor(mKeyTextInactivatedColor); } else { @@ -751,59 +768,67 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { // Make label invisible paint.setColor(Color.TRANSPARENT); } - canvas.drawText(label, positionX, baseline, paint); + canvas.drawText(label, 0, label.length(), positionX, baseline, paint); // Turn off drop shadow 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; + // Draw hint label. + if (key.mHintLabel != null) { + final CharSequence hint = key.mHintLabel; + final int hintColor; + final int hintSize; if (key.hasUppercaseLetter()) { - textColor = isManualTemporaryUpperCase ? mKeyUppercaseLetterActivatedColor + hintColor = isManualTemporaryUpperCase ? mKeyUppercaseLetterActivatedColor : mKeyUppercaseLetterInactivatedColor; - textSize = mKeyUppercaseLetterSize; + hintSize = mKeyUppercaseLetterSize; + } else if (key.hasHintLabel()) { + hintColor = mKeyHintLabelColor; + hintSize = mKeyHintLabelSize; + paint.setTypeface(Typeface.DEFAULT); } else { - textColor = mKeyHintLetterColor; - textSize = mKeyHintLetterSize; + hintColor = mKeyHintLetterColor; + hintSize = mKeyHintLetterSize; } - paint.setColor(textColor); - paint.setTextSize(textSize); + paint.setColor(hintColor); + paint.setTextSize(hintSize); // 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); + final float hintX, hintY; + if (key.hasHintLabel()) { + // TODO: Generalize the following calculations. + hintX = positionX + getLabelCharWidth(paint) * 2; + hintY = centerY + getLabelCharHeight(paint) / 2; + } else { + hintX = keyDrawWidth - getLabelCharWidth(paint); + hintY = -paint.ascent() + padding.top; + } + canvas.drawText(hint, 0, hint.length(), hintX, hintY, paint); } // Draw key icon. final Drawable icon = key.getIcon(); if (key.mLabel == null && icon != null) { - final int drawableWidth = icon.getIntrinsicWidth(); - final int drawableHeight = icon.getIntrinsicHeight(); - final int drawableX; - final int drawableY = (key.mHeight + padding.top - padding.bottom - drawableHeight) / 2; + final int iconWidth = icon.getIntrinsicWidth(); + final int iconHeight = icon.getIntrinsicHeight(); + final int iconX, alignX; + final int iconY = (key.mHeight + padding.top - padding.bottom - iconHeight) / 2; if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_LEFT) != 0) { - drawableX = padding.left + mKeyLabelHorizontalPadding; - if (DEBUG_SHOW_ALIGN) - drawVerticalLine(canvas, drawableX, rowHeight, 0xc0800080, new Paint()); + iconX = padding.left + mKeyLabelHorizontalPadding; + alignX = iconX; } else if ((key.mLabelOption & Key.LABEL_OPTION_ALIGN_RIGHT) != 0) { - drawableX = keyDrawWidth - padding.right - mKeyLabelHorizontalPadding - - drawableWidth; - if (DEBUG_SHOW_ALIGN) - drawVerticalLine(canvas, drawableX + drawableWidth, rowHeight, - 0xc0808000, new Paint()); + iconX = keyDrawWidth - padding.right - mKeyLabelHorizontalPadding - iconWidth; + alignX = iconX + iconWidth; } else { // Align center - drawableX = (keyDrawWidth + padding.left - padding.right - drawableWidth) / 2; - if (DEBUG_SHOW_ALIGN) - drawVerticalLine(canvas, drawableX + drawableWidth / 2, rowHeight, - 0xc0008080, new Paint()); + iconX = (keyDrawWidth + padding.left - padding.right - iconWidth) / 2; + alignX = iconX + iconWidth / 2; + } + drawIcon(canvas, icon, iconX, iconY, iconWidth, iconHeight); + if (DEBUG_SHOW_ALIGN) { + final Paint line = new Paint(); + drawVerticalLine(canvas, alignX, rowHeight, 0xc0800080, line); + drawRectangle(canvas, iconX, iconY, iconWidth, iconHeight, 0x80c00000, line); } - drawIcon(canvas, icon, drawableX, drawableY, drawableWidth, drawableHeight); - if (DEBUG_SHOW_ALIGN) - drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight, - 0x80c00000, new Paint()); } // Draw popup hint icon "...". @@ -815,60 +840,60 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { final int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL; final Drawable hintIcon = mKeyPopupHintIcon; drawIcon(canvas, hintIcon, drawableX, drawableY, drawableWidth, drawableHeight); - if (DEBUG_SHOW_ALIGN) + if (DEBUG_SHOW_ALIGN) { drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight, 0x80c0c000, new Paint()); + } } canvas.translate(-keyDrawX - kbdPaddingLeft, -key.mY - kbdPaddingTop); } - public int getLabelSizeAndSetPaint(CharSequence label, int keyLabelOption, Paint paint) { + // This method is currently being used only by MiniKeyboardBuilder + public int getDefaultLabelSizeAndSetPaint(Paint paint) { // For characters, use large font. For labels like "Done", use small font. - final int labelSize; - final Typeface labelStyle; - if ((keyLabelOption & Key.LABEL_OPTION_FONT_NORMAL) != 0) { - labelStyle = Typeface.DEFAULT; - } else if ((keyLabelOption & Key.LABEL_OPTION_FONT_FIXED_WIDTH) != 0) { - labelStyle = Typeface.MONOSPACE; - } else { - labelStyle = mKeyTextStyle; - } - if (label.length() > 1) { - labelSize = (keyLabelOption & Key.LABEL_OPTION_FOLLOW_KEY_LETTER_RATIO) != 0 - ? mKeyLetterSize : mKeyLabelSize; - } else { - labelSize = mKeyLetterSize; - } + final int labelSize = mKeyLabelSize; paint.setTextSize(labelSize); - paint.setTypeface(labelStyle); + paint.setTypeface(mKeyTextStyle); return labelSize; } - private int getLabelCharHeight(int labelSize, Paint paint) { - Integer labelHeightValue = mTextHeightCache.get(labelSize); - final int labelCharHeight; - if (labelHeightValue != null) { - labelCharHeight = labelHeightValue; - } else { - paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); - labelCharHeight = mTextBounds.height(); - mTextHeightCache.put(labelSize, labelCharHeight); - } - return labelCharHeight; + private final Rect mTextBounds = new Rect(); + + private int getLabelCharHeight(Paint paint) { + final int labelSize = (int)paint.getTextSize(); + final Integer cachedValue = mTextHeightCache.get(labelSize); + if (cachedValue != null) + return cachedValue; + + paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); + final int height = mTextBounds.height(); + mTextHeightCache.put(labelSize, height); + return height; } - private int getLabelCharWidth(int labelSize, Paint paint) { - Integer labelWidthValue = mTextWidthCache.get(labelSize); - final int labelCharWidth; - if (labelWidthValue != null) { - labelCharWidth = labelWidthValue; + private int getLabelCharWidth(Paint paint) { + final int labelSize = (int)paint.getTextSize(); + final Typeface face = paint.getTypeface(); + final Integer key; + if (face == Typeface.DEFAULT) { + key = labelSize; + } else if (face == Typeface.DEFAULT_BOLD) { + key = labelSize + 1000; + } else if (face == Typeface.MONOSPACE) { + key = labelSize + 2000; } else { - paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); - labelCharWidth = mTextBounds.width(); - mTextWidthCache.put(labelSize, labelCharWidth); + key = labelSize; } - return labelCharWidth; + + final Integer cached = mTextWidthCache.get(key); + if (cached != null) + return cached; + + paint.getTextBounds(KEY_LABEL_REFERENCE_CHAR, 0, 1, mTextBounds); + final int width = mTextBounds.width(); + mTextWidthCache.put(key, width); + return width; } private static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width, diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index c7620f946..8b03360bf 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -670,7 +670,7 @@ public class PointerTracker { // If keyboard is in manual temporary upper case state and key has manual temporary // uppercase letter as key hint letter, alternate character code should be sent. if (mKeyboard.isManualTemporaryUpperCase() && key.hasUppercaseLetter()) { - code = key.mHintLetter.charAt(0); + code = key.mHintLabel.charAt(0); codes[0] = code; } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java index 983f0649d..30d9692a8 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java @@ -165,7 +165,7 @@ public class KeyStyles { readInt(keyAttr, R.styleable.Keyboard_Key_code); readText(keyAttr, R.styleable.Keyboard_Key_keyLabel); readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText); - readText(keyAttr, R.styleable.Keyboard_Key_keyHintLetter); + readText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel); readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters); readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption); readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon); diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java index 37b36825a..1530fed6f 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java @@ -40,25 +40,15 @@ public class KeyboardIconsSet { private static final int ICON_RETURN_KEY = 8; private static final int ICON_SEARCH_KEY = 9; private static final int ICON_TAB_KEY = 10; - private static final int ICON_NUM1_KEY = 11; - private static final int ICON_NUM2_KEY = 12; - private static final int ICON_NUM3_KEY = 13; - private static final int ICON_NUM4_KEY = 14; - private static final int ICON_NUM5_KEY = 15; - private static final int ICON_NUM6_KEY = 16; - private static final int ICON_NUM7_KEY = 17; - private static final int ICON_NUM8_KEY = 18; - private static final int ICON_NUM9_KEY = 19; - private static final int ICON_NUM0_KEY = 20; // This should be aligned with Keyboard.keyIconShifted enum. - private static final int ICON_SHIFTED_SHIFT_KEY = 21; + private static final int ICON_SHIFTED_SHIFT_KEY = 11; // This should be aligned with Keyboard.keyIconPreview enum. - private static final int ICON_PREVIEW_SPACE_KEY = 22; - private static final int ICON_PREVIEW_TAB_KEY = 23; - private static final int ICON_PREVIEW_SETTINGS_KEY = 24; - private static final int ICON_PREVIEW_SHORTCUT_KEY = 25; + private static final int ICON_PREVIEW_SPACE_KEY = 12; + private static final int ICON_PREVIEW_TAB_KEY = 13; + private static final int ICON_PREVIEW_SETTINGS_KEY = 14; + private static final int ICON_PREVIEW_SHORTCUT_KEY = 15; - private static final int ICON_LAST = 25; + private static final int ICON_LAST = 15; private final Drawable mIcons[] = new Drawable[ICON_LAST + 1]; @@ -84,26 +74,6 @@ public class KeyboardIconsSet { return ICON_SEARCH_KEY; case R.styleable.Keyboard_iconTabKey: return ICON_TAB_KEY; - case R.styleable.Keyboard_iconNum1Key: - return ICON_NUM1_KEY; - case R.styleable.Keyboard_iconNum2Key: - return ICON_NUM2_KEY; - case R.styleable.Keyboard_iconNum3Key: - return ICON_NUM3_KEY; - case R.styleable.Keyboard_iconNum4Key: - return ICON_NUM4_KEY; - case R.styleable.Keyboard_iconNum5Key: - return ICON_NUM5_KEY; - case R.styleable.Keyboard_iconNum6Key: - return ICON_NUM6_KEY; - case R.styleable.Keyboard_iconNum7Key: - return ICON_NUM7_KEY; - case R.styleable.Keyboard_iconNum8Key: - return ICON_NUM8_KEY; - case R.styleable.Keyboard_iconNum9Key: - return ICON_NUM9_KEY; - case R.styleable.Keyboard_iconNum0Key: - return ICON_NUM0_KEY; case R.styleable.Keyboard_iconShiftedShiftKey: return ICON_SHIFTED_SHIFT_KEY; case R.styleable.Keyboard_iconPreviewSpaceKey: diff --git a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java index 040c16ded..1e67eec70 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java @@ -221,7 +221,7 @@ public class MiniKeyboardBuilder { paint = new Paint(); paint.setAntiAlias(true); } - final int labelSize = view.getLabelSizeAndSetPaint(label, 0, paint); + final int labelSize = view.getDefaultLabelSizeAndSetPaint(paint); paint.setTextSize(labelSize); if (bounds == null) bounds = new Rect(); paint.getTextBounds(label.toString(), 0, label.length(), bounds); diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java index 09fd3b473..a5bfea0f8 100644 --- a/java/src/com/android/inputmethod/latin/CandidateView.java +++ b/java/src/com/android/inputmethod/latin/CandidateView.java @@ -21,16 +21,15 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.Typeface; -import android.os.Handler; import android.os.Message; import android.text.Spannable; import android.text.SpannableString; import android.text.Spanned; +import android.text.TextPaint; import android.text.TextUtils; import android.text.style.BackgroundColorSpan; import android.text.style.CharacterStyle; import android.text.style.ForegroundColorSpan; -import android.text.style.StyleSpan; import android.text.style.UnderlineSpan; import android.util.AttributeSet; import android.view.Gravity; @@ -58,15 +57,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo public void pickSuggestionManually(int index, CharSequence word); } - private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD); private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan(); // 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 int MATCH_PARENT = MeasureSpec.makeMeasureSpec( + -1, MeasureSpec.UNSPECIFIED); private static final boolean DBG = LatinImeLogger.sDBG; + private final View mCandidatesStrip; private static final int NUM_CANDIDATES_IN_STRIP = 3; private final ImageView mExpandCandidatesPane; private final ImageView mCloseCandidatesPane; @@ -76,7 +75,6 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo private final ArrayList<TextView> mWords = new ArrayList<TextView>(); private final ArrayList<TextView> mInfos = new ArrayList<TextView>(); private final ArrayList<View> mDividers = new ArrayList<View>(); - private final int mCandidatePadding; private final int mCandidateStripHeight; private final CharacterStyle mInvertedForegroundColorSpan; private final CharacterStyle mInvertedBackgroundColorSpan; @@ -90,28 +88,39 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo private final PopupWindow mPreviewPopup; private final TextView mPreviewText; + private final View mTouchToSave; + private final TextView mWordToSave; + private Listener mListener; private SuggestedWords mSuggestions = SuggestedWords.EMPTY; private boolean mShowingAutoCorrectionInverted; private boolean mShowingAddToDictionary; - private final UiHandler mHandler = new UiHandler(); + private static final float MIN_TEXT_XSCALE = 0.4f; + private static final String ELLIPSIS = "\u2026"; + + private final UiHandler mHandler = new UiHandler(this); - private class UiHandler extends Handler { + private static class UiHandler extends StaticInnerHandlerWrapper<CandidateView> { private static final int MSG_HIDE_PREVIEW = 0; private static final int MSG_UPDATE_SUGGESTION = 1; private static final long DELAY_HIDE_PREVIEW = 1000; private static final long DELAY_UPDATE_SUGGESTION = 300; + public UiHandler(CandidateView outerInstance) { + super(outerInstance); + } + @Override public void dispatchMessage(Message msg) { + final CandidateView candidateView = getOuterInstance(); switch (msg.what) { case MSG_HIDE_PREVIEW: - hidePreview(); + candidateView.hidePreview(); break; case MSG_UPDATE_SUGGESTION: - updateSuggestions(); + candidateView.updateSuggestions(); break; } } @@ -175,14 +184,13 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo mPreviewPopup.setContentView(mPreviewText); mPreviewPopup.setBackgroundDrawable(null); - mCandidatePadding = res.getDimensionPixelOffset(R.dimen.candidate_padding); + mCandidatesStrip = findViewById(R.id.candidates_strip); mCandidateStripHeight = res.getDimensionPixelOffset(R.dimen.candidate_strip_height); for (int i = 0; i < MAX_SUGGESTIONS; i++) { final TextView word, info; switch (i) { case 0: word = (TextView)findViewById(R.id.word_left); - word.setPadding(mCandidatePadding, 0, 0, 0); info = (TextView)findViewById(R.id.info_left); break; case 1: @@ -206,11 +214,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo mInfos.add(info); if (i > 0) { final View divider = inflater.inflate(R.layout.candidate_divider, null); - divider.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC); + divider.measure(MATCH_PARENT, MATCH_PARENT); mDividers.add(divider); } } + mTouchToSave = findViewById(R.id.touch_to_save); + mWordToSave = (TextView)findViewById(R.id.word_to_save); + mWordToSave.setOnClickListener(this); + final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.CandidateView, defStyle, R.style.CandidateViewStyle); mAutoCorrectHighlight = a.getInt(R.styleable.CandidateView_autoCorrectHighlight, 0); @@ -267,12 +279,14 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo } } - private CharSequence getStyledCandidateWord(CharSequence word, boolean isAutoCorrect) { + private CharSequence getStyledCandidateWord(CharSequence word, TextView v, + boolean isAutoCorrect) { + v.setTypeface(Typeface.DEFAULT); if (!isAutoCorrect) return word; final Spannable spannedWord = new SpannableString(word); if ((mAutoCorrectHighlight & AUTO_CORRECT_BOLD) != 0) - spannedWord.setSpan(BOLD_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + v.setTypeface(Typeface.DEFAULT_BOLD); if ((mAutoCorrectHighlight & AUTO_CORRECT_UNDERLINE) != 0) spannedWord.setSpan(UNDERLINE_SPAN, 0, word.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); return spannedWord; @@ -309,7 +323,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo int fromIndex = NUM_CANDIDATES_IN_STRIP; final int count = Math.min(mWords.size(), suggestions.size()); closeCandidatesPane(); - mExpandCandidatesPane.setEnabled(count >= NUM_CANDIDATES_IN_STRIP); + mExpandCandidatesPane.setVisibility(count > NUM_CANDIDATES_IN_STRIP ? VISIBLE : GONE); for (int i = 0; i < count; i++) { final CharSequence suggestion = suggestions.getWord(i); if (suggestion == null) continue; @@ -330,11 +344,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo // the word when space is typed (valid typed word or auto corrected word). word.setTextColor(getCandidateTextColor(isAutoCorrect, isSuggestedCandidate || isPunctuationSuggestions, suggestionInfo)); - word.setText(getStyledCandidateWord(suggestion, isAutoCorrect)); - // TODO: call TextView.setTextScaleX() to fit the candidate in single line. - word.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC); - final int width = word.getMeasuredWidth(); - final int height = word.getMeasuredHeight(); + final CharSequence text = getStyledCandidateWord(suggestion, word, isAutoCorrect); + if (i < NUM_CANDIDATES_IN_STRIP) { + final View parent = (View)word.getParent(); + final int width = parent.getWidth() - word.getPaddingLeft() + - word.getPaddingRight(); + setTextWithAutoScaleAndEllipsis(text, width, word); + } else { + setTextWithAutoScaleAndEllipsis(text, paneWidth, word); + } final TextView info; if (DBG && suggestionInfo != null @@ -342,18 +360,23 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo info = mInfos.get(i); info.setText(suggestionInfo.getDebugString()); info.setVisibility(View.VISIBLE); - info.measure(UNSPECIFIED_MEASURESPEC, UNSPECIFIED_MEASURESPEC); } else { info = null; } if (i < NUM_CANDIDATES_IN_STRIP) { if (info != null) { + word.measure(MATCH_PARENT, MATCH_PARENT); + info.measure(MATCH_PARENT, MATCH_PARENT); + final int width = word.getMeasuredWidth(); final int infoWidth = info.getMeasuredWidth(); FrameLayoutCompatUtils.placeViewAt( - info, x + width - infoWidth, y, infoWidth, info.getMeasuredHeight()); + info, width - infoWidth, 0, infoWidth, info.getMeasuredHeight()); } } else { + word.measure(MATCH_PARENT, MATCH_PARENT); + final int width = word.getMeasuredWidth(); + final int height = word.getMeasuredHeight(); // TODO: Handle overflow case. if (dividerWidth + x + width >= paneWidth) { centeringCandidates(fromIndex, i - 1, x, paneWidth); @@ -374,6 +397,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo word, x, y + (mCandidateStripHeight - height) / 2, width, height); if (info != null) { mCandidatesPane.addView(info); + info.measure(MATCH_PARENT, MATCH_PARENT); final int infoWidth = info.getMeasuredWidth(); FrameLayoutCompatUtils.placeViewAt( info, x + width - infoWidth, y, infoWidth, info.getMeasuredHeight()); @@ -412,6 +436,60 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo } } + private static void setTextWithAutoScaleAndEllipsis(CharSequence text, int w, TextView v) { + // To prevent partially rendered character at the end of text, subtract few extra pixels + // from the width. + final int width = w - 4; + + final TextPaint paint = v.getPaint(); + final int textWidth = getTextWidth(text, paint, 1.0f); + if (textWidth < width || textWidth == 0 || width <= 0) { + v.setTextScaleX(1.0f); + v.setText(text); + return; + } + + final float scaleX = Math.min((float)width / textWidth, 1.0f); + if (scaleX >= MIN_TEXT_XSCALE) { + v.setTextScaleX(scaleX); + v.setText(text); + return; + } + + final int truncatedWidth = width - getTextWidth(ELLIPSIS, paint, MIN_TEXT_XSCALE); + final CharSequence ellipsized = getTextEllipsizedAtStart(text, paint, truncatedWidth); + v.setTextScaleX(MIN_TEXT_XSCALE); + v.setText(ELLIPSIS); + v.append(ellipsized); + } + + private static int getTextWidth(CharSequence text, TextPaint paint, float scaleX) { + if (TextUtils.isEmpty(text)) return 0; + final int len = text.length(); + final float[] widths = new float[len]; + paint.setTextScaleX(scaleX); + final int count = paint.getTextWidths(text, 0, len, widths); + float width = 0; + for (int i = 0; i < count; i++) { + width += widths[i]; + } + return (int)Math.round(width + 0.5); + } + + private static CharSequence getTextEllipsizedAtStart(CharSequence text, TextPaint paint, + int maxWidth) { + final int len = text.length(); + final float[] widths = new float[len]; + final int count = paint.getTextWidths(text, 0, len, widths); + float width = 0; + for (int i = count - 1; i >= 0; i--) { + width += widths[i]; + if (width > maxWidth) + return text.subSequence(i + 1, len); + } + return text; + } + private void expandCandidatesPane() { mExpandCandidatesPane.setVisibility(View.GONE); mCloseCandidatesPane.setVisibility(View.VISIBLE); @@ -446,14 +524,10 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo } public void showAddToDictionaryHint(CharSequence word) { - SuggestedWords.Builder builder = new SuggestedWords.Builder() - .addWord(word) - .addWord(getContext().getText(R.string.hint_add_to_dictionary)); - setSuggestions(builder.build()); + mWordToSave.setText(word); mShowingAddToDictionary = true; - // Disable R.string.hint_add_to_dictionary button - TextView tv = mWords.get(1); - tv.setClickable(false); + mCandidatesStrip.setVisibility(View.GONE); + mTouchToSave.setVisibility(View.VISIBLE); } public boolean dismissAddToDictionaryHint() { @@ -473,6 +547,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo mWords.get(i).setText(null); mInfos.get(i).setVisibility(View.GONE); } + mTouchToSave.setVisibility(View.GONE); + mCandidatesStrip.setVisibility(View.VISIBLE); mCandidatesPane.removeAllViews(); } @@ -528,6 +604,12 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo @Override public void onClick(View view) { + if (view == mWordToSave) { + addToDictionary(((TextView)view).getText()); + clear(); + return; + } + final Object tag = view.getTag(); if (!(tag instanceof Integer)) return; @@ -536,11 +618,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo return; final CharSequence word = mSuggestions.getWord(index); - if (mShowingAddToDictionary && index == 0) { - addToDictionary(word); - } else { - mListener.pickSuggestionManually(index, word); - } + 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(); diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 9c6465dd2..52935ef7d 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -29,7 +29,6 @@ import android.inputmethodservice.InputMethodService; import android.media.AudioManager; import android.net.ConnectivityManager; import android.os.Debug; -import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.SystemClock; @@ -206,9 +205,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar private CharSequence mEnteredText; - public final UIHandler mHandler = new UIHandler(); + public final UIHandler mHandler = new UIHandler(this); - public class UIHandler extends Handler { + public static class UIHandler extends StaticInnerHandlerWrapper<LatinIME> { private static final int MSG_UPDATE_SUGGESTIONS = 0; private static final int MSG_UPDATE_OLD_SUGGESTIONS = 1; private static final int MSG_UPDATE_SHIFT_STATE = 2; @@ -218,42 +217,50 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar private static final int MSG_SPACE_TYPED = 6; private static final int MSG_SET_BIGRAM_PREDICTIONS = 7; + public UIHandler(LatinIME outerInstance) { + super(outerInstance); + } + @Override public void handleMessage(Message msg) { - final KeyboardSwitcher switcher = mKeyboardSwitcher; + final LatinIME latinIme = getOuterInstance(); + final KeyboardSwitcher switcher = latinIme.mKeyboardSwitcher; final LatinKeyboardView inputView = switcher.getKeyboardView(); switch (msg.what) { case MSG_UPDATE_SUGGESTIONS: - updateSuggestions(); + latinIme.updateSuggestions(); break; case MSG_UPDATE_OLD_SUGGESTIONS: - mRecorrection.fetchAndDisplayRecorrectionSuggestions(mVoiceProxy, mCandidateView, - mSuggest, mKeyboardSwitcher, mWord, mHasUncommittedTypedChars, - mLastSelectionStart, mLastSelectionEnd, mSettingsValues.mWordSeparators); + latinIme.mRecorrection.fetchAndDisplayRecorrectionSuggestions( + latinIme.mVoiceProxy, latinIme.mCandidateView, + latinIme.mSuggest, latinIme.mKeyboardSwitcher, latinIme.mWord, + latinIme.mHasUncommittedTypedChars, latinIme.mLastSelectionStart, + latinIme.mLastSelectionEnd, latinIme.mSettingsValues.mWordSeparators); break; case MSG_UPDATE_SHIFT_STATE: switcher.updateShiftState(); break; case MSG_SET_BIGRAM_PREDICTIONS: - updateBigramPredictions(); + latinIme.updateBigramPredictions(); break; case MSG_VOICE_RESULTS: - mVoiceProxy.handleVoiceResults(preferCapitalization() + latinIme.mVoiceProxy.handleVoiceResults(latinIme.preferCapitalization() || (switcher.isAlphabetMode() && switcher.isShiftedOrShiftLocked())); break; case MSG_FADEOUT_LANGUAGE_ON_SPACEBAR: if (inputView != null) { inputView.setSpacebarTextFadeFactor( - (1.0f + mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar) / 2, + (1.0f + latinIme.mSettingsValues. + mFinalFadeoutFactorOfLanguageOnSpacebar) / 2, (LatinKeyboard)msg.obj); } sendMessageDelayed(obtainMessage(MSG_DISMISS_LANGUAGE_ON_SPACEBAR, msg.obj), - mSettingsValues.mDurationOfFadeoutLanguageOnSpacebar); + latinIme.mSettingsValues.mDurationOfFadeoutLanguageOnSpacebar); break; case MSG_DISMISS_LANGUAGE_ON_SPACEBAR: if (inputView != null) { inputView.setSpacebarTextFadeFactor( - mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, + latinIme.mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, (LatinKeyboard)msg.obj); } break; @@ -263,7 +270,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateSuggestions() { removeMessages(MSG_UPDATE_SUGGESTIONS); sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTIONS), - mSettingsValues.mDelayUpdateSuggestions); + getOuterInstance().mSettingsValues.mDelayUpdateSuggestions); } public void cancelUpdateSuggestions() { @@ -277,7 +284,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateOldSuggestions() { removeMessages(MSG_UPDATE_OLD_SUGGESTIONS); sendMessageDelayed(obtainMessage(MSG_UPDATE_OLD_SUGGESTIONS), - mSettingsValues.mDelayUpdateOldSuggestions); + getOuterInstance().mSettingsValues.mDelayUpdateOldSuggestions); } public void cancelUpdateOldSuggestions() { @@ -287,7 +294,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateShiftKeyState() { removeMessages(MSG_UPDATE_SHIFT_STATE); sendMessageDelayed(obtainMessage(MSG_UPDATE_SHIFT_STATE), - mSettingsValues.mDelayUpdateShiftState); + getOuterInstance().mSettingsValues.mDelayUpdateShiftState); } public void cancelUpdateShiftState() { @@ -297,7 +304,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateBigramPredictions() { removeMessages(MSG_SET_BIGRAM_PREDICTIONS); sendMessageDelayed(obtainMessage(MSG_SET_BIGRAM_PREDICTIONS), - mSettingsValues.mDelayUpdateSuggestions); + getOuterInstance().mSettingsValues.mDelayUpdateSuggestions); } public void cancelUpdateBigramPredictions() { @@ -309,23 +316,26 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } public void startDisplayLanguageOnSpacebar(boolean localeChanged) { + final LatinIME latinIme = getOuterInstance(); removeMessages(MSG_FADEOUT_LANGUAGE_ON_SPACEBAR); removeMessages(MSG_DISMISS_LANGUAGE_ON_SPACEBAR); - final LatinKeyboardView inputView = mKeyboardSwitcher.getKeyboardView(); + final LatinKeyboardView inputView = latinIme.mKeyboardSwitcher.getKeyboardView(); if (inputView != null) { - final LatinKeyboard keyboard = mKeyboardSwitcher.getLatinKeyboard(); + final LatinKeyboard keyboard = latinIme.mKeyboardSwitcher.getLatinKeyboard(); // The language is always displayed when the delay is negative. final boolean needsToDisplayLanguage = localeChanged - || mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar < 0; + || latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar < 0; // The language is never displayed when the delay is zero. - if (mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar != 0) { + if (latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar != 0) { inputView.setSpacebarTextFadeFactor(needsToDisplayLanguage ? 1.0f - : mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, keyboard); + : latinIme.mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, + keyboard); } // The fadeout animation will start when the delay is positive. - if (localeChanged && mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar > 0) { + if (localeChanged + && latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar > 0) { sendMessageDelayed(obtainMessage(MSG_FADEOUT_LANGUAGE_ON_SPACEBAR, keyboard), - mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar); + latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar); } } } @@ -333,7 +343,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void startDoubleSpacesTimer() { removeMessages(MSG_SPACE_TYPED); sendMessageDelayed(obtainMessage(MSG_SPACE_TYPED), - mSettingsValues.mDoubleSpacesTurnIntoPeriodTimeout); + getOuterInstance().mSettingsValues.mDoubleSpacesTurnIntoPeriodTimeout); } public void cancelDoubleSpacesTimer() { diff --git a/java/src/com/android/inputmethod/latin/StaticInnerHandlerWrapper.java b/java/src/com/android/inputmethod/latin/StaticInnerHandlerWrapper.java new file mode 100644 index 000000000..89d9ea844 --- /dev/null +++ b/java/src/com/android/inputmethod/latin/StaticInnerHandlerWrapper.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.latin; + +import android.os.Handler; +import android.os.Looper; + +import java.lang.ref.WeakReference; + +public class StaticInnerHandlerWrapper<T> extends Handler { + final private WeakReference<T> mOuterInstanceRef; + + public StaticInnerHandlerWrapper(T outerInstance) { + super(); + if (outerInstance == null) throw new NullPointerException("outerInstance is null"); + mOuterInstanceRef = new WeakReference<T>(outerInstance); + } + + public StaticInnerHandlerWrapper(T outerInstance, Looper looper) { + super(looper); + if (outerInstance == null) throw new NullPointerException("outerInstance is null"); + mOuterInstanceRef = new WeakReference<T>(outerInstance); + } + + public T getOuterInstance() { + return mOuterInstanceRef.get(); + } +} |