fix(reader): Split page shouldn't be seen as extra page

This commit is contained in:
Ahmad Ansori Palembani 2024-06-25 10:34:15 +07:00
parent 42dd0183e8
commit 870e3467ba
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
3 changed files with 12 additions and 5 deletions

View file

@ -0,0 +1,6 @@
package eu.kanade.tachiyomi.ui.reader.model
/**
* Used as placeholder for split page's second page
*/
class SplitPage : ReaderItem

View file

@ -11,9 +11,6 @@ import androidx.core.view.isVisible
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import co.touchlab.kermit.Logger import co.touchlab.kermit.Logger
import eu.kanade.tachiyomi.R 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.data.download.DownloadManager
import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition 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 eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel import kotlinx.coroutines.cancel
import nl.adaptivity.xmlutil.core.impl.multiplatform.name
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
/** /**
@ -215,6 +213,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
onReaderPageSelected(pageF, allowPreload, page.second is ReaderPage, forward) onReaderPageSelected(pageF, allowPreload, page.second is ReaderPage, forward)
} }
is ChapterTransition -> onTransitionSelected(pageF) is ChapterTransition -> onTransitionSelected(pageF)
else -> throw UnsupportedOperationException("${pageF::class.name} is not supported!")
} }
} }
} }

View file

@ -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.ReaderChapter
import eu.kanade.tachiyomi.ui.reader.model.ReaderItem import eu.kanade.tachiyomi.ui.reader.model.ReaderItem
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage 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.model.ViewerChapters
import eu.kanade.tachiyomi.ui.reader.viewer.hasMissingChapters import eu.kanade.tachiyomi.ui.reader.viewer.hasMissingChapters
import eu.kanade.tachiyomi.util.system.launchUI import eu.kanade.tachiyomi.util.system.launchUI
import eu.kanade.tachiyomi.widget.ViewPagerAdapter import eu.kanade.tachiyomi.widget.ViewPagerAdapter
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import nl.adaptivity.xmlutil.core.impl.multiplatform.name
import kotlin.math.max import kotlin.math.max
/** /**
@ -133,6 +135,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
return when (item) { return when (item) {
is ReaderPage -> PagerPageHolder(viewer, item, item2 as? ReaderPage) is ReaderPage -> PagerPageHolder(viewer, item, item2 as? ReaderPage)
is ChapterTransition -> PagerTransitionHolder(viewer, item) 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 { this.joinedItems = pagedItems.map {
Pair<ReaderItem, ReaderItem?>( Pair<ReaderItem, ReaderItem?>(
it, 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 == true) SplitPage() else null,
if ((it as? ReaderPage)?.fullPage == true && it.firstHalf != null) it else null,
) )
}.toMutableList() }.toMutableList()
} else { } else {