-
Notifications
You must be signed in to change notification settings - Fork 0
/
AbstractUpdateTask.kt
30 lines (25 loc) · 1.02 KB
/
AbstractUpdateTask.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.rodolfonavalon.canadatransit.controller.manager.update.task
import com.rodolfonavalon.canadatransit.controller.manager.update.UpdateManager
import com.rodolfonavalon.canadatransit.controller.util.DebugUtil
import com.rodolfonavalon.canadatransit.controller.util.queue.task.AbstractObservableTask
import timber.log.Timber
abstract class AbstractUpdateTask<T: Any>: AbstractObservableTask<T>() {
private val updateManager = UpdateManager.manager() as UpdateManager
final override fun onCancel() {
DebugUtil.assertMainThread()
Timber.d("Task has been CANCELLED: $trackingId")
// Dispose the retrofit call
disposables.dispose()
}
final override fun onError(error: Throwable) {
DebugUtil.assertMainThread()
Timber.e(error, "Task has FAILED: $trackingId")
observable.onError(error)
updateManager.failure()
}
fun onSuccess(result: T) {
this.observable.onNext(result)
this.observable.onComplete()
updateManager.success()
}
}