|
@@ -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<Chapter>()
|
|
|
|
|
|
db.inTransaction {
|
|
@@ -154,6 +161,7 @@ fun syncChaptersWithSource(
|
|
|
db.updateLastUpdated(manga).executeAsBlocking()
|
|
|
}
|
|
|
|
|
|
+ @Suppress("ConvertArgumentToSet")
|
|
|
return Pair(toAdd.subtract(readded).toList(), toDelete.subtract(readded).toList())
|
|
|
}
|
|
|
|