From b5177c5930b3d993e220b94f0b75929b76e7afbf Mon Sep 17 00:00:00 2001 From: perokhe <81130286+perokhe@users.noreply.github.com> Date: Thu, 27 Mar 2025 08:25:25 -0600 Subject: [PATCH] Fix next chapter button occasionally jumping to the last page of the current chapter (mihonapp/mihon#1920) (cherry picked from commit 941dde341eb11703eadae543f351c9284617541c) --- CHANGELOG.md | 1 + .../tachiyomi/ui/reader/viewer/pager/PagerViewer.kt | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) 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) } /**