mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-08-05 11:01:37 +00:00
Stabilize in progress items and add coil cache control
This commit is contained in:
parent
ae5c8f74ca
commit
989580e589
5 changed files with 20 additions and 3 deletions
|
|
@ -434,6 +434,9 @@ kotlin {
|
|||
implementation("io.coil-kt.coil3:coil-network-ktor3:${libs.versions.coil.get()}") {
|
||||
exclude(group = "org.jetbrains.skiko", module = "skiko")
|
||||
}
|
||||
implementation("io.coil-kt.coil3:coil-network-cache-control:${libs.versions.coil.get()}") {
|
||||
exclude(group = "org.jetbrains.skiko", module = "skiko")
|
||||
}
|
||||
implementation("io.coil-kt.coil3:coil-svg:${libs.versions.coil.get()}") {
|
||||
exclude(group = "org.jetbrains.skiko", module = "skiko")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -446,6 +446,11 @@ fun App(
|
|||
.memoryCachePolicy(CachePolicy.ENABLED)
|
||||
.components {
|
||||
add(SvgDecoder.Factory())
|
||||
add(
|
||||
coil3.network.ktor3.KtorNetworkFetcherFactory(
|
||||
cacheStrategy = { coil3.network.cachecontrol.CacheControlCacheStrategy() },
|
||||
)
|
||||
)
|
||||
}
|
||||
.configurePlatformImageLoader()
|
||||
.build()
|
||||
|
|
|
|||
|
|
@ -1796,12 +1796,16 @@ private fun ContinueWatchingItem.withFallbackMetadata(
|
|||
hasPlaceholderHomeTitle() && fallbackTitle != null -> fallbackTitle
|
||||
else -> title
|
||||
},
|
||||
subtitle = subtitle.takeIf { it.isNotBlank() }
|
||||
?: fallback?.subtitle?.takeIf { it.isNotBlank() }.orEmpty(),
|
||||
subtitle = when {
|
||||
subtitle.isBlank() -> fallback?.subtitle?.takeIf { it.isNotBlank() }.orEmpty()
|
||||
fallback?.subtitle.isNullOrBlank() -> subtitle
|
||||
else -> fallback.subtitle
|
||||
},
|
||||
imageUrl = imageUrl.orNonBlank(fallback?.imageUrl),
|
||||
logo = logo.orNonBlank(fallback?.logo),
|
||||
poster = poster.orNonBlank(fallback?.poster),
|
||||
background = background.orNonBlank(fallback?.background),
|
||||
videoId = fallback?.videoId?.takeIf { it.isNotBlank() } ?: videoId,
|
||||
episodeTitle = episodeTitle.orNonBlank(fallback?.episodeTitle),
|
||||
episodeThumbnail = episodeThumbnail.orNonBlank(fallback?.episodeThumbnail),
|
||||
pauseDescription = pauseDescription.orNonBlank(fallback?.pauseDescription),
|
||||
|
|
|
|||
|
|
@ -290,7 +290,11 @@ private fun HomeContinueWatchingSectionContent(
|
|||
key(dataSourceKey) {
|
||||
val disintegration = remember {
|
||||
ScopedDisintegrationTracker<WatchProgressSource, String, ContinueWatchingItem>(
|
||||
itemKey = ContinueWatchingItem::videoId,
|
||||
itemKey = { item ->
|
||||
val season = item.seasonNumber ?: -1
|
||||
val episode = item.episodeNumber ?: -1
|
||||
"${item.parentMetaId}:$season:$episode"
|
||||
},
|
||||
)
|
||||
}
|
||||
val displayEntries = disintegration.sync(dataSourceKey, items)
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ compottie = { module = "io.github.alexzhirkevich:compottie", version.ref = "comp
|
|||
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" }
|
||||
coil-gif = { module = "io.coil-kt.coil3:coil-gif", version.ref = "coil" }
|
||||
coil-network-ktor3 = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil" }
|
||||
coil-network-cache-control = { module = "io.coil-kt.coil3:coil-network-cache-control", version.ref = "coil" }
|
||||
coil-svg = { module = "io.coil-kt.coil3:coil-svg", version.ref = "coil" }
|
||||
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
|
||||
kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "atomicfu" }
|
||||
|
|
|
|||
Loading…
Reference in a new issue