diff --git a/CHANGELOG.md b/CHANGELOG.md index 726246a26..c8898fb7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### Upcoming Release + +* Fix bug when entering only a space into the search dialog. + ### 0.98 (2015-02-02) * Add opt-in crash reporting via ACRA diff --git a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java index 90935ee8e..bb5e57bf6 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java +++ b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java @@ -614,15 +614,14 @@ public class AppProvider extends FDroidProvider { } private AppQuerySelection querySearch(String query) { - final String[] columns = { - getTableName() + ".id", - getTableName() + ".name", - getTableName() + ".summary", - getTableName() + ".description", - }; - - // Remove duplicates, surround in % for wildcard searching + // Put in a Set to remove duplicates final Set keywordSet = new HashSet<>(Arrays.asList(query.split("\\s"))); + + if (keywordSet.size() == 0) { + return new AppQuerySelection(); + } + + // Surround each keyword in % for wildcard searching final String[] keywords = new String[keywordSet.size()]; int iKeyword = 0; for (final String keyword : keywordSet) { @@ -630,6 +629,13 @@ public class AppProvider extends FDroidProvider { iKeyword++; } + final String[] columns = { + getTableName() + ".id", + getTableName() + ".name", + getTableName() + ".summary", + getTableName() + ".description", + }; + // Build selection string and fill out keyword arguments final StringBuilder selection = new StringBuilder(); final String[] selectionKeywords = new String[columns.length * keywords.length];