Fix switching double-page mode
This commit is contained in:
@@ -19,6 +19,10 @@ class PagerLifecycleDispatcher(
|
||||
setResumedPage(pager.currentItem)
|
||||
}
|
||||
|
||||
fun postInvalidate() = pager.post {
|
||||
invalidate()
|
||||
}
|
||||
|
||||
private fun setResumedPage(position: Int) {
|
||||
pendingUpdate?.cancel()
|
||||
pendingUpdate = null
|
||||
|
||||
@@ -47,11 +47,12 @@ class ReaderManager(
|
||||
}
|
||||
|
||||
fun setDoubleReaderMode(isEnabled: Boolean) {
|
||||
val prevMode = currentMode
|
||||
val mode = currentMode
|
||||
val prevReader = currentReader?.javaClass
|
||||
invalidateTypesMap(isEnabled && isLandscape())
|
||||
val newMode = currentMode ?: return
|
||||
if (newMode != prevMode) {
|
||||
replace(newMode)
|
||||
val newReader = modeMap[mode]
|
||||
if (mode != null && newReader != prevReader) {
|
||||
replace(mode)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ abstract class BasePagerReaderFragment : BaseReaderFragment<FragmentReaderPagerB
|
||||
val items = launch {
|
||||
requireAdapter().setItems(pages)
|
||||
yield()
|
||||
pagerLifecycleDispatcher?.invalidate()
|
||||
pagerLifecycleDispatcher?.postInvalidate()
|
||||
}
|
||||
if (pendingState != null) {
|
||||
val position = pages.indexOfFirst {
|
||||
|
||||
Reference in New Issue
Block a user