diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/predictions/WordPredictions.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/predictions/WordPredictions.java index 7796ea95..f49a282d 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/predictions/WordPredictions.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/predictions/WordPredictions.java @@ -7,6 +7,7 @@ import io.github.sspanak.tt9.ime.helpers.TextField; import io.github.sspanak.tt9.languages.EmojiLanguage; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.util.Characters; +import io.github.sspanak.tt9.util.TextTools; public class WordPredictions extends Predictions { private final TextField textField; @@ -274,14 +275,14 @@ public class WordPredictions extends Predictions { ArrayList rearrangedWords = new ArrayList<>(); String penultimateWord = textField.getWordBeforeCursor(language, 1, true); - String word = DataStore.getWord2(language, penultimateWord, digitSequence); - int morePopularIndex = word == null ? -1 : words.indexOf(word); + String pairWord = DataStore.getWord2(language, penultimateWord, digitSequence); + int morePopularIndex = TextTools.indexOfIgnoreCase(words, pairWord); if (morePopularIndex == -1) { return words; } - lastEnforcedTopWord = word; - rearrangedWords.add(word); + lastEnforcedTopWord = words.get(morePopularIndex); + rearrangedWords.add(lastEnforcedTopWord); for (int i = 0; i < words.size(); i++) { if (i != morePopularIndex) { diff --git a/app/src/main/java/io/github/sspanak/tt9/util/TextTools.java b/app/src/main/java/io/github/sspanak/tt9/util/TextTools.java index d0a17eb2..4f20619b 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/TextTools.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/TextTools.java @@ -2,6 +2,7 @@ package io.github.sspanak.tt9.util; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import java.util.Locale; import java.util.TimeZone; import java.util.regex.Pattern; @@ -46,6 +47,17 @@ public class TextTools { } + public static int indexOfIgnoreCase(List list, String str) { + for (int i = 0, size = list != null && str != null ? list.size() : 0; i < size; i++) { + if (list.get(i).equalsIgnoreCase(str)) { + return i; + } + } + + return -1; + } + + public static boolean isStartOfSentence(String str) { return str != null && startOfSentence.matcher(str).find(); }