From f635e03b3554fe26ec737109b072f022baa00ba0 Mon Sep 17 00:00:00 2001 From: sspanak Date: Mon, 30 Dec 2024 15:50:29 +0200 Subject: [PATCH] smarter language search tool --- .../PreferenceSearchLanguage.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languageSelection/PreferenceSearchLanguage.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languageSelection/PreferenceSearchLanguage.java index 9185e717..f26c4720 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languageSelection/PreferenceSearchLanguage.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languageSelection/PreferenceSearchLanguage.java @@ -39,16 +39,20 @@ public class PreferenceSearchLanguage extends ItemTextInput { @Override protected void onChange(String word) { - word = word == null ? "" : word.trim(); + word = word == null ? "" : word.trim().toLowerCase(); + String wordInTheMiddle = " " + word; + String wordInParenthesis = "(" + word; int visibleLanguages = languageItems.size(); for (PreferenceSwitchLanguage languageItem : languageItems) { - CharSequence title = languageItem.getTitle() == null ? "" : languageItem.getTitle(); - CharSequence summary = languageItem.getSummary() == null ? "" : languageItem.getSummary(); + String title = languageItem.getTitle() == null ? "" : languageItem.getTitle().toString().toLowerCase(); + String summary = languageItem.getSummary() == null ? "" : languageItem.getSummary().toString().toLowerCase(); languageItem.setVisible( - title.toString().toLowerCase().startsWith(word.toLowerCase()) || - summary.toString().toLowerCase().startsWith(word.toLowerCase()) + // ordered by most likely to be found + title.startsWith(word) || summary.startsWith(word) || + summary.contains(wordInTheMiddle) || title.contains(wordInParenthesis) || + summary.contains(wordInParenthesis) || title.contains(wordInTheMiddle) ); if (!languageItem.isVisible()) {