Skip to content

Commit ce46844

Browse files
committed
Pass time zone registry to androidifyTimeZone
1 parent 411e03e commit ce46844

File tree

4 files changed

+14
-13
lines changed

4 files changed

+14
-13
lines changed

lib/src/androidTest/kotlin/at/bitfire/ical4android/util/AndroidTimeUtilsTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class AndroidTimeUtilsTest {
5454
@Test
5555
fun testAndroidifyTimeZone_Null() {
5656
// must not throw an exception
57-
AndroidTimeUtils.androidifyTimeZone(null)
57+
AndroidTimeUtils.androidifyTimeZone(null, tzRegistry)
5858
}
5959

6060
// androidifyTimeZone
@@ -64,7 +64,7 @@ class AndroidTimeUtilsTest {
6464
fun testAndroidifyTimeZone_DateProperty_Date() {
6565
// dates (without time) should be ignored
6666
val dtStart = DtStart(Date("20150101"))
67-
AndroidTimeUtils.androidifyTimeZone(dtStart)
67+
AndroidTimeUtils.androidifyTimeZone(dtStart, tzRegistry)
6868
assertTrue(DateUtils.isDate(dtStart))
6969
assertNull(dtStart.timeZone)
7070
assertFalse(dtStart.isUtc)
@@ -74,7 +74,7 @@ class AndroidTimeUtilsTest {
7474
fun testAndroidifyTimeZone_DateProperty_KnownTimeZone() {
7575
// date-time with known time zone should be unchanged
7676
val dtStart = DtStart("20150101T230350", tzBerlin)
77-
AndroidTimeUtils.androidifyTimeZone(dtStart)
77+
AndroidTimeUtils.androidifyTimeZone(dtStart, tzRegistry)
7878
assertEquals(tzBerlin, dtStart.timeZone)
7979
assertFalse(dtStart.isUtc)
8080
}
@@ -84,7 +84,7 @@ class AndroidTimeUtilsTest {
8484
// time zone that is not available on Android systems should be rewritten to system default
8585
val dtStart = DtStart("20150101T031000", tzCustom)
8686
// 20150101T031000 CustomTime [+0310] = 20150101T000000 UTC = 1420070400 UNIX
87-
AndroidTimeUtils.androidifyTimeZone(dtStart)
87+
AndroidTimeUtils.androidifyTimeZone(dtStart, tzRegistry)
8888
assertEquals(1420070400000L, dtStart.date.time)
8989
assertEquals(tzIdDefault, dtStart.timeZone.id)
9090
assertFalse(dtStart.isUtc)
@@ -94,7 +94,7 @@ class AndroidTimeUtilsTest {
9494
fun testAndroidifyTimeZone_DateProperty_FloatingTime() {
9595
// times with floating time should be treated as system default time zone
9696
val dtStart = DtStart("20150101T230350")
97-
AndroidTimeUtils.androidifyTimeZone(dtStart)
97+
AndroidTimeUtils.androidifyTimeZone(dtStart, tzRegistry)
9898
assertEquals(DateTime("20150101T230350", tzDefault).time, dtStart.date.time)
9999
assertEquals(tzIdDefault, dtStart.timeZone.id)
100100
assertFalse(dtStart.isUtc)
@@ -104,7 +104,7 @@ class AndroidTimeUtilsTest {
104104
fun testAndroidifyTimeZone_DateProperty_UTC() {
105105
// times with UTC should be unchanged
106106
val dtStart = DtStart("20150101T230350Z")
107-
AndroidTimeUtils.androidifyTimeZone(dtStart)
107+
AndroidTimeUtils.androidifyTimeZone(dtStart, tzRegistry)
108108
assertEquals(1420153430000L, dtStart.date.time)
109109
assertNull(dtStart.timeZone)
110110
assertTrue(dtStart.isUtc)

lib/src/main/kotlin/at/bitfire/ical4android/AndroidEvent.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,8 @@ class AndroidEvent(
794794
val allDay = DateUtils.isDate(dtStart)
795795

796796
// make sure that time zone is supported by Android
797-
AndroidTimeUtils.androidifyTimeZone(dtStart)
797+
val tzRegistry = TimeZoneRegistryFactory.getInstance().createRegistry()
798+
AndroidTimeUtils.androidifyTimeZone(dtStart, tzRegistry)
798799

799800
val recurring = event.rRules.isNotEmpty() || event.rDates.isNotEmpty()
800801

@@ -830,7 +831,7 @@ class AndroidEvent(
830831
.withValue(Events.EVENT_TIMEZONE, AndroidTimeUtils.storageTzId(dtStart))
831832

832833
var dtEnd = event.dtEnd
833-
AndroidTimeUtils.androidifyTimeZone(dtEnd)
834+
AndroidTimeUtils.androidifyTimeZone(dtEnd, tzRegistry)
834835

835836
var duration =
836837
if (dtEnd == null)
@@ -949,7 +950,7 @@ class AndroidEvent(
949950
}
950951
}
951952

952-
AndroidTimeUtils.androidifyTimeZone(dtEnd)
953+
AndroidTimeUtils.androidifyTimeZone(dtEnd, tzRegistry)
953954
builder .withValue(Events.DTEND, dtEnd.date.time)
954955
.withValue(Events.EVENT_END_TIMEZONE, AndroidTimeUtils.storageTzId(dtEnd))
955956
.withValue(Events.DURATION, null)

lib/src/main/kotlin/at/bitfire/ical4android/DmfsTask.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,8 +539,8 @@ abstract class DmfsTask(
539539
builder .withValue(Tasks.IS_ALLDAY, 1)
540540
.withValue(Tasks.TZ, null)
541541
} else {
542-
AndroidTimeUtils.androidifyTimeZone(task.dtStart)
543-
AndroidTimeUtils.androidifyTimeZone(task.due)
542+
AndroidTimeUtils.androidifyTimeZone(task.dtStart, tzRegistry)
543+
AndroidTimeUtils.androidifyTimeZone(task.due, tzRegistry)
544544
builder .withValue(Tasks.IS_ALLDAY, 0)
545545
.withValue(Tasks.TZ, getTimeZone().id)
546546
}

lib/src/main/kotlin/at/bitfire/ical4android/util/AndroidTimeUtils.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ object AndroidTimeUtils {
6868
* use [storageTzId].
6969
*
7070
* @param date [DateProperty] to validate. Values which are not DATE-TIME will be ignored.
71+
* @param tzRegistry time zone registry to get time zones from
7172
*/
72-
fun androidifyTimeZone(date: DateProperty?) {
73+
fun androidifyTimeZone(date: DateProperty?, tzRegistry: TimeZoneRegistry) {
7374
if (DateUtils.isDateTime(date) && date?.isUtc == false) {
7475
val tzID = DateUtils.findAndroidTimezoneID(date.timeZone?.id)
75-
val tzRegistry = TimeZoneRegistryFactory.getInstance().createRegistry()
7676
date.timeZone = tzRegistry.getTimeZone(tzID)
7777
}
7878
}

0 commit comments

Comments
 (0)