Minor refactor

Revert "Fix RTL load"

This reverts commit 323d258b

Revert "Resolve #814"

This reverts commit eeed0720
This commit is contained in:
FooIbar authored and tarsin committed 2023-02-24 10:01:49 +08:00
1 parent 3c6d3bbd80
commit add7819945
6 files changed
+26 -50

No files matched your search

@@ -61,7 +61,7 @@ class ReaderPageSheet(
}
private fun refresh() {
activity.mGalleryProvider?.retryPage(page)
activity.mGalleryProvider?.retryPage(page.index)
dismiss()
}
}
@@ -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<Int>, pair: Pair<Int, Int>)
@@ -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)
@@ -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 }
@@ -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<Any> = mutableListOf()
var items: List<ReaderPage> = 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)
}
/**
@@ -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<RecyclerView.ViewHolder>() {
/**
* List of currently set items.
*/
var items: List<Any> = emptyList()
var items: List<ReaderPage> = 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<RecyclerV
return items.size
}
/**
* Returns the view type for the item at the given [position].
*/
override fun getItemViewType(position: Int): Int {
return when (val item = items[position]) {
is ReaderPage -> 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<RecyclerV
*/
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val item = items[position]
currentChapter!!.request(item as ReaderPage)
currentChapter!!.request(position)
when (holder) {
is WebtoonPageHolder -> holder.bind(item)
}
@@ -84,15 +69,9 @@ class WebtoonAdapter(val viewer: WebtoonViewer) : RecyclerView.Adapter<RecyclerV
* Recycles an existing view [holder] before adding it to the view pool.
*/
override fun onViewRecycled(holder: RecyclerView.ViewHolder) {
currentChapter?.cancelRequest(holder.bindingAdapterPosition)
when (holder) {
is WebtoonPageHolder -> 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
@@ -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 }