From 632856c2f257e301e40df690cb97a21f63080895 Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Tue, 9 Sep 2025 13:33:26 +0700 Subject: [PATCH] fix(track): wrongly set track's status when start tracking (#1076) --- .../java/eu/kanade/domain/track/interactor/AddTracks.kt | 7 +++++++ .../java/eu/kanade/tachiyomi/data/track/BaseTracker.kt | 5 ++++- .../main/java/eu/kanade/tachiyomi/data/track/Tracker.kt | 2 +- app/src/main/java/eu/kanade/test/DummyTracker.kt | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/domain/track/interactor/AddTracks.kt b/app/src/main/java/eu/kanade/domain/track/interactor/AddTracks.kt index 297d38e4e..db82973f3 100644 --- a/app/src/main/java/eu/kanade/domain/track/interactor/AddTracks.kt +++ b/app/src/main/java/eu/kanade/domain/track/interactor/AddTracks.kt @@ -53,10 +53,17 @@ class AddTracks( ?.chapterNumber ?: -1.0 if (latestLocalReadChapterNumber > track.lastChapterRead) { + /* KMK --> + // This code causes issue NOT settings remote-track's status track = track.copy( lastChapterRead = latestLocalReadChapterNumber, ) + KMK <-- */ tracker.setRemoteLastChapterRead(track.toDbTrack(), latestLocalReadChapterNumber.toInt()) + // KMK --> + .toDomainTrack(idRequired = false) + ?.let { track = it } + // KMK <-- } if (track.startDate <= 0) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/BaseTracker.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/BaseTracker.kt index 69ecb3010..58fcdd7ff 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/BaseTracker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/BaseTracker.kt @@ -93,7 +93,7 @@ abstract class BaseTracker( updateRemote(track) } - override suspend fun setRemoteLastChapterRead(track: Track, chapterNumber: Int) { + override suspend fun setRemoteLastChapterRead(track: Track, chapterNumber: Int): /* KMK --> */ Track /* KMK <-- */ { if ( track.last_chapter_read == 0.0 && track.last_chapter_read < chapterNumber && @@ -107,6 +107,9 @@ abstract class BaseTracker( track.finished_reading_date = System.currentTimeMillis() } updateRemote(track) + // KMK --> + return track + // KMK <-- } override suspend fun setRemoteScore(track: Track, scoreString: String) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/Tracker.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/Tracker.kt index bc718a02e..b8450a257 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/Tracker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/Tracker.kt @@ -78,7 +78,7 @@ interface Tracker { suspend fun setRemoteStatus(track: Track, status: Long) - suspend fun setRemoteLastChapterRead(track: Track, chapterNumber: Int) + suspend fun setRemoteLastChapterRead(track: Track, chapterNumber: Int): /* KMK --> */ Track /* KMK <-- */ suspend fun setRemoteScore(track: Track, scoreString: String) diff --git a/app/src/main/java/eu/kanade/test/DummyTracker.kt b/app/src/main/java/eu/kanade/test/DummyTracker.kt index d5f87f84c..97391219f 100644 --- a/app/src/main/java/eu/kanade/test/DummyTracker.kt +++ b/app/src/main/java/eu/kanade/test/DummyTracker.kt @@ -105,7 +105,7 @@ data class DummyTracker( override suspend fun setRemoteLastChapterRead( track: eu.kanade.tachiyomi.data.database.models.Track, chapterNumber: Int, - ) = Unit + ) /* KMK --> */ = track /* KMK <-- */ override suspend fun setRemoteScore( track: eu.kanade.tachiyomi.data.database.models.Track,