OptIn to ExperimentalTime for the whole module.
This commit is contained in:
@@ -22,6 +22,14 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
compilerOptions {
|
||||||
|
optIn = listOf(
|
||||||
|
"kotlin.time.ExperimentalTime"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.dagger)
|
implementation(libs.dagger)
|
||||||
implementation(projects.libraries.core)
|
implementation(projects.libraries.core)
|
||||||
|
|||||||
@@ -20,9 +20,7 @@ import java.util.Locale
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.math.absoluteValue
|
import kotlin.math.absoluteValue
|
||||||
import kotlin.time.Clock
|
import kotlin.time.Clock
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
@SingleIn(AppScope::class)
|
@SingleIn(AppScope::class)
|
||||||
class DateFormatters @Inject constructor(
|
class DateFormatters @Inject constructor(
|
||||||
localeChangeObserver: LocaleChangeObserver,
|
localeChangeObserver: LocaleChangeObserver,
|
||||||
@@ -69,7 +67,6 @@ class DateFormatters @Inject constructor(
|
|||||||
return dateTimeFormatters.dateWithFullFormatNoYearFormatter.format(localDateTime.toJavaLocalDateTime())
|
return dateTimeFormatters.dateWithFullFormatNoYearFormatter.format(localDateTime.toJavaLocalDateTime())
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
internal fun formatDate(
|
internal fun formatDate(
|
||||||
dateToFormat: LocalDateTime,
|
dateToFormat: LocalDateTime,
|
||||||
currentDate: LocalDateTime,
|
currentDate: LocalDateTime,
|
||||||
|
|||||||
@@ -11,10 +11,8 @@ import kotlinx.datetime.LocalDateTime
|
|||||||
import kotlinx.datetime.toLocalDateTime
|
import kotlinx.datetime.toLocalDateTime
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.time.Clock
|
import kotlin.time.Clock
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
class LocalDateTimeProvider @Inject constructor(
|
class LocalDateTimeProvider @Inject constructor(
|
||||||
private val clock: Clock,
|
private val clock: Clock,
|
||||||
private val timezoneProvider: TimezoneProvider,
|
private val timezoneProvider: TimezoneProvider,
|
||||||
|
|||||||
@@ -15,9 +15,7 @@ import io.element.android.libraries.di.AppScope
|
|||||||
import kotlinx.datetime.TimeZone
|
import kotlinx.datetime.TimeZone
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import kotlin.time.Clock
|
import kotlin.time.Clock
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
@Module
|
@Module
|
||||||
@ContributesTo(AppScope::class)
|
@ContributesTo(AppScope::class)
|
||||||
object DateFormatterModule {
|
object DateFormatterModule {
|
||||||
|
|||||||
@@ -5,8 +5,6 @@
|
|||||||
* Please see LICENSE files in the repository root for full details.
|
* Please see LICENSE files in the repository root for full details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@file:OptIn(ExperimentalTime::class)
|
|
||||||
|
|
||||||
package io.element.android.libraries.dateformatter.impl.previews
|
package io.element.android.libraries.dateformatter.impl.previews
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
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.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.utils.allBooleans
|
import io.element.android.libraries.designsystem.utils.allBooleans
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
@Preview
|
@Preview
|
||||||
|
|||||||
@@ -18,13 +18,11 @@ import io.element.android.libraries.dateformatter.impl.DefaultDateFormatterDay
|
|||||||
import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider
|
import io.element.android.libraries.dateformatter.impl.LocalDateTimeProvider
|
||||||
import kotlinx.datetime.TimeZone
|
import kotlinx.datetime.TimeZone
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create DefaultDateFormatter and set current time to the provided date.
|
* Create DefaultDateFormatter and set current time to the provided date.
|
||||||
*/
|
*/
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
fun createFormatter(
|
fun createFormatter(
|
||||||
context: Context,
|
context: Context,
|
||||||
currentDate: String,
|
currentDate: String,
|
||||||
|
|||||||
@@ -8,10 +8,8 @@
|
|||||||
package io.element.android.libraries.dateformatter.impl.previews
|
package io.element.android.libraries.dateformatter.impl.previews
|
||||||
|
|
||||||
import kotlin.time.Clock
|
import kotlin.time.Clock
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
class PreviewClock : Clock {
|
class PreviewClock : Clock {
|
||||||
private var instant: Instant = Instant.fromEpochMilliseconds(0)
|
private var instant: Instant = Instant.fromEpochMilliseconds(0)
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,8 @@ import io.element.android.libraries.dateformatter.api.DateFormatterMode
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
@RunWith(AndroidJUnit4::class)
|
||||||
@Config(qualifiers = "fr", sdk = [Build.VERSION_CODES.TIRAMISU])
|
@Config(qualifiers = "fr", sdk = [Build.VERSION_CODES.TIRAMISU])
|
||||||
class DefaultDateFormatterFrTest {
|
class DefaultDateFormatterFrTest {
|
||||||
|
|||||||
@@ -14,10 +14,8 @@ import io.element.android.libraries.dateformatter.api.DateFormatterMode
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
@RunWith(AndroidJUnit4::class)
|
||||||
@Config(qualifiers = "en", sdk = [Build.VERSION_CODES.TIRAMISU])
|
@Config(qualifiers = "en", sdk = [Build.VERSION_CODES.TIRAMISU])
|
||||||
class DefaultDateFormatterTest {
|
class DefaultDateFormatterTest {
|
||||||
|
|||||||
@@ -10,13 +10,11 @@ package io.element.android.libraries.dateformatter.impl
|
|||||||
import io.element.android.tests.testutils.InstrumentationStringProvider
|
import io.element.android.tests.testutils.InstrumentationStringProvider
|
||||||
import kotlinx.datetime.TimeZone
|
import kotlinx.datetime.TimeZone
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create DefaultDateFormatter and set current time to the provided date.
|
* Create DefaultDateFormatter and set current time to the provided date.
|
||||||
*/
|
*/
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
fun createFormatter(currentDate: String): DefaultDateFormatter {
|
fun createFormatter(currentDate: String): DefaultDateFormatter {
|
||||||
val clock = FakeClock().apply { givenInstant(Instant.parse(currentDate)) }
|
val clock = FakeClock().apply { givenInstant(Instant.parse(currentDate)) }
|
||||||
val localDateTimeProvider = LocalDateTimeProvider(clock) { TimeZone.UTC }
|
val localDateTimeProvider = LocalDateTimeProvider(clock) { TimeZone.UTC }
|
||||||
|
|||||||
@@ -8,10 +8,8 @@
|
|||||||
package io.element.android.libraries.dateformatter.impl
|
package io.element.android.libraries.dateformatter.impl
|
||||||
|
|
||||||
import kotlin.time.Clock
|
import kotlin.time.Clock
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
import kotlin.time.Instant
|
import kotlin.time.Instant
|
||||||
|
|
||||||
@OptIn(ExperimentalTime::class)
|
|
||||||
class FakeClock : Clock {
|
class FakeClock : Clock {
|
||||||
private var instant: Instant = Instant.fromEpochMilliseconds(0)
|
private var instant: Instant = Instant.fromEpochMilliseconds(0)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user