From 7e98ecfd41f36df9056c38bdaddc48855cac4fc5 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Mon, 30 Mar 2020 06:24:38 +0700 Subject: [PATCH] Fix double letters on MC 1.9 and above --- .../net/kdt/pojavlaunch/AndroidLWJGLKeycode.java | 15 ++++++--------- .../net/kdt/pojavlaunch/MCLauncherActivity.java | 2 +- .../java/net/kdt/pojavlaunch/MainActivity.java | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java index 99f96cfb3..6fca0b1ff 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java +++ b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java @@ -7,7 +7,7 @@ import org.lwjgl.input.*; import org.lwjgl.opengl.*; public class AndroidLWJGLKeycode { - // public static boolean isSendChar; + public static boolean isBackspaceAfterChar; private static final Map androidToLwjglMap; static { androidToLwjglMap = new ArrayMap(); @@ -119,15 +119,8 @@ public class AndroidLWJGLKeycode { public static void execKey(MainActivity mainActivity, KeyEvent keyEvent, int i, boolean isDown) { try { - // Old method works without dead chars: - /* - if (isDown) { - mainActivity.sendKeyPress((char) keyEvent.getUnicodeChar()); - } - */ System.out.println("Sending key as char: " + ((char) keyEvent.getUnicodeChar())); - // if (isSendChar) - mainActivity.sendKeyPress(0, (char) keyEvent.getUnicodeChar(), isDown); + mainActivity.sendKeyPress(0, (char) keyEvent.getUnicodeChar(), isDown); } catch (Throwable th) { th.printStackTrace(); } @@ -137,6 +130,10 @@ public class AndroidLWJGLKeycode { mainActivity.sendKeyPress(perKey.getValue(), isDown); } } + + if (isBackspaceAfterChar) { + mainActivity.sendKeyPress(Keyboard.KEY_BACK, isDown); + } } } diff --git a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java index eb7bca689..47b7b9122 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java @@ -744,7 +744,7 @@ public class MCLauncherActivity extends AppCompatActivity jvmArgs.add("-Xmx1G"); */ Intent mainIntent = new Intent(MCLauncherActivity.this, MainActivity.class); - mainIntent.addFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT); + // mainIntent.addFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT); mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); mainIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); if (PojavPreferenceActivity.PREF_FREEFORM) { diff --git a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java index 54c0e1868..dda89c5a8 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java @@ -258,7 +258,7 @@ public class MainActivity extends Activity implements OnTouchListener this.drawerLayout.closeDrawers(); - // AndroidLWJGLKeycode.isSendChar = mVersionInfo.minimumLauncherVersion < 18; + AndroidLWJGLKeycode.isBackspaceAfterChar = mVersionInfo.minimumLauncherVersion >= 18; placeMouseAt(AndroidDisplay.windowWidth / 2, AndroidDisplay.windowHeight / 2); new Thread(new Runnable(){