From e333eb06fd9f95ad1234c2bf0c50ce229b0a0e03 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Fri, 30 Dec 2022 15:15:58 +0100 Subject: Add keys for every context menu actions The most requested keys are undo and redo. Unfortunatly redo doesn't work reliably. The other context menu actions like share, assist and autofill are added even thought they are rarely useful or implemented. --- .../ExtraKeyCheckBoxPreference.java | 9 +++++++- srcs/juloo.keyboard2/KeyEventHandler.java | 27 ++++++++++++++++------ srcs/juloo.keyboard2/KeyValue.java | 17 +++++++++++++- 3 files changed, 44 insertions(+), 9 deletions(-) (limited to 'srcs') diff --git a/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java b/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java index f8e0d1e..f013e51 100644 --- a/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java +++ b/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java @@ -39,7 +39,14 @@ public class ExtraKeyCheckBoxPreference extends CheckBoxPreference "copy", "paste", "cut", - "select_all", + "selectAll", + "shareText", + "pasteAsPlainText", + "undo", + "redo", + "replaceText", + "textAssist", + "autofill", }; public static boolean default_checked(String name) diff --git a/srcs/juloo.keyboard2/KeyEventHandler.java b/srcs/juloo.keyboard2/KeyEventHandler.java index 9be23c5..d6afb46 100644 --- a/srcs/juloo.keyboard2/KeyEventHandler.java +++ b/srcs/juloo.keyboard2/KeyEventHandler.java @@ -66,17 +66,30 @@ class KeyEventHandler implements Config.IKeyEventHandler case Modifier: break; case Editing: - switch (key.getEditing()) - { - case COPY: send_context_menu_action(android.R.id.copy); break; - case PASTE: send_context_menu_action(android.R.id.paste); break; - case CUT: send_context_menu_action(android.R.id.cut); break; - case SELECT_ALL: send_context_menu_action(android.R.id.selectAll); break; - } + send_context_menu_action(action_of_editing_key(key.getEditing())); break; } } + static int action_of_editing_key(KeyValue.Editing e) + { + switch (e) + { + case COPY: return android.R.id.copy; + case PASTE: return android.R.id.paste; + case CUT: return android.R.id.cut; + case SELECT_ALL: return android.R.id.selectAll; + case SHARE: return android.R.id.shareText; + case PASTE_PLAIN: return android.R.id.pasteAsPlainText; + case UNDO: return android.R.id.undo; + case REDO: return android.R.id.redo; + case REPLACE: return android.R.id.replaceText; + case ASSIST: return android.R.id.textAssist; + case AUTOFILL: return android.R.id.autofill; + default: return -1; // sad + } + } + // private void handleDelKey(int before, int after) // { // CharSequence selection = getCurrentInputConnection().getSelectedText(0); diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 7215736..b7a0593 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -58,6 +58,14 @@ final class KeyValue PASTE, CUT, SELECT_ALL, + PASTE_PLAIN, + UNDO, + REDO, + // Android context menu actions + REPLACE, + SHARE, + ASSIST, + AUTOFILL, } public static enum Kind @@ -356,7 +364,14 @@ final class KeyValue addEditingKey("copy", "copy", Editing.COPY); addEditingKey("paste", "paste", Editing.PASTE); addEditingKey("cut", "cut", Editing.CUT); - addEditingKey("select_all", "s. all", Editing.SELECT_ALL); + addEditingKey("selectAll", "s. all", Editing.SELECT_ALL); + addEditingKey("shareText", "share", Editing.SHARE); + addEditingKey("pasteAsPlainText", "", Editing.PASTE_PLAIN); + addEditingKey("undo", "undo", Editing.UNDO); + addEditingKey("redo", "redo", Editing.REDO); + addEditingKey("replaceText", "repl.", Editing.REPLACE); + addEditingKey("textAssist", "assist", Editing.ASSIST); + addEditingKey("autofill", "auto.", Editing.AUTOFILL); } static final HashMap keys_descr = new HashMap(); -- cgit v1.2.3