|
|
|
@ -1,7 +1,6 @@
|
|
|
|
package org.tasks.data;
|
|
|
|
package org.tasks.data;
|
|
|
|
|
|
|
|
|
|
|
|
import static com.google.common.collect.Iterables.partition;
|
|
|
|
import static org.tasks.db.DbUtils.batch;
|
|
|
|
import static com.todoroo.andlib.utility.DateUtilities.now;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.room.Dao;
|
|
|
|
import androidx.room.Dao;
|
|
|
|
import androidx.room.Delete;
|
|
|
|
import androidx.room.Delete;
|
|
|
|
@ -36,24 +35,23 @@ public abstract class DeletionDao {
|
|
|
|
|
|
|
|
|
|
|
|
@Transaction
|
|
|
|
@Transaction
|
|
|
|
public void delete(List<Long> ids) {
|
|
|
|
public void delete(List<Long> ids) {
|
|
|
|
for (List<Long> partition : partition(ids, 999)) {
|
|
|
|
batch(ids, b -> {
|
|
|
|
deleteAlarms(partition);
|
|
|
|
deleteAlarms(b);
|
|
|
|
deleteGeofences(partition);
|
|
|
|
deleteGeofences(b);
|
|
|
|
deleteTags(partition);
|
|
|
|
deleteTags(b);
|
|
|
|
deleteGoogleTasks(partition);
|
|
|
|
deleteGoogleTasks(b);
|
|
|
|
deleteCaldavTasks(partition);
|
|
|
|
deleteCaldavTasks(b);
|
|
|
|
deleteTasks(partition);
|
|
|
|
deleteTasks(b);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Query("UPDATE tasks SET modified = :timestamp, deleted = :timestamp WHERE _id IN(:ids)")
|
|
|
|
@Query("UPDATE tasks "
|
|
|
|
abstract void markDeleted(long timestamp, List<Long> ids);
|
|
|
|
+ "SET modified = datetime('now', 'localtime'), deleted = datetime('now', 'localtime') "
|
|
|
|
|
|
|
|
+ "WHERE _id IN(:ids)")
|
|
|
|
|
|
|
|
abstract void markDeletedInternal(List<Long> ids);
|
|
|
|
|
|
|
|
|
|
|
|
public void markDeleted(Iterable<Long> ids) {
|
|
|
|
public void markDeleted(Iterable<Long> ids) {
|
|
|
|
long now = now();
|
|
|
|
batch(ids, this::markDeletedInternal);
|
|
|
|
for (List<Long> partition : partition(ids, 997)) {
|
|
|
|
|
|
|
|
markDeleted(now, partition);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Query("SELECT gt_task FROM google_tasks WHERE gt_deleted = 0 AND gt_list_id = :listId")
|
|
|
|
@Query("SELECT gt_task FROM google_tasks WHERE gt_deleted = 0 AND gt_list_id = :listId")
|
|
|
|
|