From b8fc09e25c8d6f629c958d9da6e057172bad4b75 Mon Sep 17 00:00:00 2001 From: Aleksandras Kostarevas Date: Wed, 28 Aug 2024 19:57:20 +0300 Subject: [PATCH] Calculate settings/punctuation morekeys based on coord --- .../keyboard/internal/KeyboardTextsTable.java | 2342 +++++++++-------- .../futo/inputmethod/v2keyboard/BaseKey.kt | 49 +- .../futo/inputmethod/v2keyboard/KeyData.kt | 9 +- .../v2keyboard/KeySpecShortcuts.kt | 5 +- .../inputmethod/v2keyboard/LayoutEngine.kt | 25 +- .../inputmethod/v2keyboard/MoreKeysMapping.kt | 12 + .../inputmethod/v2keyboard/TemplateKeys.kt | 26 +- .../locales/DEFAULT.json | 3 + 8 files changed, 1287 insertions(+), 1184 deletions(-) diff --git a/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java index 5cfbba0f3..ea8971b54 100644 --- a/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java +++ b/java/src/org/futo/inputmethod/keyboard/internal/KeyboardTextsTable.java @@ -79,8 +79,8 @@ public final class KeyboardTextsTable { // /* index:histogram */ "name", "locale", "keylabel_to_alpha", - "morekeys_o", "morekeys_a", + "morekeys_o", "morekeys_u", "morekeys_e", "morekeys_i", @@ -89,8 +89,8 @@ public final class KeyboardTextsTable { "morekeys_c", "keyspec_currency", "morekeys_s", - "morekeys_misc_a", "morekeys_misc_o", + "morekeys_misc_a", "morekeys_misc_u", "morekeys_misc_e", "morekeys_z", @@ -98,275 +98,276 @@ public final class KeyboardTextsTable { "morekeys_misc_i", "morekeys_misc_c", "morekeys_misc_s", - "double_angle_quotes", "single_angle_quotes", + "double_angle_quotes", "morekeys_y", - "keyspec_symbols_9", - "keyspec_symbols_8", - "additional_morekeys_symbols_9", - "additional_morekeys_symbols_5", - "keyspec_symbols_5", - "keyspec_symbols_3", - "keyspec_symbols_6", - "keyspec_symbols_1", - "morekeys_g", - "additional_morekeys_symbols_0", - "keyspec_symbols_4", - "additional_morekeys_symbols_7", - "additional_morekeys_symbols_6", - "morekeys_misc_z", - "additional_morekeys_symbols_2", - "morekeys_d", - "additional_morekeys_symbols_8", "additional_morekeys_symbols_3", - "keyspec_symbols_2", - "keyspec_symbols_7", + "additional_morekeys_symbols_8", + "morekeys_d", + "additional_morekeys_symbols_7", + "keyspec_symbols_1", "keyspec_symbols_0", - "additional_morekeys_symbols_4", + "additional_morekeys_symbols_5", + "keyspec_symbols_4", + "keyspec_symbols_6", + "additional_morekeys_symbols_2", + "additional_morekeys_symbols_9", + "morekeys_misc_z", "additional_morekeys_symbols_1", - "morekeys_cyrillic_ie", - "keylabel_to_symbol", + "keyspec_symbols_3", + "keyspec_symbols_7", + "keyspec_symbols_8", + "keyspec_symbols_2", + "keyspec_symbols_9", + "keyspec_symbols_5", + "additional_morekeys_symbols_0", + "additional_morekeys_symbols_4", + "additional_morekeys_symbols_6", + "morekeys_g", "morekeys_tablet_period", - "keyspec_east_slavic_row2_2", - "keyspec_nordic_row2_11", - "morekeys_period", - "morekeys_misc_n", + "keylabel_to_symbol", + "morekeys_cyrillic_ie", "keyspec_nordic_row2_10", - "keyspec_east_slavic_row1_9", - "keyspec_tablet_comma", - "keyspec_east_slavic_row3_5", - "keyspec_period", - "morekeys_nordic_row2_10", - "morekeys_t", "morekeys_cyrillic_soft_sign", "keyspec_east_slavic_row2_11", + "keyspec_east_slavic_row2_2", "keyspec_nordic_row1_11", - "keyspec_less_than", + "keyspec_nordic_row2_11", + "morekeys_period", + "keyspec_east_slavic_row3_5", + "keyspec_east_slavic_row1_9", + "morekeys_misc_n", + "morekeys_t", + "morekeys_nordic_row2_10", + "keyspec_period", + "keyspec_tablet_comma", + "keyspec_right_single_angle_quote", + "keyspec_left_parenthesis", + "keyhintlabel_period", + "keyspec_tablet_period", + "keyspec_greater_than", "morekeys_tablet_comma", "keyspec_less_than_equal", "keyspec_right_parenthesis", - "keyspec_left_parenthesis", - "keyspec_right_double_angle_quote", - "keyspec_right_square_bracket", - "keyhintlabel_period", - "morekeys_r", + "keyspec_less_than", "keyspec_left_square_bracket", - "morekeys_punctuation", "keyspec_comma", - "morekeys_l", - "keyspec_greater_than_equal", - "morekeys_star", + "keyspec_right_square_bracket", "keyspec_right_curly_bracket", - "keyspec_left_single_angle_quote", - "keyspec_tablet_period", - "morekeys_question", - "keyspec_left_curly_bracket", - "keyspec_left_double_angle_quote", + "keyspec_right_double_angle_quote", + "morekeys_r", "morekeys_nordic_row2_11", - "keyspec_greater_than", - "keyspec_right_single_angle_quote", - "morekeys_misc_y", + "morekeys_question", + "morekeys_star", + "morekeys_punctuation", + "keyspec_left_double_angle_quote", + "morekeys_l", + "keyspec_left_single_angle_quote", + "keyspec_left_curly_bracket", + "keyspec_greater_than_equal", + "morekeys_left_parenthesis", + "morekeys_swiss_row1_11", + "keyhintlabel_tablet_comma", + "morekeys_symbols_percent", "keyspec_swiss_row1_11", "morekeys_bullet", - "morekeys_swiss_row1_11", "morekeys_symbols_semicolon", "keyspec_swiss_row2_11", - "keyhintlabel_tablet_period", - "keyspec_swiss_row2_10", "keyspec_symbols_question", "morekeys_right_parenthesis", - "morekeys_symbols_percent", - "morekeys_left_parenthesis", - "keyspec_spanish_row2_10", - "keyspec_symbols_semicolon", - "keyspec_symbols_percent", - "keyhintlabel_tablet_comma", "morekeys_swiss_row2_11", - "morekeys_swiss_row2_10", + "morekeys_misc_y", + "keyspec_symbols_percent", + "keyspec_spanish_row2_10", + "keyhintlabel_tablet_period", + "keyspec_symbols_semicolon", + "keyspec_swiss_row2_10", "morekeys_arabic_diacritics", - "morekeys_cyrillic_en", - "label_wait_key", - "morekeys_misc_g", - "label_previous_key", - "label_search_key", - "keyspec_south_slavic_row2_11", - "morekeys_misc_l", - "label_done_key", - "keyspec_south_slavic_row3_1", - "label_go_key", - "morekeys_misc_r", - "morekeys_cyrillic_ghe", - "label_pause_key", - "morekeys_tablet_punctuation", - "morekeys_k", - "keyspec_south_slavic_row3_8", - "label_next_key", - "label_send_key", - "morekeys_cyrillic_u", - "morekeys_cyrillic_o", - "morekeys_cyrillic_i", - "keyspec_south_slavic_row1_6", + "morekeys_swiss_row2_10", "morekeys_h", + "morekeys_k", + "label_wait_key", + "keyspec_south_slavic_row1_6", + "morekeys_cyrillic_en", + "label_done_key", + "morekeys_cyrillic_i", + "keyspec_south_slavic_row3_8", + "label_previous_key", + "morekeys_misc_l", + "label_send_key", + "label_next_key", + "morekeys_misc_r", + "morekeys_misc_g", + "morekeys_cyrillic_o", + "label_go_key", "morekeys_east_slavic_row2_2", - "keyspec_y", - "morekeys_misc_h", - "morekeys_w", - "morekeys_cyrillic_a", - "morekeys_east_slavic_row2_11", - "keyspec_q", - "keyspec_x", + "morekeys_cyrillic_u", + "label_search_key", + "label_pause_key", + "keyspec_south_slavic_row3_1", + "morekeys_cyrillic_ghe", + "keyspec_south_slavic_row2_11", + "morekeys_tablet_punctuation", "morekeys_j", - "morekeys_exclamation", - "morekeys_plus", - "keyspec_w", - "morekeys_less_than", - "morekeys_greater_than", - "morekeys_currency_dollar", - "morekeys_misc_t", + "keyspec_y", "morekeys_cyrillic_ka", - "morekeys_m", - "actions_h", - "keyspec_action_next", - "qwertysyms_4", - "qwertysyms_8", - "actions_u", - "morekeys_misc_d", - "morekeys_popular_domain", - "single_9qm_lqm", - "qwertysyms_1", - "actions_2", - "qwertysyms_e", - "actions_9", - "actions_t", - "actions_a", - "actions_l", - "morekeys_misc_q", - "morekeys_x", - "morekeys_misc_m", - "number_1", - "actions_w", - "morekeys_misc_w", - "qwertysyms_o", - "keylabel_to_more_symbol", - "qwertysyms_k", - "qwertysyms_s", - "actions_n", - "number_4", - "morekeys_misc_x", - "number_2", - "morekeys_tablet_double_quote", - "morekeys_misc_b", - "actions_0", - "qwertysyms_u", - "actions_v", - "morekeys_symbols_1", - "keyspec_emoji_action_key_navigation", - "qwertysyms_5", - "qwertysyms_n", - "qwertysyms_m", - "qwertysyms_h", - "actions_7", - "single_laqm_raqm", - "qwertysyms_2", - "double_lqm_rqm", - "number_9", - "qwertysyms_b", - "actions_g", - "number_0", - "morekeys_symbols_0", - "actions_q", - "qwertysyms_y", - "qwertysyms_l", - "actions_8", - "keylabel_time_am", - "single_rqm_9qm", - "qwertysyms_j", - "keylabel_time_pm", - "actions_o", - "morekeys_v", - "qwertysyms_d", - "single_lqm_rqm", - "morekeys_misc_j", - "keylabel_to_phone_numeric", - "morekeys_misc_p", - "actions_6", - "actions_k", - "qwertysyms_c", - "actions_b", - "double_raqm_laqm", - "morekeys_f", - "keylabel_tablet_to_more_symbol", - "qwertysyms_r", - "keyspecs_right_parenthesis_more_keys", - "qwertysyms_f", - "keyspec_shortcut", - "qwertysyms_3", - "actions_r", - "qwertysyms_7", - "actions_5", - "keyspec_emoji_action_key", - "qwertysyms_w", - "number_7", - "morekeys_symbols_5", - "actions_z", - "morekeys_b", - "morekeys_misc_k", - "qwertysyms_v", - "morekeys_symbols_3", - "single_raqm_laqm", - "morekeys_symbols_9", - "qwertysyms_q", - "actions_x", - "actions_1", - "number_6", - "morekeys_currency_generic", - "morekeys_symbols_4", - "keyspec_settings", - "actions_c", - "double_laqm_raqm", - "number_3", - "qwertysyms_6", - "morekeys_double_quote", - "qwertysyms_i", - "qwertysyms_z", - "morekeys_symbols_2", - "qwertysyms_0", - "qwertysyms_9", - "actions_i", - "actions_3", - "morekeys_single_quote", - "qwertysyms_g", - "keyspecs_left_parenthesis_more_keys", - "qwertysyms_p", - "actions_f", - "keyspec_popular_domain", - "qwertysyms_x", + "morekeys_currency_dollar", + "morekeys_east_slavic_row2_11", + "morekeys_cyrillic_a", + "keyspec_q", + "morekeys_exclamation", + "morekeys_misc_h", + "morekeys_greater_than", + "morekeys_misc_t", + "morekeys_w", + "keyspec_w", + "keyspec_x", + "morekeys_less_than", + "morekeys_plus", "double_rqm_9qm", - "morekeys_p", - "morekeys_am_pm", + "actions_z", + "actions_c", "actions_m", - "keyspec_action_previous", - "qwertysyms_t", - "actions_p", - "actions_d", - "actions_4", - "double_9qm_rqm", - "actions_s", - "morekeys_symbols_6", + "morekeys_f", + "qwertysyms_f", + "morekeys_symbols_0", "morekeys_symbols_7", - "double_9qm_lqm", - "number_8", - "single_9qm_rqm", - "qwertysyms_a", - "number_5", - "morekeys_misc_f", - "actions_e", + "qwertysyms_b", + "actions_7", + "morekeys_currency_generic", + "qwertysyms_e", + "morekeys_misc_p", + "morekeys_symbols_2", + "morekeys_misc_m", + "morekeys_single_quote", + "qwertysyms_h", + "qwertysyms_l", "morekeys_q", - "morekeys_symbols_8", - "morekeys_misc_v", + "actions_2", + "actions_b", + "qwertysyms_r", + "qwertysyms_k", + "number_2", + "actions_r", + "actions_t", + "single_9qm_lqm", + "actions_3", + "actions_u", + "actions_0", + "qwertysyms_z", + "qwertysyms_u", + "actions_g", + "single_9qm_rqm", + "number_8", + "morekeys_misc_d", + "qwertysyms_n", + "number_9", + "qwertysyms_0", + "actions_s", + "qwertysyms_y", + "morekeys_symbols_1", + "double_9qm_lqm", + "actions_d", + "keylabel_to_phone_symbols", + "qwertysyms_6", + "qwertysyms_a", + "morekeys_misc_x", + "morekeys_am_pm", + "actions_o", + "qwertysyms_m", "actions_y", + "number_6", + "qwertysyms_1", + "number_7", + "qwertysyms_p", + "keyspec_action_previous", + "qwertysyms_j", + "single_raqm_laqm", + "actions_i", + "number_1", + "morekeys_misc_j", + "morekeys_misc_w", + "double_raqm_laqm", + "morekeys_popular_domain", + "single_laqm_raqm", + "qwertysyms_o", + "number_0", + "keyspecs_right_parenthesis_more_keys", + "morekeys_p", + "actions_8", + "qwertysyms_3", + "actions_f", + "qwertysyms_x", + "qwertysyms_q", + "keylabel_to_phone_numeric", + "qwertysyms_w", + "double_lqm_rqm", + "keyspec_emoji_action_key_navigation", + "morekeys_misc_k", + "keyspec_shortcut", + "actions_v", + "morekeys_symbols_9", + "morekeys_symbols_8", + "morekeys_misc_b", + "qwertysyms_s", + "actions_4", + "qwertysyms_d", + "morekeys_m", + "morekeys_x", + "morekeys_misc_q", + "morekeys_bottomrow_comma", + "number_5", + "actions_k", + "keylabel_to_more_symbol", + "qwertysyms_t", + "qwertysyms_c", + "actions_h", + "morekeys_symbols_6", + "morekeys_b", + "number_4", + "morekeys_symbols_4", + "actions_x", + "qwertysyms_7", + "double_laqm_raqm", + "morekeys_misc_v", + "qwertysyms_5", + "actions_1", + "keyspecs_left_parenthesis_more_keys", + "keyspec_action_next", + "actions_9", + "actions_e", + "number_3", + "morekeys_tablet_double_quote", + "morekeys_double_quote", + "actions_a", + "qwertysyms_g", + "qwertysyms_v", + "keyspec_settings", + "qwertysyms_4", + "keylabel_time_am", + "actions_q", + "actions_5", + "single_lqm_rqm", + "actions_6", + "keyspec_emoji_action_key", + "morekeys_misc_f", + "keylabel_tablet_to_more_symbol", + "keylabel_time_pm", + "actions_p", + "morekeys_v", + "qwertysyms_2", + "qwertysyms_9", + "morekeys_symbols_3", + "actions_l", + "actions_w", + "morekeys_symbols_5", + "double_9qm_rqm", + "actions_n", + "keyspec_popular_domain", "actions_j", - "keylabel_to_phone_symbols" + "single_rqm_9qm", + "qwertysyms_8", + "qwertysyms_i" }; private static final String EMPTY = ""; @@ -374,8 +375,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_af = { "af", null, - "\u00f3,\u00f4", "\u00e1", + "\u00f3,\u00f4", "\u00fa,\u00fb", "\u00e9,\u00e8,\u00ea,\u00eb", "\u00ed,\u00ec,\u00ef,\u00ee", @@ -384,8 +385,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e2,\u00e4,\u00e0,\u00e6,\u00e3,\u00e5,\u0101", "\u00f6,\u00f2,\u00f5,\u0153,\u00f8,\u014d", + "\u00e2,\u00e4,\u00e0,\u00e6,\u00e3,\u00e5,\u0101", "\u00fc,\u00f9,\u016b", "\u0119,\u0117,\u0113", null, @@ -418,87 +419,86 @@ public final class KeyboardTextsTable { null, null, null, - "\u0669", - "\u0668", - "9", - "5", - "\u0665", - "\u0663", - "\u0666", - "\u0661", + "3", + "8", null, - "0,\u066b,\u066c", - "\u0664", "7", + "\u0661", + "\u0660", + "5", + "\u0664", + "\u0666", + "2", + "9", + null, + "1", + "\u0663", + "\u0667", + "\u0668", + "\u0662", + "\u0669", + "\u0665", + "0,\u066b,\u066c", + "4", "6", null, - "2", - null, - "8", - "3", - "\u0662", - "\u0667", - "\u0660", - "4", - "1", - null, + "!text/morekeys_arabic_diacritics", "\u0663\u0662\u0661\u061f", - "!text/morekeys_arabic_diacritics", + null, + null, + null, + null, + null, null, null, "!text/morekeys_arabic_diacritics", null, null, null, + null, + null, + null, "\u060c", + "\u203a|\u2039", + "(|)", + "\u0651", null, - null, - null, - null, - null, - null, - null, - "<|>", + ">|<", "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,\\\",\\'", "\u2264|\u2265", ")|(", - "(|)", - "\u00bb|\u00ab", - "]|[", - "\u0651", - null, + "<|>", "[|]", - null, "\u060c", - null, - "\u2265|\u2264", - "\u2605,\u066d", + "]|[", "}|{", - "\u2039|\u203a", + "\u00bb|\u00ab", + null, null, "?,\u00bf", - "{|}", + "\u2605,\u066d", + null, "\u00ab|\u00bb", null, - ">|<", - "\u203a|\u2039", + "\u2039|\u203a", + "{|}", + "\u2265|\u2264", + "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys", null, + "\u061f", + "\\%,\u2030", null, "\u266a", - null, ";", null, - "\u0651", - null, "\u061f", "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys", - "\\%,\u2030", - "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys", null, - "\u061b", + null, "\u066a", - "\u061f", null, + "\u0651", + "\u061b", null, "!fixedColumnOrder!8, \u0654\u25cc|\u0654, \u0652\u25cc|\u0652, \u064d\u25cc|\u064d, \u064c\u25cc|\u064c, \u0651\u25cc|\u0651, \u064b\u25cc|\u064b,!text/keyspec_symbols_question,!, \u0656\u25cc|\u0656, \u0670\u25cc|\u0670, \u0653\u25cc|\u0653, \u0650\u25cc|\u0650, \u064f\u25cc|\u064f,\u0640, \u0655\u25cc|\u0655, \u064e\u25cc|\u064e" }; @@ -506,8 +506,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_az = { "az", null, - "\u00f6,\u00f4,\u0153,\u00f2,\u00f3,\u00f5,\u00f8,\u014d", "\u00e2,\u00e4,\u00e1", + "\u00f6,\u00f4,\u0153,\u00f2,\u00f3,\u00f5,\u00f8,\u014d", "\u00fc,\u00fb,\u00f9,\u00fa,\u016b", "\u0259,\u00e9", "\u0131,\u00ee,\u00ef,\u00ec,\u00ed,\u012f,\u012b", @@ -536,6 +536,20 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "\u011f" }; @@ -587,22 +601,18 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "\u0451", null, - null, + "\u044a", + "\u044d", "\u044b", null, null, null, - null, - "\u045e", - null, "\u0456", - null, - null, - null, - "\u044a", - "\u044d" + "\u045e" }; private static final String[] TEXTS_bg = { @@ -641,29 +651,28 @@ public final class KeyboardTextsTable { null, null, null, - "\u09ef", - "\u09ee", - "9", - "5", - "\u09eb", - "\u09e9", - "\u09ec", - "\u09e7", - null, - "0", - "\u09ea", - "7", - "6", - null, - "2", - null, - "8", "3", - "\u09e8", - "\u09ed", + "8", + null, + "7", + "\u09e7", "\u09e6", + "5", + "\u09ea", + "\u09ec", + "2", + "9", + null, + "1", + "\u09e9", + "\u09ed", + "\u09ee", + "\u09e8", + "\u09ef", + "\u09eb", + "0", "4", - "1" + "6" }; private static final String[] TEXTS_bn_IN = { @@ -683,8 +692,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_ca = { "ca", null, - "\u00f2,\u00f3", "\u00e0", + "\u00f2,\u00f3", "\u00fa,\u00fc", "\u00e8,\u00e9", "\u00ed,\u00ef", @@ -693,8 +702,8 @@ public final class KeyboardTextsTable { "\u00e7", null, null, - "\u00e1,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa", "\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", + "\u00e1,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa", "\u00f9,\u00fb,\u016b", "\u00eb,\u00ea,\u0119,\u0117,\u0113", null, @@ -755,6 +764,14 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, "!autoColumnOrder!9,\\\\,?,!,\u00b7,#,),(,/,;,',@,:,-,\\\",+,\\%,&", null, null, @@ -774,13 +791,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, "\u00e7", null, null, @@ -801,6 +811,15 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "!autoColumnOrder!8,\\\\,',\u00b7,#,),(,/,;,@,:,-,\\\",+,\\%,&" }; @@ -829,87 +848,86 @@ public final class KeyboardTextsTable { null, null, null, - "\u0669", - "\u0668", - "9", - "5", - "\u0665", - "\u0663", - "\u0666", - "\u0661", + "3", + "8", null, - "0,\u066b,\u066c", - "\u0664", "7", + "\u0661", + "\u0660", + "5", + "\u0664", + "\u0666", + "2", + "9", + null, + "1", + "\u0663", + "\u0667", + "\u0668", + "\u0662", + "\u0669", + "\u0665", + "0,\u066b,\u066c", + "4", "6", null, - "2", - null, - "8", - "3", - "\u0662", - "\u0667", - "\u0660", - "4", - "1", - null, + "\u061f", "\u0663\u0662\u0661\u061f", - "\u061f", + null, + null, + null, + null, + null, null, null, "\u061f", null, null, null, - "\u060c", + null, null, ".", + "\u060c", + "\u203a|\u2039", + "(|)", + "\u0651", null, - null, - null, - null, - null, - "<|>", + ">|<", "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,\\\",\\'", "\u2264|\u2265", ")|(", - "(|)", - "\u00bb|\u00ab", - "]|[", - "\u0651", - null, + "<|>", "[|]", - null, "\u060c", - null, - "\u2265|\u2264", - "\u2605,\u066d", + "]|[", "}|{", - "\u2039|\u203a", + "\u00bb|\u00ab", + null, null, "?,\u00bf", - "{|}", + "\u2605,\u066d", + null, "\u00ab|\u00bb", null, - ">|<", - "\u203a|\u2039", + "\u2039|\u203a", + "{|}", + "\u2265|\u2264", + "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys", null, + "\u061f", + "\\%,\u2030", null, "\u266a", - null, ";", null, - "\u0651", - null, "\u061f", "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys", - "\\%,\u2030", - "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys", null, - "\u061b", + null, "\u066a", - "\u061f", null, + "\u0651", + "\u061b", null, "!fixedColumnOrder!7, \u0655\u25cc|\u0655, \u0654\u25cc|\u0654, \u0652\u25cc|\u0652, \u064d\u25cc|\u064d, \u064c\u25cc|\u064c, \u064b\u25cc|\u064b, \u0651\u25cc|\u0651, \u0656\u25cc|\u0656, \u0670\u25cc|\u0670, \u0653\u25cc|\u0653, \u0650\u25cc|\u0650, \u064f\u25cc|\u064f, \u064e\u25cc|\u064e,\u0640|\u0640" }; @@ -917,8 +935,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_cs = { "cs", null, - "\u00f3", "\u00e1", + "\u00f3", "\u00fa,\u016f", "\u00e9,\u011b", "\u00ed", @@ -927,8 +945,8 @@ public final class KeyboardTextsTable { "\u010d", null, "\u0161", - "\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", "\u00f6,\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d", + "\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", "\u00fb,\u00fc,\u00f9,\u016b", "\u00e8,\u00ea,\u00eb,\u0119,\u0117,\u0113", "\u017e", @@ -936,14 +954,12 @@ public final class KeyboardTextsTable { "\u00ee,\u00ef,\u00ec,\u012f,\u012b", "\u00e7,\u0107", "\u00df,\u015b", - "!text/double_raqm_laqm", "!text/single_raqm_laqm", + "!text/double_raqm_laqm", "\u00fd", null, null, - null, - null, - null, + "\u010f", null, null, null, @@ -954,7 +970,15 @@ public final class KeyboardTextsTable { null, "\u017a,\u017c", null, - "\u010f", + null, + null, + null, + null, + null, + null, + null, + null, + null, null, null, null, @@ -969,12 +993,6 @@ public final class KeyboardTextsTable { null, null, "\u00f1,\u0144", - null, - null, - null, - null, - null, - null, "\u0165", null, null, @@ -987,6 +1005,12 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, "\u0159", null, null, @@ -1003,14 +1027,19 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, "\u00ff" }; private static final String[] TEXTS_da = { "da", null, - "\u00f8", "\u00e5,\u00e6", + "\u00f8", null, null, null, @@ -1019,8 +1048,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e1,\u00e4,\u00e0,\u00e2,\u00e3,\u0101", "\u00f6,\u00f3,\u00f4,\u00f2,\u00f5,\u0153,\u014d", + "\u00e1,\u00e4,\u00e0,\u00e2,\u00e3,\u0101", null, null, null, @@ -1028,8 +1057,8 @@ public final class KeyboardTextsTable { null, null, null, - "!text/double_raqm_laqm", "!text/single_raqm_laqm", + "!text/double_raqm_laqm", null, null, null, @@ -1057,27 +1086,21 @@ public final class KeyboardTextsTable { null, null, null, - null, - "\u00f8", - null, - null, "\u00e6", null, null, null, + "\u00e5", + "\u00f8", + null, + null, + null, + null, null, "\u00e4", null, null, null, - "\u00e5", - null, - null, - null, - null, - null, - null, - null, null, null, null, @@ -1098,8 +1121,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_de = { "de", null, - "\u00f6", "\u00e4", + "\u00f6", "\u00fc", null, null, @@ -1108,8 +1131,8 @@ public final class KeyboardTextsTable { null, null, "\u00df", - "%,\u00e2,\u00e0,\u00e1,\u00e6,\u00e3,\u00e5,\u0101", "%,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u00f8,\u014d", + "%,\u00e2,\u00e0,\u00e1,\u00e6,\u00e3,\u00e5,\u0101", "%,\u00fb,\u00f9,\u00fa,\u016b", null, null, @@ -1117,8 +1140,8 @@ public final class KeyboardTextsTable { null, null, "\u015b,\u0161", - "!text/double_raqm_laqm", "!text/single_raqm_laqm", + "!text/double_raqm_laqm", null, null, null, @@ -1185,22 +1208,23 @@ public final class KeyboardTextsTable { null, null, null, + "\u00e8", + null, + null, "\u00fc", null, - "\u00e8", null, "\u00e4", null, - "\u00f6", - null, - null, - null, - null, - null, - null, - null, null, "\u00e0", + null, + null, + null, + null, + null, + "\u00f6", + null, "\u00e9" }; @@ -1246,6 +1270,20 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "\u011d", null, null, @@ -1301,25 +1339,22 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, "\u0135", null, null, null, null, null, + "\u0125", + null, + null, + null, + null, + null, + null, + null, + null, + null, null, null, null, @@ -1335,34 +1370,26 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - "\u0125", - null, "\u016d", - "\u0127", + null, null, null, null, "\u015d", - "\u0109", + null, + "\u0127", null, null, null, - "\u011d" + "\u011d", + "\u0109" }; private static final String[] TEXTS_es = { "es", null, - "\u00f3", "\u00e1", + "\u00f3", "\u00fa,\u00fc", "\u00e9", "\u00ed", @@ -1371,8 +1398,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e0,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa", "\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", + "\u00e0,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa", "\u00f9,\u00fb,\u016b", "\u00e8,\u00eb,\u00ea,\u0119,\u0117,\u0113", null, @@ -1412,6 +1439,12 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, "\u0144", null, null, @@ -1433,14 +1466,16 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "!autoColumnOrder!9,\\\\,?,!,#,),(,/,;,\u00a1,',@,:,-,\\\",+,\\%,&,\u00bf" }; private static final String[] TEXTS_et = { "et", null, - "\u00f6,\u00f5", "\u00e4", + "\u00f6,\u00f5", "\u00fc", null, null, @@ -1449,8 +1484,8 @@ public final class KeyboardTextsTable { null, null, "\u0161", - "\u0101,\u00e0,\u00e1,\u00e2,\u00e3,\u00e5,\u00e6,\u0105", "\u00f2,\u00f3,\u00f4,\u0153,\u0151,\u00f8", + "\u0101,\u00e0,\u00e1,\u00e2,\u00e3,\u00e5,\u00e6,\u0105", "\u016b,\u0173,\u00f9,\u00fa,\u00fb,\u016f,\u0171", null, "\u017e", @@ -1472,8 +1507,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, "\u017c,\u017a", null, null, @@ -1488,26 +1521,26 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e4", - null, null, "\u00f6", null, null, null, - null, - "\u00f5", + "\u00fc", + "\u00e4", null, null, null, - "\u00fc" + null, + null, + "\u00f5" }; private static final String[] TEXTS_eu = { "eu", null, - "\u00f3,\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", "\u00e1,\u00e0,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa", + "\u00f3,\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", "\u00fa,\u00fc,\u00f9,\u00fb,\u016b", "\u00e9,\u00e8,\u00eb,\u00ea,\u0119,\u0117,\u0113", "\u00ed,\u00ef,\u00ec,\u00ee,\u012f,\u012b", @@ -1549,87 +1582,86 @@ public final class KeyboardTextsTable { null, null, null, - "\u06f9", - "\u06f8", - "9", - "5", - "\u06f5", - "\u06f3", - "\u06f6", - "\u06f1", + "3", + "8", null, - "0,\u066b,\u066c", - "\u06f4", "7", + "\u06f1", + "\u06f0", + "5", + "\u06f4", + "\u06f6", + "2", + "9", + null, + "1", + "\u06f3", + "\u06f7", + "\u06f8", + "\u06f2", + "\u06f9", + "\u06f5", + "0,\u066b,\u066c", + "4", "6", null, - "2", - null, - "8", - "3", - "\u06f2", - "\u06f7", - "\u06f0", - "4", - "1", - null, + "!text/morekeys_arabic_diacritics", "\u06f3\u06f2\u06f1\u061f", - "!text/morekeys_arabic_diacritics", + null, + null, + null, + null, + null, null, null, "!text/morekeys_arabic_diacritics", null, null, null, + null, + null, + null, "\u060c", + "\u203a|\u2039", + "(|)", + "\u064b", null, - null, - null, - null, - null, - null, - null, - "<|>", + ">|<", "!fixedColumnOrder!4,:,!,\u061f,\u061b,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote", "\u2264|\u2265", ")|(", - "(|)", - "\u00bb|\u00ab", - "]|[", - "\u064b", - null, + "<|>", "[|]", - null, "\u060c", - null, - "\u2265|\u2264", - "\u2605,\u066d", + "]|[", "}|{", - "\u2039|\u203a", + "\u00bb|\u00ab", + null, null, "?,\u00bf", - "{|}", + "\u2605,\u066d", + null, "\u00ab|\u00bb", null, - ">|<", - "\u203a|\u2039", + "\u2039|\u203a", + "{|}", + "\u2265|\u2264", + "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys", null, + "\u061f", + "\\%,\u2030", null, "\u266a", - null, ";", null, - "\u064b", - null, "\u061f", "!fixedColumnOrder!4,\ufd3f|\ufd3e,!text/keyspecs_right_parenthesis_more_keys", - "\\%,\u2030", - "!fixedColumnOrder!4,\ufd3e|\ufd3f,!text/keyspecs_left_parenthesis_more_keys", null, - "\u061b", + null, "\u066a", - "\u061f", null, + "\u064b", + "\u061b", null, "!fixedColumnOrder!8, \u0654\u25cc|\u0654, \u0652\u25cc|\u0652, \u064d\u25cc|\u064d, \u064c\u25cc|\u064c, \u0651\u25cc|\u0651, \u064b\u25cc|\u064b,!text/keyspec_symbols_question,!, \u0656\u25cc|\u0656, \u0670\u25cc|\u0670, \u0653\u25cc|\u0653, \u0650\u25cc|\u0650, \u064f\u25cc|\u064f,\u0640, \u0655\u25cc|\u0655, \u064e\u25cc|\u064e", null, @@ -1666,16 +1698,19 @@ public final class KeyboardTextsTable { null, null, null, + "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_greater_than", null, - "!fixedColumnOrder!3,!text/keyspec_left_single_angle_quote,!text/keyspec_less_than_equal,!text/keyspec_less_than", - "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_greater_than" + null, + null, + null, + "!fixedColumnOrder!3,!text/keyspec_left_single_angle_quote,!text/keyspec_less_than_equal,!text/keyspec_less_than" }; private static final String[] TEXTS_fi = { "fi", null, - "\u00f6", "\u00e4,\u00e5", + "\u00f6", null, null, null, @@ -1684,8 +1719,8 @@ public final class KeyboardTextsTable { null, null, "\u0161", - "\u00e6,\u00e0,\u00e1,\u00e2,\u00e3,\u0101", "\u00f8,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u014d", + "\u00e6,\u00e0,\u00e1,\u00e2,\u00e3,\u0101", null, null, "\u017e", @@ -1707,8 +1742,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, "\u017a,\u017c", null, null, @@ -1723,26 +1756,22 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e4", - null, null, "\u00f6", null, null, null, + "\u00e5", + "\u00e4", + null, + null, + null, + null, null, "\u00f8", null, null, null, - "\u00e5", - null, - null, - null, - null, - null, - null, - null, null, null, null, @@ -1763,8 +1792,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_fr = { "fr", null, - "\u00f4,\u0153", "\u00e0,\u00e2,%,\u00e6", + "\u00f4,\u0153", "\u00f9,\u00fb,%,\u00fc", "\u00e9,\u00e8,\u00ea,\u00eb", "\u00ee,%,\u00ef", @@ -1773,8 +1802,8 @@ public final class KeyboardTextsTable { "\u00e7", null, null, - "\u00e1,\u00e4,\u00e3,\u00e5,\u0101,\u00aa", "%,\u00f6,\u00f2,\u00f3,\u00f5,\u00f8,\u014d,\u00ba", + "\u00e1,\u00e4,\u00e3,\u00e5,\u0101,\u00aa", "\u00fa,\u016b", "%,\u0119,\u0117,\u0113", null, @@ -1850,30 +1879,31 @@ public final class KeyboardTextsTable { null, null, null, + "\u00fc", + null, + null, "\u00e8", null, - "\u00fc", null, "\u00e0", null, - "\u00e9", - null, - null, - null, - null, - null, - null, - null, null, "\u00e4", + null, + null, + null, + null, + null, + "\u00e9", + null, "\u00f6" }; private static final String[] TEXTS_gl = { "gl", null, - "\u00f3,\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", "\u00e1,\u00e0,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa", + "\u00f3,\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", "\u00fa,\u00fc,\u00f9,\u00fb,\u016b", "\u00e9,\u00e8,\u00eb,\u00ea,\u0119,\u0117,\u0113", "\u00ed,\u00ef,\u00ec,\u00ee,\u012f,\u012b", @@ -1915,32 +1945,36 @@ public final class KeyboardTextsTable { null, null, null, - "\u096f", - "\u096e", - "9", - "5", - "\u096b", - "\u0969", - "\u096c", - "\u0967", + "3", + "8", null, - "0", - "\u096a", "7", + "\u0967", + "\u0966", + "5", + "\u096a", + "\u096c", + "2", + "9", + null, + "1", + "\u0969", + "\u096d", + "\u096e", + "\u0968", + "\u096f", + "\u096b", + "0", + "4", "6", null, - "2", - null, - "8", - "3", - "\u0968", - "\u096d", - "\u0966", - "4", - "1", - null, - "?\u0967\u0968\u0969", "!autoColumnOrder!8,\\\\,.,',#,),(,/,;,@,:,-,\\\",+,\\%,&", + "?\u0967\u0968\u0969", + null, + null, + null, + null, + null, null, null, "!autoColumnOrder!9,\\\\,.,?,!,#,),(,/,;,',@,:,-,\\\",+,\\%,&", @@ -1954,24 +1988,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, "\u0964" }; @@ -2084,23 +2100,25 @@ public final class KeyboardTextsTable { null, null, null, - "Wait", null, - "Prev", - "Search", + "Wait", null, null, "Done", null, + null, + "Prev", + null, + "Send", + "Next", + null, + null, + null, "Go", null, null, - "Pause", - null, - null, - null, - "Next", - "Send" + "Search", + "Pause" }; private static final String[] TEXTS_hr = { @@ -2125,8 +2143,12 @@ public final class KeyboardTextsTable { null, "\u00e7", "\u015b,\u00df", - "!text/double_raqm_laqm", "!text/single_raqm_laqm", + "!text/double_raqm_laqm", + null, + null, + null, + "\u0111", null, null, null, @@ -2135,22 +2157,14 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - "\u017a,\u017c", - null, - "\u0111" + "\u017a,\u017c" }; private static final String[] TEXTS_hu = { "hu", null, - "\u00f3,\u00f6,\u0151", "\u00e1", + "\u00f3,\u00f6,\u0151", "\u00fa,\u00fc,\u0171", "\u00e9", "\u00ed", @@ -2159,8 +2173,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d", + "\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", "\u00fb,\u00f9,\u016b", "\u00e8,\u00ea,\u00eb,\u0119,\u0117,\u0113", null, @@ -2168,8 +2182,8 @@ public final class KeyboardTextsTable { "\u00ee,\u00ef,\u00ec,\u012f,\u012b", null, null, - "!text/double_raqm_laqm", - "!text/single_raqm_laqm" + "!text/single_raqm_laqm", + "!text/double_raqm_laqm" }; private static final String[] TEXTS_hy = { @@ -2220,8 +2234,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, "!text/morekeys_punctuation", null, null, @@ -2229,8 +2241,19 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + "\u0589", "\u055d", null, + null, + null, "\u0589", null, null, @@ -2238,25 +2261,15 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "!autoColumnOrder!8,\\,,\u055e,\u055c,.,\u055a,\u0559,?,!,\u055d,\u055b,\u058a,\u00bb,\u00ab,\u055f,;,:", "\u055d", null, null, null, null, null, - "\u0589", "\u055e,\u00bf", null, + "!autoColumnOrder!8,\\,,\u055e,\u055c,.,\u055a,\u0559,?,!,\u055d,\u055b,\u058a,\u00bb,\u00ab,\u055f,;,:", null, null, null, @@ -2318,8 +2331,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_is = { "is", null, - "\u00f3,\u00f6", "\u00e1,\u00e4,\u00e6", + "\u00f3,\u00f6", "\u00fa", "\u00e9", "\u00ed", @@ -2328,8 +2341,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e5,\u00e0,\u00e2,\u00e3,\u0101", "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d", + "\u00e5,\u00e0,\u00e2,\u00e3,\u0101", "\u00fc,\u00fb,\u00f9,\u016b", "\u00eb,\u00e8,\u00ea,\u0119,\u0117,\u0113", null, @@ -2342,19 +2355,6 @@ public final class KeyboardTextsTable { "\u00fd", null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, "\u00f0", null, null, @@ -2376,6 +2376,19 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "\u00fe", null, null, @@ -2404,14 +2417,25 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "\u00ff" }; private static final String[] TEXTS_it = { "it", null, - "\u00f2", "\u00e0", + "\u00f2", "\u00f9", "\u00e8,\u00e9", "\u00ec", @@ -2420,8 +2444,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101,\u00aa", "\u00f3,\u00f4,\u00f6,\u00f5,\u0153,\u00f8,\u014d,\u00ba", + "\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101,\u00aa", "\u00fa,\u00fb,\u00fc,\u016b", "\u00ea,\u00eb,\u0119,\u0117,\u0113", null, @@ -2497,22 +2521,23 @@ public final class KeyboardTextsTable { null, null, null, + "\u00e8", + null, + null, "\u00fc", null, - "\u00e8", null, "\u00e4", null, - "\u00f6", - null, - null, - null, - null, - null, - null, - null, null, "\u00e0", + null, + null, + null, + null, + null, + "\u00f6", + null, "\u00e9" }; @@ -2581,30 +2606,36 @@ public final class KeyboardTextsTable { null, null, null, - "<|>", + "\u203a|\u2039", + "(|)", + null, + null, + ">|<", null, "\u2264|\u2265", ")|(", - "(|)", - "\u00bb|\u00ab", - "]|[", - null, - null, + "<|>", "[|]", null, - null, - null, - "\u2265|\u2264", - "\u2605", + "]|[", "}|{", - "\u2039|\u203a", + "\u00bb|\u00ab", null, null, - "{|}", + null, + "\u2605", + null, "\u00ab|\u00bb", null, - ">|<", - "\u203a|\u2039", + "\u2039|\u203a", + "{|}", + "\u2265|\u2264", + null, + null, + null, + null, + null, + null, null, null, null, @@ -2720,22 +2751,26 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "\u0451", null, - null, + "\u044a", + "\u044d", "\u044b", null, null, null, - null, + "\u0438", "\u0449", null, - "\u0438", null, null, null, - "\u044a", - "\u044d", + null, + null, + null, + null, null, null, null, @@ -2790,36 +2825,22 @@ public final class KeyboardTextsTable { null, null, null, + "\u04e9", + null, + "\u0456", + "\u04af,\u04b1", + null, + null, null, "\u0493", null, null, null, null, + "\u049b", null, - null, - "\u04af,\u04b1", - "\u04e9", - null, - null, - null, - "\u0456", - null, - null, - null, - "\u04d9", "\u04bb", - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "\u049b" + "\u04d9" }; private static final String[] TEXTS_km = { @@ -2957,16 +2978,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, "\u17db,\u00a2,\u00a3,\u20ac,\u00a5,\u20b1" }; @@ -3032,22 +3043,26 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "\u0451", null, - null, + "\u044a", + "\u044d", "\u044b", null, null, null, - null, + "\u0438", "\u0449", null, - "\u0438", null, null, null, - "\u044a", - "\u044d", + null, + null, + null, + null, null, null, null, @@ -3102,16 +3117,10 @@ public final class KeyboardTextsTable { null, null, null, + "\u04e9", null, null, - null, - null, - null, - null, - null, - null, - "\u04af", - "\u04e9" + "\u04af" }; private static final String[] TEXTS_lo = { @@ -3131,8 +3140,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_lt = { "lt", null, - null, "\u0105", + null, "\u016b,\u0173", "\u0117,\u0119", "\u012f", @@ -3151,8 +3160,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_lv = { "lv", null, - "\u014d", "\u0101", + "\u014d", "\u016b", "\u0113", "\u012b", @@ -3161,8 +3170,8 @@ public final class KeyboardTextsTable { "\u010d", null, "\u0161", - "\u00e0,\u00e1,\u00e2,\u00e3,\u00e4,\u00e5,\u00e6,\u0105", "\u00f2,\u00f3,\u00f4,\u00f5,\u00f6,\u0153,\u0151,\u00f8", + "\u00e0,\u00e1,\u00e2,\u00e3,\u00e4,\u00e5,\u00e6,\u0105", "\u0173,\u00f9,\u00fa,\u00fb,\u00fc,\u016f,\u0171", "\u0117,\u00e8,\u00e9,\u00ea,\u00eb,\u0119,\u011b", "\u017e", @@ -3181,8 +3190,6 @@ public final class KeyboardTextsTable { null, null, null, - "\u0123", - null, null, null, null, @@ -3197,6 +3204,14 @@ public final class KeyboardTextsTable { null, null, null, + "\u0123", + null, + null, + null, + null, + null, + null, + null, null, null, null, @@ -3225,6 +3240,8 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "\u013c", null, null, @@ -3249,6 +3266,7 @@ public final class KeyboardTextsTable { null, null, null, + "\u0137", null, null, null, @@ -3256,21 +3274,11 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - "\u011f", - null, - null, - null, "\u0142,\u013a,\u013e", null, null, - null, "\u0159,\u0155", - null, - null, - null, - "\u0137" + "\u011f" }; private static final String[] TEXTS_mk = { @@ -3321,6 +3329,8 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "\u0450", null, null, @@ -3382,27 +3392,26 @@ public final class KeyboardTextsTable { null, null, null, + "\u0455", null, null, - null, - null, - "\u045c", - null, - null, - "\u0437", - null, - null, - null, - null, - null, - null, + "\u045d", "\u0453", null, null, null, null, - "\u045d", - "\u0455" + null, + null, + null, + null, + null, + null, + null, + null, + "\u0437", + null, + "\u045c" }; private static final String[] TEXTS_ml = { @@ -3458,29 +3467,29 @@ public final class KeyboardTextsTable { null, null, null, - "\u096f", - "\u096e", - "9", - "5", - "\u096b", - "\u0969", - "\u096c", - "\u0967", + "3", + "8", null, - "0", - "\u096a", "7", + "\u0967", + "\u0966", + "5", + "\u096a", + "\u096c", + "2", + "9", + null, + "1", + "\u0969", + "\u096d", + "\u096e", + "\u0968", + "\u096f", + "\u096b", + "0", + "4", "6", null, - "2", - null, - "8", - "3", - "\u0968", - "\u096d", - "\u0966", - "4", - "1", null, "?\u0967\u0968\u0969" }; @@ -3542,22 +3551,30 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + "\u104b", "\u104a", null, + null, + "\u104a", "\u104b", null, - null, - null, - null, - null, - null, "\\", null, null, null, null, null, - "\u104a", + null, + null, + null, + null, + null, null, null, "!autoColumnOrder!9,\u104a,.,?,!,#,),(,/,;,...,',@,:,-,\\\",+,\\%,&", @@ -3567,7 +3584,9 @@ public final class KeyboardTextsTable { null, null, null, - "\u104b", + null, + null, + null, null, null, null, @@ -3612,8 +3631,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_nb = { "nb", null, - "\u00f8,\u00f6,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u014d", "\u00e5,\u00e6,\u00e4,\u00e0,\u00e1,\u00e2,\u00e3,\u0101", + "\u00f8,\u00f6,\u00f4,\u00f2,\u00f3,\u00f5,\u0153,\u014d", "\u00fc,\u00fb,\u00f9,\u00fa,\u016b", "\u00e9,\u00e8,\u00ea,\u00eb,\u0119,\u0117,\u0113", null, @@ -3660,12 +3679,14 @@ public final class KeyboardTextsTable { null, null, null, + "\u00f8", null, + null, + null, + "\u00e5", "\u00e6", null, null, - "\u00f8", - null, null, null, null, @@ -3673,14 +3694,6 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e5", - null, - null, - null, - null, - null, - null, - null, null, null, null, @@ -3723,32 +3736,36 @@ public final class KeyboardTextsTable { null, null, null, - "\u096f", - "\u096e", - "9", - "5", - "\u096b", - "\u0969", - "\u096c", - "\u0967", + "3", + "8", null, - "0", - "\u096a", "7", + "\u0967", + "\u0966", + "5", + "\u096a", + "\u096c", + "2", + "9", + null, + "1", + "\u0969", + "\u096d", + "\u096e", + "\u0968", + "\u096f", + "\u096b", + "0", + "4", "6", null, - "2", - null, - "8", - "3", - "\u0968", - "\u096d", - "\u0966", - "4", - "1", - null, - "?\u0967\u0968\u0969", "!autoColumnOrder!8,.,\\\\,',#,),(,/,;,@,:,-,\\\",+,\\%,&", + "?\u0967\u0968\u0969", + null, + null, + null, + null, + null, null, null, "!autoColumnOrder!9,.,\\\\,?,!,#,),(,/,;,',@,:,-,\\\",+,\\%,&", @@ -3762,32 +3779,14 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, "\u0964" }; private static final String[] TEXTS_nl = { "nl", null, - "\u00f3,\u00f6", "\u00e1,\u00e4,\u00e2,\u00e0", + "\u00f3,\u00f6", "\u00fa,\u00fc", "\u00e9,\u00eb,\u00ea,\u00e8", "\u00ed,\u00ef,\u00ec,\u00ee,\u012f,\u012b,\u0133", @@ -3796,8 +3795,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e6,\u00e3,\u00e5,\u0101", "\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d", + "\u00e6,\u00e3,\u00e5,\u0101", "\u00fb,\u00f9,\u016b", "\u0119,\u0117,\u0113" }; @@ -3805,8 +3804,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_pl = { "pl", null, - "\u00f3", "\u0105", + "\u00f3", null, "\u0119", null, @@ -3815,8 +3814,8 @@ public final class KeyboardTextsTable { "\u0107", null, "\u015b", - "\u00e1,\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", "\u00f6,\u00f4,\u00f2,\u00f5,\u0153,\u00f8,\u014d", + "\u00e1,\u00e0,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", null, "\u00e8,\u00e9,\u00ea,\u00eb,\u0117,\u0113", "\u017c,\u017a", @@ -3838,8 +3837,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, "\u017e", null, null, @@ -3856,6 +3853,14 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, "\u00f1", null, null, @@ -3879,14 +3884,16 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "\u0142" }; private static final String[] TEXTS_pt = { "pt", null, - "\u00f3,\u00f5,\u00f4", "\u00e1,\u00e3,\u00e0,\u00e2", + "\u00f3,\u00f5,\u00f4", "\u00fa,\u00fc", "\u00e9,\u00ea", "\u00ed", @@ -3895,8 +3902,8 @@ public final class KeyboardTextsTable { "\u00e7", null, null, - "\u00e4,\u00e5,\u00e6,\u00aa", "\u00f2,\u00f6,\u0153,\u00f8,\u014d,\u00ba", + "\u00e4,\u00e5,\u00e6,\u00aa", "\u00f9,\u00fb,\u016b", "\u00e8,\u0119,\u0117,\u0113,\u00eb", null, @@ -3983,30 +3990,32 @@ public final class KeyboardTextsTable { null, null, null, + null, "\u00e7" }; private static final String[] TEXTS_rm = { "rm", null, + null, "\u00f2,\u00f3,\u00f6,\u00f4,\u00f5,\u0153,\u00f8" }; private static final String[] TEXTS_ro = { "ro", null, - null, "\u0103,\u00e2", null, null, + null, "\u00ee", "!text/double_9qm_rqm", "!text/single_9qm_rqm", null, null, "\u0219", - "\u00e3,\u00e0,\u00e1,\u00e4,\u00e6,\u00e5,\u0101", null, + "\u00e3,\u00e0,\u00e1,\u00e4,\u00e6,\u00e5,\u0101", null, null, null, @@ -4104,22 +4113,18 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, "\u0451", null, - null, + "\u044a", + "\u044d", "\u044b", null, null, null, - null, - "\u0449", - null, "\u0438", - null, - null, - null, - "\u044a", - "\u044d" + "\u0449" }; private static final String[] TEXTS_si = { @@ -4139,8 +4144,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_sk = { "sk", null, - "\u00f4,\u00f3", "\u00e1,\u00e4", + "\u00f4,\u00f3", "\u00fa", "\u00e9", "\u00ed", @@ -4149,8 +4154,8 @@ public final class KeyboardTextsTable { "\u010d", null, "\u0161", - "\u0101,\u00e0,\u00e2,\u00e3,\u00e5,\u00e6,\u0105", "\u00f6,\u00f2,\u00f5,\u0153,\u0151,\u00f8", + "\u0101,\u00e0,\u00e2,\u00e3,\u00e5,\u00e6,\u0105", "\u016f,\u00fc,\u016b,\u0173,\u00f9,\u00fb,\u0171", "\u011b,\u0113,\u0117,\u00e8,\u00ea,\u00eb,\u0119", "\u017e", @@ -4158,14 +4163,12 @@ public final class KeyboardTextsTable { "\u012b,\u012f,\u00ec,\u00ee,\u00ef,\u0131", "\u00e7,\u0107", "\u00df,\u015b,\u015f", - "!text/double_raqm_laqm", "!text/single_raqm_laqm", + "!text/double_raqm_laqm", "\u00fd", null, null, - null, - null, - null, + "\u010f", null, null, null, @@ -4176,7 +4179,15 @@ public final class KeyboardTextsTable { null, "\u017c,\u017a", null, - "\u010f", + null, + null, + null, + null, + null, + null, + null, + null, + null, null, null, null, @@ -4191,12 +4202,6 @@ public final class KeyboardTextsTable { null, null, "\u0146,\u00f1,\u0144", - null, - null, - null, - null, - null, - null, "\u0165", null, null, @@ -4209,10 +4214,18 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, "\u0155", null, null, null, + null, + null, "\u013e,\u013a", null, null, @@ -4225,6 +4238,9 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, "\u00ff", null, null, @@ -4242,18 +4258,9 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, "\u013c,\u0142", null, null, - null, "\u0159,\u0157", null, null, @@ -4276,12 +4283,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, "\u0163" }; @@ -4307,8 +4308,8 @@ public final class KeyboardTextsTable { null, "\u0107", null, - "!text/double_raqm_laqm", - "!text/single_raqm_laqm" + "!text/single_raqm_laqm", + "!text/double_raqm_laqm" }; private static final String[] TEXTS_sr = { @@ -4333,8 +4334,10 @@ public final class KeyboardTextsTable { null, null, null, - "!text/double_raqm_laqm", "!text/single_raqm_laqm", + "!text/double_raqm_laqm", + null, + null, null, null, null, @@ -4420,27 +4423,26 @@ public final class KeyboardTextsTable { null, null, null, + "\u0437", null, null, - null, - null, - "\u045b", - null, - null, - "\u0455", - null, - null, - null, - null, - null, - null, + "\u045d", "\u0452", null, null, null, null, - "\u045d", - "\u0437" + null, + null, + null, + null, + null, + null, + null, + null, + "\u0455", + null, + "\u045b" }; private static final String[] TEXTS_sr_ZZ = { @@ -4470,19 +4472,6 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, "\u0111,%", null, null, @@ -4552,30 +4541,45 @@ public final class KeyboardTextsTable { null, null, null, - "\u010cekaj", null, - "Preth", - "Tra\u017ei", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + "\u010cekaj", null, null, "Gotov", null, + null, + "Preth", + null, + "\u0160alji", + "Sled", + null, + null, + null, "Idi", null, null, - "Pauza", - null, - null, - null, - "Sled", - "\u0160alji" + "Tra\u017ei", + "Pauza" }; private static final String[] TEXTS_sv = { "sv", null, - "\u00f6", "\u00e4,\u00e5", + "\u00f6", null, "\u00e9", null, @@ -4584,8 +4588,8 @@ public final class KeyboardTextsTable { null, null, null, - "\u00e6,\u00e1,\u00e0,\u00e2,\u0105,\u00e3", "\u00f8,\u0153,\u00f3,\u00f2,\u00f4,\u00f5,\u014d", + "\u00e6,\u00e1,\u00e0,\u00e2,\u0105,\u00e3", null, "\u00e8,\u00ea,\u00eb,\u0119", null, @@ -4593,8 +4597,8 @@ public final class KeyboardTextsTable { null, null, null, - "!text/double_raqm_laqm", "!text/single_raqm_laqm", + "!text/double_raqm_laqm", null, null, null, @@ -4622,27 +4626,21 @@ public final class KeyboardTextsTable { null, null, null, - null, - "\u00e4", - null, - null, "\u00f6", null, null, null, + "\u00e5", + "\u00e4", + null, + null, + null, + null, null, "\u00f8,\u0153", null, null, null, - "\u00e5", - null, - null, - null, - null, - null, - null, - null, null, null, null, @@ -4663,8 +4661,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_sw = { "sw", null, - "\u00f4,\u00f6,\u00f2,\u00f3,\u0153,\u00f8,\u014d,\u00f5", "\u00e0,\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", + "\u00f4,\u00f6,\u00f2,\u00f3,\u0153,\u00f8,\u014d,\u00f5", "\u00fb,\u00fc,\u00f9,\u00fa,\u016b", "\u00e8,\u00e9,\u00ea,\u00eb,\u0113", "\u00ee,\u00ef,\u00ed,\u012b,\u00ec", @@ -4693,6 +4691,20 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "g\\'" }; @@ -4760,8 +4772,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_tl = { "tl", null, - "\u00f3,\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", "\u00e1,\u00e0,\u00e4,\u00e2,\u00e3,\u00e5,\u0105,\u00e6,\u0101,\u00aa", + "\u00f3,\u00f2,\u00f6,\u00f4,\u00f5,\u00f8,\u0153,\u014d,\u00ba", "\u00fa,\u00fc,\u00f9,\u00fb,\u016b", "\u00e9,\u00e8,\u00eb,\u00ea,\u0119,\u0117,\u0113", "\u00ed,\u00ef,\u00ec,\u00ee,\u012f,\u012b", @@ -4781,8 +4793,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_tr = { "tr", null, - "\u00f6", null, + "\u00f6", "\u00fc", null, "\u0131", @@ -4791,8 +4803,8 @@ public final class KeyboardTextsTable { "\u00e7", null, "\u015f", - null, "\u00f4,\u0153,\u00f2,\u00f3,\u00f5,\u00f8,\u014d", + null, "\u00fb,\u00f9,\u00fa,\u016b", null, null, @@ -4811,6 +4823,20 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "\u011f" }; @@ -4865,19 +4891,19 @@ public final class KeyboardTextsTable { null, null, null, + null, + "\u044a", + "\u0454", "\u0456", null, null, null, - null, + "\u0438", "\u0449", null, - "\u0438", null, null, null, - "\u044a", - "\u0454", null, null, null, @@ -4933,26 +4959,24 @@ public final class KeyboardTextsTable { null, null, null, - "\u0491", null, null, null, null, null, + "\u0457", null, null, null, null, - null, - null, - "\u0457" + "\u0491" }; private static final String[] TEXTS_uz = { "uz", null, - "\u00f6,\u00f4,\u0153,\u00f2,\u00f3,\u00f5,\u00f8,\u014d", "\u00e2,\u00e4,\u00e1", + "\u00f6,\u00f4,\u0153,\u00f2,\u00f3,\u00f5,\u00f8,\u014d", "\u00fc,\u00fb,\u00f9,\u00fa,\u016b", "\u0259,\u00e9", "\u0131,\u00ee,\u00ef,\u00ec,\u00ed,\u012f,\u012b", @@ -4981,14 +5005,28 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, "\u011f" }; private static final String[] TEXTS_vi = { "vi", null, - "\u00f2,\u00f3,\u1ecf,\u00f5,\u1ecd,\u00f4,\u1ed3,\u1ed1,\u1ed5,\u1ed7,\u1ed9,\u01a1,\u1edd,\u1edb,\u1edf,\u1ee1,\u1ee3", "\u00e0,\u00e1,\u1ea3,\u00e3,\u1ea1,\u0103,\u1eb1,\u1eaf,\u1eb3,\u1eb5,\u1eb7,\u00e2,\u1ea7,\u1ea5,\u1ea9,\u1eab,\u1ead", + "\u00f2,\u00f3,\u1ecf,\u00f5,\u1ecd,\u00f4,\u1ed3,\u1ed1,\u1ed5,\u1ed7,\u1ed9,\u01a1,\u1edd,\u1edb,\u1edf,\u1ee1,\u1ee3", "\u00f9,\u00fa,\u1ee7,\u0169,\u1ee5,\u01b0,\u1eeb,\u1ee9,\u1eed,\u1eef,\u1ef1", "\u00e8,\u00e9,\u1ebb,\u1ebd,\u1eb9,\u00ea,\u1ec1,\u1ebf,\u1ec3,\u1ec5,\u1ec7", "\u00ec,\u00ed,\u1ec9,\u0129,\u1ecb", @@ -5011,27 +5049,14 @@ public final class KeyboardTextsTable { "\u1ef3,\u00fd,\u1ef7,\u1ef9,\u1ef5", null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, "\u0111" }; private static final String[] TEXTS_zu = { "zu", null, - "\u00f3,\u00f4,\u00f6,\u00f2,\u0153,\u00f8,\u014d,\u00f5", "\u00e0,\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", + "\u00f3,\u00f4,\u00f6,\u00f2,\u0153,\u00f8,\u014d,\u00f5", "\u00fa,\u00fb,\u00fc,\u00f9,\u016b", "\u00e9,\u00e8,\u00ea,\u00eb,\u0113", "\u00ed,\u00ee,\u00ef,\u012b,\u00ec", @@ -5051,8 +5076,8 @@ public final class KeyboardTextsTable { private static final String[] TEXTS_zz = { "zz", null, - "\u00f2,\u00f3,\u00f4,\u00f5,\u00f6,\u00f8,\u014d,\u014f,\u0151,\u0153,\u00ba", "\u00e0,\u00e1,\u00e2,\u00e3,\u00e4,\u00e5,\u00e6,\u0101,\u0103,\u0105,\u00aa", + "\u00f2,\u00f3,\u00f4,\u00f5,\u00f6,\u00f8,\u014d,\u014f,\u0151,\u0153,\u00ba", "\u00f9,\u00fa,\u00fb,\u00fc,\u0169,\u016b,\u016d,\u016f,\u0171,\u0173", "\u00e8,\u00e9,\u00ea,\u00eb,\u0113,\u0115,\u0117,\u0119,\u011b", "\u00ec,\u00ed,\u00ee,\u00ef,\u0129,\u012b,\u012d,\u012f,\u0131,\u0133", @@ -5075,19 +5100,6 @@ public final class KeyboardTextsTable { "\u00fd,\u0177,\u00ff,\u0133", null, null, - null, - null, - null, - null, - null, - null, - "\u011d,\u011f,\u0121,\u0123", - null, - null, - null, - null, - null, - null, "\u010f,\u0111,\u00f0", null, null, @@ -5108,6 +5120,19 @@ public final class KeyboardTextsTable { null, null, null, + "\u011d,\u011f,\u0121,\u0123", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, null, "\u00fe,\u0163,\u0165,\u0167", null, @@ -5121,10 +5146,18 @@ public final class KeyboardTextsTable { null, null, null, + null, + null, + null, + null, + null, + null, "\u0155,\u0157,\u0159", null, null, null, + null, + null, "\u013a,\u013c,\u013e,\u0140,\u0142", null, null, @@ -5148,28 +5181,7 @@ public final class KeyboardTextsTable { null, null, null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, + "\u0125", "\u0137,\u0138", null, null, @@ -5178,16 +5190,33 @@ public final class KeyboardTextsTable { null, null, null, - "\u0125", - null, - null, - null, - "\u0175", null, null, null, null, - "\u0135" + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + "\u0135", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + "\u0175" }; private static final String[] TEXTS_DEFAULT = { @@ -5203,8 +5232,8 @@ public final class KeyboardTextsTable { EMPTY, "$", EMPTY, - "\u00e0,\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", "\u00f3,\u00f4,\u00f6,\u00f2,\u0153,\u00f8,\u014d,\u00f5", + "\u00e0,\u00e1,\u00e2,\u00e4,\u00e6,\u00e3,\u00e5,\u0101", "\u00fa,\u00fb,\u00fc,\u00f9,\u016b", "\u00e9,\u00e8,\u00ea,\u00eb,\u0113", EMPTY, @@ -5212,88 +5241,89 @@ public final class KeyboardTextsTable { "\u00ed,\u00ee,\u00ef,\u012b,\u00ec", "\u00e7", "\u00df", - "!text/double_laqm_raqm", "!text/single_laqm_raqm", - EMPTY, - "9", - "8", + "!text/double_laqm_raqm", + EMPTY, + EMPTY, + EMPTY, EMPTY, EMPTY, - "5", - "3", - "6", "1", - EMPTY, - EMPTY, - "4", - EMPTY, - EMPTY, - EMPTY, - EMPTY, - EMPTY, - EMPTY, - EMPTY, - "2", - "7", "0", EMPTY, + "4", + "6", + EMPTY, + EMPTY, + EMPTY, + EMPTY, + "3", + "7", + "8", + "2", + "9", + "5", + EMPTY, + EMPTY, EMPTY, EMPTY, - "?123", "!text/morekeys_tablet_punctuation", + "?123", EMPTY, - "\u00e4", - "!text/morekeys_punctuation", - "\u00f1", "\u00f6", EMPTY, - ",", - EMPTY, - ".", - "\u00f8", - EMPTY, EMPTY, EMPTY, "\u00e5", - "<", + "\u00e4", + "!text/morekeys_punctuation", + EMPTY, + EMPTY, + "\u00f1", + EMPTY, + "\u00f8", + ".", + ",", + "\u203a", + "(", + EMPTY, + ".", + ">", EMPTY, "\u2264", ")", - "(", - "\u00bb", - "]", - EMPTY, - EMPTY, + "<", "[", - "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&", ",", - EMPTY, - "\u2265", - "\u2020,\u2021,\u2605", + "]", "}", - "\u2039", - ".", - "\u00bf", - "{", - "\u00ab", - "\u00e6", - ">", - "\u203a", + "\u00bb", EMPTY, + "\u00e6", + "\u00bf", + "\u2020,\u2021,\u2605", + "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&", + "\u00ab", + EMPTY, + "\u2039", + "{", + "\u2265", + "!autoColumnOrder!3,!text/keyspecs_left_parenthesis_more_keys", + EMPTY, + EMPTY, + "\u2030", EMPTY, "\u266a,\u2665,\u2660,\u2666,\u2663", EMPTY, EMPTY, - EMPTY, - EMPTY, - EMPTY, "?", "!autoColumnOrder!3,!text/keyspecs_right_parenthesis_more_keys", - "\u2030", - "!autoColumnOrder!3,!text/keyspecs_left_parenthesis_more_keys", - "\u00f1", - ";", + EMPTY, + EMPTY, "%", + "\u00f1", + EMPTY, + ";", EMPTY, EMPTY, EMPTY, @@ -5301,186 +5331,186 @@ public final class KeyboardTextsTable { EMPTY, "!string/label_wait_key", EMPTY, - "!string/label_previous_key", - "!string/label_search_key", - EMPTY, EMPTY, "!string/label_done_key", EMPTY, + EMPTY, + "!string/label_previous_key", + EMPTY, + "!string/label_send_key", + "!string/label_next_key", + EMPTY, + EMPTY, + EMPTY, "!string/label_go_key", EMPTY, EMPTY, + "!string/label_search_key", "!string/label_pause_key", + EMPTY, + EMPTY, + EMPTY, "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&", EMPTY, - EMPTY, - "!string/label_next_key", - "!string/label_send_key", - EMPTY, - EMPTY, - EMPTY, - EMPTY, - EMPTY, - EMPTY, "y", EMPTY, - EMPTY, - EMPTY, - EMPTY, - "q", - "x", - EMPTY, - "\u00a1,\u203d", - "\u00b1", - "w", - "!fixedColumnOrder!3,!text/keyspec_left_single_angle_quote,!text/keyspec_less_than_equal,!text/keyspec_left_double_angle_quote", - "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_right_double_angle_quote", "\u00a2,\u00a3,\u20ac,\u00a5,\u20b1", EMPTY, EMPTY, + "q", + "\u00a1,\u203d", + EMPTY, + "!fixedColumnOrder!3,!text/keyspec_right_single_angle_quote,!text/keyspec_greater_than_equal,!text/keyspec_right_double_angle_quote", EMPTY, EMPTY, - "!hasLabels!,!text/label_next_key|!code/key_action_next", - "$", - "*", + "w", + "x", + "!fixedColumnOrder!3,!text/keyspec_left_single_angle_quote,!text/keyspec_less_than_equal,!text/keyspec_left_double_angle_quote", + "\u00b1", + "\u201c,\u201d,\u201e", + "!icon/action_undo|!code/action_undo", + "!icon/action_copy|!code/action_copy", EMPTY, EMPTY, - "!hasLabels!,.net,.org,.gov,.edu", - "\u2019,\u201a,\u2018", - "!", + "\\%", + "\u2070,\u2080,\u207f,\u2205", + "\u2077,\u2087,\u215e", + ";", EMPTY, + "$,\u00a2,\u20ac,\u00a3,\u00a5,\u20b1", "|", EMPTY, + "\u00b2,\u2082,\u2154", EMPTY, - "!icon/action_select_all|!code/action_select_all", + "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes", + "-,\u2013,\u2014,_", + "),],},>", EMPTY, EMPTY, EMPTY, + "=", + "(,[,{,<", + "2", + EMPTY, + EMPTY, + "\u2019,\u201a,\u2018", + EMPTY, + EMPTY, + EMPTY, + "*", + "<", + EMPTY, + "\u2018,\u201a,\u2019", + "8", + EMPTY, + "!", + "9", + ")", + EMPTY, + "]", + "\u00b9,\u2081,\u00bd,\u2153,\u00bc,\u215b", + "\u201d,\u201e,\u201c", + EMPTY, + "\uff0a\uff03", + "^", + "@", + EMPTY, + "!fixedColumnOrder!2,!hasLabels!,!text/keylabel_time_am,!text/keylabel_time_pm", + EMPTY, + "?,/", + "!icon/action_redo|!code/action_redo", + "6", + "!", + "7", + "}", + "!hasLabels!,!text/label_previous_key|!code/key_action_previous", + "+,=", + "!text/keyspec_right_single_angle_quote,!text/keyspec_left_single_angle_quote", EMPTY, "1", EMPTY, EMPTY, + "!text/keyspec_right_double_angle_quote,!text/keyspec_left_double_angle_quote", + "!hasLabels!,.net,.org,.gov,.edu", + "!text/keyspec_left_single_angle_quote,!text/keyspec_right_single_angle_quote", "{", - "= \\\\ <", - "(,[,{,<", + "0", + "!text/keyspec_greater_than,!text/keyspec_right_curly_bracket,!text/keyspec_right_square_bracket", + EMPTY, + EMPTY, "#", EMPTY, - "4", - EMPTY, - "2", - "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes", - EMPTY, - EMPTY, - "<", - "!icon/action_paste|!code/action_paste", - "\u00b9,\u2081,\u00bd,\u2153,\u00bc,\u215b", - "!fixedColumnOrder!4,!needsDividers!,!icon/action_switch_language|!code/action_switch_language,!icon/action_text_edit|!code/action_text_edit,!icon/action_clipboard_history|!code/action_clipboard_history,!icon/action_emoji|!code/action_emoji,!icon/previous_key|!code/key_action_previous,!icon/next_key|!code/key_action_next,!icon/action_undo|!code/action_undo,!icon/action_redo|!code/action_redo", - "%", - "!", - "?,/", - "-,\u2013,\u2014,_", - EMPTY, - "!text/keyspec_left_single_angle_quote,!text/keyspec_right_single_angle_quote", - "@", + "\"", + "\\%", + "123", + "\\\\", "\u201e,\u201c,\u201d", - "9", - ";", + "!fixedColumnOrder!4,!needsDividers!,!icon/action_switch_language|!code/action_switch_language,!icon/action_text_edit|!code/action_text_edit,!icon/action_clipboard_history|!code/action_clipboard_history,!icon/action_emoji|!code/action_emoji,!icon/previous_key|!code/key_action_previous,!icon/next_key|!code/key_action_next,!icon/action_undo|!code/action_undo,!icon/action_redo|!code/action_redo", EMPTY, - "0", - "\u2070,\u2080,\u207f,\u2205", + "!icon/shortcut_key|!code/key_shortcut", + "!icon/action_paste|!code/action_paste", + "\u2079,\u2089", + "\u2078,\u2088", EMPTY, - "]", - "),],},>", + "#", EMPTY, + "$,\u20ac,\u00a3,\u00a5,\u00a2", + EMPTY, + EMPTY, + EMPTY, + "!icon/action_settings|!code/action_settings", + "5", + EMPTY, + "= \\\\ <", + "[", + "'", + EMPTY, + "\u2076,\u2086", + EMPTY, + "4", + "\u2074,\u2084", + "!icon/action_cut|!code/action_cut", + "&", + "!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote", + EMPTY, + "%", + EMPTY, + "!text/keyspec_less_than,!text/keyspec_left_curly_bracket,!text/keyspec_left_square_bracket", + "!hasLabels!,!text/label_next_key|!code/key_action_next", + EMPTY, + EMPTY, + "3", + "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes", + "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes", + "!icon/action_select_all|!code/action_select_all", + "&,|", + ":", + "!icon/settings_key|!code/key_settings", + "$", "AM", - "\u2018,\u2019,\u201a", - "+,=", + EMPTY, + EMPTY, + "\u201a,\u2018,\u2019", + EMPTY, + "!fixedColumnOrder!4,!needsDividers!,!icon/action_switch_language|!code/action_switch_language,!icon/action_text_edit|!code/action_text_edit,!icon/action_clipboard_history|!code/action_clipboard_history,!icon/action_emoji|!code/action_emoji,!icon/action_undo|!code/action_undo,!icon/action_redo|!code/action_redo", + EMPTY, + "~ [ <", "PM", EMPTY, EMPTY, - "$,\u20ac,\u00a3,\u00a5,\u00a2", - "\u201a,\u2018,\u2019", - EMPTY, - "123", - EMPTY, - EMPTY, - EMPTY, - "'", - EMPTY, - "!text/keyspec_right_double_angle_quote,!text/keyspec_left_double_angle_quote", - EMPTY, - "~ [ <", - "=", - "!text/keyspec_greater_than,!text/keyspec_right_curly_bracket,!text/keyspec_right_square_bracket", - "\\%", - "!icon/shortcut_key|!code/key_shortcut", - "#", - EMPTY, - "&", - EMPTY, - "!fixedColumnOrder!4,!needsDividers!,!icon/action_switch_language|!code/action_switch_language,!icon/action_text_edit|!code/action_text_edit,!icon/action_clipboard_history|!code/action_clipboard_history,!icon/action_emoji|!code/action_emoji,!icon/action_undo|!code/action_undo,!icon/action_redo|!code/action_redo", - "\\\\", - "7", - "\u2075,\u2085,\u215d", - "!icon/action_undo|!code/action_undo", - EMPTY, - EMPTY, - ":", - "\u00b3,\u2083,\u00be,\u215c", - "!text/keyspec_right_single_angle_quote,!text/keyspec_left_single_angle_quote", - "\u2079,\u2089", - "\\%", - "!icon/action_cut|!code/action_cut", - EMPTY, - "6", - "$,\u00a2,\u20ac,\u00a3,\u00a5,\u20b1", - "\u2074,\u2084", - "!icon/settings_key|!code/key_settings", - "!icon/action_copy|!code/action_copy", - "!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote", - "3", - "^", - "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes", - ">", - "*", - "\u00b2,\u2082,\u2154", - ")", + "@", "(", + "\u00b3,\u2083,\u00be,\u215c", EMPTY, EMPTY, - "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes", - "&,|", - "!text/keyspec_less_than,!text/keyspec_left_curly_bracket,!text/keyspec_left_square_bracket", - "}", - EMPTY, - ".com", - "\"", - "\u201c,\u201d,\u201e", - EMPTY, - "!fixedColumnOrder!2,!hasLabels!,!text/keylabel_time_am,!text/keylabel_time_pm", - EMPTY, - "!hasLabels!,!text/label_previous_key|!code/key_action_previous", - "[", - EMPTY, - EMPTY, - EMPTY, + "\u2075,\u2085,\u215d", "\u201c,\u201e,\u201d", EMPTY, - "\u2076,\u2086", - "\u2077,\u2087,\u215e", - "\u201d,\u201e,\u201c", - "8", - "\u2018,\u201a,\u2019", - "@", - "5", + ".com", EMPTY, - EMPTY, - EMPTY, - "\u2078,\u2088", - EMPTY, - "!icon/action_redo|!code/action_redo", - EMPTY, - "\uff0a\uff03" + "\u2018,\u2019,\u201a", + "*", + ">" }; diff --git a/java/src/org/futo/inputmethod/v2keyboard/BaseKey.kt b/java/src/org/futo/inputmethod/v2keyboard/BaseKey.kt index 694c8e4a8..0f986d8f0 100644 --- a/java/src/org/futo/inputmethod/v2keyboard/BaseKey.kt +++ b/java/src/org/futo/inputmethod/v2keyboard/BaseKey.kt @@ -274,11 +274,15 @@ data class KeyAttributes( val shiftable: Boolean? = null, ) { fun getEffectiveAttributes(row: Row, keyboard: Keyboard): KeyAttributes { - val attrs = listOf(this, row.attributes, keyboard.attributes, DefaultKeyAttributes) + val attrs = if(row.isBottomRow) { + listOf(this, row.attributes, DefaultKeyAttributes) + } else { + listOf(this, row.attributes, keyboard.attributes, DefaultKeyAttributes) + } val effectiveWidth = resolve(attrs) { it.width } - val defaultMoreKeyMode = if(row.isLetterRow && effectiveWidth == KeyWidth.Regular) { + val defaultMoreKeyMode = if((row.isLetterRow || row.isBottomRow) && effectiveWidth == KeyWidth.Regular) { MoreKeyMode.All } else { MoreKeyMode.OnlyFromKeyspec @@ -373,6 +377,13 @@ data class BaseKey( */ val hint: String? = null, ) : AbstractKey { + override fun countsToKeyCoordinate(params: KeyboardParams, row: Row, keyboard: Keyboard): Boolean { + val attributes = attributes.getEffectiveAttributes(row, keyboard) + val moreKeyMode = attributes.moreKeyMode!! + + return moreKeyMode.autoNumFromCoord && moreKeyMode.autoSymFromCoord + } + override fun computeData(params: KeyboardParams, row: Row, keyboard: Keyboard, coordinate: KeyCoordinate): ComputedKeyData { val attributes = attributes.getEffectiveAttributes(row, keyboard) val shifted = (attributes.shiftable == true) && when(params.mId.mElementId) { @@ -401,18 +412,22 @@ data class BaseKey( val outputText = KeySpecParser.getOutputText(expandedSpec) val moreKeyMode = attributes.moreKeyMode!! - + val autoMoreKeys = listOfNotNull( if (moreKeyMode.autoFromKeyspec) { getDefaultMoreKeysForKey(code, relevantSpecShortcut) } else { null }, - if (moreKeyMode.autoNumFromCoord) { + if (moreKeyMode.autoNumFromCoord && row.isLetterRow) { getNumForCoordinate(coordinate) } else { null }, - if (moreKeyMode.autoSymFromCoord) { + if (moreKeyMode.autoSymFromCoord && row.isLetterRow) { getSymsForCoordinate(coordinate) + } else { null }, + + if (moreKeyMode.autoSymFromCoord) { + getSpecialFromRow(coordinate, row) } else { null } ).joinToString(",") @@ -492,13 +507,8 @@ data class CaseSelector( */ val symbolsShifted: Key = normal ) : AbstractKey { - override fun computeData( - params: KeyboardParams, - row: Row, - keyboard: Keyboard, - coordinate: KeyCoordinate - ): ComputedKeyData? = - when(params.mId.mElementId) { + private fun selectKeyFromElement(elementId: Int): Key = + when(elementId) { KeyboardId.ELEMENT_ALPHABET -> normal // KeyboardState.kt currently doesn't distinguish between these @@ -512,7 +522,18 @@ data class CaseSelector( KeyboardId.ELEMENT_SYMBOLS -> symbols KeyboardId.ELEMENT_SYMBOLS_SHIFTED -> symbolsShifted else -> normal - }.computeData(params, row, keyboard, coordinate) + } + + override fun countsToKeyCoordinate(params: KeyboardParams, row: Row, keyboard: Keyboard): Boolean = + selectKeyFromElement(params.mId.mElementId).countsToKeyCoordinate(params, row, keyboard) + + override fun computeData( + params: KeyboardParams, + row: Row, + keyboard: Keyboard, + coordinate: KeyCoordinate + ): ComputedKeyData? = + selectKeyFromElement(params.mId.mElementId).computeData(params, row, keyboard, coordinate) } typealias Key = @Serializable(with = KeyPathSerializer::class) AbstractKey @@ -601,6 +622,8 @@ enum class KeyVisualStyle { @Serializable @SerialName("gap") class GapKey(val attributes: KeyAttributes = KeyAttributes()) : AbstractKey { + override fun countsToKeyCoordinate(params: KeyboardParams, row: Row, keyboard: Keyboard): Boolean = false + override fun computeData( params: KeyboardParams, row: Row, diff --git a/java/src/org/futo/inputmethod/v2keyboard/KeyData.kt b/java/src/org/futo/inputmethod/v2keyboard/KeyData.kt index cd6796003..23334e6f3 100644 --- a/java/src/org/futo/inputmethod/v2keyboard/KeyData.kt +++ b/java/src/org/futo/inputmethod/v2keyboard/KeyData.kt @@ -8,11 +8,18 @@ import org.futo.inputmethod.keyboard.internal.MoreKeySpec data class KeyCoordinate( val regularRow: Int, val regularColumn: Int, - val element: KeyboardLayoutElement + val element: KeyboardLayoutElement, + val measurement: KeyCoordinateMeasurement +) + +data class KeyCoordinateMeasurement( + val totalRows: Int, + val numColumnsByRow: List ) @Serializable sealed interface AbstractKey { + fun countsToKeyCoordinate(params: KeyboardParams, row: Row, keyboard: Keyboard): Boolean fun computeData(params: KeyboardParams, row: Row, keyboard: Keyboard, coordinate: KeyCoordinate): ComputedKeyData? } diff --git a/java/src/org/futo/inputmethod/v2keyboard/KeySpecShortcuts.kt b/java/src/org/futo/inputmethod/v2keyboard/KeySpecShortcuts.kt index eaa12c0e6..02a7d2439 100644 --- a/java/src/org/futo/inputmethod/v2keyboard/KeySpecShortcuts.kt +++ b/java/src/org/futo/inputmethod/v2keyboard/KeySpecShortcuts.kt @@ -2,8 +2,8 @@ package org.futo.inputmethod.v2keyboard val KeySpecShortcuts = mapOf( "q" to listOf("keyspec_q"), - "," to listOf("keyspec_comma", "morekeys_comma"), - "." to listOf("keyspec_period", "morekeys_period"), + "," to listOf("keyspec_comma"), + "." to listOf("keyspec_period"), "1" to listOf("keyspec_symbols_1", "additional_morekeys_symbols_1", "morekeys_symbols_1"), "2" to listOf("keyspec_symbols_2", "additional_morekeys_symbols_2", "morekeys_symbols_2"), "3" to listOf("keyspec_symbols_3", "additional_morekeys_symbols_3", "morekeys_symbols_3"), @@ -30,6 +30,7 @@ val KeySpecShortcuts = mapOf( "]" to listOf("keyspec_right_square_bracket"), "{" to listOf("keyspec_left_curly_bracket"), "}" to listOf("keyspec_right_curly_bracket"), + "*" to listOf("*", "morekeys_star"), // U+2260: "≠" NOT EQUAL TO // U+2248: "≈" ALMOST EQUAL TO diff --git a/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt b/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt index 4ff4b0460..8e455f6f9 100644 --- a/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt +++ b/java/src/org/futo/inputmethod/v2keyboard/LayoutEngine.kt @@ -361,11 +361,32 @@ data class LayoutEngine( }.toFloat() } + // Measure key coordinate + val numColumnsPerRow = mutableListOf() + rows.forEach { row -> + val numColumns = row.keys.sumOf { if(it.countsToKeyCoordinate(params, row, keyboard)) (1 as Int) else 0 } + if(numColumns > 0) { + numColumnsPerRow.add(numColumns) + } + } + + val keyCoordinateMeasurement = KeyCoordinateMeasurement( + totalRows = numColumnsPerRow.size, + numColumnsByRow = numColumnsPerRow.toList() + ) + var regularRow = 0 val computedRowWithoutWidths = rows.map { row -> var regularColumn = 0 row.keys.mapNotNull { key -> - key.computeData(params, row, keyboard, KeyCoordinate(regularRow, regularColumn, layoutParams.element))?.let { data -> + val coordinate = KeyCoordinate( + regularRow, + regularColumn, + layoutParams.element, + keyCoordinateMeasurement + ) + + key.computeData(params, row, keyboard, coordinate)?.let { data -> if(data.countsToKeyCoordinate) { regularColumn += 1 } @@ -564,8 +585,6 @@ data class LayoutEngine( } } - - params.mIconsSet.loadIcons(null, provider!!) params.mThemeId = 3 params.mTextsSet.setLocale(params.mId.locale, context) diff --git a/java/src/org/futo/inputmethod/v2keyboard/MoreKeysMapping.kt b/java/src/org/futo/inputmethod/v2keyboard/MoreKeysMapping.kt index 8272b885a..6b9430c01 100644 --- a/java/src/org/futo/inputmethod/v2keyboard/MoreKeysMapping.kt +++ b/java/src/org/futo/inputmethod/v2keyboard/MoreKeysMapping.kt @@ -44,4 +44,16 @@ fun getNumForCoordinate(keyCoordinate: KeyCoordinate): String { } } return "" +} + +fun getSpecialFromRow(keyCoordinate: KeyCoordinate, row: Row): String { + if(row.isBottomRow) { + val numCols = keyCoordinate.measurement.numColumnsByRow.getOrNull(keyCoordinate.regularRow) ?: -10 + if(keyCoordinate.regularColumn == 0) { + return "!text/morekeys_bottomrow_comma" + }else if(keyCoordinate.regularColumn == numCols - 1) { + return "!text/morekeys_period" + } + } + return "" } \ No newline at end of file diff --git a/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt b/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt index ad4665a38..a95851393 100644 --- a/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt +++ b/java/src/org/futo/inputmethod/v2keyboard/TemplateKeys.kt @@ -104,6 +104,7 @@ val TemplateAlt2Key = BaseKey( data class EnterKey( val attributes: KeyAttributes = KeyAttributes(width = KeyWidth.FunctionalKey) ) : AbstractKey { + override fun countsToKeyCoordinate(params: KeyboardParams, row: Row, keyboard: Keyboard): Boolean = false override fun computeData( params: KeyboardParams, row: Row, @@ -169,6 +170,7 @@ data class EnterKey( data class ActionKey( val attributes: KeyAttributes = KeyAttributes() ) : AbstractKey { + override fun countsToKeyCoordinate(params: KeyboardParams, row: Row, keyboard: Keyboard): Boolean = false override fun computeData( params: KeyboardParams, row: Row, @@ -217,21 +219,27 @@ data class ContextualKey( KeyboardId.MODE_TIME to BaseKey(spec = ":", attributes = attributes), ) + private fun selectKey(params: KeyboardParams, keyboard: Keyboard): Key? { + if(keyboard.useZWNJKey) { + return TemplateZWNJKey + } + + val key = keys[params.mId.mMode] ?: fallbackKey + + return key + } + + override fun countsToKeyCoordinate(params: KeyboardParams, row: Row, keyboard: Keyboard): Boolean { + return selectKey(params, keyboard)?.countsToKeyCoordinate(params, row, keyboard) ?: false + } + override fun computeData( params: KeyboardParams, row: Row, keyboard: Keyboard, coordinate: KeyCoordinate ): ComputedKeyData? { - if(keyboard.useZWNJKey) { - return TemplateZWNJKey.computeData(params, row, keyboard, coordinate) - } - - val key = keys[params.mId.mMode] ?: fallbackKey - - return key?.computeData( - params, row, keyboard, coordinate - ) + return selectKey(params, keyboard)?.computeData(params, row, keyboard, coordinate) } } diff --git a/tools/make-keyboard-text-py/locales/DEFAULT.json b/tools/make-keyboard-text-py/locales/DEFAULT.json index 69c03ad62..fed7eeb50 100644 --- a/tools/make-keyboard-text-py/locales/DEFAULT.json +++ b/tools/make-keyboard-text-py/locales/DEFAULT.json @@ -264,6 +264,9 @@ "tablet_period": [ "!text/morekeys_tablet_punctuation" ], + "bottomrow_comma": [ + "!icon/action_settings|!code/action_settings" + ], "exclamation": [ "¡", "‽"