See also: https://github.com/bitfireAT/davx5/issues/670
We can use the new event architecture (at.bitfire.synctools.{icalendar,mapping.calendar,storage.calendar}) as a template.
Done when:
- Storage, mapping and iCalendar access are separated
- No separate data class (
Task) required anymore
- Storage API is in
at.bitfire.synctools.storage.tasks package
- Collection (similar to calendar): task list
- Are exceptions of recurring tasks supported? If yes, we need additional classes
- Item: task, stored in
Entity that represents rows in task provider
- Mapping API is in
at.bitfire.synctools.mapping.tasks package
- iCalendar API is in
at.bitfire.synctools.icalendar package
- All classes have proper tests
Issues + PRs
See also: https://github.com/bitfireAT/davx5/issues/670
We can use the new event architecture (
at.bitfire.synctools.{icalendar,mapping.calendar,storage.calendar}) as a template.Done when:
Task) required anymoreat.bitfire.synctools.storage.taskspackageEntitythat represents rows in task providerat.bitfire.synctools.mapping.taskspackageat.bitfire.synctools.icalendarpackageIssues + PRs
Like LocalCalendar/LocalEvent: provide all fields for DAVx5 #15
Like Remove possibility to subclass AndroidEvent #20
Like Don't allow subclassing of AndroidCalendar anymore #23
Like Move logic from
AndroidCalendarcompanion object toAndroidCalendarProvider#28Like Introduce mapping classes #32
Like
Event: extractEventReader/EventWriter#41Like refactor
AndroidEvent; introduceAndroidEvent2withEntityas data object #40Like Read/write events as
EventAndExceptionsdata object #45Like Add new Android event builder logic #65
Like Event processor: create processor interface #76
Like Migrate event sub-row builders #67
Like More builders #71
Like More processors #79
Like Refactor remaining field processing into dedicated processors #81
Like Workaround: don't UPDATE
eventStatustonull#85Like Only generate recurrence fields/properties for recurring main events #89
Like Ignore recurrence rules whose UNTIL is on or before DTSTART #95
Like Split
TimeFieldsProcessor#106Like Remove
EventValidator#107