@ -123,6 +123,17 @@ public abstract class CaldavDao {
+"GROUP BY tasks._id")
publicabstractList<Long>getTasksWithTags();
@Query(
"UPDATE caldav_tasks"
+" SET cd_parent = IFNULL(("
+" SELECT cd_task FROM caldav_tasks AS p "
+" WHERE p.cd_remote_id = caldav_tasks.cd_remote_parent"
+" AND p.cd_calendar = caldav_tasks.cd_calendar"
+" AND p.cd_deleted = 0),"
+" 0)"
+" WHERE cd_remote_parent IS NOT NULL AND cd_remote_parent != ''")
publicabstractvoidupdateParents();
@Query("UPDATE caldav_tasks SET cd_parent = IFNULL((SELECT cd_task FROM caldav_tasks AS p WHERE p.cd_remote_id = caldav_tasks.cd_remote_parent), 0) WHERE cd_calendar = :calendar AND cd_remote_parent IS NOT NULL and cd_remote_parent != ''")
@ -128,6 +128,17 @@ public abstract class GoogleTaskDao {
"SELECT google_tasks.*, gt_remote_order AS primary_sort, NULL AS secondary_sort FROM google_tasks JOIN tasks ON tasks._id = gt_task WHERE gt_parent = 0 AND gt_list_id = :listId AND tasks.deleted = 0 UNION SELECT c.*, p.gt_remote_order AS primary_sort, c.gt_remote_order AS secondary_sort FROM google_tasks AS c LEFT JOIN google_tasks AS p ON c.gt_parent = p.gt_task JOIN tasks ON tasks._id = c.gt_task WHERE c.gt_parent > 0 AND c.gt_list_id = :listId AND tasks.deleted = 0 ORDER BY primary_sort ASC, secondary_sort ASC")
+" WHERE p.gt_remote_id = google_tasks.gt_remote_parent"
+" AND p.gt_list_id = google_tasks.gt_list_id "
+" AND p.gt_deleted = 0),"
+" gt_parent)"
+" WHERE gt_moved = 0 AND gt_remote_parent IS NOT NULL AND gt_remote_parent != ''")
publicabstractvoidupdateParents();
@Query(
"UPDATE google_tasks SET gt_parent = IFNULL((SELECT gt_task FROM google_tasks AS p WHERE p.gt_remote_id = google_tasks.gt_remote_parent), gt_parent) WHERE gt_list_id = :listId AND gt_moved = 0 AND gt_remote_parent IS NOT NULL AND gt_remote_parent != ''")