From abc3e4590754fdf91727e33a9f96983fca5656c8 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sun, 18 Feb 2024 09:08:22 +0200 Subject: [PATCH] Fix reader state on changed --- .../koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt | 3 +++ .../koitharu/kotatsu/reader/ui/pager/BaseReaderFragment.kt | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt index 7a289cbdf..fd50902ea 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderAdapter.kt @@ -22,6 +22,9 @@ abstract class BaseReaderAdapter>( private val differ = AsyncListDiffer(this, DiffCallback()) + val hasItems: Boolean + get() = itemCount != 0 + init { stateRestorationPolicy = StateRestorationPolicy.PREVENT } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderFragment.kt index 3d6ea7fdc..0501b8b70 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/BaseReaderFragment.kt @@ -29,7 +29,11 @@ abstract class BaseReaderFragment : BaseFragment(), ZoomCont readerAdapter = onCreateAdapter() viewModel.content.observe(viewLifecycleOwner) { - onPagesChanged(it.pages, restoredState ?: it.state) + var pendingState = restoredState ?: it.state + if (pendingState == null && readerAdapter?.hasItems != true) { + pendingState = viewModel.getCurrentState() + } + onPagesChanged(it.pages, pendingState) restoredState = null } }