Take advantage of the new fields added to the XML schedule file, allowing to remove some hardcoded values:
Day start and end times are now provided as ISO 8601 timestamps, instead of being hardcoded to 8:30 and 19:00 (local time)
Event start times are now provided as ISO8601 timestamps, and the UTC offset is now stored in the database in addition to the timestamp, instead of being hardcoded to UTC+1
The event URLs are now stored in the database instead of being built from custom logic. The event slug is no longer stored or used
3 new general fields are parsed and stored in the Datastore key-value pairs: conference id (named acronym in XML), conference title (used for the bookmarks export file name) and schedule base URL (now used to build the speaker URL).
Note: the database year is no more used to build the speaker URL. The end goal is to completely remove it and replace it with the conference id as unique identifier in the bookmarks export file, however for now it is kept for compatibility reasons.
UserSettingsProvider now returns a sealed interface named TimeZoneMode instead of a ZoneId. TimeZoneMode.Default means that the default time zone of the event must be used, and TimeZoneMode.Device means that the time zone must be overridden with the provided ZoneId.
The XML parser has been updated to parse the file in two steps: first the conference data which appears at the top of the file, then the events in a streaming way like before. The returned type is now Schedule instead of Sequence<DetailedEvent>.
Take advantage of the new fields added to the XML schedule file, allowing to remove some hardcoded values:
acronym
in XML), conference title (used for the bookmarks export file name) and schedule base URL (now used to build the speaker URL).UserSettingsProvider
now returns a sealed interface namedTimeZoneMode
instead of aZoneId
.TimeZoneMode.Default
means that the default time zone of the event must be used, andTimeZoneMode.Device
means that the time zone must be overridden with the providedZoneId
.The XML parser has been updated to parse the file in two steps: first the conference data which appears at the top of the file, then the events in a streaming way like before. The returned type is now
Schedule
instead ofSequence<DetailedEvent>
.