From dd5da56695d8787ce5cf154b5d83aafaadf49def Mon Sep 17 00:00:00 2001 From: kasperskier <95685115+kasperskier@users.noreply.github.com> Date: Sun, 5 Jun 2022 00:48:18 +0800 Subject: [PATCH] ChapterSourceSync: set default timestamp to max timestamp (#7197) --- .../kanade/tachiyomi/util/chapter/ChapterSourceSync.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt index 4aee9e2467..519b4574ae 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt @@ -11,6 +11,7 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.util.Date import java.util.TreeSet +import kotlin.math.max /** * Helper method for syncing the list of chapters from the source with the ones from the database. @@ -59,6 +60,9 @@ fun syncChaptersWithSource( } } + var maxTimestamp = 0L // in previous chapters to add + val rightNow = Date().time + for (sourceChapter in sourceChapters) { // This forces metadata update for the main viewable things in the chapter list. if (source is HttpSource) { @@ -72,7 +76,9 @@ fun syncChaptersWithSource( // Add the chapter if not in db already, or update if the metadata changed. if (dbChapter == null) { if (sourceChapter.date_upload == 0L) { - sourceChapter.date_upload = Date().time + sourceChapter.date_upload = if (maxTimestamp == 0L) rightNow else maxTimestamp + } else { + maxTimestamp = max(maxTimestamp, sourceChapter.date_upload) } toAdd.add(sourceChapter) } else { @@ -97,6 +103,7 @@ fun syncChaptersWithSource( return Pair(emptyList(), emptyList()) } + // Keep it a List instead of a Set. See #6372. val readded = mutableListOf() db.inTransaction { @@ -154,6 +161,7 @@ fun syncChaptersWithSource( db.updateLastUpdated(manga).executeAsBlocking() } + @Suppress("ConvertArgumentToSet") return Pair(toAdd.subtract(readded).toList(), toDelete.subtract(readded).toList()) }