Convert CaldavCalendar to data class

pull/2068/head
Alex Baker 3 years ago
parent e529de066e
commit 9ed8486cfc

@ -43,7 +43,7 @@ class CaldavManualSortTaskAdapterTest : InjectingTestCase() {
private lateinit var adapter: CaldavManualSortTaskAdapter private lateinit var adapter: CaldavManualSortTaskAdapter
private val tasks = ArrayList<TaskContainer>() private val tasks = ArrayList<TaskContainer>()
private val filter = CaldavFilter(CaldavCalendar("calendar", "1234")) private val filter = CaldavFilter(CaldavCalendar(name = "calendar", uuid = "1234"))
private val dataSource = object : TaskAdapterDataSource { private val dataSource = object : TaskAdapterDataSource {
override fun getItem(position: Int) = tasks[position] override fun getItem(position: Int) = tasks[position]

@ -300,6 +300,6 @@ class TaskMoverTest : InjectingTestCase() {
} }
private suspend fun moveToCaldavList(calendar: String, vararg tasks: Long) { private suspend fun moveToCaldavList(calendar: String, vararg tasks: Long) {
taskMover.move(tasks.toList(), CaldavFilter(CaldavCalendar("", calendar))) taskMover.move(tasks.toList(), CaldavFilter(CaldavCalendar(name = "", uuid = calendar)))
} }
} }

