|
|
@ -31,30 +31,33 @@ class DelayedTrackingUpdateJob(context: Context, workerParams: WorkerParameters)
|
|
|
|
val trackManager = Injekt.get<TrackManager>()
|
|
|
|
val trackManager = Injekt.get<TrackManager>()
|
|
|
|
val delayedTrackingStore = Injekt.get<DelayedTrackingStore>()
|
|
|
|
val delayedTrackingStore = Injekt.get<DelayedTrackingStore>()
|
|
|
|
|
|
|
|
|
|
|
|
withIOContext {
|
|
|
|
val results = withIOContext {
|
|
|
|
val tracks = delayedTrackingStore.getItems().mapNotNull {
|
|
|
|
delayedTrackingStore.getItems()
|
|
|
|
|
|
|
|
.mapNotNull {
|
|
|
|
val track = getTracks.awaitOne(it.trackId)
|
|
|
|
val track = getTracks.awaitOne(it.trackId)
|
|
|
|
if (track == null) {
|
|
|
|
if (track == null) {
|
|
|
|
delayedTrackingStore.remove(it.trackId)
|
|
|
|
delayedTrackingStore.remove(it.trackId)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
track
|
|
|
|
track?.copy(lastChapterRead = it.lastChapterRead.toDouble())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.mapNotNull { track ->
|
|
|
|
tracks.forEach { track ->
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
val service = trackManager.getService(track.syncId)
|
|
|
|
val service = trackManager.getService(track.syncId)
|
|
|
|
if (service != null && service.isLogged) {
|
|
|
|
if (service != null && service.isLogged) {
|
|
|
|
|
|
|
|
logcat(LogPriority.DEBUG) { "Updating delayed track item: ${track.id}, last chapter read: ${track.lastChapterRead}" }
|
|
|
|
service.update(track.toDbTrack(), true)
|
|
|
|
service.update(track.toDbTrack(), true)
|
|
|
|
insertTrack.await(track)
|
|
|
|
insertTrack.await(track)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
delayedTrackingStore.remove(track.id)
|
|
|
|
delayedTrackingStore.remove(track.id)
|
|
|
|
|
|
|
|
null
|
|
|
|
} catch (e: Exception) {
|
|
|
|
} catch (e: Exception) {
|
|
|
|
logcat(LogPriority.ERROR, e)
|
|
|
|
logcat(LogPriority.ERROR, e)
|
|
|
|
|
|
|
|
false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return Result.success()
|
|
|
|
return if (results.isNotEmpty()) Result.failure() else Result.success()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
companion object {
|
|
|
|