Minor refactor
Revert "Fix RTL load" This reverts commit323d258bRevert "Resolve #814" This reverts commiteeed0720
This commit is contained in:
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 }
|
||||
|
||||
Reference in new issue
Block a user