|
|
|
@ -48,7 +48,10 @@ class TaskDao @Inject constructor(
|
|
|
|
|
taskDao.getRecurringTasks(remoteIds)
|
|
|
|
|
|
|
|
|
|
suspend fun setCompletionDate(remoteId: String, completionDate: Long) =
|
|
|
|
|
taskDao.setCompletionDate(remoteId, completionDate)
|
|
|
|
|
setCompletionDate(listOf(remoteId), completionDate)
|
|
|
|
|
|
|
|
|
|
suspend fun setCompletionDate(remoteIds: List<String>, completionDate: Long) =
|
|
|
|
|
taskDao.setCompletionDate(remoteIds, completionDate)
|
|
|
|
|
|
|
|
|
|
suspend fun snooze(taskIds: List<Long>, snoozeTime: Long, updateTime: Long = now()) {
|
|
|
|
|
taskDao.snooze(taskIds, snoozeTime, updateTime)
|
|
|
|
@ -93,11 +96,23 @@ class TaskDao @Inject constructor(
|
|
|
|
|
* Saves the given task to the database.getDatabase(). Task must already exist. Returns true on
|
|
|
|
|
* success.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
suspend fun save(task: Task) = save(task, fetch(task.id))
|
|
|
|
|
|
|
|
|
|
suspend fun saved(original: Task, suppressRefresh: Boolean) =
|
|
|
|
|
fetch(original.id)?.let {
|
|
|
|
|
afterUpdate(
|
|
|
|
|
it.apply { if (suppressRefresh) suppressRefresh() },
|
|
|
|
|
original
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
suspend fun save(task: Task, original: Task?) {
|
|
|
|
|
if (taskDao.update(task, original)) {
|
|
|
|
|
afterUpdate(task, original)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private suspend fun afterUpdate(task: Task, original: Task?) {
|
|
|
|
|
val completionDateModified = task.completionDate != original?.completionDate ?: 0
|
|
|
|
|
val deletionDateModified = task.deletionDate != original?.deletionDate ?: 0
|
|
|
|
|
val justCompleted = completionDateModified && task.isCompleted
|
|
|
|
@ -133,7 +148,6 @@ class TaskDao @Inject constructor(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
suspend fun createNew(task: Task) = taskDao.createNew(task)
|
|
|
|
|
|
|
|
|
|