diff options
| author | Jules Aguillon | 2022-04-16 23:36:54 +0200 |
|---|---|---|
| committer | Jules Aguillon | 2022-04-16 23:36:54 +0200 |
| commit | 9a8c4f291da8babf3560e509554c78e1991cb22c (patch) | |
| tree | 8051ab1abe74a7ce4dd6a5b78a1155871b3b6bed | |
| parent | 14cc318a0eb1f7ccd7695ed5ad6ef27f2428ffe9 (diff) | |
| download | unexpected-keyboard-9a8c4f291da8babf3560e509554c78e1991cb22c.tar.gz unexpected-keyboard-9a8c4f291da8babf3560e509554c78e1991cb22c.zip | |
Fix compatibility with Android 6
Android 6 uses Java 1.7, the only incompatible feature in use was
lambdas.
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Config.java | 56 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2.java | 11 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/KeyboardData.java | 5 |
4 files changed, 42 insertions, 32 deletions
@@ -3,7 +3,7 @@ PACKAGE_NAME = juloo.keyboard2 ANDROID_PLATFORM_VERSION = android-30 -JAVA_VERSION = 1.8 +JAVA_VERSION = 1.7 SRC_DIR = srcs RES_DIR = res diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java index 47fb62a..4022394 100644 --- a/srcs/juloo.keyboard2/Config.java +++ b/srcs/juloo.keyboard2/Config.java @@ -149,34 +149,38 @@ final class Config public KeyboardData modify_layout(KeyboardData kw) { // Update the name to avoid caching in KeyModifier - KeyValue action_key = (actionLabel == null) ? null : + final KeyValue action_key = (actionLabel == null) ? null : KeyValue.getKeyByName("action").withNameAndSymbol(actionLabel, actionLabel); - return kw.replaceKeys(key -> { - if (key == null) - return null; - switch (key.eventCode) + return kw.replaceKeys(new KeyboardData.MapKeys() { + public KeyValue apply(KeyValue key) { - case KeyValue.EVENT_CHANGE_METHOD: - return shouldOfferSwitchingToNextInputMethod ? key : null; - case KeyEvent.KEYCODE_ENTER: - return (swapEnterActionKey && action_key != null) ? action_key : key; - case KeyValue.EVENT_ACTION: - return (swapEnterActionKey && action_key != null) ? - KeyValue.getKeyByName("enter") : action_key; - case KeyValue.EVENT_SWITCH_PROGRAMMING: - return shouldOfferSwitchingToProgramming ? key : null; - default: - if (key.flags != 0) - { - if ((key.flags & KeyValue.FLAG_LOCALIZED) != 0 && - extra_keys != null && - !extra_keys.contains(key.name)) - return null; - if ((key.flags & lockable_modifiers) != 0) - return key.withFlags(key.flags | KeyValue.FLAG_LOCK); - } - return key; - }}); + if (key == null) + return null; + switch (key.eventCode) + { + case KeyValue.EVENT_CHANGE_METHOD: + return shouldOfferSwitchingToNextInputMethod ? key : null; + case KeyEvent.KEYCODE_ENTER: + return (swapEnterActionKey && action_key != null) ? action_key : key; + case KeyValue.EVENT_ACTION: + return (swapEnterActionKey && action_key != null) ? + KeyValue.getKeyByName("enter") : action_key; + case KeyValue.EVENT_SWITCH_PROGRAMMING: + return shouldOfferSwitchingToProgramming ? key : null; + default: + if (key.flags != 0) + { + if ((key.flags & KeyValue.FLAG_LOCALIZED) != 0 && + extra_keys != null && + !extra_keys.contains(key.name)) + return null; + if ((key.flags & lockable_modifiers) != 0) + return key.withFlags(key.flags | KeyValue.FLAG_LOCK); + } + return key; + } + } + }); } private float getDipPref(DisplayMetrics dm, SharedPreferences prefs, String pref_name, float def) diff --git a/srcs/juloo.keyboard2/Keyboard2.java b/srcs/juloo.keyboard2/Keyboard2.java index abea412..5b7935e 100644 --- a/srcs/juloo.keyboard2/Keyboard2.java +++ b/srcs/juloo.keyboard2/Keyboard2.java @@ -294,10 +294,13 @@ public class Keyboard2 extends InputMethodService if (_config.programming_layout == -1) return; KeyboardData layout = - getLayout(_config.programming_layout).replaceKeys(key -> { - if (key != null && key.eventCode == KeyValue.EVENT_SWITCH_PROGRAMMING) - return KeyValue.getKeyByName("switch_text"); - return key; + getLayout(_config.programming_layout).replaceKeys(new KeyboardData.MapKeys() { + public KeyValue apply(KeyValue key) + { + if (key != null && key.eventCode == KeyValue.EVENT_SWITCH_PROGRAMMING) + return KeyValue.getKeyByName("switch_text"); + return key; + } }); _keyboardView.setKeyboard(layout); } diff --git a/srcs/juloo.keyboard2/KeyboardData.java b/srcs/juloo.keyboard2/KeyboardData.java index f0b1d1b..78c1d3f 100644 --- a/srcs/juloo.keyboard2/KeyboardData.java +++ b/srcs/juloo.keyboard2/KeyboardData.java @@ -208,7 +208,10 @@ class KeyboardData } } - public static abstract interface MapKeys extends Function<KeyValue, KeyValue> { } + // Not using Function<KeyValue, KeyValue> to keep compatibility with Android 6. + public static abstract interface MapKeys { + public KeyValue apply(KeyValue kv); + } /** Parsing utils */ |
