From 292f5a93aa6fb702aa9fe69f8927b3a4bb59a3f7 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Tue, 10 Jan 2023 16:10:15 -0500 Subject: [PATCH] Fix page previews not opening read chapters --- .../eu/kanade/domain/manga/interactor/GetPagePreviews.kt | 6 +++--- .../main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt | 3 +-- app/src/main/java/exh/pagepreview/PagePreviewScreenModel.kt | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/kanade/domain/manga/interactor/GetPagePreviews.kt b/app/src/main/java/eu/kanade/domain/manga/interactor/GetPagePreviews.kt index e1a7640e3..670630511 100644 --- a/app/src/main/java/eu/kanade/domain/manga/interactor/GetPagePreviews.kt +++ b/app/src/main/java/eu/kanade/domain/manga/interactor/GetPagePreviews.kt @@ -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() ?: 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 { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt index 283a4366f..db1895079 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt @@ -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, diff --git a/app/src/main/java/exh/pagepreview/PagePreviewScreenModel.kt b/app/src/main/java/exh/pagepreview/PagePreviewScreenModel.kt index 8fe01d327..2748d218e 100644 --- a/app/src/main/java/exh/pagepreview/PagePreviewScreenModel.kt +++ b/app/src/main/java/exh/pagepreview/PagePreviewScreenModel.kt @@ -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.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"))