From 34e4bf360562ed2581c363ac02a42c409ac2b038 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 5 Nov 2020 17:46:18 +1100 Subject: [PATCH] Android: Fix trying to backspace or insert numbers in numerical fields crashing the game on old android versions (Thanks 123DMWM) --- android/app/src/main/java/com/classicube/MainActivity.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/com/classicube/MainActivity.java b/android/app/src/main/java/com/classicube/MainActivity.java index c86bdc631..5d5f67948 100644 --- a/android/app/src/main/java/com/classicube/MainActivity.java +++ b/android/app/src/main/java/com/classicube/MainActivity.java @@ -447,9 +447,12 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 { public boolean sendKeyEvent(KeyEvent ev) { if (ev.getAction() != KeyEvent.ACTION_DOWN) return super.sendKeyEvent(ev); int code = ev.getKeyCode(); - int start = Selection.getSelectionStart(kbText); int uni = ev.getUnicodeChar(); + // start is -1 sometimes, and trying to insert/delete there crashes + int start = Selection.getSelectionStart(kbText); + if (start == -1) start = kbText.toString().length(); + if (code == KeyEvent.KEYCODE_ENTER) { // enter maps to \n but that should not be intercepted } else if (code == KeyEvent.KEYCODE_DEL) {