123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package eu.kanade.tachiyomi.source.model
- import android.net.Uri
- import eu.kanade.tachiyomi.network.ProgressListener
- import kotlinx.serialization.Serializable
- import kotlinx.serialization.Transient
- import rx.subjects.Subject
- @Serializable
- open class Page(
- val index: Int,
- val url: String = "",
- var imageUrl: String? = null,
- @Transient var uri: Uri? = null, // Deprecated but can't be deleted due to extensions
- ) : ProgressListener {
- val number: Int
- get() = index + 1
- @Transient
- @Volatile
- var status: Int = 0
- set(value) {
- field = value
- statusSubject?.onNext(value)
- statusCallback?.invoke(this)
- }
- @Transient
- @Volatile
- var progress: Int = 0
- set(value) {
- field = value
- statusCallback?.invoke(this)
- }
- @Transient
- private var statusSubject: Subject<Int, Int>? = null
- @Transient
- private var statusCallback: ((Page) -> Unit)? = null
- override fun update(bytesRead: Long, contentLength: Long, done: Boolean) {
- progress = if (contentLength > 0) {
- (100 * bytesRead / contentLength).toInt()
- } else {
- -1
- }
- }
- fun setStatusSubject(subject: Subject<Int, Int>?) {
- this.statusSubject = subject
- }
- fun setStatusCallback(f: ((Page) -> Unit)?) {
- statusCallback = f
- }
- companion object {
- const val QUEUE = 0
- const val LOAD_PAGE = 1
- const val DOWNLOAD_IMAGE = 2
- const val READY = 3
- const val ERROR = 4
- }
- }
|