diff --git a/CHANGELOG.md b/CHANGELOG.md index 3efc2ed27..ef67c5aaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ The format is a modified version of [Keep a Changelog](https://keepachangelog.co ### Fixes - Fix Bangumi search results including novels ([@MajorTanya](https://github.com/MajorTanya)) ([#1885](https://github.com/mihonapp/mihon/pull/1885)) +- Fix next chapter button occasionally jumping to the last page of the current chapter ([@perokhe](https://github.com/perokhe)) ([#1920](https://github.com/mihonapp/mihon/pull/1920)) ## [v0.18.0] - 2025-03-20 ### Added diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt index fbc995626..5277e843c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt @@ -116,11 +116,7 @@ abstract class PagerViewer( pager.offscreenPageLimit = 1 pager.id = R.id.reader_pager pager.adapter = adapter - pager.addOnPageChangeListener( - // SY --> - pagerListener, - // SY <-- - ) + pager.addOnPageChangeListener(pagerListener) pager.tapListener = { event -> val viewPosition = IntArray(2) pager.getLocationOnScreen(viewPosition) @@ -302,6 +298,9 @@ abstract class PagerViewer( * Sets the active [chapters] on this pager. */ private fun setChaptersInternal(chapters: ViewerChapters) { + // Remove listener so the change in item doesn't trigger it + pager.removeOnPageChangeListener(pagerListener) + val forceTransition = config.alwaysShowChapterTransition || adapter.joinedItems.getOrNull(pager.currentItem)?.first is ChapterTransition @@ -314,6 +313,8 @@ abstract class PagerViewer( moveToPage(pages[min(chapters.currChapter.requestedPage, pages.lastIndex)]) pager.isVisible = true } + + pager.addOnPageChangeListener(pagerListener) } /**