diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1c48b0c10..fffbd3802 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -272,6 +272,7 @@ kotlin { "kotlin.ExperimentalStdlibApi", "kotlin.concurrent.atomics.ExperimentalAtomicApi", "kotlin.contracts.ExperimentalContracts", + "kotlin.time.ExperimentalTime", "kotlinx.coroutines.ExperimentalCoroutinesApi", "kotlinx.coroutines.FlowPreview", "kotlinx.serialization.ExperimentalSerializationApi", diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt index bf00ceede..5650a6645 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhTagDatabase.kt @@ -32,15 +32,15 @@ import com.hippo.files.read import com.hippo.files.write import eu.kanade.tachiyomi.util.system.logcat import io.ktor.client.request.prepareGet +import kotlin.time.Clock import kotlin.time.Duration.Companion.days +import kotlin.time.Instant import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant import kotlinx.io.Source import kotlinx.io.writeString import kotlinx.serialization.json.io.encodeToSink diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt b/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt index 8531f6327..68e74d6ae 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt @@ -26,8 +26,8 @@ import eu.kanade.tachiyomi.util.lang.withIOContext import eu.kanade.tachiyomi.util.system.logcat import java.time.Duration import java.util.concurrent.TimeUnit +import kotlin.time.Clock import kotlin.time.Duration.Companion.days -import kotlinx.datetime.Clock import kotlinx.datetime.LocalDateTime import kotlinx.datetime.LocalTime import kotlinx.datetime.TimeZone diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadInfo.kt b/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadInfo.kt index 2e6f42622..b9af6fa53 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadInfo.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadInfo.kt @@ -10,7 +10,7 @@ import androidx.room.Relation import com.hippo.ehviewer.client.data.AbstractDownloadInfo import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.GalleryInfo -import kotlinx.datetime.Clock +import kotlin.time.Clock @Entity( tableName = "DOWNLOADS", diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dao/HistoryInfo.kt b/app/src/main/kotlin/com/hippo/ehviewer/dao/HistoryInfo.kt index 8d245aaa8..3fb203bdf 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dao/HistoryInfo.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dao/HistoryInfo.kt @@ -3,7 +3,7 @@ package com.hippo.ehviewer.dao import androidx.room.Entity import androidx.room.ForeignKey import com.hippo.ehviewer.client.data.BaseGalleryInfo -import kotlinx.datetime.Clock +import kotlin.time.Clock @Entity(tableName = "HISTORY", foreignKeys = [ForeignKey(BaseGalleryInfo::class, ["GID"], ["GID"])]) class HistoryInfo(gid: Long, time: Long = Clock.System.now().toEpochMilliseconds()) : TimeInfo(gid, time) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt b/app/src/main/kotlin/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt index 513231aea..94c72459b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt @@ -3,7 +3,7 @@ package com.hippo.ehviewer.dao import androidx.room.Entity import androidx.room.ForeignKey import com.hippo.ehviewer.client.data.BaseGalleryInfo -import kotlinx.datetime.Clock +import kotlin.time.Clock @Entity(tableName = "LOCAL_FAVORITES", foreignKeys = [ForeignKey(BaseGalleryInfo::class, ["GID"], ["GID"])]) class LocalFavoriteInfo(gid: Long = 0, time: Long = Clock.System.now().toEpochMilliseconds()) : TimeInfo(gid, time) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpeedTracker.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpeedTracker.kt index 8bc5dee4c..a11fa0d89 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpeedTracker.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpeedTracker.kt @@ -17,17 +17,17 @@ import io.ktor.client.statement.HttpStatement import kotlin.concurrent.atomics.AtomicReference import kotlin.math.pow import kotlin.math.roundToInt +import kotlin.time.Clock import kotlin.time.Duration import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.seconds +import kotlin.time.Instant import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant import kotlinx.io.IOException class SpeedTracker(val window: Duration = 1.seconds) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt index e2a627c7a..9d471ee1d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt @@ -76,9 +76,9 @@ import com.hippo.files.isDirectory import com.hippo.files.write import com.ramcosta.composedestinations.navigation.DestinationsNavigator import eu.kanade.tachiyomi.util.lang.withIOContext +import kotlin.time.Clock import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import kotlinx.datetime.Clock import kotlinx.datetime.DateTimeUnit import kotlinx.datetime.LocalDate import kotlinx.datetime.TimeZone diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt index c8a77f2cf..976141462 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt @@ -29,7 +29,7 @@ import com.hippo.ehviewer.util.requestPermission import com.hippo.files.toOkioPath import eu.kanade.tachiyomi.util.system.logcat import java.io.File -import kotlinx.datetime.Clock +import kotlin.time.Clock import moe.tarsin.coroutines.runSuspendCatching import moe.tarsin.snackbar import moe.tarsin.string diff --git a/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt b/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt index 30b9f0daf..60f69892f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/updater/AppUpdater.kt @@ -15,9 +15,9 @@ import io.ktor.client.statement.bodyAsChannel import io.ktor.http.ContentType import io.ktor.utils.io.jvm.javaio.toInputStream import java.util.zip.ZipInputStream +import kotlin.time.Clock import kotlin.time.Duration.Companion.days -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Instant import kotlinx.io.asSource import moe.tarsin.coroutines.runSuspendCatching import okio.Path diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/DateTimeUtil.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/DateTimeUtil.kt index 1a2c1f9a8..e9f32d07c 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/DateTimeUtil.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/DateTimeUtil.kt @@ -1,6 +1,6 @@ package com.hippo.ehviewer.util -import kotlinx.datetime.Instant +import kotlin.time.Instant import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime import kotlinx.datetime.TimeZone diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt index f104c0dbe..5f19fdbf3 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt @@ -20,8 +20,8 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import com.hippo.ehviewer.R import java.util.Locale -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Clock +import kotlin.time.Instant import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDateTime import kotlinx.datetime.TimeZone diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4d27f7711..49857c819 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ compose-bom = "2025.06.00" compose-destinations = "2.2.0" kotlin = "2.2.0" kotlinx-coroutines = "1.10.2" -kotlinx-datetime = "0.6.2" +kotlinx-datetime = "0.7.0" kotlinx-serialization = "1.8.1" ksp = "2.2.0-RC3-2.0.2" ktor = "3.1.3" diff --git a/renovate.json b/renovate.json index 4bd07a47e..e37f3afd3 100644 --- a/renovate.json +++ b/renovate.json @@ -53,6 +53,12 @@ ], "allowedVersions": "/^[\\d.]+(-alpha\\d+)?$/" }, + { + "matchDepNames": [ + "org.jetbrains.kotlinx:kotlinx-datetime" + ], + "allowedVersions": "!/compat$/" + }, { "matchDepNames": [ "nettle"