From 8a74b8aa90c8f0a23eba1949da2aa3431f430a57 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Wed, 6 Nov 2019 13:11:45 +0700 Subject: [PATCH] fix(android): Skip if there's no left context to delete --- .../app/src/main/java/com/tavultesoft/kmea/KMManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java index a9a27f8728..b088670935 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java @@ -318,12 +318,17 @@ public final class KMManager { private static void performLeftDeletions(InputConnection ic, int dn) { int originalBufferLength = dn*2 + 16; // characters CharSequence charsBackup = ic.getTextBeforeCursor(originalBufferLength, 0); + int lastIndex = charsBackup.length()-1; + + // Exit if there's no context to delete + if (lastIndex < 0) { + return; + } // Count the number of surrogate pairs in this buffer, backwards from the end // until we reach dn codepoints. // Unfortunately, can't foreach charSequence in reverse int numPairs = 0; - int lastIndex = charsBackup.length()-1; int counter=0; try { do {