OptIn to ExperimentalTime for the whole module.

This commit is contained in:
Benoit Marty
2025-07-02 18:00:25 +02:00
parent 00504097b9
commit 949d11415f
11 changed files with 8 additions and 22 deletions

View File

@@ -22,6 +22,14 @@ android {
}
}
kotlin {
compilerOptions {
optIn = listOf(
"kotlin.time.ExperimentalTime"
)
}
}
dependencies {
implementation(libs.dagger)
implementation(projects.libraries.core)

View File

@@ -20,9 +20,7 @@ import java.util.Locale
import javax.inject.Inject
import kotlin.math.absoluteValue
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
@OptIn(ExperimentalTime::class)
@SingleIn(AppScope::class)
class DateFormatters @Inject constructor(
localeChangeObserver: LocaleChangeObserver,
@@ -69,7 +67,6 @@ class DateFormatters @Inject constructor(
return dateTimeFormatters.dateWithFullFormatNoYearFormatter.format(localDateTime.toJavaLocalDateTime())
}
@OptIn(ExperimentalTime::class)
internal fun formatDate(
dateToFormat: LocalDateTime,
currentDate: LocalDateTime,

View File

@@ -11,10 +11,8 @@ import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.toLocalDateTime
import javax.inject.Inject
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
@OptIn(ExperimentalTime::class)
class LocalDateTimeProvider @Inject constructor(
private val clock: Clock,
private val timezoneProvider: TimezoneProvider,

View File

@@ -15,9 +15,7 @@ import io.element.android.libraries.di.AppScope
import kotlinx.datetime.TimeZone
import java.util.Locale
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
@OptIn(ExperimentalTime::class)
@Module
@ContributesTo(AppScope::class)
object DateFormatterModule {

View File

@@ -5,8 +5,6 @@
* Please see LICENSE files in the repository root for full details.
*/
@file:OptIn(ExperimentalTime::class)
package io.element.android.libraries.dateformatter.impl.previews
import androidx.compose.foundation.layout.Column
@@ -30,7 +28,6 @@ import io.element.android.libraries.dateformatter.impl.DefaultDateFormatter
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.allBooleans
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
@Preview

View File

@@ -18,13 +18,11 @@ import io.element.android.libraries.dateformatter.impl.DefaultDateFormatterDay
import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider
import kotlinx.datetime.TimeZone
import java.util.Locale
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
/**
* Create DefaultDateFormatter and set current time to the provided date.
*/
@OptIn(ExperimentalTime::class)
fun createFormatter(
context: Context,
currentDate: String,

View File

@@ -8,10 +8,8 @@
package io.element.android.libraries.dateformatter.impl.previews
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
@OptIn(ExperimentalTime::class)
class PreviewClock : Clock {
private var instant: Instant = Instant.fromEpochMilliseconds(0)

View File

@@ -14,10 +14,8 @@ import io.element.android.libraries.dateformatter.api.DateFormatterMode
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.annotation.Config
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
@OptIn(ExperimentalTime::class)
@RunWith(AndroidJUnit4::class)
@Config(qualifiers = "fr", sdk = [Build.VERSION_CODES.TIRAMISU])
class DefaultDateFormatterFrTest {

View File

@@ -14,10 +14,8 @@ import io.element.android.libraries.dateformatter.api.DateFormatterMode
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.annotation.Config
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
@OptIn(ExperimentalTime::class)
@RunWith(AndroidJUnit4::class)
@Config(qualifiers = "en", sdk = [Build.VERSION_CODES.TIRAMISU])
class DefaultDateFormatterTest {

View File

@@ -10,13 +10,11 @@ package io.element.android.libraries.dateformatter.impl
import io.element.android.tests.testutils.InstrumentationStringProvider
import kotlinx.datetime.TimeZone
import java.util.Locale
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
/**
* Create DefaultDateFormatter and set current time to the provided date.
*/
@OptIn(ExperimentalTime::class)
fun createFormatter(currentDate: String): DefaultDateFormatter {
val clock = FakeClock().apply { givenInstant(Instant.parse(currentDate)) }
val localDateTimeProvider = LocalDateTimeProvider(clock) { TimeZone.UTC }

View File

@@ -8,10 +8,8 @@
package io.element.android.libraries.dateformatter.impl
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
@OptIn(ExperimentalTime::class)
class FakeClock : Clock {
private var instant: Instant = Instant.fromEpochMilliseconds(0)