abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2022-12-30 15:15:58 +0100
committerJules Aguillon2022-12-30 15:29:18 +0100
commite333eb06fd9f95ad1234c2bf0c50ce229b0a0e03 (patch)
tree39313ab4ed726142d0ca6c48cb8a560840a76654
parent764cd882d2980bc734cf9ed9f0b1d74e552474aa (diff)
downloadunexpected-keyboard-e333eb06fd9f95ad1234c2bf0c50ce229b0a0e03.tar.gz
unexpected-keyboard-e333eb06fd9f95ad1234c2bf0c50ce229b0a0e03.zip
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.
-rw-r--r--res/xml/settings.xml7
-rw-r--r--srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java9
-rw-r--r--srcs/juloo.keyboard2/KeyEventHandler.java27
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java17
4 files changed, 51 insertions, 9 deletions
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index 5fc898b..9ddebb9 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -32,6 +32,13 @@
<juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="23"/>
<juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="24"/>
<juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="25"/>
+ <juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="26"/>
+ <juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="27"/>
+ <juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="28"/>
+ <juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="29"/>
+ <juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="30"/>
+ <juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="31"/>
+ <juloo.keyboard2.ExtraKeyCheckBoxPreference app:index="32"/>
</PreferenceScreen>
<ListPreference android:key="numpad_layout" android:title="@string/pref_numpad_layout" android:summary="%s" android:defaultValue="high_first" android:entries="@array/pref_numpad_layout_entries" android:entryValues="@array/pref_numpad_layout_values"/>
</PreferenceCategory>
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", "<paste>", 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<String, String> keys_descr = new HashMap<String, String>();