Update reader chapter list filtering to handle not downloaded/bookmarked (closes #5107)

(cherry picked from commit ce9fb2f1fe03e47c64f0f667a9f7ef040f46bb2f)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
This commit is contained in:
arkon 2021-05-23 11:27:52 -04:00 committed by Jobobby04
parent ac7e2909ba
commit de4e0abef4

View File

@ -125,20 +125,16 @@ class ReaderPresenter(
val selectedChapter = dbChapters.find { it.id == chapterId } val selectedChapter = dbChapters.find { it.id == chapterId }
?: error("Requested chapter of id $chapterId not found in chapter list") ?: error("Requested chapter of id $chapterId not found in chapter list")
val chaptersForReader = val chaptersForReader = when {
if (preferences.skipRead() || preferences.skipFiltered()) { (preferences.skipRead() || preferences.skipFiltered()) -> {
val list = dbChapters val list = dbChapters.filterNot {
.filter { when {
if (preferences.skipRead() && it.read) { preferences.skipRead() && it.read -> true
return@filter false preferences.skipFiltered() -> {
} else if (preferences.skipFiltered()) {
if (
(manga.readFilter == Manga.CHAPTER_SHOW_READ && !it.read) || (manga.readFilter == Manga.CHAPTER_SHOW_READ && !it.read) ||
(manga.readFilter == Manga.CHAPTER_SHOW_UNREAD && it.read) || (manga.readFilter == Manga.CHAPTER_SHOW_UNREAD && it.read) ||
( (manga.downloadedFilter == Manga.CHAPTER_SHOW_DOWNLOADED && !downloadManager.isChapterDownloaded(it, manga)) ||
manga.downloadedFilter == Manga.CHAPTER_SHOW_DOWNLOADED && (manga.downloadedFilter == Manga.CHAPTER_SHOW_NOT_DOWNLOADED && downloadManager.isChapterDownloaded(it, manga)) ||
!downloadManager.isChapterDownloaded(it, manga)
) ||
(manga.bookmarkedFilter == Manga.CHAPTER_SHOW_BOOKMARKED && !it.bookmark) || (manga.bookmarkedFilter == Manga.CHAPTER_SHOW_BOOKMARKED && !it.bookmark) ||
// SY --> // SY -->
(filteredScanlators != null && MdUtil.getScanlators(it.scanlator).none { group -> filteredScanlators.contains(group) }) (filteredScanlators != null && MdUtil.getScanlators(it.scanlator).none { group -> filteredScanlators.contains(group) })
@ -147,8 +143,8 @@ class ReaderPresenter(
return@filter false return@filter false
} }
} }
else -> false
true }
} }
.toMutableList() .toMutableList()
@ -157,8 +153,8 @@ class ReaderPresenter(
list.add(selectedChapter) list.add(selectedChapter)
} }
list list
} else { }
dbChapters else -> dbChapters
} }
when (manga.sorting) { when (manga.sorting) {