[WIP] synctools: use new builders

This commit is contained in:
Ricki Hirner
2025-08-12 20:55:06 +02:00
parent 60eba44541
commit a89483d8c7
4 changed files with 26 additions and 18 deletions

View File

@@ -11,7 +11,7 @@ import androidx.core.content.contentValuesOf
import at.bitfire.ical4android.Event
import at.bitfire.ical4android.util.MiscUtils.asSyncAdapter
import at.bitfire.synctools.icalendar.AssociatedEvents
import at.bitfire.synctools.mapping.calendar.LegacyAndroidEventBuilder2
import at.bitfire.synctools.mapping.calendar.AndroidEventBuilder
import at.bitfire.synctools.storage.BatchOperation
import at.bitfire.synctools.storage.calendar.AndroidCalendar
import at.bitfire.synctools.storage.calendar.AndroidEvent2
@@ -64,16 +64,17 @@ class LocalCalendar @AssistedInject constructor(
private val recurringCalendar = AndroidRecurringCalendar(androidCalendar)
fun addFromRemote(event: AssociatedEvents, fileName: String, eTag: String?, scheduleTag: String?, flags: Int) {
val mapped = LegacyAndroidEventBuilder2(
calendar = androidCalendar,
event = event,
id = null,
fun addFromRemote(associatedEvents: AssociatedEvents, legacyEvent: Event, fileName: String, eTag: String?, scheduleTag: String?, flags: Int) {
val mapped = AndroidEventBuilder(
syncId = fileName,
eTag = eTag,
scheduleTag = scheduleTag,
flags = flags
).build()
flags = flags,
associatedEvents = associatedEvents,
androidCalendar = androidCalendar,
event = legacyEvent,
id = null
).build() ?: TODO("Handle invalid event")
recurringCalendar.addEventAndExceptions(mapped)
}

View File

@@ -9,7 +9,7 @@ import androidx.core.content.contentValuesOf
import at.bitfire.ical4android.Event
import at.bitfire.ical4android.LegacyAndroidCalendar
import at.bitfire.synctools.icalendar.AssociatedEvents
import at.bitfire.synctools.mapping.calendar.LegacyAndroidEventBuilder2
import at.bitfire.synctools.mapping.calendar.AndroidEventBuilder
import at.bitfire.synctools.storage.LocalStorageException
import at.bitfire.synctools.storage.calendar.AndroidEvent2
import at.bitfire.synctools.storage.calendar.AndroidRecurringCalendar
@@ -38,16 +38,20 @@ class LocalEvent(
override fun updateFromRemote(data: AssociatedEvents, fileName: String?, eTag: String?, scheduleTag: String?, flags: Int) {
val eventAndExceptions = LegacyAndroidEventBuilder2(
calendar = androidEvent.calendar,
event = data,
id = id,
syncId = fileName,
val eventAndExceptions = AndroidEventBuilder(
associatedEvents = data,
calendarId = androidEvent.calendar.id,
syncId = fileName ?: TODO(),
eTag = eTag,
scheduleTag = scheduleTag,
flags = flags
).build()
if (eventAndExceptions != null)
recurringCalendar.updateEventAndExceptions(id, eventAndExceptions)
else {
// TODO handle invalid event
}
}

View File

@@ -266,7 +266,7 @@ class CalendarSyncManager @AssistedInject constructor(
if (vEvents.size > 1)
logger.warning("Received iCalendar with more than one UID; ignoring all but first one")
vEvents.values.firstOrNull
vEvents.values.firstOrNull()
} catch (e: InvalidRemoteResourceException) {
logger.log(Level.SEVERE, "Received invalid iCalendar, ignoring", e)
notifyInvalidResource(e, fileName)
@@ -278,6 +278,9 @@ class CalendarSyncManager @AssistedInject constructor(
return
}
// TODO we need both the new associated event and the legacy event here,
// then pass both to addupdateFromRemote / updateFromRemote.
// TODO add default reminder
/* set default reminder for non-full-day events, if requested
val defaultAlarmMinBefore = accountSettings.getDefaultAlarm()
@@ -305,7 +308,7 @@ class CalendarSyncManager @AssistedInject constructor(
} else {
logger.log(Level.INFO, "Adding $fileName to local calendar", vEvent)
localCollection.addFromRemote(
event = vEvent,
associatedEvents = vEvent,
fileName = fileName,
eTag = eTag,
scheduleTag = scheduleTag,

View File

@@ -20,7 +20,7 @@ androidx-test-junit = "1.3.0"
androidx-work = "2.10.3"
bitfire-cert4android = "41009d48ed"
bitfire-dav4jvm = "cb6065b262"
bitfire-synctools = "54557601b8"
bitfire-synctools = "4d847edf27"
compose-accompanist = "0.37.3"
compose-bom = "2025.07.00"
dnsjava = "3.6.3"