Fix mark existing duplicate read chapters as read option not working in some cases (#1944)
(cherry picked from commit 8a21148578af3c1538e9ab2b1fe5bdf05b4e35c9) # Conflicts: # CHANGELOG.md # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
This commit is contained in:
parent
ae3f974d8c
commit
9972fa1053
@ -19,7 +19,6 @@ import eu.kanade.domain.sync.SyncPreferences
|
|||||||
import eu.kanade.domain.track.interactor.TrackChapter
|
import eu.kanade.domain.track.interactor.TrackChapter
|
||||||
import eu.kanade.domain.track.service.TrackPreferences
|
import eu.kanade.domain.track.service.TrackPreferences
|
||||||
import eu.kanade.domain.ui.UiPreferences
|
import eu.kanade.domain.ui.UiPreferences
|
||||||
import eu.kanade.tachiyomi.data.database.models.isRecognizedNumber
|
|
||||||
import eu.kanade.tachiyomi.data.database.models.toDomainChapter
|
import eu.kanade.tachiyomi.data.database.models.toDomainChapter
|
||||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||||
import eu.kanade.tachiyomi.data.download.DownloadProvider
|
import eu.kanade.tachiyomi.data.download.DownloadProvider
|
||||||
@ -184,6 +183,11 @@ class ReaderViewModel @JvmOverloads constructor(
|
|||||||
|
|
||||||
private var chapterToDownload: Download? = null
|
private var chapterToDownload: Download? = null
|
||||||
|
|
||||||
|
private val unfilteredChapterList by lazy {
|
||||||
|
val manga = manga!!
|
||||||
|
runBlocking { getChaptersByMangaId.await(manga.id, applyScanlatorFilter = false) }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Chapter list for the active manga. It's retrieved lazily and should be accessed for the first
|
* Chapter list for the active manga. It's retrieved lazily and should be accessed for the first
|
||||||
* time in a background thread to avoid blocking the UI.
|
* time in a background thread to avoid blocking the UI.
|
||||||
@ -732,11 +736,11 @@ class ReaderViewModel @JvmOverloads constructor(
|
|||||||
// SY -->
|
// SY -->
|
||||||
if (manga?.isEhBasedManga() == true) {
|
if (manga?.isEhBasedManga() == true) {
|
||||||
viewModelScope.launchNonCancellable {
|
viewModelScope.launchNonCancellable {
|
||||||
val chapterUpdates = chapterList
|
val chapterUpdates = unfilteredChapterList
|
||||||
.filter { it.chapter.source_order > readerChapter.chapter.source_order }
|
.filter { it.sourceOrder > readerChapter.chapter.source_order }
|
||||||
.map { chapter ->
|
.map { chapter ->
|
||||||
ChapterUpdate(
|
ChapterUpdate(
|
||||||
id = chapter.chapter.id!!,
|
id = chapter.id,
|
||||||
read = true,
|
read = true,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -752,15 +756,14 @@ class ReaderViewModel @JvmOverloads constructor(
|
|||||||
.contains(LibraryPreferences.MARK_DUPLICATE_CHAPTER_READ_EXISTING)
|
.contains(LibraryPreferences.MARK_DUPLICATE_CHAPTER_READ_EXISTING)
|
||||||
if (!markDuplicateAsRead) return
|
if (!markDuplicateAsRead) return
|
||||||
|
|
||||||
val duplicateUnreadChapters = chapterList
|
val duplicateUnreadChapters = unfilteredChapterList
|
||||||
.mapNotNull {
|
.mapNotNull { chapter ->
|
||||||
val chapter = it.chapter
|
|
||||||
if (
|
if (
|
||||||
!chapter.read &&
|
!chapter.read &&
|
||||||
chapter.isRecognizedNumber &&
|
chapter.isRecognizedNumber &&
|
||||||
chapter.chapter_number == readerChapter.chapter.chapter_number
|
chapter.chapterNumber.toFloat() == readerChapter.chapter.chapter_number
|
||||||
) {
|
) {
|
||||||
ChapterUpdate(id = chapter.id!!, read = true)
|
ChapterUpdate(id = chapter.id, read = true)
|
||||||
// SY -->
|
// SY -->
|
||||||
.also { deleteChapterIfNeeded(ReaderChapter(chapter)) }
|
.also { deleteChapterIfNeeded(ReaderChapter(chapter)) }
|
||||||
// SY <--
|
// SY <--
|
||||||
|
Loading…
x
Reference in New Issue
Block a user