From 9785536910dff543c9730cf1e1fc109c5237e575 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Tue, 25 Oct 2016 22:15:33 +1100 Subject: [PATCH] Use the Query object rather than the SQLiteDatabase#query() method. This ensures that all of the relevant joins are in place, so that when the updater asks to `queryPackageName()` then it can assume that we have already joined onto the `Schema.PackageTable`. --- app/src/main/java/org/fdroid/fdroid/data/AppProvider.java | 4 ++-- .../main/java/org/fdroid/fdroid/data/TempAppProvider.java | 6 ++++-- 2 files changed, 6 insertions(+), 4 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 e59735240..e0c2961a3 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java +++ b/app/src/main/java/org/fdroid/fdroid/data/AppProvider.java @@ -216,7 +216,7 @@ public class AppProvider extends FDroidProvider { } - private class Query extends QueryBuilder { + protected class Query extends QueryBuilder { private boolean isSuggestedApkTableAdded; private boolean requiresInstalledTable; @@ -230,7 +230,7 @@ public class AppProvider extends FDroidProvider { final String apk = getApkTableName(); final String repo = RepoTable.NAME; final String cat = CategoryTable.NAME; - final String catJoin = CatJoinTable.NAME; + final String catJoin = getCatJoinTableName(); return pkg + " JOIN " + app + " ON (" + app + "." + Cols.PACKAGE_ID + " = " + pkg + "." + PackageTable.Cols.ROW_ID + ") " + diff --git a/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java b/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java index af0df691a..aa32dd92f 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java +++ b/app/src/main/java/org/fdroid/fdroid/data/TempAppProvider.java @@ -175,8 +175,10 @@ public class TempAppProvider extends AppProvider { } private void ensureCategories(String[] categories, String packageName, long repoId) { - QuerySelection forId = querySingle(packageName, repoId); - Cursor cursor = db().query(getTableName(), new String[] {Cols.ROW_ID}, forId.getSelection(), forId.getArgs(), null, null, null); + Query query = new AppProvider.Query(); + query.addField(Cols.ROW_ID); + query.addSelection(querySingle(packageName, repoId)); + Cursor cursor = db().rawQuery(query.toString(), query.getArgs()); cursor.moveToFirst(); long appMetadataId = cursor.getLong(0); cursor.close();