From d22c714dbd3e762a672333c5a9e0371d816a127c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 30 Mar 2015 17:41:35 +0200 Subject: [PATCH] Ignore leading and trailing whitespaces in search keywords As reported in #58 --- F-Droid/src/org/fdroid/fdroid/data/AppProvider.java | 6 +++--- F-Droid/src/org/fdroid/fdroid/data/FDroidProvider.java | 7 +++++++ .../src/org/fdroid/fdroid/data/InstalledAppProvider.java | 4 +++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java index a1b03b7b9..ec5f60d0c 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java +++ b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java @@ -497,14 +497,14 @@ public class AppProvider extends FDroidProvider { } private AppQuerySelection querySearch(String keywords) { - keywords = "%" + keywords + "%"; + keywords = "%" + cleanQueryKeywords(keywords) + "%"; String selection = "fdroid_app.id like ? OR " + "fdroid_app.name like ? OR " + "fdroid_app.summary like ? OR " + "fdroid_app.description like ? "; - String[] args = new String[] { keywords, keywords, keywords, keywords}; - return new AppQuerySelection(selection, args); + return new AppQuerySelection(selection, + new String[] { keywords, keywords, keywords, keywords }); } private AppQuerySelection querySingle(String id) { diff --git a/F-Droid/src/org/fdroid/fdroid/data/FDroidProvider.java b/F-Droid/src/org/fdroid/fdroid/data/FDroidProvider.java index aad493d4a..262c63d5a 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/FDroidProvider.java +++ b/F-Droid/src/org/fdroid/fdroid/data/FDroidProvider.java @@ -142,5 +142,12 @@ public abstract class FDroidProvider extends ContentProvider { } } } + + protected static String cleanQueryKeywords(String keywords) { + if (keywords == null) { + return null; + } + return keywords.trim(); + } } diff --git a/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java b/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java index 54710730a..301f94496 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java +++ b/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java @@ -128,7 +128,9 @@ public class InstalledAppProvider extends FDroidProvider { } private QuerySelection querySearch(String keywords) { - return new QuerySelection("applicationLabel LIKE ?", new String[]{ "%" + keywords + "%" }); + keywords = "%" + cleanQueryKeywords(keywords) + "%"; + return new QuerySelection("applicationLabel LIKE ?", + new String[]{ keywords }); } @Override