@ -60,7 +60,7 @@ class DeletionDaoTests : InjectingTestCase() {
fun purgeDeletedLocalTask() = runBlocking { fun purgeDeletedLocalTask() = runBlocking {
val task = newTask(with(DELETION_TIME, newDateTime())) val task = newTask(with(DELETION_TIME, newDateTime()))
taskDao.createNew(task) taskDao.createNew(task)
caldavDao.insert(CaldavCalendar("", "1234").apply { account = LOCAL }) caldavDao.insert(CaldavCalendar(name = "", uuid = "1234", account = LOCAL))
caldavDao.insert(CaldavTask(task.id, "1234")) caldavDao.insert(CaldavTask(task.id, "1234"))
deletionDao.purgeDeleted() deletionDao.purgeDeleted()
@ -72,7 +72,7 @@ class DeletionDaoTests : InjectingTestCase() {
fun dontPurgeActiveTasks() = runBlocking { fun dontPurgeActiveTasks() = runBlocking {
val task = newTask() val task = newTask()
taskDao.createNew(task) taskDao.createNew(task)
caldavDao.insert(CaldavCalendar("", "1234").apply { account = LOCAL }) caldavDao.insert(CaldavCalendar(name = "", uuid = "1234", account = LOCAL))
caldavDao.insert(CaldavTask(task.id, "1234")) caldavDao.insert(CaldavTask(task.id, "1234"))
deletionDao.purgeDeleted() deletionDao.purgeDeleted()
@ -84,7 +84,7 @@ class DeletionDaoTests : InjectingTestCase() {
fun dontPurgeDeletedCaldavTask() = runBlocking { fun dontPurgeDeletedCaldavTask() = runBlocking {
val task = newTask(with(DELETION_TIME, newDateTime())) val task = newTask(with(DELETION_TIME, newDateTime()))
taskDao.createNew(task) taskDao.createNew(task)
caldavDao.insert(CaldavCalendar("", "1234").apply { account = UUIDHelper.newUUID() }) caldavDao.insert(CaldavCalendar(name = "", uuid = "1234", account = UUIDHelper.newUUID()))
caldavDao.insert(CaldavTask(task.id, "1234")) caldavDao.insert(CaldavTask(task.id, "1234"))
deletionDao.purgeDeleted() deletionDao.purgeDeleted()

@ -129,8 +129,9 @@ class Upgrader @Inject constructor(
preferences.setInt( preferences.setInt(
R.string.p_theme_color, getAndroidColor(preferences.getInt(R.string.p_theme_color, 7))) R.string.p_theme_color, getAndroidColor(preferences.getInt(R.string.p_theme_color, 7)))
for (calendar in caldavDao.getCalendars()) { for (calendar in caldavDao.getCalendars()) {
calendar.color = getAndroidColor(calendar.color) caldavDao.update(
caldavDao.update(calendar) calendar.copy(color = getAndroidColor(calendar.color))
)
} }
for (list in googleTaskListDao.getAllLists()) { for (list in googleTaskListDao.getAllLists()) {
list.setColor(getAndroidColor(list.getColor()!!)) list.setColor(getAndroidColor(list.getColor()!!))

@ -109,8 +109,9 @@ class TasksJsonImporter @Inject constructor(
} }
backupContainer.caldavCalendars?.forEach { calendar -> backupContainer.caldavCalendars?.forEach { calendar ->
if (caldavDao.getCalendarByUuid(calendar.uuid!!) == null) { if (caldavDao.getCalendarByUuid(calendar.uuid!!) == null) {
calendar.color = themeToColor(context, version, calendar.color) caldavDao.insert(
caldavDao.insert(calendar) calendar.copy(color = themeToColor(context, version, calendar.color))
)
} }
} }
backupContainer.taskListMetadata?.forEach { tlm -> backupContainer.taskListMetadata?.forEach { tlm ->

@ -155,13 +155,14 @@ abstract class BaseCaldavCalendarSettingsActivity : BaseListSettingsActivity() {
} }
protected suspend fun createSuccessful(url: String?) { protected suspend fun createSuccessful(url: String?) {
val caldavCalendar = CaldavCalendar() val caldavCalendar = CaldavCalendar(
caldavCalendar.uuid = UUIDHelper.newUUID() uuid = UUIDHelper.newUUID(),
caldavCalendar.account = caldavAccount.uuid account = caldavAccount.uuid,
caldavCalendar.url = url url = url,
caldavCalendar.name = newName name = newName,
caldavCalendar.color = selectedColor color = selectedColor,
caldavCalendar.setIcon(selectedIcon) icon = selectedIcon,
)
caldavDao.insert(caldavCalendar) caldavDao.insert(caldavCalendar)
setResult( setResult(
Activity.RESULT_OK, Activity.RESULT_OK,

@ -9,13 +9,9 @@ import com.todoroo.astrid.service.TaskDeleter
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.tasks.data.CaldavAccount import org.tasks.data.*
import org.tasks.data.CaldavCalendar
import org.tasks.data.CaldavCalendar.Companion.ACCESS_READ_WRITE import org.tasks.data.CaldavCalendar.Companion.ACCESS_READ_WRITE
import org.tasks.data.CaldavCalendar.Companion.INVITE_UNKNOWN import org.tasks.data.CaldavCalendar.Companion.INVITE_UNKNOWN
import org.tasks.data.CaldavDao
import org.tasks.data.PrincipalDao
import org.tasks.data.PrincipalWithAccess
import org.tasks.sync.SyncAdapters import org.tasks.sync.SyncAdapters
import javax.inject.Inject import javax.inject.Inject
@ -39,13 +35,14 @@ class CaldavCalendarViewModel @Inject constructor(
val url = withContext(Dispatchers.IO) { val url = withContext(Dispatchers.IO) {
provider.forAccount(caldavAccount).makeCollection(name, color) provider.forAccount(caldavAccount).makeCollection(name, color)
} }
val calendar = CaldavCalendar().apply { val calendar = CaldavCalendar(
uuid = UUIDHelper.newUUID() uuid = UUIDHelper.newUUID(),
account = caldavAccount.uuid account = caldavAccount.uuid,
this.url = url url = url,
this.name = name name = name,
this.color = color color = color,
setIcon(icon) icon = icon,
).apply {
caldavDao.insert(this) caldavDao.insert(this)
} }
if (!ignoreFinish) { if (!ignoreFinish) {

@ -1,26 +1,15 @@
package org.tasks.caldav package org.tasks.caldav
import android.content.Context import android.content.Context
import at.bitfire.dav4jvm.DavCalendar import at.bitfire.dav4jvm.*
import at.bitfire.dav4jvm.DavCalendar.Companion.MIME_ICALENDAR import at.bitfire.dav4jvm.DavCalendar.Companion.MIME_ICALENDAR
import at.bitfire.dav4jvm.DavResource
import at.bitfire.dav4jvm.Property
import at.bitfire.dav4jvm.PropertyRegistry
import at.bitfire.dav4jvm.Response
import at.bitfire.dav4jvm.Response.HrefRelation import at.bitfire.dav4jvm.Response.HrefRelation
import at.bitfire.dav4jvm.exception.DavException import at.bitfire.dav4jvm.exception.DavException
import at.bitfire.dav4jvm.exception.HttpException import at.bitfire.dav4jvm.exception.HttpException
import at.bitfire.dav4jvm.exception.ServiceUnavailableException import at.bitfire.dav4jvm.exception.ServiceUnavailableException
import at.bitfire.dav4jvm.exception.UnauthorizedException import at.bitfire.dav4jvm.exception.UnauthorizedException
import at.bitfire.dav4jvm.property.CalendarColor import at.bitfire.dav4jvm.property.*
import at.bitfire.dav4jvm.property.CalendarData
import at.bitfire.dav4jvm.property.CurrentUserPrincipal
import at.bitfire.dav4jvm.property.CurrentUserPrivilegeSet
import at.bitfire.dav4jvm.property.DisplayName
import at.bitfire.dav4jvm.property.GetCTag
import at.bitfire.dav4jvm.property.GetETag
import at.bitfire.dav4jvm.property.GetETag.Companion.fromResponse import at.bitfire.dav4jvm.property.GetETag.Companion.fromResponse
import at.bitfire.dav4jvm.property.SyncToken
import at.bitfire.ical4android.ICalendar.Companion.prodId import at.bitfire.ical4android.ICalendar.Companion.prodId
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
@ -39,25 +28,18 @@ import org.tasks.Strings.isNullOrEmpty
import org.tasks.analytics.Firebase import org.tasks.analytics.Firebase
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.caldav.iCalendar.Companion.fromVtodo import org.tasks.caldav.iCalendar.Companion.fromVtodo
import org.tasks.caldav.property.Invite import org.tasks.caldav.property.*
import org.tasks.caldav.property.OCAccess
import org.tasks.caldav.property.OCInvite
import org.tasks.caldav.property.OCOwnerPrincipal
import org.tasks.caldav.property.OCUser
import org.tasks.caldav.property.PropertyUtils.register import org.tasks.caldav.property.PropertyUtils.register
import org.tasks.caldav.property.ShareAccess
import org.tasks.caldav.property.ShareAccess.Companion.READ import org.tasks.caldav.property.ShareAccess.Companion.READ
import org.tasks.caldav.property.ShareAccess.Companion.READ_WRITE import org.tasks.caldav.property.ShareAccess.Companion.READ_WRITE
import org.tasks.caldav.property.ShareAccess.Companion.SHARED_OWNER import org.tasks.caldav.property.ShareAccess.Companion.SHARED_OWNER
import org.tasks.caldav.property.Sharee import org.tasks.data.*
import org.tasks.data.CaldavAccount
import org.tasks.data.CaldavAccount.Companion.ERROR_UNAUTHORIZED import org.tasks.data.CaldavAccount.Companion.ERROR_UNAUTHORIZED
import org.tasks.data.CaldavAccount.Companion.SERVER_OPEN_XCHANGE import org.tasks.data.CaldavAccount.Companion.SERVER_OPEN_XCHANGE
import org.tasks.data.CaldavAccount.Companion.SERVER_OWNCLOUD import org.tasks.data.CaldavAccount.Companion.SERVER_OWNCLOUD
import org.tasks.data.CaldavAccount.Companion.SERVER_SABREDAV import org.tasks.data.CaldavAccount.Companion.SERVER_SABREDAV
import org.tasks.data.CaldavAccount.Companion.SERVER_TASKS import org.tasks.data.CaldavAccount.Companion.SERVER_TASKS
import org.tasks.data.CaldavAccount.Companion.SERVER_UNKNOWN import org.tasks.data.CaldavAccount.Companion.SERVER_UNKNOWN
import org.tasks.data.CaldavCalendar
import org.tasks.data.CaldavCalendar.Companion.ACCESS_OWNER import org.tasks.data.CaldavCalendar.Companion.ACCESS_OWNER
import org.tasks.data.CaldavCalendar.Companion.ACCESS_READ_ONLY import org.tasks.data.CaldavCalendar.Companion.ACCESS_READ_ONLY
import org.tasks.data.CaldavCalendar.Companion.ACCESS_READ_WRITE import org.tasks.data.CaldavCalendar.Companion.ACCESS_READ_WRITE
@ -67,10 +49,6 @@ import org.tasks.data.CaldavCalendar.Companion.INVITE_DECLINED
import org.tasks.data.CaldavCalendar.Companion.INVITE_INVALID import org.tasks.data.CaldavCalendar.Companion.INVITE_INVALID
import org.tasks.data.CaldavCalendar.Companion.INVITE_NO_RESPONSE import org.tasks.data.CaldavCalendar.Companion.INVITE_NO_RESPONSE
import org.tasks.data.CaldavCalendar.Companion.INVITE_UNKNOWN import org.tasks.data.CaldavCalendar.Companion.INVITE_UNKNOWN
import org.tasks.data.CaldavDao
import org.tasks.data.CaldavTask
import org.tasks.data.PrincipalAccess
import org.tasks.data.PrincipalDao
import timber.log.Timber import timber.log.Timber
import java.io.IOException import java.io.IOException
import java.net.ConnectException import java.net.ConnectException
@ -178,13 +156,14 @@ class CaldavSynchronizer @Inject constructor(
} }
val color = calendarColor?.color ?: 0 val color = calendarColor?.color ?: 0
if (calendar == null) { if (calendar == null) {
calendar = CaldavCalendar() calendar = CaldavCalendar(
calendar.name = remoteName name = remoteName,
calendar.account = account.uuid account = account.uuid,
calendar.url = url url = url,
calendar.uuid = UUIDHelper.newUUID() uuid = UUIDHelper.newUUID(),
calendar.color = color color = color,
calendar.access = access access = access,
)
caldavDao.insert(calendar) caldavDao.insert(calendar)
} else if (calendar.name != remoteName } else if (calendar.name != remoteName
|| calendar.color != color || calendar.color != color

@ -12,61 +12,35 @@ import com.todoroo.astrid.data.Task
import org.tasks.themes.CustomIcons.LIST import org.tasks.themes.CustomIcons.LIST
@Entity(tableName = "caldav_lists") @Entity(tableName = "caldav_lists")
class CaldavCalendar : Parcelable { data class CaldavCalendar(
@PrimaryKey(autoGenerate = true) @PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "cdl_id")
@Transient @Transient
var id: Long = 0 @ColumnInfo(name = "cdl_id") var id: Long = 0,
@ColumnInfo(name = "cdl_account") val account: String? = Task.NO_UUID,
@ColumnInfo(name = "cdl_account") @ColumnInfo(name = "cdl_uuid") var uuid: String? = Task.NO_UUID,
var account: String? = Task.NO_UUID @ColumnInfo(name = "cdl_name") var name: String? = "",
@ColumnInfo(name = "cdl_color") var color: Int = 0,
@ColumnInfo(name = "cdl_uuid") @ColumnInfo(name = "cdl_ctag") var ctag: String? = null,
var uuid: String? = Task.NO_UUID @ColumnInfo(name = "cdl_url") var url: String? = "",
@ColumnInfo(name = "cdl_icon") private var icon: Int? = -1,
@ColumnInfo(name = "cdl_name") @ColumnInfo(name = "cdl_order") val order: Int = NO_ORDER,
var name: String? = "" @ColumnInfo(name = "cdl_access") var access: Int = ACCESS_OWNER,
) : Parcelable {
@ColumnInfo(name = "cdl_color")
var color = 0
@ColumnInfo(name = "cdl_ctag")
var ctag: String? = null
@ColumnInfo(name = "cdl_url")
var url: String? = ""
@ColumnInfo(name = "cdl_icon")
private var icon: Int? = -1
@ColumnInfo(name = "cdl_order")
var order = NO_ORDER
@ColumnInfo(name = "cdl_access")
var access = ACCESS_OWNER
constructor()
@Ignore
constructor(name: String?, uuid: String?) {
this.name = name
this.uuid = uuid
}
@Ignore @Ignore
constructor(source: Parcel) { constructor(source: Parcel): this(
id = source.readLong() id = source.readLong(),
account = source.readString() account = source.readString(),
uuid = source.readString() uuid = source.readString(),
name = source.readString() name = source.readString(),
color = source.readInt() color = source.readInt(),
ctag = source.readString() ctag = source.readString(),
url = source.readString() url = source.readString(),
icon = source.readInt() icon = source.readInt(),
order = source.readInt() order = source.readInt(),
access = source.readInt() access = source.readInt(),
} )
@Suppress("RedundantNullableReturnType")
fun getIcon(): Int? { fun getIcon(): Int? {
return (if (icon == null) LIST else icon!!) return (if (icon == null) LIST else icon!!)
} }
@ -92,42 +66,6 @@ class CaldavCalendar : Parcelable {
} }
} }
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is CaldavCalendar) return false
if (id != other.id) return false
if (account != other.account) return false
if (uuid != other.uuid) return false
if (name != other.name) return false
if (color != other.color) return false
if (ctag != other.ctag) return false
if (url != other.url) return false
if (icon != other.icon) return false
if (order != other.order) return false
if (access != other.access) return false
return true
}
override fun hashCode(): Int {
var result = id.hashCode()
result = 31 * result + (account?.hashCode() ?: 0)
result = 31 * result + (uuid?.hashCode() ?: 0)
result = 31 * result + (name?.hashCode() ?: 0)
result = 31 * result + color
result = 31 * result + (ctag?.hashCode() ?: 0)
result = 31 * result + (url?.hashCode() ?: 0)
result = 31 * result + (icon ?: 0)
result = 31 * result + order
result = 31 * result + access
return result
}
override fun toString(): String {
return "CaldavCalendar(id=$id, account=$account, uuid=$uuid, name=$name, color=$color, ctag=$ctag, url=$url, icon=$icon, order=$order, access=$access)"
}
companion object { companion object {
const val ACCESS_UNKNOWN = -1 const val ACCESS_UNKNOWN = -1
const val ACCESS_OWNER = 0 const val ACCESS_OWNER = 0
@ -140,10 +78,10 @@ class CaldavCalendar : Parcelable {
const val INVITE_DECLINED = 2 const val INVITE_DECLINED = 2
const val INVITE_INVALID = 3 const val INVITE_INVALID = 3
@JvmField val TABLE = Table("caldav_lists") val TABLE = Table("caldav_lists")
val ACCOUNT = TABLE.column("cdl_account") val ACCOUNT = TABLE.column("cdl_account")
@JvmField val UUID = TABLE.column("cdl_uuid") val UUID = TABLE.column("cdl_uuid")
@JvmField val NAME = TABLE.column("cdl_name") val NAME = TABLE.column("cdl_name")
@JvmField val CREATOR: Parcelable.Creator<CaldavCalendar> = object : Parcelable.Creator<CaldavCalendar> { @JvmField val CREATOR: Parcelable.Creator<CaldavCalendar> = object : Parcelable.Creator<CaldavCalendar> {
override fun createFromParcel(source: Parcel): CaldavCalendar = CaldavCalendar(source) override fun createFromParcel(source: Parcel): CaldavCalendar = CaldavCalendar(source)

@ -338,8 +338,11 @@ GROUP BY caldav_lists.cdl_uuid
private suspend fun getLocalList(context: Context, account: CaldavAccount): CaldavCalendar = private suspend fun getLocalList(context: Context, account: CaldavAccount): CaldavCalendar =
getCalendarsByAccount(account.uuid!!).getOrNull(0) getCalendarsByAccount(account.uuid!!).getOrNull(0)
?: CaldavCalendar(context.getString(R.string.default_list), UUIDHelper.newUUID()).apply { ?: CaldavCalendar(
this.account = account.uuid name = context.getString(R.string.default_list),
uuid = UUIDHelper.newUUID(),
account = account.uuid,
).apply {
insert(this) insert(this)
} }

@ -47,16 +47,18 @@ open class OpenTaskDao @Inject constructor(
while (it.moveToNext()) { while (it.moveToNext()) {
val accountType = it.getString(TaskLists.ACCOUNT_TYPE) val accountType = it.getString(TaskLists.ACCOUNT_TYPE)
val accountName = it.getString(TaskLists.ACCOUNT_NAME) val accountName = it.getString(TaskLists.ACCOUNT_NAME)
calendars.add(CaldavCalendar().apply { calendars.add(
id = it.getLong(TaskLists._ID) CaldavCalendar(
account = "$accountType:$accountName" id = it.getLong(TaskLists._ID),
name = it.getString(TaskLists.LIST_NAME) account = "$accountType:$accountName",
color = it.getInt(TaskLists.LIST_COLOR) name = it.getString(TaskLists.LIST_NAME),
url = it.getString(CommonSyncColumns._SYNC_ID) color = it.getInt(TaskLists.LIST_COLOR),
ctag = it.getString(TaskLists.SYNC_VERSION) url = it.getString(CommonSyncColumns._SYNC_ID),
ctag = it.getString(TaskLists.SYNC_VERSION)
?.let(::JSONObject) ?.let(::JSONObject)
?.getString("value") ?.getString("value")
}) )
)
} }
} }
calendars calendars
@ -164,16 +166,15 @@ open class OpenTaskDao @Inject constructor(
getLong(getColumnIndexOrThrow(columnName)) getLong(getColumnIndexOrThrow(columnName))
fun CaldavCalendar.toLocalCalendar(): CaldavCalendar { fun CaldavCalendar.toLocalCalendar(): CaldavCalendar {
val remote = this return CaldavCalendar(
return CaldavCalendar().apply {
uuid = UUID uuid = UUID
.nameUUIDFromBytes("${account.openTaskType()}${remote.url}".toByteArray()) .nameUUIDFromBytes("${account.openTaskType()}$url".toByteArray())
.toString() .toString(),
url = remote.url url = url,
color = remote.color color = color,
name = remote.name name = name,
account = remote.account account = account,
} )
} }
} }
} }

@ -85,12 +85,13 @@ class EtebaseSynchronizer @Inject constructor(
val meta = collection.meta val meta = collection.meta
val color = meta.color?.let { Color.parseColor(it) } ?: 0 val color = meta.color?.let { Color.parseColor(it) } ?: 0
if (calendar == null) { if (calendar == null) {
calendar = CaldavCalendar() calendar = CaldavCalendar(
calendar.name = meta.name name = meta.name,
calendar.account = account.uuid account = account.uuid,
calendar.url = collection.uid url = collection.uid,
calendar.uuid = UUIDHelper.newUUID() uuid = UUIDHelper.newUUID(),
calendar.color = color color = color,
)
caldavDao.insert(calendar) caldavDao.insert(calendar)
} else if (calendar.name != meta.name || calendar.color != color) { } else if (calendar.name != meta.name || calendar.color != color) {
calendar.name = meta.name calendar.name = meta.name

@ -28,9 +28,12 @@ class MigrateLocalWork @AssistedInject constructor(
val caldavAccount = caldavDao.getAccountByUuid(uuid) ?: return Result.failure() val caldavAccount = caldavDao.getAccountByUuid(uuid) ?: return Result.failure()
val caldavClient = clientProvider.forAccount(caldavAccount) val caldavClient = clientProvider.forAccount(caldavAccount)
caldavDao.getCalendarsByAccount(CaldavDao.LOCAL).forEach { caldavDao.getCalendarsByAccount(CaldavDao.LOCAL).forEach {
it.url = caldavClient.makeCollection(it.name!!, it.color) caldavDao.update(
it.account = caldavAccount.uuid it.copy(
caldavDao.update(it) url = caldavClient.makeCollection(it.name!!, it.color),
account = caldavAccount.uuid,
)
)
} }
preferences.setBoolean(R.string.p_lists_enabled, false) preferences.setBoolean(R.string.p_lists_enabled, false)
syncAdapters.sync() syncAdapters.sync()

@ -49,8 +49,9 @@ class MicrosoftListSettingsActivityViewModel @Inject constructor(
val body = Gson().toJson(taskList).toRequestBody(MEDIA_TYPE_JSON) val body = Gson().toJson(taskList).toRequestBody(MEDIA_TYPE_JSON)
val result = microsoftService.createList(body) val result = microsoftService.createList(body)
if (result.isSuccessful) { if (result.isSuccessful) {
val list = CaldavCalendar().apply { val list = CaldavCalendar(
account = this@MicrosoftListSettingsActivityViewModel.account.uuid account = this@MicrosoftListSettingsActivityViewModel.account.uuid
).apply {
result.body()?.applyTo(this) result.body()?.applyTo(this)
} }
caldavDao.insert(list) caldavDao.insert(list)

Loading…
Cancel
Save