From 40b48bba529f542a8e80912c143dc78ca788579b Mon Sep 17 00:00:00 2001 From: Dimo Karaivanov Date: Sat, 31 Aug 2024 16:43:12 +0300 Subject: [PATCH] Auto space improvements (#613) * space is added at the end of a line, when this is not the last line * space is added after digit+currency * space is no longer added after digit+colon making it easier to type time --- .../io/github/sspanak/tt9/ime/modes/helpers/AutoSpace.java | 5 ++++- app/src/main/java/io/github/sspanak/tt9/util/Text.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/helpers/AutoSpace.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/helpers/AutoSpace.java index d8bb98fc..2448e5b0 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/helpers/AutoSpace.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/helpers/AutoSpace.java @@ -3,6 +3,7 @@ package io.github.sspanak.tt9.ime.modes.helpers; import io.github.sspanak.tt9.hacks.InputType; import io.github.sspanak.tt9.ime.helpers.TextField; import io.github.sspanak.tt9.preferences.settings.SettingsStore; +import io.github.sspanak.tt9.util.Characters; import io.github.sspanak.tt9.util.Text; public class AutoSpace { @@ -66,6 +67,7 @@ public class AutoSpace { * because we are not using a QWERTY keyboard here). */ private boolean shouldAddAfterPunctuation(String previousChars, Text nextChars, int nextKey) { + char penultimateChar = previousChars.length() < 2 ? 0 : previousChars.charAt(previousChars.length() - 2); char previousChar = previousChars.isEmpty() ? 0 : previousChars.charAt(previousChars.length() - 1); return @@ -76,7 +78,7 @@ public class AutoSpace { previousChar == '.' || previousChar == ',' || previousChar == ';' - || previousChar == ':' + || (previousChar == ':' && !Character.isDigit(penultimateChar)) || previousChar == '!' || previousChar == '?' || previousChar == ')' @@ -87,6 +89,7 @@ public class AutoSpace { || previousChar == '“' || previousChars.endsWith(" -") || previousChars.endsWith(" /") + || (Character.isDigit(penultimateChar) && Characters.Currency.contains(previousChar + "")) ); } diff --git a/app/src/main/java/io/github/sspanak/tt9/util/Text.java b/app/src/main/java/io/github/sspanak/tt9/util/Text.java index 94270dae..ed0965a1 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/Text.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/Text.java @@ -125,7 +125,7 @@ public class Text extends TextTools { public boolean startsWithWhitespace() { - return text != null && !text.isEmpty() && Character.isWhitespace(text.charAt(0)); + return text != null && !text.isEmpty() && Character.isWhitespace(text.charAt(0)) && !text.startsWith("\n"); } public boolean startsWithNumber() {