From 0f28d5de11ae22a83a044baa64d0218a03dc0c2e Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 20 Aug 2024 15:39:17 +0300 Subject: [PATCH] Fix switching double-page mode --- app/build.gradle | 4 ++-- .../core/ui/list/lifecycle/PagerLifecycleDispatcher.kt | 4 ++++ .../org/koitharu/kotatsu/reader/ui/ReaderManager.kt | 9 +++++---- .../kotatsu/reader/ui/pager/BasePagerReaderFragment.kt | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e2b7b427d..b00fe5abb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId 'org.koitharu.kotatsu' minSdk = 21 targetSdk = 35 - versionCode = 661 - versionName = '7.5-a1' + versionCode = 662 + versionName = '7.5-a2' generatedDensities = [] testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner' ksp { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/lifecycle/PagerLifecycleDispatcher.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/lifecycle/PagerLifecycleDispatcher.kt index 6f43da7de..69892efb1 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/lifecycle/PagerLifecycleDispatcher.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/list/lifecycle/PagerLifecycleDispatcher.kt @@ -19,6 +19,10 @@ class PagerLifecycleDispatcher( setResumedPage(pager.currentItem) } + fun postInvalidate() = pager.post { + invalidate() + } + private fun setResumedPage(position: Int) { pendingUpdate?.cancel() pendingUpdate = null diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderManager.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderManager.kt index c3d3c8698..bb045deb8 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderManager.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderManager.kt @@ -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) } } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BasePagerReaderFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BasePagerReaderFragment.kt index 81545d46c..1eccf7bc1 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BasePagerReaderFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BasePagerReaderFragment.kt @@ -120,7 +120,7 @@ abstract class BasePagerReaderFragment : BaseReaderFragment