From 870e3467ba948a3a61de849ef1eaeac1b328da19 Mon Sep 17 00:00:00 2001 From: Ahmad Ansori Palembani Date: Tue, 25 Jun 2024 10:34:15 +0700 Subject: [PATCH] fix(reader): Split page shouldn't be seen as extra page --- .../java/eu/kanade/tachiyomi/ui/reader/model/SplitPage.kt | 6 ++++++ .../kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt | 5 ++--- .../tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt | 6 ++++-- 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/SplitPage.kt diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/SplitPage.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/SplitPage.kt new file mode 100644 index 0000000000..9459e9d560 --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/SplitPage.kt @@ -0,0 +1,6 @@ +package eu.kanade.tachiyomi.ui.reader.model + +/** + * Used as placeholder for split page's second page + */ +class SplitPage : ReaderItem diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt index 9e37de45fc..a15599299f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt @@ -11,9 +11,6 @@ import androidx.core.view.isVisible import androidx.viewpager.widget.ViewPager import co.touchlab.kermit.Logger import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition @@ -26,6 +23,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation import kotlinx.coroutines.MainScope import kotlinx.coroutines.cancel +import nl.adaptivity.xmlutil.core.impl.multiplatform.name import uy.kohesive.injekt.injectLazy /** @@ -215,6 +213,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer { onReaderPageSelected(pageF, allowPreload, page.second is ReaderPage, forward) } is ChapterTransition -> onTransitionSelected(pageF) + else -> throw UnsupportedOperationException("${pageF::class.name} is not supported!") } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt index 30742cb46b..ea08422e54 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt @@ -8,11 +8,13 @@ import eu.kanade.tachiyomi.ui.reader.model.InsertPage import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter import eu.kanade.tachiyomi.ui.reader.model.ReaderItem import eu.kanade.tachiyomi.ui.reader.model.ReaderPage +import eu.kanade.tachiyomi.ui.reader.model.SplitPage import eu.kanade.tachiyomi.ui.reader.model.ViewerChapters import eu.kanade.tachiyomi.ui.reader.viewer.hasMissingChapters import eu.kanade.tachiyomi.util.system.launchUI import eu.kanade.tachiyomi.widget.ViewPagerAdapter import kotlinx.coroutines.delay +import nl.adaptivity.xmlutil.core.impl.multiplatform.name import kotlin.math.max /** @@ -133,6 +135,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { return when (item) { is ReaderPage -> PagerPageHolder(viewer, item, item2 as? ReaderPage) is ChapterTransition -> PagerTransitionHolder(viewer, item) + else -> throw UnsupportedOperationException("${item::class.name} is not supported!") } } @@ -208,8 +211,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { this.joinedItems = pagedItems.map { Pair( it, - // I don't even know what this is... but I'm guessing he try to check if "firstHalf" is not null - if ((it as? ReaderPage)?.fullPage == true && it.firstHalf != null) it else null, + if ((it as? ReaderPage)?.fullPage == true && it.firstHalf == true) SplitPage() else null, ) }.toMutableList() } else {