From 1e4a01399d5837fbcb6f6c8ef71deacfb1d6dd82 Mon Sep 17 00:00:00 2001 From: len Date: Sat, 21 Jan 2017 18:48:27 +0100 Subject: [PATCH] Catalogue fixes --- .../tachiyomi/ui/catalogue/CatalogueFragment.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt index 3b32cee5d..597c0594e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt @@ -254,8 +254,8 @@ open class CatalogueFragment : BaseRxFragment(), (layoutManager as GridLayoutManager).spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int): Int { - return when (adapter.getItemViewType(position)) { - R.layout.item_catalogue_grid -> 1 + return when (adapter?.getItemViewType(position)) { + R.layout.item_catalogue_grid, null -> 1 else -> spanCount } } @@ -495,7 +495,18 @@ open class CatalogueFragment : BaseRxFragment(), * @return the holder of the manga or null if it's not bound. */ private fun getHolder(manga: Manga): CatalogueHolder? { - return recycler.findViewHolderForItemId(manga.id!!) as? CatalogueHolder + val layoutManager = recycler.layoutManager as LinearLayoutManager + val firstVisiblePos = layoutManager.findFirstVisibleItemPosition() + val lastVisiblePos = layoutManager.findLastVisibleItemPosition() + + (firstVisiblePos..lastVisiblePos-1).forEach { i -> + val item = adapter.getItem(i) as? CatalogueItem + if (item != null && item.manga.id!! == manga.id!!) { + return recycler.findViewHolderForLayoutPosition(i) as? CatalogueHolder + } + } + + return null } /**