Fix next chapter button occasionally jumping to the last page of the current chapter (#1920)
(cherry picked from commit 941dde341eb11703eadae543f351c9284617541c) # Conflicts: # CHANGELOG.md # app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt
This commit is contained in:
parent
84d901b8a3
commit
77a4919656
@ -105,11 +105,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : Viewer {
|
|||||||
pager.offscreenPageLimit = 1
|
pager.offscreenPageLimit = 1
|
||||||
pager.id = R.id.reader_pager
|
pager.id = R.id.reader_pager
|
||||||
pager.adapter = adapter
|
pager.adapter = adapter
|
||||||
pager.addOnPageChangeListener(
|
pager.addOnPageChangeListener(pagerListener)
|
||||||
// SY -->
|
|
||||||
pagerListener,
|
|
||||||
// SY <--
|
|
||||||
)
|
|
||||||
pager.tapListener = { event ->
|
pager.tapListener = { event ->
|
||||||
val viewPosition = IntArray(2)
|
val viewPosition = IntArray(2)
|
||||||
pager.getLocationOnScreen(viewPosition)
|
pager.getLocationOnScreen(viewPosition)
|
||||||
@ -291,6 +287,9 @@ abstract class PagerViewer(val activity: ReaderActivity) : Viewer {
|
|||||||
* Sets the active [chapters] on this pager.
|
* Sets the active [chapters] on this pager.
|
||||||
*/
|
*/
|
||||||
private fun setChaptersInternal(chapters: ViewerChapters) {
|
private fun setChaptersInternal(chapters: ViewerChapters) {
|
||||||
|
// Remove listener so the change in item doesn't trigger it
|
||||||
|
pager.removeOnPageChangeListener(pagerListener)
|
||||||
|
|
||||||
val forceTransition =
|
val forceTransition =
|
||||||
config.alwaysShowChapterTransition ||
|
config.alwaysShowChapterTransition ||
|
||||||
adapter.joinedItems.getOrNull(pager.currentItem)?.first is ChapterTransition
|
adapter.joinedItems.getOrNull(pager.currentItem)?.first is ChapterTransition
|
||||||
@ -303,6 +302,8 @@ abstract class PagerViewer(val activity: ReaderActivity) : Viewer {
|
|||||||
moveToPage(pages[min(chapters.currChapter.requestedPage, pages.lastIndex)])
|
moveToPage(pages[min(chapters.currChapter.requestedPage, pages.lastIndex)])
|
||||||
pager.isVisible = true
|
pager.isVisible = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pager.addOnPageChangeListener(pagerListener)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -475,9 +476,9 @@ abstract class PagerViewer(val activity: ReaderActivity) : Viewer {
|
|||||||
fun setChaptersDoubleShift(chapters: ViewerChapters) {
|
fun setChaptersDoubleShift(chapters: ViewerChapters) {
|
||||||
// Remove Listener since we're about to change the size of the items
|
// Remove Listener since we're about to change the size of the items
|
||||||
// If we don't the size change could put us on a new chapter
|
// If we don't the size change could put us on a new chapter
|
||||||
pager.removeOnPageChangeListener(pagerListener)
|
// pager.removeOnPageChangeListener(pagerListener)
|
||||||
setChaptersInternal(chapters)
|
setChaptersInternal(chapters)
|
||||||
pager.addOnPageChangeListener(pagerListener)
|
// pager.addOnPageChangeListener(pagerListener)
|
||||||
// Since we removed the listener while shifting, call page change to update the ui
|
// Since we removed the listener while shifting, call page change to update the ui
|
||||||
onPageChange(pager.currentItem)
|
onPageChange(pager.currentItem)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user