Retain remote last chapter read if it's higher than the local one for EnhancedTracker

Co-authored-by: brewkunz <102181083+brewkunz@users.noreply.github.com>
This commit is contained in:
Secozzi 2024-10-30 18:59:34 +01:00
parent 17b5341851
commit 94d67bf930
No known key found for this signature in database
GPG key ID: DD93E0B3A962AA86
2 changed files with 6 additions and 2 deletions

View file

@ -10,6 +10,7 @@ import tachiyomi.domain.items.episode.interactor.UpdateEpisode
import tachiyomi.domain.items.episode.model.toEpisodeUpdate import tachiyomi.domain.items.episode.model.toEpisodeUpdate
import tachiyomi.domain.track.anime.interactor.InsertAnimeTrack import tachiyomi.domain.track.anime.interactor.InsertAnimeTrack
import tachiyomi.domain.track.anime.model.AnimeTrack import tachiyomi.domain.track.anime.model.AnimeTrack
import kotlin.math.max
class SyncEpisodeProgressWithTrack( class SyncEpisodeProgressWithTrack(
private val updateEpisode: UpdateEpisode, private val updateEpisode: UpdateEpisode,
@ -36,7 +37,8 @@ class SyncEpisodeProgressWithTrack(
// only take into account continuous watching // only take into account continuous watching
val localLastSeen = sortedEpisodes.takeWhile { it.seen }.lastOrNull()?.episodeNumber ?: 0F val localLastSeen = sortedEpisodes.takeWhile { it.seen }.lastOrNull()?.episodeNumber ?: 0F
val updatedTrack = remoteTrack.copy(lastEpisodeSeen = localLastSeen.toDouble()) val lastSeen = max(remoteTrack.lastEpisodeSeen, localLastSeen.toDouble())
val updatedTrack = remoteTrack.copy(lastEpisodeSeen = lastSeen)
try { try {
service.update(updatedTrack.toDbTrack()) service.update(updatedTrack.toDbTrack())

View file

@ -10,6 +10,7 @@ import tachiyomi.domain.items.chapter.interactor.UpdateChapter
import tachiyomi.domain.items.chapter.model.toChapterUpdate import tachiyomi.domain.items.chapter.model.toChapterUpdate
import tachiyomi.domain.track.manga.interactor.InsertMangaTrack import tachiyomi.domain.track.manga.interactor.InsertMangaTrack
import tachiyomi.domain.track.manga.model.MangaTrack import tachiyomi.domain.track.manga.model.MangaTrack
import kotlin.math.max
class SyncChapterProgressWithTrack( class SyncChapterProgressWithTrack(
private val updateChapter: UpdateChapter, private val updateChapter: UpdateChapter,
@ -36,7 +37,8 @@ class SyncChapterProgressWithTrack(
// only take into account continuous reading // only take into account continuous reading
val localLastRead = sortedChapters.takeWhile { it.read }.lastOrNull()?.chapterNumber ?: 0F val localLastRead = sortedChapters.takeWhile { it.read }.lastOrNull()?.chapterNumber ?: 0F
val updatedTrack = remoteTrack.copy(lastChapterRead = localLastRead.toDouble()) val lastRead = max(remoteTrack.lastChapterRead, localLastRead.toDouble())
val updatedTrack = remoteTrack.copy(lastChapterRead = lastRead)
try { try {
tracker.update(updatedTrack.toDbTrack()) tracker.update(updatedTrack.toDbTrack())