598d622d0b
(cherry picked from commit e183cbb231c6d48a17c573dbd3f2c8ce04ff7031)
46 lines
1.3 KiB
Kotlin
46 lines
1.3 KiB
Kotlin
package eu.kanade.presentation.components
|
|
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.ui.platform.LocalContext
|
|
import eu.kanade.domain.ui.UiPreferences
|
|
import eu.kanade.tachiyomi.util.lang.toRelativeString
|
|
import tachiyomi.i18n.MR
|
|
import tachiyomi.presentation.core.i18n.stringResource
|
|
import uy.kohesive.injekt.Injekt
|
|
import uy.kohesive.injekt.api.get
|
|
import java.time.Instant
|
|
import java.time.LocalDate
|
|
import java.time.ZoneId
|
|
|
|
@Composable
|
|
fun relativeDateText(
|
|
dateEpochMillis: Long,
|
|
): String {
|
|
return relativeDateText(
|
|
localDate = LocalDate.ofInstant(
|
|
Instant.ofEpochMilli(dateEpochMillis),
|
|
ZoneId.systemDefault(),
|
|
)
|
|
.takeIf { dateEpochMillis > 0L },
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
fun relativeDateText(
|
|
localDate: LocalDate?,
|
|
): String {
|
|
val context = LocalContext.current
|
|
|
|
val preferences = remember { Injekt.get<UiPreferences>() }
|
|
val relativeTime = remember { preferences.relativeTime().get() }
|
|
val dateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat().get()) }
|
|
|
|
return localDate?.toRelativeString(
|
|
context = context,
|
|
relative = relativeTime,
|
|
dateFormat = dateFormat,
|
|
)
|
|
?: stringResource(MR.strings.not_applicable)
|
|
}
|