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 3eb6f4f7c..ca5bbf78a 100644 --- a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java +++ b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java @@ -296,8 +296,7 @@ public abstract class TaskDao { * Construct a query with SQL DSL objects */ public TodorooCursor query(Query query) { - query.from(Task.TABLE); - String queryString = query.toString(); + String queryString = query.from(Task.TABLE).toString(); if (BuildConfig.DEBUG) { Timber.v(queryString); } diff --git a/app/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java b/app/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java index 73553de32..7fcd2df3e 100644 --- a/app/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java +++ b/app/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java @@ -19,6 +19,7 @@ import org.tasks.data.TaskListMetadata; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.inject.Inject; @@ -146,24 +147,20 @@ class AstridOrderedListFragmentHelper { if(chained.size() > 0) { // move recurring items to item parent - TodorooCursor recurring = taskDao.query(Query.select(Task.UUID, Task.RECURRENCE).where( + List tasks = taskDao.toList(Query.select(Task.UUID, Task.RECURRENCE).where( Criterion.and(Task.UUID.in(chained.toArray(new String[chained.size()])), - Task.RECURRENCE.isNotNull(), Functions.length(Task.RECURRENCE).gt(0)))); - try { - boolean madeChanges = false; - for (recurring.moveToFirst(); !recurring.isAfterLast(); recurring.moveToNext()) { - Task t = new Task(recurring); - if (!TextUtils.isEmpty(t.getRecurrence())) { - updater.moveToParentOf(t.getUuid(), itemId); - madeChanges = true; - } - } + Task.RECURRENCE.isNotNull(), Functions.length(Task.RECURRENCE).gt(0)))); - if (madeChanges) { - updater.writeSerialization(list, updater.serializeTree()); + boolean madeChanges = false; + for (Task t : tasks) { + if (!TextUtils.isEmpty(t.getRecurrence())) { + updater.moveToParentOf(t.getUuid(), itemId); + madeChanges = true; } - } finally { - recurring.close(); + } + + if (madeChanges) { + updater.writeSerialization(list, updater.serializeTree()); } chainedCompletions.put(itemId, chained);