Skip to content

Commit 946e6d0

Browse files
committed
Update types of legacy tracker model to match to domain one (#245)
* `score` to Double * `tracker_id` to Long * `last_chapter_read` to Double * `total_chapters` to Long * `status` to Long Additional changes for Komikku/TachiyomiSY version * `score` to Double * `tracker_id` to Long * `last_chapter_read` to Double * `total_chapters` to Long * `status` to Long
1 parent 5818689 commit 946e6d0

File tree

12 files changed

+61
-63
lines changed

12 files changed

+61
-63
lines changed

app/src/main/java/eu/kanade/domain/track/interactor/TrackChapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class TrackChapter(
3434
service == null ||
3535
!service.isLoggedIn ||
3636
chapterNumber <= track.lastChapterRead /* SY --> */ ||
37-
(service is MdList && track.status == FollowStatus.UNFOLLOWED.int.toLong())/* SY <-- */
37+
(service is MdList && track.status == FollowStatus.UNFOLLOWED.long.toLong())/* SY <-- */
3838
) {
3939
return@mapNotNull null
4040
}

app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private fun BrowseSourceComfortableGridItem(
102102
.let {
103103
remember {
104104
it.getStringArray(R.array.md_follows_options)
105-
.getOrNull(followStatus)
105+
.getOrNull(followStatus.toInt())
106106
}
107107
}
108108
?: return@let

app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceCompactGrid.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private fun BrowseSourceCompactGridItem(
102102
.let {
103103
remember {
104104
it.getStringArray(R.array.md_follows_options)
105-
.getOrNull(followStatus)
105+
.getOrNull(followStatus.toInt())
106106
}
107107
}
108108
?: return@let

app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceList.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ private fun BrowseSourceListItem(
9393
.let {
9494
remember {
9595
it.getStringArray(R.array.md_follows_options)
96-
.getOrNull(followStatus)
96+
.getOrNull(followStatus.toInt())
9797
}
9898
}
9999
?: return@let

app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import eu.kanade.tachiyomi.data.download.DownloadManager
2727
import eu.kanade.tachiyomi.data.notification.Notifications
2828
import eu.kanade.tachiyomi.data.track.TrackStatus
2929
import eu.kanade.tachiyomi.data.track.TrackerManager
30-
import eu.kanade.tachiyomi.source.UnmeteredSource
3130
import eu.kanade.tachiyomi.source.model.SManga
3231
import eu.kanade.tachiyomi.source.model.UpdateStrategy
3332
import eu.kanade.tachiyomi.source.online.all.MergedSource
@@ -236,14 +235,14 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
236235
} else {
237236
when (group) {
238237
LibraryGroup.BY_TRACK_STATUS -> {
239-
val trackingExtra = groupExtra?.toIntOrNull() ?: -1
238+
val trackingExtra = groupExtra?.toLongOrNull() ?: -1L
240239
val tracks = getTracks.await().groupBy { it.mangaId }
241240

242241
libraryManga.filter { (manga) ->
243242
val status = tracks[manga.id]?.firstNotNullOfOrNull { track ->
244243
TrackStatus.parseTrackerStatus(trackerManager, track.trackerId, track.status)
245244
} ?: TrackStatus.OTHER
246-
status.int == trackingExtra
245+
status.long == trackingExtra
247246
}
248247
}
249248
LibraryGroup.BY_SOURCE -> {
@@ -553,12 +552,12 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
553552
var count = 0
554553
val mangaDex = MdUtil.getEnabledMangaDex(preferences, sourceManager = sourceManager)
555554
?: return@coroutineScope
556-
val syncFollowStatusInts = preferences.mangadexSyncToLibraryIndexes().get().map { it.toInt() }
555+
val syncFollowStatusLongs = preferences.mangadexSyncToLibraryIndexes().get().map { it.toLong() }
557556

558557
val size: Int
559558
mangaDex.fetchAllFollows()
560559
.filter { (_, metadata) ->
561-
syncFollowStatusInts.contains(metadata.followStatus)
560+
syncFollowStatusLongs.contains(metadata.followStatus)
562561
}
563562
.also { size = it.size }
564563
.forEach { (networkManga, metadata) ->
@@ -615,9 +614,9 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
615614
var tracker = dbTracks.firstOrNull { it.trackerId == TrackerManager.MDLIST }
616615
?: mdList.createInitialTracker(manga).toDomainTrack(idRequired = false)
617616

618-
if (tracker?.status == FollowStatus.UNFOLLOWED.int.toLong()) {
617+
if (tracker?.status == FollowStatus.UNFOLLOWED.long) {
619618
tracker = tracker.copy(
620-
status = FollowStatus.READING.int.toLong(),
619+
status = FollowStatus.READING.long,
621620
)
622621
val updatedTrack = mdList.update(tracker.toDbTrack())
623622
insertTrack.await(updatedTrack.toDomainTrack(false)!!)

app/src/main/java/eu/kanade/tachiyomi/data/track/TrackStatus.kt

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,21 @@ import exh.md.utils.FollowStatus
1212
import tachiyomi.i18n.MR
1313
import tachiyomi.i18n.sy.SYMR
1414

15-
enum class TrackStatus(val int: Int, val res: StringResource) {
16-
READING(1, MR.strings.reading),
17-
REPEATING(2, MR.strings.repeating),
18-
PLAN_TO_READ(3, MR.strings.plan_to_read),
19-
PAUSED(4, MR.strings.on_hold),
20-
COMPLETED(5, MR.strings.completed),
21-
DROPPED(6, MR.strings.dropped),
22-
OTHER(7, SYMR.strings.not_tracked),
15+
enum class TrackStatus(val long: Long, val res: StringResource) {
16+
READING(1L, MR.strings.reading),
17+
REPEATING(2L, MR.strings.repeating),
18+
PLAN_TO_READ(3L, MR.strings.plan_to_read),
19+
PAUSED(4L, MR.strings.on_hold),
20+
COMPLETED(5L, MR.strings.completed),
21+
DROPPED(6L, MR.strings.dropped),
22+
OTHER(7L, SYMR.strings.not_tracked),
2323
;
2424

2525
companion object {
26-
fun parseTrackerStatus(trackerManager: TrackerManager, tracker: Long, statusLong: Long): TrackStatus? {
27-
val status = statusLong.toInt()
26+
fun parseTrackerStatus(trackerManager: TrackerManager, tracker: Long, status: Long): TrackStatus? {
2827
return when (tracker) {
2928
trackerManager.mdList.id -> {
30-
when (FollowStatus.fromInt(status)) {
29+
when (FollowStatus.fromLong(status)) {
3130
FollowStatus.UNFOLLOWED -> null
3231
FollowStatus.READING -> READING
3332
FollowStatus.COMPLETED -> COMPLETED

app/src/main/java/eu/kanade/tachiyomi/data/track/mdlist/MdList.kt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,18 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
4040
return Color.rgb(43, 48, 53)
4141
}
4242

43-
override fun getStatusList(): List<Int> {
44-
return FollowStatus.entries.map { it.int }
43+
override fun getStatusList(): List<Long> {
44+
return FollowStatus.entries.map { it.long }
4545
}
4646

47-
override fun getStatus(status: Int): StringResource? = when (status) {
48-
0 -> SYMR.strings.md_follows_unfollowed
49-
1 -> MR.strings.reading
50-
2 -> MR.strings.completed
51-
3 -> MR.strings.on_hold
52-
4 -> MR.strings.plan_to_read
53-
5 -> MR.strings.dropped
54-
6 -> MR.strings.repeating
47+
override fun getStatus(status: Long): StringResource? = when (status) {
48+
0L -> SYMR.strings.md_follows_unfollowed
49+
1L -> MR.strings.reading
50+
2L -> MR.strings.completed
51+
3L -> MR.strings.on_hold
52+
4L -> MR.strings.plan_to_read
53+
5L -> MR.strings.dropped
54+
6L -> MR.strings.repeating
5555
else -> null
5656
}
5757

@@ -64,13 +64,13 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
6464
val mdex = mdex ?: throw MangaDexNotFoundException()
6565

6666
val remoteTrack = mdex.fetchTrackingInfo(track.tracking_url)
67-
val followStatus = FollowStatus.fromInt(track.status)
67+
val followStatus = FollowStatus.fromLong(track.status)
6868

6969
// this updates the follow status in the metadata
7070
// allow follow status to update
71-
if (remoteTrack.status != followStatus.int) {
71+
if (remoteTrack.status != followStatus.long) {
7272
if (mdex.updateFollowStatus(MdUtil.getMangaId(track.tracking_url), followStatus)) {
73-
remoteTrack.status = followStatus.int
73+
remoteTrack.status = followStatus.long
7474
} else {
7575
track.status = remoteTrack.status
7676
}
@@ -103,19 +103,19 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
103103
}
104104
}
105105

106-
override fun getCompletionStatus(): Int = FollowStatus.COMPLETED.int
106+
override fun getCompletionStatus(): Long = FollowStatus.COMPLETED.long
107107

108-
override fun getReadingStatus(): Int = FollowStatus.READING.int
108+
override fun getReadingStatus(): Long = FollowStatus.READING.long
109109

110-
override fun getRereadingStatus(): Int = FollowStatus.RE_READING.int
110+
override fun getRereadingStatus(): Long = FollowStatus.RE_READING.long
111111

112112
override suspend fun bind(track: Track, hasReadChapters: Boolean): Track = update(
113113
refresh(track).also {
114-
if (it.status == FollowStatus.UNFOLLOWED.int) {
114+
if (it.status == FollowStatus.UNFOLLOWED.long) {
115115
it.status = if (hasReadChapters) {
116-
FollowStatus.READING.int
116+
FollowStatus.READING.long
117117
} else {
118-
FollowStatus.PLAN_TO_READ.int
118+
FollowStatus.PLAN_TO_READ.long
119119
}
120120
}
121121
},
@@ -136,7 +136,7 @@ class MdList(id: Long) : BaseTracker(id, "MDList") {
136136
fun createInitialTracker(dbManga: Manga, mdManga: Manga = dbManga): Track {
137137
return Track.create(id).apply {
138138
manga_id = dbManga.id
139-
status = FollowStatus.UNFOLLOWED.int
139+
status = FollowStatus.UNFOLLOWED.long
140140
tracking_url = MdUtil.baseUrl + mdManga.url
141141
title = mdManga.title
142142
}

app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@ class LibraryScreenModel(
877877
categoryName
878878
}
879879
LibraryGroup.BY_TRACK_STATUS -> TrackStatus.entries
880-
.find { it.int.toLong() == category?.id }
880+
.find { it.long.toLong() == category?.id }
881881
.let { it ?: TrackStatus.OTHER }
882882
.let { context.stringResource(it.res) }
883883
LibraryGroup.UNGROUPED -> context.stringResource(SYMR.strings.ungrouped)
@@ -1020,7 +1020,7 @@ class LibraryScreenModel(
10201020
return tracks.fastAny { track ->
10211021
val trackService = trackerManager.get(track.trackerId)
10221022
if (trackService != null) {
1023-
val status = trackService.getStatus(track.status.toInt())?.let {
1023+
val status = trackService.getStatus(track.status)?.let {
10241024
context.stringResource(it)
10251025
}
10261026
val name = trackerManager.get(track.trackerId)?.name
@@ -1183,16 +1183,16 @@ class LibraryScreenModel(
11831183
TrackStatus.parseTrackerStatus(trackerManager, track.trackerId, track.status)
11841184
} ?: TrackStatus.OTHER
11851185

1186-
status.int
1186+
status.long
11871187
}.mapKeys { (id) ->
11881188
Category(
11891189
id = id.toLong(),
11901190
name = TrackStatus.entries
1191-
.find { it.int == id }
1191+
.find { it.long == id }
11921192
.let { it ?: TrackStatus.OTHER }
11931193
.let { context.stringResource(it.res) },
11941194
order = TrackStatus.entries.indexOfFirst {
1195-
it.int == id
1195+
it.long == id
11961196
}.takeUnless { it == -1 }?.toLong() ?: TrackStatus.OTHER.ordinal.toLong(),
11971197
flags = 0,
11981198
)

app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,7 @@ class MangaScreenModel(
16741674

16751675
val trackingCount: Int
16761676
get() = trackItems.count {
1677-
it.track != null && ((it.tracker is MdList && it.track.status != FollowStatus.UNFOLLOWED.int.toLong()) || it.tracker !is MdList)
1677+
it.track != null && ((it.tracker is MdList && it.track.status != FollowStatus.UNFOLLOWED.long.toLong()) || it.tracker !is MdList)
16781678
}
16791679

16801680
/**

app/src/main/java/exh/md/handlers/FollowsHandler.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class FollowsHandler(
5757
it,
5858
lang,
5959
) to MangaDexSearchMetadata().apply {
60-
followStatus = FollowStatus.fromDex(statuses[it.id]).int
60+
followStatus = FollowStatus.fromDex(statuses[it.id]).long
6161
}
6262
}.sortedWith(comparator)
6363
}
@@ -116,7 +116,7 @@ class FollowsHandler(
116116
return withIOContext {
117117
val mangaId = MdUtil.getMangaId(track.tracking_url)
118118
val result = runCatching {
119-
if (track.score == 0f) {
119+
if (track.score == 0.0) {
120120
service.deleteMangaRating(mangaId)
121121
} else {
122122
service.updateMangaRating(mangaId, track.score.toInt())
@@ -155,9 +155,9 @@ class FollowsHandler(
155155
val (followStatus, rating) = followStatusDef.await() to ratingDef.await()
156156
Track.create(TrackerManager.MDLIST).apply {
157157
title = ""
158-
status = followStatus.int
158+
status = followStatus.long
159159
tracking_url = url
160-
score = rating?.rating?.toFloat() ?: 0F
160+
score = rating?.rating?.toDouble() ?: 0.0
161161
}
162162
}
163163
}

0 commit comments

Comments
 (0)