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 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!")
}
}
}

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.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<ReaderItem, ReaderItem?>(
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 {