mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
refactor: Replacing Any with an actual type
This commit is contained in:
parent
68fd2a3548
commit
9cb072d28d
5 changed files with 20 additions and 15 deletions
|
@ -1,6 +1,6 @@
|
||||||
package eu.kanade.tachiyomi.ui.reader.model
|
package eu.kanade.tachiyomi.ui.reader.model
|
||||||
|
|
||||||
sealed class ChapterTransition {
|
sealed class ChapterTransition : ReaderItem {
|
||||||
|
|
||||||
abstract val from: ReaderChapter
|
abstract val from: ReaderChapter
|
||||||
abstract val to: ReaderChapter?
|
abstract val to: ReaderChapter?
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
package eu.kanade.tachiyomi.ui.reader.model
|
||||||
|
|
||||||
|
sealed interface ReaderItem
|
|
@ -11,7 +11,7 @@ open class ReaderPage(
|
||||||
var stream: (() -> InputStream)? = null,
|
var stream: (() -> InputStream)? = null,
|
||||||
var bg: Drawable? = null,
|
var bg: Drawable? = null,
|
||||||
var bgType: Int? = null,
|
var bgType: Int? = null,
|
||||||
) : Page(index, url, imageUrl, null) {
|
) : Page(index, url, imageUrl, null), ReaderItem {
|
||||||
|
|
||||||
/** Value to check if this page is used to as if it was too wide */
|
/** Value to check if this page is used to as if it was too wide */
|
||||||
var shiftedPage: Boolean = false
|
var shiftedPage: Boolean = false
|
||||||
|
|
|
@ -16,6 +16,7 @@ import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
|
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.InsertPage
|
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.ReaderPage
|
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.ViewerChapters
|
import eu.kanade.tachiyomi.ui.reader.model.ViewerChapters
|
||||||
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
|
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
|
||||||
|
@ -53,7 +54,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
||||||
/**
|
/**
|
||||||
* Currently active item. It can be a chapter page or a chapter transition.
|
* Currently active item. It can be a chapter page or a chapter transition.
|
||||||
*/
|
*/
|
||||||
private var currentPage: Any? = null
|
private var currentPage: ReaderItem? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Viewer chapters to set when the pager enters idle mode. Otherwise, if the view was settling
|
* Viewer chapters to set when the pager enters idle mode. Otherwise, if the view was settling
|
||||||
|
@ -281,7 +282,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getItem(position: Int, currentChapter: ReaderChapter?): Pair<Any, Any?>? {
|
private fun getItem(position: Int, currentChapter: ReaderChapter?): Pair<ReaderItem, ReaderItem?>? {
|
||||||
return adapter.joinedItems.firstOrNull {
|
return adapter.joinedItems.firstOrNull {
|
||||||
val readerPage = it.first as? ReaderPage ?: return@firstOrNull false
|
val readerPage = it.first as? ReaderPage ?: return@firstOrNull false
|
||||||
readerPage.index == position && readerPage.chapter.chapter.id == currentChapter?.chapter?.id
|
readerPage.index == position && readerPage.chapter.chapter.id == currentChapter?.chapter?.id
|
||||||
|
@ -502,7 +503,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun hideMenuIfVisible(item: Any) {
|
fun hideMenuIfVisible(item: Pair<ReaderItem, ReaderItem?>) {
|
||||||
val currentItem = adapter.joinedItems.getOrNull(pager.currentItem)
|
val currentItem = adapter.joinedItems.getOrNull(pager.currentItem)
|
||||||
if (item == currentItem && isIdle) {
|
if (item == currentItem && isIdle) {
|
||||||
activity.hideMenu()
|
activity.hideMenu()
|
||||||
|
|
|
@ -6,6 +6,7 @@ import co.touchlab.kermit.Logger
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
|
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.InsertPage
|
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.ReaderPage
|
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
|
||||||
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
|
||||||
|
@ -22,11 +23,11 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
|
||||||
/**
|
/**
|
||||||
* Paired list of currently set items.
|
* Paired list of currently set items.
|
||||||
*/
|
*/
|
||||||
var joinedItems: MutableList<Pair<Any, Any?>> = mutableListOf()
|
var joinedItems: MutableList<Pair<ReaderItem, ReaderItem?>> = mutableListOf()
|
||||||
private set
|
private set
|
||||||
|
|
||||||
/** Single list of items */
|
/** Single list of items */
|
||||||
private var subItems: MutableList<Any> = mutableListOf()
|
private var subItems: MutableList<ReaderItem> = mutableListOf()
|
||||||
|
|
||||||
var nextTransition: ChapterTransition.Next? = null
|
var nextTransition: ChapterTransition.Next? = null
|
||||||
private set
|
private set
|
||||||
|
@ -47,7 +48,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
|
||||||
* has R2L direction.
|
* has R2L direction.
|
||||||
*/
|
*/
|
||||||
fun setChapters(chapters: ViewerChapters, forceTransition: Boolean) {
|
fun setChapters(chapters: ViewerChapters, forceTransition: Boolean) {
|
||||||
val newItems = mutableListOf<Any>()
|
val newItems = mutableListOf<ReaderItem>()
|
||||||
|
|
||||||
// Force chapter transition page if there are missing chapters
|
// Force chapter transition page if there are missing chapters
|
||||||
val prevHasMissingChapters = hasMissingChapters(chapters.currChapter, chapters.prevChapter)
|
val prevHasMissingChapters = hasMissingChapters(chapters.currChapter, chapters.prevChapter)
|
||||||
|
@ -132,7 +133,6 @@ 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 NotImplementedError("Holder for ${item.javaClass} not implemented")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (viewer.config.splitPages) {
|
if (viewer.config.splitPages) {
|
||||||
val pagedItems = mutableListOf<Any>()
|
val pagedItems = mutableListOf<ReaderItem>()
|
||||||
subItems.forEach {
|
subItems.forEach {
|
||||||
val page = it as? ReaderPage ?: return@forEach
|
val page = it as? ReaderPage ?: return@forEach
|
||||||
|
|
||||||
|
@ -208,20 +208,21 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.joinedItems = pagedItems.map {
|
this.joinedItems = pagedItems.map {
|
||||||
Pair<Any, Any?>(
|
Pair<ReaderItem, ReaderItem?>(
|
||||||
it,
|
it,
|
||||||
if ((it as? ReaderPage)?.fullPage == true) (it as? ReaderPage)?.firstHalf else null,
|
// 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,
|
||||||
)
|
)
|
||||||
}.toMutableList()
|
}.toMutableList()
|
||||||
} else {
|
} else {
|
||||||
this.joinedItems = subItems.map { Pair<Any, Any?>(it, null) }.toMutableList()
|
this.joinedItems = subItems.map { Pair<ReaderItem, ReaderItem?>(it, null) }.toMutableList()
|
||||||
}
|
}
|
||||||
if (viewer is R2LPagerViewer) {
|
if (viewer is R2LPagerViewer) {
|
||||||
joinedItems.reverse()
|
joinedItems.reverse()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val pagedItems = mutableListOf<MutableList<ReaderPage?>>()
|
val pagedItems = mutableListOf<MutableList<ReaderPage?>>()
|
||||||
val otherItems = mutableListOf<Any>()
|
val otherItems = mutableListOf<ReaderItem>()
|
||||||
pagedItems.add(mutableListOf())
|
pagedItems.add(mutableListOf())
|
||||||
// Step 1: segment the pages and transition pages
|
// Step 1: segment the pages and transition pages
|
||||||
subItems.forEach {
|
subItems.forEach {
|
||||||
|
@ -238,7 +239,7 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var pagedIndex = 0
|
var pagedIndex = 0
|
||||||
val subJoinedItems = mutableListOf<Pair<Any, Any?>>()
|
val subJoinedItems = mutableListOf<Pair<ReaderItem, ReaderItem?>>()
|
||||||
// Step 2: run through each set of pages
|
// Step 2: run through each set of pages
|
||||||
pagedItems.forEach { items ->
|
pagedItems.forEach { items ->
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue