From e93fa93042ff8eec199ac6ada45f7aa24984aae8 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Mon, 19 Oct 2020 21:24:45 +1100 Subject: [PATCH] Android: Fix backspace in numeric keyboard randomly crashing --- .../src/main/java/com/classicube/MainActivity.java | 11 ++++++++++- 1 file changed, 10 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 7dfc29a4b..d8139a4e7 100644 --- a/android/app/src/main/java/com/classicube/MainActivity.java +++ b/android/app/src/main/java/com/classicube/MainActivity.java @@ -22,6 +22,7 @@ import android.net.Uri; import android.os.Bundle; import android.text.Editable; import android.text.InputType; +import android.text.Selection; import android.text.SpannableStringBuilder; import android.util.DisplayMetrics; import android.util.Log; @@ -392,10 +393,18 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 { InputConnection ic = new BaseInputConnection(this, true) { SpannableStringBuilder kbText = new SpannableStringBuilder(MainActivity.this.keyboardText); + boolean inited; void updateText() { MainActivity.this.pushCmd(CMD_KEY_TEXT, kbText.toString()); } @Override - public Editable getEditable() { return kbText; } + public Editable getEditable() { + if (!inited) { + // otherwise random crashes later with backspacing + Selection.setSelection(kbText, 0); + inited = true; + } + return kbText; + } @Override public boolean setComposingText(CharSequence text, int newCursorPosition) {