Merged manga play button fix
This commit is contained in:
parent
70bbede29e
commit
9c34323c9d
@ -14,7 +14,7 @@ import tachiyomi.source.local.isLocal
|
||||
* Applies the view filters to the list of chapters obtained from the database.
|
||||
* @return an observable of the list of chapters filtered and sorted.
|
||||
*/
|
||||
fun List<Chapter>.applyFilters(manga: Manga, downloadManager: DownloadManager): List<Chapter> {
|
||||
fun List<Chapter>.applyFilters(manga: Manga, downloadManager: DownloadManager/* SY --> */, mergedManga: Map<Long, Manga>/* SY <-- */): List<Chapter> {
|
||||
val isLocalManga = manga.isLocal()
|
||||
val unreadFilter = manga.unreadFilter
|
||||
val downloadedFilter = manga.downloadedFilter
|
||||
@ -23,6 +23,10 @@ fun List<Chapter>.applyFilters(manga: Manga, downloadManager: DownloadManager):
|
||||
return filter { chapter -> applyFilter(unreadFilter) { !chapter.read } }
|
||||
.filter { chapter -> applyFilter(bookmarkedFilter) { chapter.bookmark } }
|
||||
.filter { chapter ->
|
||||
// SY -->
|
||||
@Suppress("NAME_SHADOWING")
|
||||
val manga = mergedManga.getOrElse(chapter.mangaId) { manga }
|
||||
// SY <--
|
||||
applyFilter(downloadedFilter) {
|
||||
val downloaded = downloadManager.isChapterDownloaded(chapter.name, chapter.scanlator, /* SY --> */ manga.ogTitle /* SY <-- */, manga.source)
|
||||
downloaded || isLocalManga
|
||||
|
@ -80,6 +80,7 @@ import tachiyomi.domain.category.interactor.GetCategories
|
||||
import tachiyomi.domain.category.interactor.SetMangaCategories
|
||||
import tachiyomi.domain.category.model.Category
|
||||
import tachiyomi.domain.chapter.interactor.GetChapterByMangaId
|
||||
import tachiyomi.domain.chapter.interactor.GetMergedChapterByMangaId
|
||||
import tachiyomi.domain.chapter.model.Chapter
|
||||
import tachiyomi.domain.history.interactor.GetNextChapters
|
||||
import tachiyomi.domain.library.model.LibraryDisplayMode
|
||||
@ -141,6 +142,7 @@ class LibraryScreenModel(
|
||||
private val getSearchTitles: GetSearchTitles = Injekt.get(),
|
||||
private val searchEngine: SearchEngine = Injekt.get(),
|
||||
private val setCustomMangaInfo: SetCustomMangaInfo = Injekt.get(),
|
||||
private val getMergedChapterByMangaId: GetMergedChapterByMangaId = Injekt.get(),
|
||||
// SY <--
|
||||
) : StateScreenModel<LibraryScreenModel.State>(State()) {
|
||||
|
||||
@ -582,7 +584,14 @@ class LibraryScreenModel(
|
||||
}
|
||||
|
||||
suspend fun getNextUnreadChapter(manga: Manga): Chapter? {
|
||||
return getChaptersByMangaId.await(manga.id).getNextUnread(manga, downloadManager)
|
||||
// SY -->
|
||||
val mergedManga = getMergedMangaById.await(manga.id).associateBy { it.id }
|
||||
return if (manga.id == MERGED_SOURCE_ID) {
|
||||
getMergedChapterByMangaId.await(manga.id)
|
||||
} else {
|
||||
getChaptersByMangaId.await(manga.id)
|
||||
}.getNextUnread(manga, downloadManager, mergedManga)
|
||||
// SY <--
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10,8 +10,8 @@ import tachiyomi.domain.manga.model.Manga
|
||||
/**
|
||||
* Gets next unread chapter with filters and sorting applied
|
||||
*/
|
||||
fun List<Chapter>.getNextUnread(manga: Manga, downloadManager: DownloadManager): Chapter? {
|
||||
return applyFilters(manga, downloadManager).let { chapters ->
|
||||
fun List<Chapter>.getNextUnread(manga: Manga, downloadManager: DownloadManager /* SY --> */, mergedManga: Map<Long, Manga>/* SY <-- */): Chapter? {
|
||||
return applyFilters(manga, downloadManager/* SY --> */, mergedManga/* SY <-- */).let { chapters ->
|
||||
// SY -->
|
||||
if (manga.isEhBasedManga()) {
|
||||
return@let if (manga.sortDescending()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user