Clear completed recursively

gtask_related_email
Alex Baker 6 years ago
parent c978b89500
commit f7fc780869

@ -22,7 +22,10 @@ import org.tasks.data.DeletionDao;
import org.tasks.data.GoogleTaskAccount;
import org.tasks.data.GoogleTaskDao;
import org.tasks.data.GoogleTaskList;
import org.tasks.data.TaskContainer;
import org.tasks.jobs.WorkManager;
import org.tasks.preferences.Preferences;
import org.tasks.ui.TaskListViewModel;
public class TaskDeleter {
@ -31,6 +34,7 @@ public class TaskDeleter {
private final LocalBroadcastManager localBroadcastManager;
private final GoogleTaskDao googleTaskDao;
private final CaldavDao caldavDao;
private final Preferences preferences;
private final DeletionDao deletionDao;
@Inject
@ -40,13 +44,15 @@ public class TaskDeleter {
TaskDao taskDao,
LocalBroadcastManager localBroadcastManager,
GoogleTaskDao googleTaskDao,
CaldavDao caldavDao) {
CaldavDao caldavDao,
Preferences preferences) {
this.deletionDao = deletionDao;
this.workManager = workManager;
this.taskDao = taskDao;
this.localBroadcastManager = localBroadcastManager;
this.googleTaskDao = googleTaskDao;
this.caldavDao = caldavDao;
this.preferences = preferences;
}
public int purgeDeleted() {
@ -82,12 +88,15 @@ public class TaskDeleter {
public int clearCompleted(Filter filter) {
List<Long> completed = new ArrayList<>();
String query =
Filter deleteFilter = new Filter(null, null);
deleteFilter.setFilterQueryOverride(
filter
.getOriginalSqlQuery()
.replace(isVisible().toString(), all.toString())
.replace(notCompleted().toString(), all.toString());
for (Task task : taskDao.fetchFiltered(query)) {
.replace(notCompleted().toString(), all.toString()));
List<TaskContainer> tasks = taskDao.fetchTasks(
hasSubtasks -> TaskListViewModel.getQuery(preferences, deleteFilter, hasSubtasks));
for (TaskContainer task : tasks) {
if (task.isCompleted()) {
completed.add(task.getId());
}

Loading…
Cancel
Save