From 091ed93b24ef4ab148f7269eb6ec2d49a9908aaf Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Mon, 25 Nov 2019 13:52:49 +0700 Subject: [PATCH] fix(android): Fix length used in context before restoring characters This fixes a test scenario involving 6 emojis (SMP characters) and the p^p^ context. A backspace was removing an entire p^ grapheme. This fixes the contents of `newContext` that is used to determine the character sequence to restore --- .../KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java | 2 +- 1 file changed, 1 insertion(+), 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 0109626816..b3747797cd 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 @@ -2096,7 +2096,7 @@ public final class KMManager { // subSequence indices are start(inclusive) to end(exclusive) CharSequence expectedChars = charsBackup.subSequence(0, charsBackup.length() - (dn + numPairs)); ic.deleteSurroundingText(dn + numPairs, 0); - CharSequence newContext = getCharacterSequence(ic, originalBufferLength - dn); + CharSequence newContext = getCharacterSequence(ic, originalBufferLength - 2*dn); CharSequence charsToRestore = CharSequenceUtil.restoreChars(expectedChars, newContext); if (charsToRestore.length() > 0) {