Fix page previews not opening read chapters
This commit is contained in:
parent
a960b624ce
commit
292f5a93aa
@ -1,6 +1,6 @@
|
||||
package eu.kanade.domain.manga.interactor
|
||||
|
||||
import eu.kanade.domain.history.interactor.GetNextChapters
|
||||
import eu.kanade.domain.chapter.interactor.GetChapterByMangaId
|
||||
import eu.kanade.domain.manga.model.Manga
|
||||
import eu.kanade.domain.manga.model.PagePreview
|
||||
import eu.kanade.tachiyomi.data.cache.PagePreviewCache
|
||||
@ -10,13 +10,13 @@ import exh.source.getMainSource
|
||||
|
||||
class GetPagePreviews(
|
||||
private val pagePreviewCache: PagePreviewCache,
|
||||
private val getChapters: GetNextChapters,
|
||||
private val getChapters: GetChapterByMangaId,
|
||||
) {
|
||||
|
||||
suspend fun await(manga: Manga, source: Source, page: Int): Result {
|
||||
@Suppress("NAME_SHADOWING")
|
||||
val source = source.getMainSource<PagePreviewSource>() ?: return Result.Unused
|
||||
val chapters = getChapters.await(manga.id, false)
|
||||
val chapters = getChapters.await(manga.id).sortedByDescending { it.sourceOrder }
|
||||
val chapterIds = chapters.map { it.id }
|
||||
return try {
|
||||
val pagePreviews = try {
|
||||
|
@ -59,7 +59,6 @@ import eu.kanade.tachiyomi.ui.manga.merged.EditMergedSettingsDialog
|
||||
import eu.kanade.tachiyomi.ui.manga.track.TrackInfoDialogHomeScreen
|
||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||
import eu.kanade.tachiyomi.ui.webview.WebViewActivity
|
||||
import eu.kanade.tachiyomi.util.chapter.getNextUnread
|
||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||
import eu.kanade.tachiyomi.util.lang.withIOContext
|
||||
import eu.kanade.tachiyomi.util.lang.withNonCancellableContext
|
||||
@ -177,7 +176,7 @@ class MangaScreen(
|
||||
onMergedSettingsClicked = screenModel::showEditMergedSettingsDialog,
|
||||
onMergeClicked = { openSmartSearch(navigator, successState.manga) },
|
||||
onMergeWithAnotherClicked = { mergeWithAnother(navigator, context, successState.manga, screenModel::smartSearchMerge) },
|
||||
onOpenPagePreview = { openPagePreview(context, successState.chapters.getNextUnread(successState.manga), it) },
|
||||
onOpenPagePreview = { openPagePreview(context, successState.chapters.minByOrNull { it.chapter.sourceOrder }?.chapter, it) },
|
||||
onMorePreviewsClicked = { openMorePagePreviews(navigator, successState.manga) },
|
||||
// SY <--
|
||||
onMultiBookmarkClicked = screenModel::bookmarkChapters,
|
||||
|
@ -5,8 +5,8 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.setValue
|
||||
import cafe.adriel.voyager.core.model.StateScreenModel
|
||||
import cafe.adriel.voyager.core.model.coroutineScope
|
||||
import eu.kanade.domain.chapter.interactor.GetChapterByMangaId
|
||||
import eu.kanade.domain.chapter.model.Chapter
|
||||
import eu.kanade.domain.history.interactor.GetNextChapters
|
||||
import eu.kanade.domain.manga.interactor.GetManga
|
||||
import eu.kanade.domain.manga.interactor.GetPagePreviews
|
||||
import eu.kanade.domain.manga.model.Manga
|
||||
@ -26,7 +26,7 @@ class PagePreviewScreenModel(
|
||||
private val mangaId: Long,
|
||||
private val getPagePreviews: GetPagePreviews = Injekt.get(),
|
||||
private val getManga: GetManga = Injekt.get(),
|
||||
private val getNextChapters: GetNextChapters = Injekt.get(),
|
||||
private val getChapterByMangaId: GetChapterByMangaId = Injekt.get(),
|
||||
private val sourceManager: SourceManager = Injekt.get(),
|
||||
) : StateScreenModel<PagePreviewState>(PagePreviewState.Loading) {
|
||||
|
||||
@ -37,7 +37,7 @@ class PagePreviewScreenModel(
|
||||
init {
|
||||
coroutineScope.launchIO {
|
||||
val manga = getManga.await(mangaId)!!
|
||||
val chapter = getNextChapters.await(mangaId, onlyUnread = false).lastOrNull()
|
||||
val chapter = getChapterByMangaId.await(mangaId).minByOrNull { it.sourceOrder }
|
||||
if (chapter == null) {
|
||||
mutableState.update {
|
||||
PagePreviewState.Error(Exception("No chapters found"))
|
||||
|
Loading…
x
Reference in New Issue
Block a user