Rename MangaDex's FollowStatus's property to better reflect its type (#1082)

This commit is contained in:
Cuong M. Tran 2024-03-02 23:56:11 +07:00 committed by GitHub
parent 94e5c33785
commit dd412e33ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 27 additions and 27 deletions

View File

@ -34,7 +34,7 @@ class TrackChapter(
service == null || service == null ||
!service.isLoggedIn || !service.isLoggedIn ||
chapterNumber <= track.lastChapterRead /* SY --> */ || chapterNumber <= track.lastChapterRead /* SY --> */ ||
(service is MdList && track.status == FollowStatus.UNFOLLOWED.int.toLong())/* SY <-- */ (service is MdList && track.status == FollowStatus.UNFOLLOWED.long)/* SY <-- */
) { ) {
return@mapNotNull null return@mapNotNull null
} }

View File

@ -634,9 +634,9 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
var tracker = dbTracks.firstOrNull { it.trackerId == TrackerManager.MDLIST } var tracker = dbTracks.firstOrNull { it.trackerId == TrackerManager.MDLIST }
?: mdList.createInitialTracker(manga).toDomainTrack(idRequired = false) ?: mdList.createInitialTracker(manga).toDomainTrack(idRequired = false)
if (tracker?.status == FollowStatus.UNFOLLOWED.int.toLong()) { if (tracker?.status == FollowStatus.UNFOLLOWED.long) {
tracker = tracker.copy( tracker = tracker.copy(
status = FollowStatus.READING.int.toLong(), status = FollowStatus.READING.long,
) )
val updatedTrack = mdList.update(tracker.toDbTrack()) val updatedTrack = mdList.update(tracker.toDbTrack())
insertTrack.await(updatedTrack.toDomainTrack(false)!!) insertTrack.await(updatedTrack.toDomainTrack(false)!!)

View File

@ -26,7 +26,7 @@ enum class TrackStatus(val int: Int, val res: StringResource) {
fun parseTrackerStatus(trackerManager: TrackerManager, tracker: Long, status: Long): TrackStatus? { fun parseTrackerStatus(trackerManager: TrackerManager, tracker: Long, status: Long): TrackStatus? {
return when (tracker) { return when (tracker) {
trackerManager.mdList.id -> { trackerManager.mdList.id -> {
when (FollowStatus.fromInt(status)) { when (FollowStatus.fromLong(status)) {
FollowStatus.UNFOLLOWED -> null FollowStatus.UNFOLLOWED -> null
FollowStatus.READING -> READING FollowStatus.READING -> READING
FollowStatus.COMPLETED -> COMPLETED FollowStatus.COMPLETED -> COMPLETED

View File

@ -41,7 +41,7 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
} }
override fun getStatusList(): List<Long> { override fun getStatusList(): List<Long> {
return FollowStatus.entries.map { it.int } return FollowStatus.entries.map { it.long }
} }
override fun getStatus(status: Long): StringResource? = when (status) { override fun getStatus(status: Long): StringResource? = when (status) {
@ -64,13 +64,13 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
val mdex = mdex ?: throw MangaDexNotFoundException() val mdex = mdex ?: throw MangaDexNotFoundException()
val remoteTrack = mdex.fetchTrackingInfo(track.tracking_url) val remoteTrack = mdex.fetchTrackingInfo(track.tracking_url)
val followStatus = FollowStatus.fromInt(track.status) val followStatus = FollowStatus.fromLong(track.status)
// this updates the follow status in the metadata // this updates the follow status in the metadata
// allow follow status to update // allow follow status to update
if (remoteTrack.status != followStatus.int) { if (remoteTrack.status != followStatus.long) {
if (mdex.updateFollowStatus(MdUtil.getMangaId(track.tracking_url), followStatus)) { if (mdex.updateFollowStatus(MdUtil.getMangaId(track.tracking_url), followStatus)) {
remoteTrack.status = followStatus.int remoteTrack.status = followStatus.long
} else { } else {
track.status = remoteTrack.status track.status = remoteTrack.status
} }
@ -103,19 +103,19 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
} }
} }
override fun getCompletionStatus(): Long = FollowStatus.COMPLETED.int override fun getCompletionStatus(): Long = FollowStatus.COMPLETED.long
override fun getReadingStatus(): Long = FollowStatus.READING.int override fun getReadingStatus(): Long = FollowStatus.READING.long
override fun getRereadingStatus(): Long = FollowStatus.RE_READING.int override fun getRereadingStatus(): Long = FollowStatus.RE_READING.long
override suspend fun bind(track: Track, hasReadChapters: Boolean): Track = update( override suspend fun bind(track: Track, hasReadChapters: Boolean): Track = update(
refresh(track).also { refresh(track).also {
if (it.status == FollowStatus.UNFOLLOWED.int) { if (it.status == FollowStatus.UNFOLLOWED.long) {
it.status = if (hasReadChapters) { it.status = if (hasReadChapters) {
FollowStatus.READING.int FollowStatus.READING.long
} else { } else {
FollowStatus.PLAN_TO_READ.int FollowStatus.PLAN_TO_READ.long
} }
} }
}, },
@ -136,7 +136,7 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
fun createInitialTracker(dbManga: Manga, mdManga: Manga = dbManga): Track { fun createInitialTracker(dbManga: Manga, mdManga: Manga = dbManga): Track {
return Track.create(id).apply { return Track.create(id).apply {
manga_id = dbManga.id manga_id = dbManga.id
status = FollowStatus.UNFOLLOWED.int status = FollowStatus.UNFOLLOWED.long
tracking_url = MdUtil.baseUrl + mdManga.url tracking_url = MdUtil.baseUrl + mdManga.url
title = mdManga.title title = mdManga.title
} }

View File

@ -1679,7 +1679,7 @@ class MangaScreenModel(
val trackingCount: Int val trackingCount: Int
get() = trackItems.count { get() = trackItems.count {
it.track != null && ((it.tracker is MdList && it.track.status != FollowStatus.UNFOLLOWED.int.toLong()) || it.tracker !is MdList) it.track != null && ((it.tracker is MdList && it.track.status != FollowStatus.UNFOLLOWED.long) || it.tracker !is MdList)
} }
/** /**

View File

@ -57,7 +57,7 @@ class FollowsHandler(
it, it,
lang, lang,
) to MangaDexSearchMetadata().apply { ) to MangaDexSearchMetadata().apply {
followStatus = FollowStatus.fromDex(statuses[it.id]).int.toInt() followStatus = FollowStatus.fromDex(statuses[it.id]).long.toInt()
} }
}.sortedWith(comparator) }.sortedWith(comparator)
} }
@ -155,7 +155,7 @@ class FollowsHandler(
val (followStatus, rating) = followStatusDef.await() to ratingDef.await() val (followStatus, rating) = followStatusDef.await() to ratingDef.await()
Track.create(TrackerManager.MDLIST).apply { Track.create(TrackerManager.MDLIST).apply {
title = "" title = ""
status = followStatus.int status = followStatus.long
tracking_url = url tracking_url = url
score = rating?.rating?.toDouble() ?: 0.0 score = rating?.rating?.toDouble() ?: 0.0
} }

View File

@ -2,14 +2,14 @@ package exh.md.utils
import java.util.Locale import java.util.Locale
enum class FollowStatus(val int: Long) { enum class FollowStatus(val long: Long) {
UNFOLLOWED(0), UNFOLLOWED(0L),
READING(1), READING(1L),
COMPLETED(2), COMPLETED(2L),
ON_HOLD(3), ON_HOLD(3L),
PLAN_TO_READ(4), PLAN_TO_READ(4L),
DROPPED(5), DROPPED(5L),
RE_READING(6), RE_READING(6L),
; ;
fun toDex(): String = this.name.lowercase(Locale.US) fun toDex(): String = this.name.lowercase(Locale.US)
@ -18,6 +18,6 @@ enum class FollowStatus(val int: Long) {
fun fromDex( fun fromDex(
value: String?, value: String?,
): FollowStatus = entries.firstOrNull { it.name.lowercase(Locale.US) == value } ?: UNFOLLOWED ): FollowStatus = entries.firstOrNull { it.name.lowercase(Locale.US) == value } ?: UNFOLLOWED
fun fromInt(value: Long): FollowStatus = entries.firstOrNull { it.int == value } ?: UNFOLLOWED fun fromLong(value: Long): FollowStatus = entries.firstOrNull { it.long == value } ?: UNFOLLOWED
} }
} }