From 5fefefcb2368d390dd25c3a5d5a7d99022e98180 Mon Sep 17 00:00:00 2001 From: Carlos <2092019+CarlosEsco@users.noreply.github.com> Date: Wed, 13 Jan 2021 20:10:33 -0500 Subject: [PATCH] Mark manga complete on mangadex when all chapters are marked in mdlist (cherry picked from commit b95cca91fc19fedb42fce895e0a5f062e342dc21) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt --- .../eu/kanade/tachiyomi/data/track/mdlist/MdList.kt | 10 +++++++++- app/src/main/java/exh/md/utils/FollowStatus.kt | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt index 075a68891..02f3942f2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt @@ -53,7 +53,7 @@ class MdList(private val context: Context, id: Int) : TrackService(id) { val mangaMetadata = db.getFlatMetadataForManga(track.manga_id).executeAsBlocking() ?.raise() ?: throw Exception("Invalid manga metadata") - val followStatus = FollowStatus.fromInt(track.status) ?: throw Exception("Follow status was not a valid value") + val followStatus = FollowStatus.fromInt(track.status) // allow follow status to update if (mangaMetadata.follow_status != followStatus.int) { @@ -71,6 +71,14 @@ class MdList(private val context: Context, id: Int) : TrackService(id) { if (followStatus != FollowStatus.UNFOLLOWED) { if (track.total_chapters != 0 && track.last_chapter_read == track.total_chapters) { track.status = FollowStatus.COMPLETED.int + mdex.updateFollowStatus(MdUtil.getMangaId(track.tracking_url), FollowStatus.COMPLETED) + } + if (followStatus == FollowStatus.PLAN_TO_READ && track.last_chapter_read > 0) { + val newFollowStatus = FollowStatus.READING + track.status = FollowStatus.READING.int + mdex.updateFollowStatus(MdUtil.getMangaId(track.tracking_url), newFollowStatus) + mangaMetadata.follow_status = newFollowStatus.int + db.insertFlatMetadata(mangaMetadata.flatten()).await() } mdex.updateReadingProgress(track) diff --git a/app/src/main/java/exh/md/utils/FollowStatus.kt b/app/src/main/java/exh/md/utils/FollowStatus.kt index 27327ea3a..a6d2be3d0 100644 --- a/app/src/main/java/exh/md/utils/FollowStatus.kt +++ b/app/src/main/java/exh/md/utils/FollowStatus.kt @@ -10,6 +10,6 @@ enum class FollowStatus(val int: Int) { RE_READING(6); companion object { - fun fromInt(value: Int): FollowStatus = FollowStatus.values().find { it.int == value } ?: UNFOLLOWED + fun fromInt(value: Int): FollowStatus = values().find { it.int == value } ?: UNFOLLOWED } }