diff --git a/app/src/main/java/eu/kanade/domain/track/interactor/SyncChapterProgressWithTrack.kt b/app/src/main/java/eu/kanade/domain/track/interactor/SyncChapterProgressWithTrack.kt index b6ddb2392..9d0be428c 100644 --- a/app/src/main/java/eu/kanade/domain/track/interactor/SyncChapterProgressWithTrack.kt +++ b/app/src/main/java/eu/kanade/domain/track/interactor/SyncChapterProgressWithTrack.kt @@ -106,7 +106,7 @@ class SyncChapterProgressWithTrack( .let { tracker.batchGetChapterProgress(it) } .entries.groupBy { resolveRemoteProgress(it.key, it.value) } val updatesToLocal = remoteUpdatesMapping[RemoteProgressResolution.ACCEPT]?.mapNotNull { (chapter, remote) -> - if (remote.page > 1 && chapter.last_page_read != remote.page - 1 ) + if (remote.page > 1 && (chapter.last_page_read != remote.page - 1 || chapter.read != remote.completed) ) //In komga page starts from 1 chapter.toDomainChapter()?.copy(lastPageRead = remote.page.toLong() - 1, read = remote.completed)?.toChapterUpdate() else null diff --git a/app/src/test/java/eu/kanade/domain/track/PageTrackerTest.kt b/app/src/test/java/eu/kanade/domain/track/PageTrackerTest.kt index d1c49bcc8..e522e52c8 100644 --- a/app/src/test/java/eu/kanade/domain/track/PageTrackerTest.kt +++ b/app/src/test/java/eu/kanade/domain/track/PageTrackerTest.kt @@ -20,6 +20,7 @@ class PageTrackerTest { createTestChapterEntry(7, false, 0, false, 0), createTestChapterEntry(8, true, 100, false, 0), //local read, remote has not started reread createTestChapterEntry(9, false, 0, false, -1), + createTestChapterEntry(10, true, 3, false, 5), //local read, but has reread history; remote reread ) } @@ -28,7 +29,7 @@ class PageTrackerTest { private fun PageTracker.ChapterReadProgress.compareWith(b: PageTracker.ChapterReadProgress): String { return StringBuilder("Update(").apply { - if (completed != b.completed) append("completed ${b.completed} -> $completed; ") + if (completed != b.completed) append("completed: ${b.completed} -> $completed; ") if (page != b.page) append("page: ${b.page} -> $page") append(")") }.toString()