diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt index 1ebb54961..2ba875be0 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt @@ -86,12 +86,12 @@ interface ChapterQueries : DbProvider { ) .prepare() - fun getChaptersReadWithUrls(urls: List) = db.get() + fun getChaptersReadByUrls(urls: List) = db.get() .listOfObjects(Chapter::class.java) .withQuery( Query.builder() .table(ChapterTable.TABLE) - .where("${ChapterTable.COL_URL} IN (?) AND ${ChapterTable.COL_READ} = 1") + .where("${ChapterTable.COL_URL} IN (?) AND (${ChapterTable.COL_READ} = 1 OR ${ChapterTable.COL_LAST_PAGE_READ} != 0)") .whereArgs(urls.joinToString { "\"$it\"" }) .build() ) 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 838089d30..78b701d82 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 @@ -145,12 +145,13 @@ fun syncChaptersWithSource( } } } - if (readded.isEmpty() && !DebugToggles.INCLUDE_ONLY_ROOT_WHEN_LOADING_EXH_VERSIONS.enabled) { - val readChapters = db.getChaptersReadWithUrls(finalAdded.map { it.url }).executeAsBlocking() + if (dbChapters.isEmpty() && !DebugToggles.INCLUDE_ONLY_ROOT_WHEN_LOADING_EXH_VERSIONS.enabled) { + val readChapters = db.getChaptersReadByUrls(finalAdded.map { it.url }).executeAsBlocking() + val readChapterUrls = readChapters.map { it.url } if (readChapters.isNotEmpty()) { - finalAdded.onEach { chapter -> + toAdd.filter { it.url in readChapterUrls }.onEach { chapter -> readChapters.firstOrNull { it.url == chapter.url }?.let { - chapter.read = true + chapter.read = it.read chapter.last_page_read = it.last_page_read } }