From aa69fb5f42d09eb8049f384e1552c544a6f09d7f Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Wed, 21 Dec 2022 19:37:38 +0100 Subject: [PATCH] Improve app and shortcut query matching --- .../java/de/mm20/launcher2/applications/AppRepository.kt | 5 +++-- .../mm20/launcher2/appshortcuts/AppShortcutRepository.kt | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt b/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt index 0ad40e59..28328a06 100644 --- a/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt +++ b/data/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt @@ -170,9 +170,10 @@ internal class AppRepositoryImpl( private fun matches(label: String, query: String): Boolean { val normalizedLabel = label.normalize() + val normalizedQuery = query.normalize() + if (normalizedLabel.contains(normalizedQuery)) return true val fuzzyScore = FuzzyScore(Locale.getDefault()) - return fuzzyScore.fuzzyScore(label, query) >= query.length * 1.5 || - fuzzyScore.fuzzyScore(normalizedLabel, query.normalize()) >= query.length * 1.5 + return fuzzyScore.fuzzyScore(normalizedLabel, normalizedQuery) >= query.length * 1.5 } private fun getActivityByComponentName(componentName: ComponentName?): LauncherApp? { diff --git a/data/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt b/data/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt index 6be648f9..c638e073 100644 --- a/data/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt +++ b/data/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt @@ -221,9 +221,10 @@ internal class AppShortcutRepositoryImpl( private fun matches(label: String, query: String): Boolean { - val labelLatin = label.normalize() + val normalizedLabel = label.normalize() + val normalizedQuery = query.normalize() + if (normalizedLabel.contains(normalizedQuery)) return true val fuzzyScore = FuzzyScore(Locale.getDefault()) - return fuzzyScore.fuzzyScore(label, query) >= query.length * 1.5 || - fuzzyScore.fuzzyScore(labelLatin, query.normalize()) >= query.length * 1.5 + return fuzzyScore.fuzzyScore(normalizedLabel, normalizedQuery) >= query.length * 1.5 } } \ No newline at end of file