diff --git a/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.kt b/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.kt index 871b36e23..50c35c548 100644 --- a/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.kt +++ b/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.kt @@ -184,12 +184,11 @@ class CaldavSynchronizer @Inject constructor( } } val changed = members.filter { vCard: Response -> - val eTag = vCard[GetETag::class.java] - if (eTag == null || isNullOrEmpty(eTag.eTag)) { + val eTag = vCard[GetETag::class.java]?.eTag + if (eTag.isNullOrBlank()) { return@filter false } - val caldavTask = caldavDao.getTask(caldavCalendar.uuid!!, vCard.hrefName()) - caldavTask == null || eTag.eTag != caldavTask.etag + eTag != caldavDao.getTask(caldavCalendar.uuid!!, vCard.hrefName())?.etag } for (items in changed.chunked(30)) { val urls = items.map { it.href } @@ -201,24 +200,23 @@ class CaldavSynchronizer @Inject constructor( } Timber.d("MULTI %s", urls) for (vCard in responses) { - val eTag = vCard[GetETag::class.java] + val eTag = vCard[GetETag::class.java]?.eTag val url = vCard.href - if (eTag == null || isNullOrEmpty(eTag.eTag)) { + if (eTag.isNullOrBlank()) { throw DavException("Received CalDAV GET response without ETag for $url") } - val calendarData = vCard[CalendarData::class.java] - if (calendarData == null || isNullOrEmpty(calendarData.iCalendar)) { + val vtodo = vCard[CalendarData::class.java]?.iCalendar + if (vtodo.isNullOrBlank()) { throw DavException("Received CalDAV GET response without CalendarData for $url") } val fileName = vCard.hrefName() - val vtodo = calendarData.iCalendar - val remote = fromVtodo(vtodo!!) + val remote = fromVtodo(vtodo) if (remote == null) { Timber.e("Invalid VCALENDAR: %s", fileName) return } val caldavTask = caldavDao.getTask(caldavCalendar.uuid!!, fileName) - iCal.fromVtodo(caldavCalendar, caldavTask, remote, vtodo, fileName, eTag.eTag) + iCal.fromVtodo(caldavCalendar, caldavTask, remote, vtodo, fileName, eTag) } } caldavDao