diff --git a/app_pojavlauncher/release/app_pojavlauncher-release.aab b/app_pojavlauncher/release/app_pojavlauncher-release.aab index c1c08e27d..53b86a422 100644 Binary files a/app_pojavlauncher/release/app_pojavlauncher-release.aab and b/app_pojavlauncher/release/app_pojavlauncher-release.aab differ diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java index ca64eba2c..89fd6f93f 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java @@ -1085,13 +1085,24 @@ public class BaseMainActivity extends LoggableActivity { public static void sendKeyPress(int keyCode, char keyChar, int scancode, int modifiers, boolean status) { CallbackBridge.sendKeycode(keyCode, keyChar, scancode, modifiers, status); } - + public static boolean doesObjectContainField(Class objectClass, String fieldName) { + for (Field field : objectClass.getFields()) { + if (field.getName().equals(fieldName)) { + return true; + } + } + return false; + } public void sendKeyPress(char keyChar) { - try { - int keyCode = KeyEvent.class.getField("KEYCODE_" + Character.toUpperCase(keyChar)).getInt(null); - sendKeyPress(AndroidLWJGLKeycode.androidToLwjglMap.get(keyCode), keyChar, 0, CallbackBridge.getCurrentMods(), true); - sendKeyPress(AndroidLWJGLKeycode.androidToLwjglMap.get(keyCode), keyChar, 0, CallbackBridge.getCurrentMods(), false); - } catch (IllegalAccessException | NoSuchFieldException e) { + if(doesObjectContainField(KeyEvent.class,"KEYCODE_" + Character.toUpperCase(keyChar))) { + try { + int keyCode = KeyEvent.class.getField("KEYCODE_" + Character.toUpperCase(keyChar)).getInt(null); + sendKeyPress(AndroidLWJGLKeycode.androidToLwjglMap.get(keyCode), keyChar, 0, CallbackBridge.getCurrentMods(), true); + sendKeyPress(AndroidLWJGLKeycode.androidToLwjglMap.get(keyCode), keyChar, 0, CallbackBridge.getCurrentMods(), false); + } catch (IllegalAccessException | NoSuchFieldException e) { + + } + }else{ sendKeyPress(0, keyChar, 0, CallbackBridge.getCurrentMods(), true); sendKeyPress(0, keyChar, 0, CallbackBridge.getCurrentMods(), false); } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java index f592bc519..b6b0e74d2 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java @@ -60,9 +60,7 @@ class MinecraftInputConnection extends BaseInputConnection { } public boolean commitText(CharSequence text, int newCursorPosition) { - Log.d("EnhancedTextInput","Text committed: "+text); - parent.sendKeyPress(text.charAt(0 - )); + parent.sendKeyPress(text.charAt(0)); return true; } diff --git a/app_pojavlauncher/src/main/java/org/lwjgl/glfw/CallbackBridge.java b/app_pojavlauncher/src/main/java/org/lwjgl/glfw/CallbackBridge.java index a846b48a9..590fcbb40 100644 --- a/app_pojavlauncher/src/main/java/org/lwjgl/glfw/CallbackBridge.java +++ b/app_pojavlauncher/src/main/java/org/lwjgl/glfw/CallbackBridge.java @@ -55,7 +55,7 @@ public class CallbackBridge { */ //nativeSendKeycode(keycode, keychar, scancode, isDown ? 1 : 0, modifiers); - nativeSendKey(keycode,scancode,isDown ? 1 : 0, modifiers); + if(keycode != 0 || !isDown) nativeSendKey(keycode,scancode,isDown ? 1 : 0, modifiers); if(isDown && keychar != '\u0000') { nativeSendCharMods(keychar,modifiers); nativeSendChar(keychar);