Fix page previews not opening read chapters

This commit is contained in:
Jobobby04 2023-01-10 16:10:15 -05:00
parent a960b624ce
commit 292f5a93aa
3 changed files with 7 additions and 8 deletions

View File

@ -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 {

View File

@ -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,

View File

@ -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"))