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

Commit b094066a authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

Merge branch 'upstream/master' into 1720-Update_to_upstream

parents 30e8d5e7 b376d2ec
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -116,7 +116,7 @@ dependencies {
    implementation("org.apache.commons:commons-text:1.3")

    // ez-vcard to parse/generate vCards
    api("com.googlecode.ez-vcard:ez-vcard:0.12.0") {    // requires Java 8
    api("com.googlecode.ez-vcard:ez-vcard:0.12.1") {    // requires Java 8
        // hCard functionality not needed
        exclude(group = "org.jsoup")
        exclude(group = "org.freemarker")
+13 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ import org.junit.Test
import java.time.Instant
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.ZoneOffset
import java.time.ZonedDateTime

class EventBuilderTest {

@@ -62,6 +64,17 @@ class EventBuilderTest {
        }
    }

    @Test
    fun testStartDate_DateTime_WithOffset() {
        EventBuilder(Uri.EMPTY, null, Contact().apply {
            birthDay = Birthday(
                ZonedDateTime.of(1984, 7, 20, 0, 0, 0, 0, ZoneOffset.ofHours(1))
            )
        }, false).build().also { result ->
            assertEquals("1984-07-19T23:00:00.000Z", result[0].values[CommonDataKinds.Event.START_DATE])
        }
    }


    @Test
    fun testStartDate_PartialDate_NoYear() {
+3 −6
Original line number Diff line number Diff line
@@ -125,13 +125,10 @@ class ContactReader internal constructor(val vCard: VCard, val downloader: Conta
                is Uid ->
                    c.uid = uriToUid(prop.value)

                is Kind -> {        // includes XAddressBookServerKind
                    // c.group = prop.isGroup    // https://github.com/mangstadt/ez-vcard/issues/140
                    c.group = prop.value.equals(Kind.GROUP, true)
                }
                is Member -> {      // includes XAddressBookServerMember
                is Kind ->      // includes XAddressBookServerKind
                    c.group = prop.isGroup
                is Member ->    // includes XAddressBookServerMember
                    uriToUid(prop.uri)?.let { c.members += it }
                }

                is FormattedName ->
                    c.displayName = StringUtils.trimToNull(prop.value)
+7 −8
Original line number Diff line number Diff line
@@ -11,12 +11,7 @@ import at.bitfire.vcard4android.Constants
import at.bitfire.vcard4android.Contact
import ezvcard.property.DateOrTimeProperty
import ezvcard.util.PartialDate
import java.time.Instant
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.LocalTime
import java.time.ZoneOffset
import java.time.ZonedDateTime
import java.time.*
import java.time.format.DateTimeFormatter
import java.util.LinkedList
import java.util.Locale
@@ -62,8 +57,7 @@ class EventBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readO
        val androidStr: String? =
            when {
                dateOrTime.date != null -> {
                    val date = dateOrTime.date
                    when (date) {
                    when (val date = dateOrTime.date) {
                        is Instant -> {
                            val utc = ZonedDateTime.ofInstant(date, ZoneOffset.UTC)
                            DateTimeFormatter.ofPattern(DATE_AND_TIME_FORMAT, Locale.US).format(utc)
@@ -72,6 +66,11 @@ class EventBuilder(dataRowUri: Uri, rawContactId: Long?, contact: Contact, readO
                            DateTimeFormatter.ofPattern(FULL_DATE_FORMAT, Locale.US).format(date)
                        is LocalDateTime ->
                            DateTimeFormatter.ofPattern(DATE_AND_TIME_FORMAT, Locale.US).format(date)
                        is ZonedDateTime -> {
                            // time zones not supported by Contacts storage, convert to UTC
                            val utc = date.withZoneSameInstant(ZoneOffset.UTC)
                            DateTimeFormatter.ofPattern(DATE_AND_TIME_FORMAT, Locale.US).format(utc)
                        }
                        else ->
                            null
                    }
+2 −2
Original line number Diff line number Diff line
@@ -563,7 +563,7 @@ class ContactWriterTest {

        val stream = ByteArrayOutputStream()
        generator.writeCard(stream, true)
        assertEquals("[\"vcard\",[[\"version\",{},\"text\",\"4.0\"],[\"prodid\",{},\"text\",\"ez-vcard 0.12.0\"],[\"fn\",{},\"text\",\"\"],[\"rev\",{},\"timestamp\",\"2021-07-30T01:02:03+00:00\"]]]", stream.toString())
        assertEquals("[\"vcard\",[[\"version\",{},\"text\",\"4.0\"],[\"prodid\",{},\"text\",\"ez-vcard 0.12.1\"],[\"fn\",{},\"text\",\"\"],[\"rev\",{},\"timestamp\",\"2021-07-30T01:02:03+00:00\"]]]", stream.toString())
    }


@@ -576,7 +576,7 @@ class ContactWriterTest {
        generator.writeCard(stream, false)
        assertEquals("BEGIN:VCARD\r\n" +
                "VERSION:4.0\r\n" +
                "PRODID:ez-vcard 0.12.0\r\n" +
                "PRODID:ez-vcard 0.12.1\r\n" +
                "FN:\r\n" +
                "REV:20210730T010203+0000\r\n" +
                "END:VCARD\r\n", stream.toString())
Loading