|
|
@ -39,41 +39,36 @@ class Bangumi(private val context: Context, id: Int) : TrackService(id) {
|
|
|
|
return api.updateLibManga(track)
|
|
|
|
return api.updateLibManga(track)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun bind(track: Track): Observable<Track> {
|
|
|
|
override suspend fun bind(track: Track): Track {
|
|
|
|
return runAsObservable({ api.statusLibManga(track) })
|
|
|
|
val statusTrack = api.statusLibManga(track)
|
|
|
|
.flatMap {
|
|
|
|
val remoteTrack = api.findLibManga(track)
|
|
|
|
runAsObservable({ api.findLibManga(track) }).flatMap { remoteTrack ->
|
|
|
|
return if (remoteTrack != null && statusTrack != null) {
|
|
|
|
if (remoteTrack != null && it != null) {
|
|
|
|
track.copyPersonalFrom(remoteTrack)
|
|
|
|
track.copyPersonalFrom(remoteTrack)
|
|
|
|
track.library_id = remoteTrack.library_id
|
|
|
|
track.library_id = remoteTrack.library_id
|
|
|
|
track.status = remoteTrack.status
|
|
|
|
track.status = remoteTrack.status
|
|
|
|
track.last_chapter_read = remoteTrack.last_chapter_read
|
|
|
|
track.last_chapter_read = remoteTrack.last_chapter_read
|
|
|
|
refresh(track)
|
|
|
|
refresh(track)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
// Set default fields if it's not found in the list
|
|
|
|
// Set default fields if it's not found in the list
|
|
|
|
track.score = DEFAULT_SCORE.toFloat()
|
|
|
|
track.score = DEFAULT_SCORE.toFloat()
|
|
|
|
track.status = DEFAULT_STATUS
|
|
|
|
track.status = DEFAULT_STATUS
|
|
|
|
add(track)
|
|
|
|
runAsObservable({ add(track) })
|
|
|
|
update(track)
|
|
|
|
runAsObservable({ update(track) })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun search(query: String): Observable<List<TrackSearch>> {
|
|
|
|
override fun search(query: String): Observable<List<TrackSearch>> {
|
|
|
|
return runAsObservable({ api.search(query) })
|
|
|
|
return runAsObservable({ api.search(query) })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun refresh(track: Track): Observable<Track> {
|
|
|
|
override suspend fun refresh(track: Track): Track {
|
|
|
|
return runAsObservable({
|
|
|
|
val remoteStatusTrack = api.statusLibManga(track)
|
|
|
|
val remoteStatusTrack = api.statusLibManga(track)
|
|
|
|
track.copyPersonalFrom(remoteStatusTrack!!)
|
|
|
|
track.copyPersonalFrom(remoteStatusTrack!!)
|
|
|
|
api.findLibManga(track)?.let { remoteTrack ->
|
|
|
|
api.findLibManga(track)?.let { remoteTrack ->
|
|
|
|
track.total_chapters = remoteTrack.total_chapters
|
|
|
|
track.total_chapters = remoteTrack.total_chapters
|
|
|
|
track.status = remoteTrack.status
|
|
|
|
track.status = remoteTrack.status
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return track
|
|
|
|
track
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun getLogo() = R.drawable.ic_tracker_bangumi
|
|
|
|
override fun getLogo() = R.drawable.ic_tracker_bangumi
|
|
|
|