From 9f22e53a3ba8f064e69e3a84c371a7f29ee9e05c Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sun, 29 Sep 2024 21:58:22 +0200 Subject: Add complex keys (#774) This allows to add new kinds of keys that need more data without making KeyValue's footprint bigger for common keys. This changes the [_symbol] field into [_payload], which holds the same as the previous field for more common keys but can hold bigger objects for keys of the new "Complex" kind. This also adds a complex key: String keys with a symbol different than the outputted string. Unit tests are added as the Java language is not helpful in making robust code.--- srcs/juloo.keyboard2/KeyEventHandler.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'srcs/juloo.keyboard2/KeyEventHandler.java') diff --git a/srcs/juloo.keyboard2/KeyEventHandler.java b/srcs/juloo.keyboard2/KeyEventHandler.java index 087ac5b..c54ffa5 100644 --- a/srcs/juloo.keyboard2/KeyEventHandler.java +++ b/srcs/juloo.keyboard2/KeyEventHandler.java @@ -97,6 +97,7 @@ public final class KeyEventHandler _recv.set_compose_pending(true); break; case Cursor_move: move_cursor(key.getCursorMove()); break; + case Complex: send_complex_key(key.getComplexKind(), key.getComplex()); break; } update_meta_state(old_mods); } @@ -215,6 +216,16 @@ public final class KeyEventHandler conn.performContextMenuAction(id); } + void send_complex_key(KeyValue.Complex.Kind kind, KeyValue.Complex val) + { + switch (kind) + { + case StringWithSymbol: + send_text(((KeyValue.Complex.StringWithSymbol)val).str); + break; + } + } + @SuppressLint("InlinedApi") void handle_editing_key(KeyValue.Editing ev) { -- cgit v1.2.3