mirror of
https://github.com/bitfireAT/davx5-ose.git
synced 2025-12-23 23:17:50 -05:00
[WIP] synctools: use new builders
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
recurringCalendar.updateEventAndExceptions(id, eventAndExceptions)
|
||||
|
||||
if (eventAndExceptions != null)
|
||||
recurringCalendar.updateEventAndExceptions(id, eventAndExceptions)
|
||||
else {
|
||||
// TODO handle invalid event
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user