Fetch by google tasks list

synthesis
Alex Baker 6 years ago
parent 5360f55b48
commit 3009004dcf

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

@ -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<GoogleTaskList> getLists() {
@ -101,9 +100,7 @@ public class GtasksListService {
}
public void deleteList(GoogleTaskList gtasksList) {
List<Task> tasks = taskListDataProvider
.toList(new GtasksFilter(gtasksList));
for (Task task : tasks) {
for (Task task : taskDao.getGoogleTasks(gtasksList.getRemoteId())) {
taskDeleter.markDeleted(task);
}
googleTaskDao.deleteList(gtasksList.getRemoteId());

@ -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<Task> getGoogleTasks(String googleTaskList);
// --- save
/**

@ -31,10 +31,6 @@ public class TaskListDataProvider {
this.preferences = preferences;
}
public List<Task> toList(Filter filter) {
return toList(filter, Task.PROPERTIES);
}
public List<Task> toList(Filter filter, Property<?>[] properties) {
Criterion tagsJoinCriterion = Criterion.and(
Task.ID.eq(Field.field(TAGS_METADATA_JOIN + ".task")));

Loading…
Cancel
Save