diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt index a88c8b931..96c010cb5 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt @@ -28,7 +28,6 @@ import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.track.TrackStatus import eu.kanade.tachiyomi.data.track.TrackerManager -import eu.kanade.tachiyomi.source.UnmeteredSource import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.source.online.all.MergedSource @@ -64,6 +63,7 @@ import tachiyomi.core.common.util.system.logcat import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.category.interactor.GetCategories import tachiyomi.domain.category.model.Category +import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.chapter.model.NoChaptersException import tachiyomi.domain.download.service.DownloadPreferences @@ -101,7 +101,6 @@ import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicInteger -import tachiyomi.domain.chapter.interactor.GetChaptersByMangaId class LibraryUpdateJob(private val context: Context, workerParams: WorkerParameters) : CoroutineWorker(context, workerParams) { @@ -400,8 +399,12 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet .sortedByDescending { it.sourceOrder }.run { if (libraryPreferences.libraryReadDuplicateChapters().get()) { val readChapters = getChaptersByMangaId.await(manga.id).filter { it.read } - val newReadChapters = this.filter { chapter -> readChapters.any { it.chapterNumber == chapter.chapterNumber } } - .also { setReadStatus.await(true, *it.toTypedArray()) } + val newReadChapters = this.filter { chapter -> + chapter.chapterNumber > 0 && + readChapters.any { it.chapterNumber == chapter.chapterNumber } + } + + setReadStatus.await(true, *newReadChapters.toTypedArray()) this.filterNot { newReadChapters.contains(it) } } else {