Fix 'Number of apps' sql exception in repo details.

This commit is contained in:
Peter Serwylo 2014-02-23 09:19:23 +11:00 committed by Peter Serwylo
parent 568224ba78
commit 87f2da7e2f
2 changed files with 8 additions and 5 deletions

View File

@ -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");
}

View File

@ -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";