Convert parent to property

pull/1369/head
Alex Baker 5 years ago
parent d2a44d9fab
commit bfd1316c33

@ -8,8 +8,8 @@ import kotlinx.coroutines.runBlocking
import org.junit.Assert.* import org.junit.Assert.*
import org.junit.Test import org.junit.Test
import org.tasks.caldav.iCalendar.Companion.collapsed import org.tasks.caldav.iCalendar.Companion.collapsed
import org.tasks.caldav.iCalendar.Companion.getParent
import org.tasks.caldav.iCalendar.Companion.order import org.tasks.caldav.iCalendar.Companion.order
import org.tasks.caldav.iCalendar.Companion.parent
import org.tasks.data.TagDao import org.tasks.data.TagDao
import org.tasks.data.TagDataDao import org.tasks.data.TagDataDao
import org.tasks.injection.ProductionModule import org.tasks.injection.ProductionModule
@ -59,7 +59,7 @@ class OpenTasksPropertiesTests : OpenTasksTest() {
synchronizer.sync() synchronizer.sync()
assertEquals("1234", openTaskDao.getTask(listId, "abcd")?.task?.getParent()) assertEquals("1234", openTaskDao.getTask(listId, "abcd")?.task?.parent)
} }
@Test @Test

@ -14,8 +14,8 @@ import org.tasks.R
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.caldav.iCalendar import org.tasks.caldav.iCalendar
import org.tasks.caldav.iCalendar.Companion.fromVtodo import org.tasks.caldav.iCalendar.Companion.fromVtodo
import org.tasks.caldav.iCalendar.Companion.getParent
import org.tasks.caldav.iCalendar.Companion.order import org.tasks.caldav.iCalendar.Companion.order
import org.tasks.caldav.iCalendar.Companion.parent
import org.tasks.data.* import org.tasks.data.*
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
@ -154,7 +154,7 @@ class Upgrader @Inject constructor(
val updated: MutableList<CaldavTask> = ArrayList() val updated: MutableList<CaldavTask> = ArrayList()
for (task in upgraderDao.tasksWithVtodos().map(CaldavTaskContainer::caldavTask)) { for (task in upgraderDao.tasksWithVtodos().map(CaldavTaskContainer::caldavTask)) {
val remoteTask = fromVtodo(task.vtodo!!) ?: continue val remoteTask = fromVtodo(task.vtodo!!) ?: continue
task.remoteParent = remoteTask.getParent() task.remoteParent = remoteTask.parent
if (!isNullOrEmpty(task.remoteParent)) { if (!isNullOrEmpty(task.remoteParent)) {
updated.add(task) updated.add(task)
} }

@ -158,7 +158,7 @@ class iCalendar @Inject constructor(
caldavTask.vtodo = vtodo caldavTask.vtodo = vtodo
caldavTask.etag = eTag caldavTask.etag = eTag
caldavTask.lastSync = task.modificationDate caldavTask.lastSync = task.modificationDate
caldavTask.remoteParent = remote.getParent() caldavTask.remoteParent = remote.parent
caldavTask.order = remote.order caldavTask.order = remote.order
if (caldavTask.id == com.todoroo.astrid.data.Task.NO_ID) { if (caldavTask.id == com.todoroo.astrid.data.Task.NO_ID) {
caldavTask.id = caldavDao.insert(caldavTask) caldavTask.id = caldavDao.insert(caldavTask)
@ -225,28 +225,24 @@ class iCalendar @Inject constructor(
return null return null
} }
private fun Task.getParents(): List<RelatedTo> = relatedTo.filter(IS_PARENT) var Task.parent: String?
get() = relatedTo.find(IS_PARENT)?.value
fun Task.getParent(): String? { set(value) {
return relatedTo.find(IS_PARENT)?.value val parents = relatedTo.filter(IS_PARENT)
} when {
value.isNullOrBlank() -> relatedTo.removeAll(parents)
fun Task.setParent(value: String?) { parents.isEmpty() -> relatedTo.add(RelatedTo(value))
val parents = getParents() else -> {
when { if (parents.size > 1) {
value.isNullOrBlank() -> relatedTo.removeAll(parents) relatedTo.removeAll(parents.drop(1))
parents.isEmpty() -> relatedTo.add(RelatedTo(value)) }
else -> { parents[0].let {
if (parents.size > 1) { it.value = value
relatedTo.removeAll(parents.drop(1)) it.parameters.replace(RelType.PARENT)
} }
parents[0].let {
it.value = value
it.parameters.replace(RelType.PARENT)
} }
} }
} }
}
var Task.order: Long? var Task.order: Long?
get() = unknownProperties.find(IS_APPLE_SORT_ORDER).let { it?.value?.toLongOrNull() } get() = unknownProperties.find(IS_APPLE_SORT_ORDER).let { it?.value?.toLongOrNull() }
@ -359,7 +355,7 @@ class iCalendar @Inject constructor(
if (priority < 5) max(1, priority) else 1 if (priority < 5) max(1, priority) else 1
else -> if (priority > 5) min(9, priority) else 9 else -> if (priority > 5) min(9, priority) else 9
} }
setParent(if (task.parent == 0L) null else caldavTask.remoteParent) parent = if (task.parent == 0L) null else caldavTask.remoteParent
order = caldavTask.order order = caldavTask.order
collapsed = task.isCollapsed collapsed = task.isCollapsed
} }

Loading…
Cancel
Save