From 19e40bb1b7518ca1f3bf6b81491d72e9fe0ee142 Mon Sep 17 00:00:00 2001 From: Jan Koll Date: Thu, 26 Jun 2025 21:16:14 +0200 Subject: [PATCH] Add preference for fuzzy search, improve search efficiency --- .../de/jrpie/android/launcher/apps/AppFilter.kt | 17 ++++++----------- .../preferences/LauncherPreferences$Config.java | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values/donottranslate.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/preferences.xml | 5 +++++ 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/de/jrpie/android/launcher/apps/AppFilter.kt b/app/src/main/java/de/jrpie/android/launcher/apps/AppFilter.kt index 38643da..60312cb 100644 --- a/app/src/main/java/de/jrpie/android/launcher/apps/AppFilter.kt +++ b/app/src/main/java/de/jrpie/android/launcher/apps/AppFilter.kt @@ -67,28 +67,23 @@ class AppFilter( val r: MutableList = ArrayList() val appsSecondary: MutableList = ArrayList() val normalizedQuery: String = normalize(query) + val subsequentResult: MutableList = mutableListOf(); + val occurrences: MutableMap = mutableMapOf(); for (item in apps) { val itemLabel: String = normalize(item.getCustomLabel(context)) if (itemLabel.startsWith(normalizedQuery)) { appsSecondary.add(item); - } - // todo: maybe re-enable this with preferences? I think it's a bit clunky with the "fuzzy"-search though - /*else if (itemLabel.contains(normalizedQuery)) { + } else if (itemLabel.contains(normalizedQuery) && !LauncherPreferences.functionality().searchFuzzy()) { appsSecondary.add(item) - }*/ - } - if (appsSecondary.size != 1) { - val subsequentResult: MutableList = mutableListOf(); - val occurrences: MutableMap = mutableMapOf(); - for (item in apps) { - if (appsSecondary.contains(item)) continue; - val itemLabel: String = normalize(item.getCustomLabel(context)) + } else { if (isSubsequent(itemLabel, normalizedQuery)) { subsequentResult.add(item) } occurrences[item] = countOccurrences(itemLabel, normalizedQuery) } + } + if (LauncherPreferences.functionality().searchFuzzy() && appsSecondary.size != 1) { if (subsequentResult.isNotEmpty()) { appsSecondary.addAll(subsequentResult) } else { diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java b/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java index d509ef2..e73e548 100644 --- a/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java +++ b/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java @@ -75,6 +75,7 @@ import eu.jonahbauer.android.preference.annotations.Preferences; @Preference(name = "search_web", type = boolean.class, description = "false"), @Preference(name = "search_auto_open_keyboard", type = boolean.class, defaultValue = "true"), @Preference(name = "search_auto_close_keyboard", type = boolean.class, defaultValue = "false"), + @Preference(name = "search_fuzzy", type = boolean.class, defaultValue = "true"), }), @PreferenceGroup(name = "enabled_gestures", prefix = "settings_enabled_gestures_", suffix = "_key", value = { @Preference(name = "double_swipe", type = boolean.class, defaultValue = "true"), diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 0b4090c..82d6474 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -309,4 +309,5 @@ Privater Bereich Musik: Wiedergabe / Pause Appliste umkehren + Fuzzy-Suche verwenden diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 9f15b22..d23e5c6 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -148,6 +148,7 @@ enabled_gestures.edge_actions.edge_width functionality.search_auto_launch functionality.search_web + functionality.search_fuzzy functionality.search_auto_keyboard functionality.search_auto_close_keyboard diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6fb9d61..0cd98dd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -456,4 +456,5 @@ Navigate next Lock Remove binding + Use fuzzy search diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 0ee7c17..c100e32 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -100,6 +100,11 @@ android:defaultValue="false" android:summary="@string/settings_functionality_search_web_summary" /> +