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