Fix "Landscape zoom" and "Navigate to pan" for split images (#6647)
* fix: getPageHolder would always return the first split, as they share the same index * split pages have the same number, we need an extra check to know whether we move forward or back (cherry picked from commit 2f07f226b8182699884262ac67139454d5b7070d) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt
This commit is contained in:
parent
d343964fa7
commit
1231dd1496
@ -171,18 +171,27 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
||||
private fun getPageHolder(page: ReaderPage): PagerPageHolder? =
|
||||
pager.children
|
||||
.filterIsInstance(PagerPageHolder::class.java)
|
||||
.firstOrNull { it.item.first.index == page.index || it.item.second?.index == page.index }
|
||||
.firstOrNull { it.item.first == page || it.item.second == page }
|
||||
|
||||
/**
|
||||
* Called when a new page (either a [ReaderPage] or [ChapterTransition]) is marked as active
|
||||
*/
|
||||
@Suppress("NAME_SHADOWING")
|
||||
fun onPageChange(position: Int) {
|
||||
val page = adapter.joinedItems.getOrNull(position)
|
||||
if (page != null && currentPage != page) {
|
||||
val allowPreload = checkAllowPreload(page.first as? ReaderPage)
|
||||
val forward = when {
|
||||
currentPage is ReaderPage && page.first is ReaderPage ->
|
||||
(page.first as ReaderPage).number > (currentPage as ReaderPage).number
|
||||
currentPage is ReaderPage && page.first is ReaderPage -> {
|
||||
// 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) {
|
||||
// the InsertPage is always the second in the reading direction
|
||||
page is InsertPage
|
||||
} else {
|
||||
page.number > (currentPage as ReaderPage).number
|
||||
}
|
||||
}
|
||||
currentPage is ChapterTransition.Prev && page.first is ReaderPage ->
|
||||
false
|
||||
else -> true
|
||||
|
Loading…
x
Reference in New Issue
Block a user