From b2d5bcc94ab57ef40a3a50c35447aa7760d19a0a Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Sun, 11 Sep 2016 12:41:08 +0700 Subject: [PATCH] When querying based on category, use join table. --- .../java/org/fdroid/fdroid/data/AppProvider.java | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java b/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java index d1d122ffe..e23b2830b 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java +++ b/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java @@ -740,20 +740,8 @@ public class AppProvider extends FDroidProvider { } private AppQuerySelection queryCategory(String category) { - // TODO: In the future, add a new table for categories, - // so we can join onto it. - final String app = getTableName(); - final String selection = - app + "." + Cols.CATEGORIES + " = ? OR " + // Only category e.g. "internet" - app + "." + Cols.CATEGORIES + " LIKE ? OR " + // First category e.g. "internet,%" - app + "." + Cols.CATEGORIES + " LIKE ? OR " + // Last category e.g. "%,internet" - app + "." + Cols.CATEGORIES + " LIKE ? "; // One of many categories e.g. "%,internet,%" - final String[] args = { - category, - category + ",%", - "%," + category, - "%," + category + ",%", - }; + final String selection = CategoryTable.NAME + "." + CategoryTable.Cols.NAME + " = ? "; + final String[] args = {category}; return new AppQuerySelection(selection, args); }