Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit a51f7e1a authored by Ricki Hirner's avatar Ricki Hirner Committed by GitHub
Browse files

Ignore custom VTIMEZONEs that can't be properly handled by ical4j (#96)



* Improve build speed by enabling gradle configuration cache

* Added rules for fixing Dublin timezone

Signed-off-by: default avatarArnau Mora <arnyminer.z@gmail.com>

* Added rules for fixing Dublin timezone

Signed-off-by: default avatarArnau Mora <arnyminer.z@gmail.com>

* Added test for Dublin preprocessing

Signed-off-by: default avatarArnau Mora <arnyminer.z@gmail.com>

* Applying rules for properties and components

Signed-off-by: default avatarArnau Mora <arnyminer.z@gmail.com>

* Added test for `testTzDublin_external`

Signed-off-by: default avatarArnau Mora <arnyminer.z@gmail.com>

* Changed rule replacement method

Signed-off-by: default avatarArnau Mora <arnyminer.z@gmail.com>

* Use ValidatingTimeZoneRegistry to ignore time zone updates that can't be handled properly by ical4j

* Rollback

Signed-off-by: default avatarArnau Mora Gras <arnyminerz@proton.me>

* Enable ical4j flag to support timezone definitions with negative DST

* Optimize imports

* Remove duplicate test

---------

Signed-off-by: default avatarArnau Mora <arnyminer.z@gmail.com>
Signed-off-by: default avatarArnau Mora Gras <arnyminerz@proton.me>
Co-authored-by: default avatarArnau Mora <arnyminerz@proton.me>
parent b6fc7727
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -20,9 +20,13 @@ import at.bitfire.ical4android.util.MiscUtils.ContentProviderClientHelper.closeC
import at.bitfire.ical4android.util.MiscUtils.UriHelper.asSyncAdapter
import net.fortuna.ical4j.model.property.DtEnd
import net.fortuna.ical4j.model.property.DtStart
import org.junit.*
import org.junit.AfterClass
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Before
import org.junit.BeforeClass
import org.junit.ClassRule
import org.junit.Test

class AndroidCalendarTest {

+6 −4
Original line number Diff line number Diff line
@@ -7,7 +7,9 @@ package at.bitfire.ical4android
import net.fortuna.ical4j.model.DefaultTimeZoneRegistryFactory
import net.fortuna.ical4j.model.TimeZone
import net.fortuna.ical4j.model.TimeZoneRegistry
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNull
import org.junit.Assume
import org.junit.Before
import org.junit.Test
@@ -17,9 +19,9 @@ import java.time.zone.ZoneRulesException
class AndroidCompatTimeZoneRegistryTest {

    lateinit var ical4jRegistry: TimeZoneRegistry
    lateinit var registry: TimeZoneRegistry
    lateinit var registry: AndroidCompatTimeZoneRegistry

