diff --git a/res/xml/azerty.xml b/res/xml/azerty.xml index fb59638..5e130cf 100644 --- a/res/xml/azerty.xml +++ b/res/xml/azerty.xml @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/res/xml/qwerty.xml b/res/xml/qwerty.xml index c61c086..3e09088 100644 --- a/res/xml/qwerty.xml +++ b/res/xml/qwerty.xml @@ -21,7 +21,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index 969cc88..ad129e8 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -63,25 +63,26 @@ class KeyModifier { if ((flags & KeyValue.FLAG_FN) == 0) return null; - switch (k.char_) + String name; + switch (k.name) { - case '1': return makeFnKey("F1", KeyEvent.KEYCODE_F1); - case '2': return makeFnKey("F2", KeyEvent.KEYCODE_F2); - case '3': return makeFnKey("F3", KeyEvent.KEYCODE_F3); - case '4': return makeFnKey("F4", KeyEvent.KEYCODE_F4); - case '5': return makeFnKey("F5", KeyEvent.KEYCODE_F5); - case '6': return makeFnKey("F6", KeyEvent.KEYCODE_F6); - case '7': return makeFnKey("F7", KeyEvent.KEYCODE_F7); - case '8': return makeFnKey("F8", KeyEvent.KEYCODE_F8); - case '9': return makeFnKey("F9", KeyEvent.KEYCODE_F9); - case '0': return makeFnKey("F10", KeyEvent.KEYCODE_F10); + case "1": name = "f1"; break; + case "2": name = "f2"; break; + case "3": name = "f3"; break; + case "4": name = "f4"; break; + case "5": name = "f5"; break; + case "6": name = "f6"; break; + case "7": name = "f7"; break; + case "8": name = "f8"; break; + case "9": name = "f9"; break; + case "0": name = "f10"; break; + case "up": name = "page_up"; break; + case "down": name = "page_down"; break; + case "left": name = "home"; break; + case "right": name = "end"; break; default: return null; } - } - - private static KeyValue makeFnKey(String symbol, int eventCode) - { - return new KeyValue(symbol, symbol, KeyValue.CHAR_NONE, eventCode, 0); + return KeyValue.getKeyByName(name); } /* Lookup the cache entry for a key. Create it needed. */ diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index a62ec07..94d65ec 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -86,6 +86,16 @@ class KeyValue addKey(name, symbol, CHAR_NONE, event, FLAG_NOREPEAT); } + private static void addEventKey(String name, String symbol, int event) + { + addEventKey(name, symbol, event, 0); + } + + private static void addEventKey(String name, String symbol, int event, int flags) + { + addKey(name, symbol, CHAR_NONE, event, flags); + } + static { String chars = "<>&\"'(-_)=°+" @@ -149,19 +159,29 @@ class KeyValue addSpecialKey("switch_back_emoji", "ABC", EVENT_SWITCH_BACK_EMOJI); addSpecialKey("change_method", "⊞", EVENT_CHANGE_METHOD); - addKey("esc", "Esc", CHAR_NONE, KeyEvent.KEYCODE_ESCAPE, 0); - addKey("enter", "\uE800", CHAR_NONE, KeyEvent.KEYCODE_ENTER, FLAG_KEY_FONT); - addKey("up", "\uE80B", CHAR_NONE, KeyEvent.KEYCODE_DPAD_UP, FLAG_KEY_FONT); - addKey("right", "\uE80C", CHAR_NONE, KeyEvent.KEYCODE_DPAD_RIGHT, FLAG_KEY_FONT); - addKey("down", "\uE809", CHAR_NONE, KeyEvent.KEYCODE_DPAD_DOWN, FLAG_KEY_FONT); - addKey("left", "\uE80A", CHAR_NONE, KeyEvent.KEYCODE_DPAD_LEFT, FLAG_KEY_FONT); - addKey("page_up", "⇞", CHAR_NONE, KeyEvent.KEYCODE_PAGE_DOWN, 0); - addKey("page_down", "⇟", CHAR_NONE, KeyEvent.KEYCODE_PAGE_UP, 0); - addKey("home", "↖", CHAR_NONE, KeyEvent.KEYCODE_HOME, 0); - addKey("end", "↗", CHAR_NONE, KeyEvent.KEYCODE_MOVE_END, 0); - addKey("backspace", "⌫", CHAR_NONE, KeyEvent.KEYCODE_DEL, 0); - addKey("delete", "⌦", CHAR_NONE, KeyEvent.KEYCODE_FORWARD_DEL, 0); - addKey("insert", "Ins", CHAR_NONE, KeyEvent.KEYCODE_INSERT, 0); + addEventKey("esc", "Esc", KeyEvent.KEYCODE_ESCAPE); + addEventKey("enter", "\uE800", KeyEvent.KEYCODE_ENTER, FLAG_KEY_FONT); + addEventKey("up", "\uE80B", KeyEvent.KEYCODE_DPAD_UP, FLAG_KEY_FONT); + addEventKey("right", "\uE80C", KeyEvent.KEYCODE_DPAD_RIGHT, FLAG_KEY_FONT); + addEventKey("down", "\uE809", KeyEvent.KEYCODE_DPAD_DOWN, FLAG_KEY_FONT); + addEventKey("left", "\uE80A", KeyEvent.KEYCODE_DPAD_LEFT, FLAG_KEY_FONT); + addEventKey("page_up", "⇞", KeyEvent.KEYCODE_PAGE_DOWN); + addEventKey("page_down", "⇟", KeyEvent.KEYCODE_PAGE_UP); + addEventKey("home", "↖", KeyEvent.KEYCODE_HOME); + addEventKey("end", "↗", KeyEvent.KEYCODE_MOVE_END); + addEventKey("backspace", "⌫", KeyEvent.KEYCODE_DEL); + addEventKey("delete", "⌦", KeyEvent.KEYCODE_FORWARD_DEL); + addEventKey("insert", "Ins", KeyEvent.KEYCODE_INSERT); + addEventKey("f1", "F1", KeyEvent.KEYCODE_F1); + addEventKey("f2", "F2", KeyEvent.KEYCODE_F2); + addEventKey("f3", "F3", KeyEvent.KEYCODE_F3); + addEventKey("f4", "F4", KeyEvent.KEYCODE_F4); + addEventKey("f5", "F5", KeyEvent.KEYCODE_F5); + addEventKey("f6", "F6", KeyEvent.KEYCODE_F6); + addEventKey("f7", "F7", KeyEvent.KEYCODE_F7); + addEventKey("f8", "F8", KeyEvent.KEYCODE_F8); + addEventKey("f9", "F9", KeyEvent.KEYCODE_F9); + addEventKey("f10", "F10", KeyEvent.KEYCODE_F10); addKey("tab", "↹", '\t', KeyEvent.KEYCODE_TAB, 0); addKey("space", " ", ' ', KeyEvent.KEYCODE_SPACE, 0);