From add78199458656cda8f8ebefec58fa54aff7239c Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Fri, 24 Feb 2023 06:54:54 +0800 Subject: [PATCH] Minor refactor Revert "Fix RTL load" This reverts commit 323d258b Revert "Resolve #814" This reverts commit eeed0720 --- .../tachiyomi/ui/reader/ReaderPageSheet.kt | 2 +- .../tachiyomi/ui/reader/loader/PageLoader.kt | 15 ++++---- .../ui/reader/viewer/pager/PagerPageHolder.kt | 2 +- .../reader/viewer/pager/PagerViewerAdapter.kt | 20 +++++------ .../reader/viewer/webtoon/WebtoonAdapter.kt | 35 ++++--------------- .../viewer/webtoon/WebtoonPageHolder.kt | 2 +- 6 files changed, 26 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt index 0f6709027..4bf795fa7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt @@ -61,7 +61,7 @@ class ReaderPageSheet( } private fun refresh() { - activity.mGalleryProvider?.retryPage(page) + activity.mGalleryProvider?.retryPage(page.index) dismiss() } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/PageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/PageLoader.kt index fbf7141d6..3399a59da 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/PageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/PageLoader.kt @@ -34,13 +34,12 @@ abstract class PageLoader { abstract val size: Int - fun request(page: ReaderPage) { - val index = mPages.indexOf(page) + fun request(index: Int) { val image = mImageCache[index] if (image != null) { notifyPageSucceed(index, image) } else { - page.status.value = Page.State.QUEUE + notifyPageWait(index) onRequest(index) } @@ -55,9 +54,9 @@ abstract class PageLoader { ) } - fun retryPage(page: ReaderPage) { - page.status.value = Page.State.QUEUE - onForceRequest(mPages.indexOf(page)) + fun retryPage(index: Int) { + notifyPageWait(index) + onForceRequest(index) } protected abstract fun preloadPages(pages: List, pair: Pair) @@ -66,8 +65,8 @@ abstract class PageLoader { protected abstract fun onForceRequest(index: Int) - fun cancelRequest(page: ReaderPage) { - onCancelRequest(mPages.indexOf(page)) + fun cancelRequest(index: Int) { + onCancelRequest(index) } protected abstract fun onCancelRequest(index: Int) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt index 088cd0654..ad6e8ddbd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt @@ -202,7 +202,7 @@ class PagerPageHolder( errorLayout = ReaderErrorBinding.inflate(LayoutInflater.from(context), this, true) errorLayout?.actionRetry?.viewer = viewer errorLayout?.actionRetry?.setOnClickListener { - viewer.activity.mGalleryProvider?.retryPage(page) + viewer.activity.mGalleryProvider?.retryPage(page.index) } } page.errorMsg?.let { errorLayout!!.errorMessage.text = it } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt index 0db6347b9..8d5536f4e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt @@ -9,17 +9,17 @@ import eu.kanade.tachiyomi.util.system.logcat import eu.kanade.tachiyomi.widget.ViewPagerAdapter /** - * Pager adapter used by this [viewer] to where [ViewerChapters] updates are posted. + * Pager adapter used by this [viewer] to where [PageLoader] updates are posted. */ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { /** * List of currently set items. */ - var items: MutableList = mutableListOf() + var items: List = emptyList() private set - var currentChapter: PageLoader? = null + private var currentChapter: PageLoader? = null /** * Context that has been wrapped to use the correct theme values based on the @@ -33,11 +33,11 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { * has R2L direction. */ fun setChapters(chapters: PageLoader) { - items = chapters.mPages.toMutableList() + items = chapters.mPages currentChapter = chapters if (viewer is R2LPagerViewer) { - items.reverse() + items = items.asReversed() } notifyDataSetChanged() @@ -54,16 +54,14 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { * Creates a new view for the item at the given [position]. */ override fun createView(container: ViewGroup, position: Int): View { - currentChapter?.request(items[position] as ReaderPage) - return when (val item = items[position]) { - is ReaderPage -> PagerPageHolder(readerThemedContext, viewer, item) - else -> throw NotImplementedError("Holder for ${item.javaClass} not implemented") - } + val item = items[position] + currentChapter?.request(item.index) + return PagerPageHolder(readerThemedContext, viewer, item) } override fun destroyView(container: ViewGroup, position: Int, view: View) { val item = items[position] - currentChapter?.cancelRequest(item as ReaderPage) + currentChapter?.cancelRequest(item.index) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt index d62092b5e..b215749b2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonAdapter.kt @@ -8,17 +8,17 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ReaderPageImageView import eu.kanade.tachiyomi.util.system.createReaderThemeContext /** - * RecyclerView Adapter used by this [viewer] to where [ViewerChapters] updates are posted. + * RecyclerView Adapter used by this [viewer] to where [PageLoader] updates are posted. */ class WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter() { /** * List of currently set items. */ - var items: List = emptyList() + var items: List = emptyList() private set - var currentChapter: PageLoader? = null + private var currentChapter: PageLoader? = null /** * Context that has been wrapped to use the correct theme values based on the @@ -46,27 +46,12 @@ class WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter PAGE_VIEW - else -> error("Unknown view type for ${item.javaClass}") - } - } - /** * Creates a new view holder for an item with the given [viewType]. */ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - return when (viewType) { - PAGE_VIEW -> { - val view = ReaderPageImageView(readerThemedContext, isWebtoon = true) - WebtoonPageHolder(view, viewer) - } - else -> error("Unknown view type") - } + val view = ReaderPageImageView(readerThemedContext, isWebtoon = true) + return WebtoonPageHolder(view, viewer) } /** @@ -74,7 +59,7 @@ class WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter holder.bind(item) } @@ -84,15 +69,9 @@ class WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter holder.recycle() } - val item = items.getOrNull(holder.bindingAdapterPosition) ?: return - currentChapter?.cancelRequest(item as ReaderPage) } } - -/** - * View holder type of a chapter page view. - */ -private const val PAGE_VIEW = 0 diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt index 84c1de9db..20df6d4c4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt @@ -252,7 +252,7 @@ class WebtoonPageHolder( errorLayout = ReaderErrorBinding.inflate(LayoutInflater.from(context), frame, true) errorLayout?.root?.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, defaultHeight) errorLayout?.actionRetry?.setOnClickListener { - viewer.activity.mGalleryProvider?.retryPage(page!!) + viewer.activity.mGalleryProvider?.retryPage(page!!.index) } } page?.errorMsg?.let { errorLayout!!.errorMessage.text = it }