chore: Convert all cover usage to use MangaCover data class

This commit is contained in:
Ahmad Ansori Palembani 2024-08-19 20:06:54 +07:00
parent 839f762fa7
commit d002642697
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
10 changed files with 21 additions and 11 deletions

View file

@ -84,6 +84,7 @@ import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import yokai.domain.manga.interactor.GetLibraryManga
import yokai.domain.manga.interactor.UpdateManga
import yokai.domain.manga.models.cover
import yokai.i18n.MR
import yokai.util.lang.getString
@ -275,10 +276,10 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
val request: ImageRequest =
if (thumbnailUrl != manga.thumbnail_url) {
// load new covers in background
ImageRequest.Builder(context).data(manga)
ImageRequest.Builder(context).data(manga.cover())
.memoryCachePolicy(CachePolicy.DISABLED).build()
} else {
ImageRequest.Builder(context).data(manga)
ImageRequest.Builder(context).data(manga.cover())
.memoryCachePolicy(CachePolicy.DISABLED)
.diskCachePolicy(CachePolicy.WRITE_ONLY)
.build()

View file

@ -37,6 +37,7 @@ import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import uy.kohesive.injekt.injectLazy
import yokai.domain.manga.models.cover
import yokai.i18n.MR
import yokai.util.lang.getString
import android.R as AR
@ -191,7 +192,7 @@ class LibraryUpdateNotifier(private val context: Context) {
context.notification(Notifications.CHANNEL_NEW_CHAPTERS) {
setSmallIcon(R.drawable.ic_yokai)
try {
val request = ImageRequest.Builder(context).data(manga)
val request = ImageRequest.Builder(context).data(manga.cover())
.networkCachePolicy(CachePolicy.DISABLED)
.diskCachePolicy(CachePolicy.ENABLED)
.transformations(CircleCropTransformation())

View file

@ -146,6 +146,7 @@ import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withTimeoutOrNull
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import yokai.domain.manga.models.cover
import yokai.i18n.MR
import yokai.presentation.core.Constants
import yokai.util.lang.getString
@ -580,7 +581,7 @@ class MangaDetailsController :
fun setPaletteColor() {
val view = view ?: return
val request = ImageRequest.Builder(view.context).data(presenter.manga).allowHardware(false)
val request = ImageRequest.Builder(view.context).data(presenter.manga.cover()).allowHardware(false)
.target(
onSuccess = { image ->
val drawable = image.asDrawable(view.context.resources)

View file

@ -90,6 +90,7 @@ import yokai.domain.chapter.interactor.UpdateChapter
import yokai.domain.library.custom.model.CustomMangaInfo
import yokai.domain.manga.interactor.UpdateManga
import yokai.domain.manga.models.MangaUpdate
import yokai.domain.manga.models.cover
import yokai.domain.storage.StorageManager
import yokai.i18n.MR
import yokai.util.lang.getString
@ -397,7 +398,7 @@ class MangaDetailsPresenter(
launchIO {
val request =
ImageRequest.Builder(preferences.context).data(manga)
ImageRequest.Builder(preferences.context).data(manga.cover())
.memoryCachePolicy(CachePolicy.DISABLED)
.diskCachePolicy(CachePolicy.WRITE_ONLY)
.build()

View file

@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.util.view.withFadeTransaction
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import uy.kohesive.injekt.injectLazy
import yokai.domain.manga.models.cover
import yokai.i18n.MR
import yokai.util.lang.getString
import java.text.DecimalFormat
@ -148,7 +149,7 @@ class MigrationProcessHolder(
(root.layoutParams as ConstraintLayout.LayoutParams).verticalBias = 1f
progress.isVisible = false
val request = ImageRequest.Builder(view.context).data(manga)
val request = ImageRequest.Builder(view.context).data(manga.cover())
.target(CoverViewTarget(coverThumbnail, progress))
.setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false)
.build()

View file

@ -17,6 +17,7 @@ import eu.kanade.tachiyomi.domain.manga.models.Manga
import eu.kanade.tachiyomi.ui.library.LibraryCategoryAdapter
import eu.kanade.tachiyomi.util.system.setExtras
import eu.kanade.tachiyomi.util.view.setCards
import yokai.domain.manga.models.cover
/**
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
@ -66,7 +67,7 @@ class BrowseSourceGridHolder(
binding.coverThumbnail.dispose()
} else {
manga.id ?: return
val request = ImageRequest.Builder(view.context).data(manga)
val request = ImageRequest.Builder(view.context).data(manga.cover())
.target(CoverViewTarget(binding.coverThumbnail, binding.progress))
.setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false)
.build()

View file

@ -14,6 +14,7 @@ import eu.kanade.tachiyomi.databinding.MangaListItemBinding
import eu.kanade.tachiyomi.domain.manga.models.Manga
import eu.kanade.tachiyomi.util.system.setExtras
import eu.kanade.tachiyomi.util.view.setCards
import yokai.domain.manga.models.cover
/**
* Class used to hold the displayed data of a manga in the catalogue, like the cover or the title.
@ -55,7 +56,7 @@ class BrowseSourceListHolder(
binding.coverThumbnail.dispose()
} else {
manga.id ?: return
val request = ImageRequest.Builder(view.context).data(manga)
val request = ImageRequest.Builder(view.context).data(manga.cover())
.target(CoverViewTarget(binding.coverThumbnail))
.setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false)
.build()

View file

@ -17,6 +17,7 @@ import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.setExtras
import eu.kanade.tachiyomi.util.view.makeShapeCorners
import eu.kanade.tachiyomi.util.view.setCards
import yokai.domain.manga.models.cover
import android.R as AR
class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) :
@ -56,7 +57,7 @@ class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) :
fun setImage(manga: Manga) {
binding.itemImage.dispose()
if (!manga.thumbnail_url.isNullOrEmpty()) {
val request = ImageRequest.Builder(itemView.context).data(manga)
val request = ImageRequest.Builder(itemView.context).data(manga.cover())
.placeholder(AR.color.transparent)
.memoryCachePolicy(CachePolicy.DISABLED)
.target(CoverViewTarget(binding.itemImage, binding.progress))

View file

@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController
import eu.kanade.tachiyomi.util.system.launchIO
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import yokai.domain.manga.models.cover
import yokai.i18n.MR
import yokai.util.lang.getString
import kotlin.math.min
@ -73,7 +74,7 @@ class MangaShortcutManager(
val shortcuts = recents.mapNotNull { item ->
when (item) {
is Manga -> {
val request = ImageRequest.Builder(context).data(item).build()
val request = ImageRequest.Builder(context).data(item.cover()).build()
val bitmap = (
context.imageLoader
.execute(request).image?.asDrawable(context.resources) as? BitmapDrawable

View file

@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.util.system.launchIO
import kotlinx.coroutines.MainScope
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import yokai.domain.manga.models.cover
import yokai.presentation.widget.components.CoverHeight
import yokai.presentation.widget.components.CoverWidth
import yokai.presentation.widget.components.LockedWidget
@ -97,7 +98,7 @@ class UpdatesGridGlanceWidget(
.map { it.first }
.map { updatesView ->
val request = ImageRequest.Builder(app)
.data(updatesView)
.data(updatesView.cover())
.memoryCachePolicy(CachePolicy.DISABLED)
.precision(Precision.EXACT)
.size(widthPx, heightPx)