Cleanup pager page change handling
This commit is contained in:
parent
574dd17906
commit
b1f7165ad7
@ -176,15 +176,14 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
|||||||
/**
|
/**
|
||||||
* Called when a new page (either a [ReaderPage] or [ChapterTransition]) is marked as active
|
* Called when a new page (either a [ReaderPage] or [ChapterTransition]) is marked as active
|
||||||
*/
|
*/
|
||||||
@Suppress("NAME_SHADOWING")
|
|
||||||
fun onPageChange(position: Int) {
|
fun onPageChange(position: Int) {
|
||||||
val page = adapter.joinedItems.getOrNull(position)
|
val pagePair = adapter.joinedItems.getOrNull(position)
|
||||||
if (page != null && currentPage != page.first) {
|
val page = pagePair?.first
|
||||||
val allowPreload = checkAllowPreload(page.first as? ReaderPage)
|
if (page != null && currentPage != page) {
|
||||||
|
val allowPreload = checkAllowPreload(page as? ReaderPage)
|
||||||
val forward = when {
|
val forward = when {
|
||||||
currentPage is ReaderPage && page.first is ReaderPage -> {
|
currentPage is ReaderPage && page is ReaderPage -> {
|
||||||
// if both pages have the same number, it's a split page with an InsertPage
|
// if both pages have the same number, it's a split page with an InsertPage
|
||||||
val page = page.first as ReaderPage
|
|
||||||
if (page.number == (currentPage as ReaderPage).number) {
|
if (page.number == (currentPage as ReaderPage).number) {
|
||||||
// the InsertPage is always the second in the reading direction
|
// the InsertPage is always the second in the reading direction
|
||||||
page is InsertPage
|
page is InsertPage
|
||||||
@ -192,14 +191,14 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
|||||||
page.number > (currentPage as ReaderPage).number
|
page.number > (currentPage as ReaderPage).number
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentPage is ChapterTransition.Prev && page.first is ReaderPage ->
|
currentPage is ChapterTransition.Prev && page is ReaderPage ->
|
||||||
false
|
false
|
||||||
else -> true
|
else -> true
|
||||||
}
|
}
|
||||||
currentPage = page.first
|
currentPage = page
|
||||||
when (val aPage = page.first) {
|
when (page) {
|
||||||
is ReaderPage -> onReaderPageSelected(aPage, allowPreload, forward, page.second != null)
|
is ReaderPage -> onReaderPageSelected(page, allowPreload, forward, pagePair.second != null)
|
||||||
is ChapterTransition -> onTransitionSelected(aPage)
|
is ChapterTransition -> onTransitionSelected(page)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user