chore(pager-viewer): cleanup setChaptersInternal

This commit is contained in:
Cuong-Tran 2025-05-14 10:48:38 +07:00
parent 9ca58cd8dd
commit 85e3e383cb
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2
2 changed files with 10 additions and 18 deletions

View file

@ -916,7 +916,7 @@ class ReaderActivity : BaseActivity() {
) % 2 != 0
}
viewModel.state.value.viewerChapters?.let {
viewer.setChaptersDoubleShift(it)
viewer.setChaptersInternal(it)
}
}
@ -932,7 +932,7 @@ class ReaderActivity : BaseActivity() {
config.shiftDoublePage = !config.shiftDoublePage
viewModel.state.value.viewerChapters?.let {
viewer.updateShifting()
viewer.setChaptersDoubleShift(it)
viewer.setChaptersInternal(it)
invalidateOptionsMenu()
}
}

View file

@ -84,7 +84,7 @@ abstract class PagerViewer(
field = value
if (value) {
awaitingIdleViewerChapters?.let { viewerChapters ->
setChaptersDoubleShift(viewerChapters)
setChaptersInternal(viewerChapters)
awaitingIdleViewerChapters = null
if (viewerChapters.currChapter.pages?.size == 1) {
adapter.nextTransition?.to?.let(activity::requestPreloadChapter)
@ -288,7 +288,7 @@ abstract class PagerViewer(
*/
override fun setChapters(chapters: ViewerChapters) {
if (isIdle) {
setChaptersDoubleShift(chapters)
setChaptersInternal(chapters)
} else {
awaitingIdleViewerChapters = chapters
}
@ -297,12 +297,13 @@ abstract class PagerViewer(
/**
* Sets the active [chapters] on this pager.
*/
private fun setChaptersInternal(chapters: ViewerChapters) {
internal fun setChaptersInternal(chapters: ViewerChapters) {
// Remove listener so the change in item doesn't trigger it
// 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
pager.removeOnPageChangeListener(pagerListener)
val forceTransition =
config.alwaysShowChapterTransition ||
val forceTransition = config.alwaysShowChapterTransition ||
adapter.joinedItems.getOrNull(pager.currentItem)?.first is ChapterTransition
adapter.setChapters(chapters, forceTransition)
@ -315,6 +316,7 @@ abstract class PagerViewer(
}
pager.addOnPageChangeListener(pagerListener)
// Since we removed the listener while shifting,
// Manually call onPageChange to update the UI
onPageChange(pager.currentItem)
}
@ -500,16 +502,6 @@ abstract class PagerViewer(
}
// SY -->
fun setChaptersDoubleShift(chapters: ViewerChapters) {
// 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
pager.removeOnPageChangeListener(pagerListener)
setChaptersInternal(chapters)
pager.addOnPageChangeListener(pagerListener)
// Since we removed the listener while shifting, call page change to update the ui
onPageChange(pager.currentItem)
}
fun updateShifting(page: ReaderPage? = null) {
adapter.pageToShift = page ?: adapter.joinedItems.getOrNull(pager.currentItem)?.first as? ReaderPage
}