From 3009004dcfa7b9417f0b6fe32a8b6ec3b4146be9 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 6 Feb 2018 15:19:27 -0600 Subject: [PATCH] Fetch by google tasks list --- .../astrid/gtasks/GtasksListServiceTest.java | 8 ++++---- .../todoroo/astrid/gtasks/GtasksListService.java | 15 ++++++--------- .../main/java/com/todoroo/astrid/dao/TaskDao.java | 3 +++ .../java/org/tasks/data/TaskListDataProvider.java | 4 ---- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java index 749bbcb99..68517af19 100644 --- a/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java +++ b/app/src/androidTestGoogleplay/java/com/todoroo/astrid/gtasks/GtasksListServiceTest.java @@ -4,6 +4,7 @@ import android.support.test.runner.AndroidJUnit4; import com.google.api.client.util.DateTime; import com.google.api.services.tasks.model.TaskList; +import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.service.TaskDeleter; import org.junit.Test; @@ -12,7 +13,6 @@ import org.tasks.LocalBroadcastManager; import org.tasks.data.GoogleTaskDao; import org.tasks.data.GoogleTaskList; import org.tasks.data.GoogleTaskListDao; -import org.tasks.data.TaskListDataProvider; import org.tasks.injection.InjectingTestCase; import org.tasks.injection.TestComponent; import org.tasks.makers.RemoteGtaskListMaker; @@ -35,10 +35,10 @@ import static org.tasks.time.DateTimeUtils.currentTimeMillis; @RunWith(AndroidJUnit4.class) public class GtasksListServiceTest extends InjectingTestCase { - @Inject TaskListDataProvider taskListDataProvider; @Inject TaskDeleter taskDeleter; @Inject LocalBroadcastManager localBroadcastManager; @Inject GoogleTaskDao googleTaskDao; + @Inject TaskDao taskDao; @Inject GoogleTaskListDao googleTaskListDao; private GtasksListService gtasksListService; @@ -46,8 +46,8 @@ public class GtasksListServiceTest extends InjectingTestCase { @Override public void setUp() { super.setUp(); - gtasksListService = new GtasksListService(googleTaskListDao, taskListDataProvider, taskDeleter, - localBroadcastManager, googleTaskDao); + gtasksListService = new GtasksListService(googleTaskListDao, taskDeleter, + localBroadcastManager, googleTaskDao, taskDao); } @Override diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java b/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java index 32291e99b..73a993bdf 100644 --- a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java +++ b/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java @@ -6,7 +6,7 @@ package com.todoroo.astrid.gtasks; import com.google.api.services.tasks.model.TaskList; -import com.todoroo.astrid.api.GtasksFilter; +import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.TaskDeleter; @@ -14,7 +14,6 @@ import org.tasks.LocalBroadcastManager; import org.tasks.data.GoogleTaskDao; import org.tasks.data.GoogleTaskList; import org.tasks.data.GoogleTaskListDao; -import org.tasks.data.TaskListDataProvider; import java.util.HashSet; import java.util.List; @@ -30,20 +29,20 @@ import static org.tasks.time.DateTimeUtils.printTimestamp; public class GtasksListService { private final GoogleTaskListDao googleTaskListDao; - private final TaskListDataProvider taskListDataProvider; private final TaskDeleter taskDeleter; private final LocalBroadcastManager localBroadcastManager; private final GoogleTaskDao googleTaskDao; + private final TaskDao taskDao; @Inject - public GtasksListService(GoogleTaskListDao googleTaskListDao, TaskListDataProvider taskListDataProvider, + public GtasksListService(GoogleTaskListDao googleTaskListDao, TaskDeleter taskDeleter, LocalBroadcastManager localBroadcastManager, - GoogleTaskDao googleTaskDao) { + GoogleTaskDao googleTaskDao, TaskDao taskDao) { this.googleTaskListDao = googleTaskListDao; - this.taskListDataProvider = taskListDataProvider; this.taskDeleter = taskDeleter; this.localBroadcastManager = localBroadcastManager; this.googleTaskDao = googleTaskDao; + this.taskDao = taskDao; } public List getLists() { @@ -101,9 +100,7 @@ public class GtasksListService { } public void deleteList(GoogleTaskList gtasksList) { - List tasks = taskListDataProvider - .toList(new GtasksFilter(gtasksList)); - for (Task task : tasks) { + for (Task task : taskDao.getGoogleTasks(gtasksList.getRemoteId())) { taskDeleter.markDeleted(task); } googleTaskDao.deleteList(gtasksList.getRemoteId()); 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 7a7cfaba0..33549e2b2 100644 --- a/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java +++ b/app/src/main/java/com/todoroo/astrid/dao/TaskDao.java @@ -163,6 +163,9 @@ public abstract class TaskDao { @android.arch.persistence.room.Query("DELETE FROM tasks WHERE _id = :id") public abstract int deleteById(long id); + @android.arch.persistence.room.Query("SELECT tasks.* FROM tasks INNER JOIN google_tasks ON google_tasks.task = tasks._id WHERE google_tasks.list_id = :googleTaskList") + public abstract List getGoogleTasks(String googleTaskList); + // --- save /** diff --git a/app/src/main/java/org/tasks/data/TaskListDataProvider.java b/app/src/main/java/org/tasks/data/TaskListDataProvider.java index 9e04d1d65..f76db943d 100644 --- a/app/src/main/java/org/tasks/data/TaskListDataProvider.java +++ b/app/src/main/java/org/tasks/data/TaskListDataProvider.java @@ -31,10 +31,6 @@ public class TaskListDataProvider { this.preferences = preferences; } - public List toList(Filter filter) { - return toList(filter, Task.PROPERTIES); - } - public List toList(Filter filter, Property[] properties) { Criterion tagsJoinCriterion = Criterion.and( Task.ID.eq(Field.field(TAGS_METADATA_JOIN + ".task")));