You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 26, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on May 26, 2026. It is now read-only.
[ical4j 4.x] Update / drop AndroidCompatTimeZoneRegistry #198
AndroidCompatTimeZoneRegistry was introduced mainly for one case where a time zone was known to Android and ical4j with two different names (Europe/Kiev and Europe/Kyiv), without alias in ical4j. The problem was also that the aliases were not updated regularly because we couldn't update ical4j.
I think this class can be completely dropped. However that should be checked and then the class should either be rewritten or dropped. To check:
Example: getTimeZone("Europe/Kiev") returns a TimeZone with TZID:Europe/Kyiv since ical4j/3.2.5,
but most Android devices don't now Europe/Kyiv yet.
We can check whether this problem still exists with ical4j 4.x (that it writes Europe/Kyiv to Androids which still only know Europe/Kiev) and the AndroidCompatTimeZoneRegistry is still needed.
Note
If the class is dropped, ical4j.properties needs to be updated, too. We can just remove net.fortuna.ical4j.timezone.registry= to use the default value (DefaultTimezoneRegistryFactory).
Done if:
AndroidCompatTimeZoneRegistry is dropped (also remove in ical4j.properties!), or
AndroidCompatTimeZoneRegistry is rewritten to ical4j 4.x
If the only reason is to map the TZID for Android in a certain way, it should probably be handled by "androidifyTimezone" or so instead so the class can probably be dropped.
I'm quite sure that the class can be dropped. So the question is rather how to map specific TZIDs. This can probably be done either in DatePropertyTzMapper.systemTzId or in the logic that drives DatePropertyRule and DateListPropertyRule (used in ICalPreprocessor).
Activity
rfc2822 commentedon Mar 11, 2026
If the only reason is to map the TZID for Android in a certain way, it should probably be handled by "androidifyTimezone" or so instead so the class can probably be dropped.I'm quite sure that the class can be dropped. So the question is rather how to map specific TZIDs. This can probably be done either in
DatePropertyTzMapper.systemTzIdor in the logic that drivesDatePropertyRuleandDateListPropertyRule(used inICalPreprocessor).