Set UID in SYNC2 for EteSync

pull/1073/head
Alex Baker 4 years ago
parent d10c40be1f
commit 9c07c0abd4

@ -234,7 +234,7 @@ class OpenTaskDao @Inject constructor(@ApplicationContext context: Context) {
}
companion object {
private const val OPENTASK_BATCH_LIMIT = 500
private const val OPENTASK_BATCH_LIMIT = 499
const val ACCOUNT_TYPE_DAVx5 = "bitfire.at.davdroid"
const val ACCOUNT_TYPE_ETESYNC = "com.etesync.syncadapter"

@ -17,7 +17,6 @@ import org.tasks.data.CaldavAccount.Companion.TYPE_ETESYNC
import org.tasks.data.CaldavAccount.Companion.TYPE_OPENTASKS
import org.tasks.data.CaldavDao
import org.tasks.data.GoogleTaskListDao
import org.tasks.data.OpenTaskDao
import org.tasks.data.Place
import org.tasks.date.DateTimeUtils.midnight
import org.tasks.date.DateTimeUtils.newDateTime

@ -103,6 +103,7 @@ class OpenTasksSynchronizer @Inject constructor(
private suspend fun sync(calendar: CaldavCalendar, ctag: String?, listId: Long) {
Timber.d("SYNC $calendar")
val isEteSync = calendar.account!!.split(":")[0] == ACCOUNT_TYPE_ETESYNC
val moved = caldavDao.getMoved(calendar.uuid!!)
val (deleted, updated) =
@ -115,7 +116,7 @@ class OpenTasksSynchronizer @Inject constructor(
caldavDao.delete(moved)
taskDeleter.delete(deleted.map { it.id })
openTaskDao.batch(updated.mapNotNull { toOperation(it, listId) })
openTaskDao.batch(updated.mapNotNull { toOperation(it, listId, isEteSync) })
val caldavTasks = updated.let { caldavDao.getTasks(it.map(Task::id)) }
openTaskDao.batch(caldavTasks.flatMap {
@ -145,7 +146,6 @@ class OpenTasksSynchronizer @Inject constructor(
}
}
val isEteSync = calendar.account!!.split(":")[0] == ACCOUNT_TYPE_ETESYNC
val etags = openTaskDao.getEtags(listId)
etags.forEach { (syncId, syncVersion, version) ->
val caldavTask = caldavDao.getTask(calendar.uuid!!, syncId)
@ -183,7 +183,11 @@ class OpenTasksSynchronizer @Inject constructor(
}
}
private suspend fun toOperation(task: Task, listId: Long): ContentProviderOperation? {
private suspend fun toOperation(
task: Task,
listId: Long,
isEteSync: Boolean
): ContentProviderOperation? {
val caldavTask = caldavDao.getTask(task.id) ?: return null
val values = ContentValues()
values.put(Tasks._SYNC_ID, caldavTask.`object`)
@ -232,7 +236,7 @@ class OpenTasksSynchronizer @Inject constructor(
if (existing) {
openTaskDao.update(listId, caldavTask.`object`!!, values)
} else {
values.put(Tasks._UID, caldavTask.remoteId)
values.put(if (isEteSync) Tasks.SYNC2 else Tasks._UID, caldavTask.remoteId)
values.put(Tasks.PRIORITY, toRemote(task.priority, task.priority))
openTaskDao.insert(values)
}

Loading…
Cancel
Save