From 1b456d213348fb855a42a0f3b4731ebf6708975c Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Mon, 8 Jun 2026 17:35:49 +0200 Subject: [PATCH] =?UTF-8?q?data:=20add=20TimeBridge=20helpers=20for=20epoc?= =?UTF-8?q?h-millis=20=E2=86=94=20kotlin.time.Instant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../calendula/data/calendar/TimeBridge.kt | 7 +++++ .../calendula/data/calendar/TimeBridgeTest.kt | 26 +++++++++++++++++++ .../{de => de-DE}/full_description.txt | 0 .../{de => de-DE}/short_description.txt | 0 4 files changed, 33 insertions(+) create mode 100644 app/src/main/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridge.kt create mode 100644 app/src/test/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridgeTest.kt rename fdroid-metadata/de.jeanlucmakiola.calendula/{de => de-DE}/full_description.txt (100%) rename fdroid-metadata/de.jeanlucmakiola.calendula/{de => de-DE}/short_description.txt (100%) diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridge.kt b/app/src/main/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridge.kt new file mode 100644 index 0000000..757c7a8 --- /dev/null +++ b/app/src/main/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridge.kt @@ -0,0 +1,7 @@ +package de.jeanlucmakiola.calendula.data.calendar + +import kotlin.time.Instant + +fun Long.toKotlinInstantFromEpochMillis(): Instant = Instant.fromEpochMilliseconds(this) + +fun Instant.toEpochMillis(): Long = toEpochMilliseconds() diff --git a/app/src/test/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridgeTest.kt b/app/src/test/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridgeTest.kt new file mode 100644 index 0000000..08de313 --- /dev/null +++ b/app/src/test/java/de/jeanlucmakiola/calendula/data/calendar/TimeBridgeTest.kt @@ -0,0 +1,26 @@ +package de.jeanlucmakiola.calendula.data.calendar + +import com.google.common.truth.Truth.assertThat +import kotlin.time.Instant +import org.junit.jupiter.api.Test + +class TimeBridgeTest { + + @Test + fun `epoch millis round-trips through Instant`() { + val original = 1_717_840_800_000L // 2024-06-08T10:00:00Z + val instant = original.toKotlinInstantFromEpochMillis() + assertThat(instant.toEpochMillis()).isEqualTo(original) + } + + @Test + fun `zero millis maps to Instant epoch`() { + assertThat(0L.toKotlinInstantFromEpochMillis()).isEqualTo(Instant.fromEpochMilliseconds(0L)) + } + + @Test + fun `negative epoch millis is supported`() { + val original = -1_000_000L + assertThat(original.toKotlinInstantFromEpochMillis().toEpochMillis()).isEqualTo(original) + } +} diff --git a/fdroid-metadata/de.jeanlucmakiola.calendula/de/full_description.txt b/fdroid-metadata/de.jeanlucmakiola.calendula/de-DE/full_description.txt similarity index 100% rename from fdroid-metadata/de.jeanlucmakiola.calendula/de/full_description.txt rename to fdroid-metadata/de.jeanlucmakiola.calendula/de-DE/full_description.txt diff --git a/fdroid-metadata/de.jeanlucmakiola.calendula/de/short_description.txt b/fdroid-metadata/de.jeanlucmakiola.calendula/de-DE/short_description.txt similarity index 100% rename from fdroid-metadata/de.jeanlucmakiola.calendula/de/short_description.txt rename to fdroid-metadata/de.jeanlucmakiola.calendula/de-DE/short_description.txt