From d86798bb20de59cc6fa46dc9f822993b634c3ddf Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 9 Feb 2018 14:21:27 -0600 Subject: [PATCH] Improve count queries --- .../main/java/com/todoroo/astrid/dao/TaskDao.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java index f597e0bc2..fa0d503c0 100644 --- a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java +++ b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java @@ -235,7 +235,20 @@ public abstract class TaskDao { } public int count(Filter filter) { - return fetchFiltered(filter.getSqlQuery()).size(); + String query = Query + .select(new Property.CountProperty()) + .withQueryTemplate(PermaSql.replacePlaceholders(filter.getSqlQuery())) + .from(Task.TABLE) + .toString(); + Cursor cursor = database.rawQuery(query); + try { + if (cursor.moveToFirst()) { + return cursor.getInt(0); + } + return 0; + } finally { + cursor.close(); + } } public List fetchFiltered(Filter filter) {