From 28da0b88ae258ba444bf7a9affa0abc198fa9255 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Thu, 28 Oct 2021 00:43:01 -0400 Subject: [PATCH] small optimizations to scrolling in library --- .../image/coil/LibraryMangaImageTarget.kt | 21 +++++++++------- .../tachiyomi/ui/library/LibraryGridHolder.kt | 13 ++-------- .../tachiyomi/ui/library/LibraryListHolder.kt | 25 ++++++++----------- 3 files changed, 25 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/image/coil/LibraryMangaImageTarget.kt b/app/src/main/java/eu/kanade/tachiyomi/data/image/coil/LibraryMangaImageTarget.kt index 0204139192..b8a5c207f7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/image/coil/LibraryMangaImageTarget.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/image/coil/LibraryMangaImageTarget.kt @@ -13,6 +13,7 @@ import coil.request.ImageRequest import coil.target.ImageViewTarget import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.tachiyomi.util.system.launchIO import uy.kohesive.injekt.injectLazy class LibraryMangaImageTarget( @@ -37,15 +38,17 @@ class LibraryMangaImageTarget( override fun onError(error: Drawable?) { super.onError(error) if (manga.favorite) { - val file = coverCache.getCoverFile(manga) - // if the file exists and the there was still an error then the file is corrupted - if (file.exists()) { - val options = BitmapFactory.Options() - options.inJustDecodeBounds = true - BitmapFactory.decodeFile(file.path, options) - if (options.outWidth == -1 || options.outHeight == -1) { - file.delete() - view.context.imageLoader.memoryCache.remove(MemoryCache.Key(manga.key())) + launchIO { + val file = coverCache.getCoverFile(manga) + // if the file exists and the there was still an error then the file is corrupted + if (file.exists()) { + val options = BitmapFactory.Options() + options.inJustDecodeBounds = true + BitmapFactory.decodeFile(file.path, options) + if (options.outWidth == -1 || options.outHeight == -1) { + file.delete() + view.context.imageLoader.memoryCache.remove(MemoryCache.Key(manga.key())) + } } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt index 5a956e0602..afae422baf 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt @@ -84,17 +84,8 @@ class LibraryGridHolder( setSelected(adapter.isSelected(flexibleAdapterPosition)) // Update the cover. - if (item.manga.thumbnail_url == null) binding.coverThumbnail.clear() - else { - if (binding.coverThumbnail.height == 0) { - val oldPos = flexibleAdapterPosition - adapter.recyclerView.post { - if (oldPos == flexibleAdapterPosition) { - setCover(item.manga) - } - } - } else setCover(item.manga) - } + binding.coverThumbnail.clear() + setCover(item.manga) } override fun toggleActivation() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt index a069e37553..a783fdeb57 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt @@ -70,14 +70,15 @@ class LibraryListHolder( setUnreadBadge(binding.unreadDownloadBadge.badgeView, item) setCards(adapter.showOutline, binding.card, binding.unreadDownloadBadge.badgeView) - val authorArtist = if (item.manga.author == item.manga.artist || item.manga.artist.isNullOrBlank()) { - item.manga.author?.trim() ?: "" - } else { - listOfNotNull( - item.manga.author?.trim()?.takeIf { it.isNotBlank() }, - item.manga.artist?.trim()?.takeIf { it.isNotBlank() } - ).joinToString(", ") - } + val authorArtist = + if (item.manga.author == item.manga.artist || item.manga.artist.isNullOrBlank()) { + item.manga.author?.trim() ?: "" + } else { + listOfNotNull( + item.manga.author?.trim()?.takeIf { it.isNotBlank() }, + item.manga.artist?.trim()?.takeIf { it.isNotBlank() } + ).joinToString(", ") + } binding.subtitle.text = authorArtist.highlightText(item.filter, color) binding.title.maxLines = 2 @@ -89,12 +90,8 @@ class LibraryListHolder( } // Update the cover. - if (item.manga.thumbnail_url == null) { - binding.coverThumbnail.clear() - } else { - item.manga.id ?: return - binding.coverThumbnail.loadManga(item.manga) - } + binding.coverThumbnail.clear() + binding.coverThumbnail.loadManga(item.manga) } override fun onActionStateChanged(position: Int, actionState: Int) {