Push/apply existing iCalendar start dates

pull/1296/head
Alex Baker 3 years ago
parent 3664f39571
commit 14919d9f81

@ -12,6 +12,7 @@ import kotlinx.coroutines.runBlocking
import org.tasks.R
import org.tasks.Strings.isNullOrEmpty
import org.tasks.caldav.iCalendar
import org.tasks.caldav.iCalendar.Companion.apply
import org.tasks.caldav.iCalendar.Companion.fromVtodo
import org.tasks.caldav.iCalendar.Companion.getParent
import org.tasks.caldav.iCalendar.Companion.order
@ -70,6 +71,9 @@ class Upgrader @Inject constructor(
.filter { it.getSql().trim() == "WHERE" }
.forEach { filterDao.delete(it) }
}
run(from, V11_3) {
applyiCalendarStartDates()
}
preferences.setBoolean(R.string.p_just_updated, true)
}
preferences.setCurrentVersion(to)
@ -116,6 +120,19 @@ class Upgrader @Inject constructor(
return getAndroidColor(context, index)
}
private suspend fun applyiCalendarStartDates() {
val (hasStartDate, noStartDate) = upgraderDao.tasksWithVtodos().partition { it.startDate > 0 }
for (task in noStartDate) {
task.vtodo?.let { fromVtodo(it) }?.dtStart?.let {
it.apply(task.task)
upgraderDao.setStartDate(task.id, task.startDate)
}
}
hasStartDate
.map { it.id }
.let { taskDao.touch(it) }
}
private suspend fun applyCaldavOrder() {
for (task in upgraderDao.tasksWithVtodos().map(CaldavTaskContainer::caldavTask)) {
val remoteTask = fromVtodo(task.vtodo!!) ?: continue
@ -317,6 +334,7 @@ class Upgrader @Inject constructor(
const val V9_7 = 90700
const val V9_7_3 = 90704
const val V10_0_2 = 100012
const val V11_3 = 110300
@JvmStatic
fun getAndroidColor(context: Context, index: Int): Int {

@ -23,4 +23,7 @@ FROM tasks
GROUP BY tasks._id
""")
suspend fun tasksWithTags(): List<Long>
@Query("UPDATE tasks SET hideUntil = :startDate WHERE _id = :task")
fun setStartDate(task: Long, startDate: Long)
}
Loading…
Cancel
Save