    val systemKnowsKyiv =
    private val systemKnowsKyiv =
        try {
            ZoneId.of("Europe/Kyiv")
            true
@@ -29,7 +31,7 @@ class AndroidCompatTimeZoneRegistryTest {

    @Before
    fun createRegistry() {
        ical4jRegistry = DefaultTimeZoneRegistryFactory.getInstance().createRegistry()
        ical4jRegistry = DefaultTimeZoneRegistryFactory().createRegistry()
        registry = AndroidCompatTimeZoneRegistry.Factory().createRegistry()
    }

+34 −5
Original line number Diff line number Diff line
@@ -10,7 +10,13 @@ import android.content.ContentUris
import android.content.ContentValues
import android.database.DatabaseUtils
import android.net.Uri
import android.provider.CalendarContract.*
import android.provider.CalendarContract.ACCOUNT_TYPE_LOCAL
import android.provider.CalendarContract.AUTHORITY
import android.provider.CalendarContract.Attendees
import android.provider.CalendarContract.Calendars
import android.provider.CalendarContract.Events
import android.provider.CalendarContract.ExtendedProperties
import android.provider.CalendarContract.Reminders
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.rule.GrantPermissionRule
import at.bitfire.ical4android.impl.TestCalendar
@@ -19,13 +25,36 @@ import at.bitfire.ical4android.util.AndroidTimeUtils
import at.bitfire.ical4android.util.DateUtils
import at.bitfire.ical4android.util.MiscUtils.ContentProviderClientHelper.closeCompat
import at.bitfire.ical4android.util.MiscUtils.UriHelper.asSyncAdapter
import net.fortuna.ical4j.model.*
import net.fortuna.ical4j.model.Date
import net.fortuna.ical4j.model.DateList
import net.fortuna.ical4j.model.DateTime
import net.fortuna.ical4j.model.Parameter
import net.fortuna.ical4j.model.ParameterList
import net.fortuna.ical4j.model.Property
import net.fortuna.ical4j.model.component.VAlarm
import net.fortuna.ical4j.model.parameter.*
import net.fortuna.ical4j.model.parameter.Cn
import net.fortuna.ical4j.model.parameter.CuType
import net.fortuna.ical4j.model.parameter.Email
import net.fortuna.ical4j.model.parameter.Language
import net.fortuna.ical4j.model.parameter.PartStat
import net.fortuna.ical4j.model.parameter.Related
import net.fortuna.ical4j.model.parameter.Role
import net.fortuna.ical4j.model.parameter.Rsvp
import net.fortuna.ical4j.model.parameter.Value
import net.fortuna.ical4j.model.property.*
import net.fortuna.ical4j.util.TimeZones
import org.junit.*
import org.junit.Assert.*
import org.junit.After
import org.junit.AfterClass
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.BeforeClass
import org.junit.ClassRule
import org.junit.Test
import java.net.URI
import java.time.Duration
import java.time.Period
+3 −1
Original line number Diff line number Diff line
@@ -15,7 +15,9 @@ import org.dmfs.tasks.contract.TaskContract
import org.dmfs.tasks.contract.TaskContract.Properties
import org.dmfs.tasks.contract.TaskContract.Property.Relation
import org.dmfs.tasks.contract.TaskContract.Tasks
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.Test

class AndroidTaskListTest(providerName: TaskProvider.ProviderName):
+25 −4
Original line number Diff line number Diff line
@@ -16,15 +16,36 @@ import at.bitfire.ical4android.util.DateUtils
import net.fortuna.ical4j.model.Date
import net.fortuna.ical4j.model.DateList
import net.fortuna.ical4j.model.DateTime
import net.fortuna.ical4j.model.parameter.*
import net.fortuna.ical4j.model.parameter.Email
import net.fortuna.ical4j.model.parameter.RelType
import net.fortuna.ical4j.model.parameter.TzId
import net.fortuna.ical4j.model.property.*
import net.fortuna.ical4j.model.parameter.Value
import net.fortuna.ical4j.model.parameter.XParameter
import net.fortuna.ical4j.model.property.Clazz
import net.fortuna.ical4j.model.property.Completed
import net.fortuna.ical4j.model.property.DtStart
import net.fortuna.ical4j.model.property.Due
import net.fortuna.ical4j.model.property.Duration
import net.fortuna.ical4j.model.property.ExDate
import net.fortuna.ical4j.model.property.Geo
import net.fortuna.ical4j.model.property.Organizer
import net.fortuna.ical4j.model.property.RDate
import net.fortuna.ical4j.model.property.RRule
import net.fortuna.ical4j.model.property.RelatedTo
import net.fortuna.ical4j.model.property.Status
import net.fortuna.ical4j.model.property.XProperty
import org.dmfs.tasks.contract.TaskContract
import org.dmfs.tasks.contract.TaskContract.*
import org.dmfs.tasks.contract.TaskContract.Properties
import org.dmfs.tasks.contract.TaskContract.Property.Category
import org.dmfs.tasks.contract.TaskContract.Property.Relation
import org.dmfs.tasks.contract.TaskContract.PropertyColumns
import org.dmfs.tasks.contract.TaskContract.Tasks
import org.junit.After
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import java.time.ZoneId
Loading