From 65f58b93ed14102ab2d9808cb641df06f4b4747c Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Mon, 19 Dec 2022 09:04:10 +0800 Subject: [PATCH] Update mCurrentIndex on page move Resolve #538 --- .../eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt | 12 +++++------- .../ui/reader/viewer/webtoon/WebtoonViewer.kt | 8 ++------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 23f53d280..89ed1128a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -281,12 +281,9 @@ class ReaderActivity : EhActivity() { mGalleryProvider!!.start() // Get start page - val startPage: Int = if (savedInstanceState == null) { - if (mPage >= 0) mPage else mGalleryProvider!!.startPage - } else { - mCurrentIndex + if (savedInstanceState == null) { + mCurrentIndex = if (mPage >= 0) mPage else mGalleryProvider!!.startPage } - mCurrentIndex = startPage lifecycleScope.launch(Dispatchers.Main) { mGalleryProvider!!.state.collect { @@ -788,7 +785,7 @@ class ReaderActivity : EhActivity() { setTooltip(R.string.action_settings) val readerSettingSheetDialog = ReaderSettingsSheet(this@ReaderActivity) setOnClickListener { - if (!readerSettingSheetDialog.isShowing()) { + if (!readerSettingSheetDialog.isShowing) { readerSettingSheetDialog.show() } } @@ -882,7 +879,8 @@ class ReaderActivity : EhActivity() { binding.pageSlider.valueTo = max(pages.lastIndex.toFloat(), 1f) binding.pageSlider.value = page.index.toFloat() - mGalleryProvider?.putStartPage(page.index) + mCurrentIndex = page.index + mGalleryProvider?.putStartPage(mCurrentIndex) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt index 0e65d0018..46073cf20 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt @@ -12,16 +12,14 @@ import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.WebtoonLayoutManager -import eu.kanade.tachiyomi.ui.reader.loader.PageLoader import eu.kanade.tachiyomi.ui.reader.ReaderActivity +import eu.kanade.tachiyomi.ui.reader.loader.PageLoader import eu.kanade.tachiyomi.ui.reader.model.ReaderPage import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation.NavigationRegion import eu.kanade.tachiyomi.util.system.logcat import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel -import kotlin.math.max -import kotlin.math.min /** * Implementation of a [BaseViewer] to display pages with a [RecyclerView]. @@ -171,9 +169,7 @@ class WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = tr val position = adapter.items.indexOf(page) if (position != -1) { layoutManager.scrollToPositionWithOffset(position, 0) - if (layoutManager.findLastEndVisibleItemPosition() == -1) { - onScrolled(pos = position) - } + onScrolled(pos = position) } else { logcat { "Page $page not found in adapter" } }