diff --git a/src/org/fdroid/fdroid/data/ApkProvider.java b/src/org/fdroid/fdroid/data/ApkProvider.java index 8216c3c86..e607a53f4 100644 --- a/src/org/fdroid/fdroid/data/ApkProvider.java +++ b/src/org/fdroid/fdroid/data/ApkProvider.java @@ -100,6 +100,8 @@ public class ApkProvider extends FDroidProvider { public interface DataColumns extends BaseColumns { + public static String _COUNT_DISTINCT_ID = "countDistinct"; + public static String APK_ID = "id"; public static String VERSION = "version"; public static String REPO_ID = "repo"; @@ -238,6 +240,8 @@ public class ApkProvider extends FDroidProvider { appendField("rowid", "apk", "_id"); } else if (field.equals(DataColumns._COUNT)) { appendField("COUNT(*) AS " + DataColumns._COUNT); + } else if (field.equals(DataColumns._COUNT_DISTINCT_ID)) { + appendField("COUNT(DISTINCT apk.id) AS " + DataColumns._COUNT_DISTINCT_ID); } else { appendField(field, "apk"); } diff --git a/src/org/fdroid/fdroid/data/RepoProvider.java b/src/org/fdroid/fdroid/data/RepoProvider.java index 530ce8ecf..77e567a4d 100644 --- a/src/org/fdroid/fdroid/data/RepoProvider.java +++ b/src/org/fdroid/fdroid/data/RepoProvider.java @@ -174,11 +174,9 @@ public class RepoProvider extends FDroidProvider { public static int countAppsForRepo(Context context, long repoId) { ContentResolver resolver = context.getContentResolver(); - String[] projection = { "COUNT(distinct id)" }; - String selection = "repo = ?"; - String[] args = { Long.toString(repoId) }; - Uri apkUri = ApkProvider.getContentUri(); - Cursor result = resolver.query(apkUri, projection, selection, args, null); + String[] projection = { ApkProvider.DataColumns._COUNT_DISTINCT_ID }; + Uri apkUri = ApkProvider.getRepoUri(repoId); + Cursor result = resolver.query(apkUri, projection, null, null, null); if (result != null && result.getCount() > 0) { result.moveToFirst(); return result.getInt(0); @@ -189,6 +187,7 @@ public class RepoProvider extends FDroidProvider { } public interface DataColumns extends BaseColumns { + public static String ADDRESS = "address"; public static String NAME = "name"; public static String DESCRIPTION = "description";