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

View file

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

View file

@ -146,6 +146,7 @@ import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withTimeoutOrNull import kotlinx.coroutines.withTimeoutOrNull
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import yokai.domain.manga.models.cover
import yokai.i18n.MR import yokai.i18n.MR
import yokai.presentation.core.Constants import yokai.presentation.core.Constants
import yokai.util.lang.getString import yokai.util.lang.getString
@ -580,7 +581,7 @@ class MangaDetailsController :
fun setPaletteColor() { fun setPaletteColor() {
val view = view ?: return 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( .target(
onSuccess = { image -> onSuccess = { image ->
val drawable = image.asDrawable(view.context.resources) 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.library.custom.model.CustomMangaInfo
import yokai.domain.manga.interactor.UpdateManga import yokai.domain.manga.interactor.UpdateManga
import yokai.domain.manga.models.MangaUpdate import yokai.domain.manga.models.MangaUpdate
import yokai.domain.manga.models.cover
import yokai.domain.storage.StorageManager import yokai.domain.storage.StorageManager
import yokai.i18n.MR import yokai.i18n.MR
import yokai.util.lang.getString import yokai.util.lang.getString
@ -397,7 +398,7 @@ class MangaDetailsPresenter(
launchIO { launchIO {
val request = val request =
ImageRequest.Builder(preferences.context).data(manga) ImageRequest.Builder(preferences.context).data(manga.cover())
.memoryCachePolicy(CachePolicy.DISABLED) .memoryCachePolicy(CachePolicy.DISABLED)
.diskCachePolicy(CachePolicy.WRITE_ONLY) .diskCachePolicy(CachePolicy.WRITE_ONLY)
.build() .build()

View file

@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.util.view.withFadeTransaction
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import yokai.domain.manga.models.cover
import yokai.i18n.MR import yokai.i18n.MR
import yokai.util.lang.getString import yokai.util.lang.getString
import java.text.DecimalFormat import java.text.DecimalFormat
@ -148,7 +149,7 @@ class MigrationProcessHolder(
(root.layoutParams as ConstraintLayout.LayoutParams).verticalBias = 1f (root.layoutParams as ConstraintLayout.LayoutParams).verticalBias = 1f
progress.isVisible = false progress.isVisible = false
val request = ImageRequest.Builder(view.context).data(manga) val request = ImageRequest.Builder(view.context).data(manga.cover())
.target(CoverViewTarget(coverThumbnail, progress)) .target(CoverViewTarget(coverThumbnail, progress))
.setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false) .setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false)
.build() .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.ui.library.LibraryCategoryAdapter
import eu.kanade.tachiyomi.util.system.setExtras import eu.kanade.tachiyomi.util.system.setExtras
import eu.kanade.tachiyomi.util.view.setCards 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. * 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() binding.coverThumbnail.dispose()
} else { } else {
manga.id ?: return 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)) .target(CoverViewTarget(binding.coverThumbnail, binding.progress))
.setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false) .setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false)
.build() .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.domain.manga.models.Manga
import eu.kanade.tachiyomi.util.system.setExtras import eu.kanade.tachiyomi.util.system.setExtras
import eu.kanade.tachiyomi.util.view.setCards 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. * 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() binding.coverThumbnail.dispose()
} else { } else {
manga.id ?: return manga.id ?: return
val request = ImageRequest.Builder(view.context).data(manga) val request = ImageRequest.Builder(view.context).data(manga.cover())
.target(CoverViewTarget(binding.coverThumbnail)) .target(CoverViewTarget(binding.coverThumbnail))
.setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false) .setExtras(MangaCoverFetcher.USE_CUSTOM_COVER_KEY, false)
.build() .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.system.setExtras
import eu.kanade.tachiyomi.util.view.makeShapeCorners import eu.kanade.tachiyomi.util.view.makeShapeCorners
import eu.kanade.tachiyomi.util.view.setCards import eu.kanade.tachiyomi.util.view.setCards
import yokai.domain.manga.models.cover
import android.R as AR import android.R as AR
class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) : class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) :
@ -56,7 +57,7 @@ class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) :
fun setImage(manga: Manga) { fun setImage(manga: Manga) {
binding.itemImage.dispose() binding.itemImage.dispose()
if (!manga.thumbnail_url.isNullOrEmpty()) { 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) .placeholder(AR.color.transparent)
.memoryCachePolicy(CachePolicy.DISABLED) .memoryCachePolicy(CachePolicy.DISABLED)
.target(CoverViewTarget(binding.itemImage, binding.progress)) .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 eu.kanade.tachiyomi.util.system.launchIO
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import yokai.domain.manga.models.cover
import yokai.i18n.MR import yokai.i18n.MR
import yokai.util.lang.getString import yokai.util.lang.getString
import kotlin.math.min import kotlin.math.min
@ -73,7 +74,7 @@ class MangaShortcutManager(
val shortcuts = recents.mapNotNull { item -> val shortcuts = recents.mapNotNull { item ->
when (item) { when (item) {
is Manga -> { is Manga -> {
val request = ImageRequest.Builder(context).data(item).build() val request = ImageRequest.Builder(context).data(item.cover()).build()
val bitmap = ( val bitmap = (
context.imageLoader context.imageLoader
.execute(request).image?.asDrawable(context.resources) as? BitmapDrawable .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 kotlinx.coroutines.MainScope
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import yokai.domain.manga.models.cover
import yokai.presentation.widget.components.CoverHeight import yokai.presentation.widget.components.CoverHeight
import yokai.presentation.widget.components.CoverWidth import yokai.presentation.widget.components.CoverWidth
import yokai.presentation.widget.components.LockedWidget import yokai.presentation.widget.components.LockedWidget
@ -97,7 +98,7 @@ class UpdatesGridGlanceWidget(
.map { it.first } .map { it.first }
.map { updatesView -> .map { updatesView ->
val request = ImageRequest.Builder(app) val request = ImageRequest.Builder(app)
.data(updatesView) .data(updatesView.cover())
.memoryCachePolicy(CachePolicy.DISABLED) .memoryCachePolicy(CachePolicy.DISABLED)
.precision(Precision.EXACT) .precision(Precision.EXACT)
.size(widthPx, heightPx) .size(widthPx, heightPx)