|
|
@ -7,6 +7,7 @@ import eu.kanade.tachiyomi.data.download.DownloadService
|
|
|
|
import eu.kanade.tachiyomi.data.download.model.Download
|
|
|
|
import eu.kanade.tachiyomi.data.download.model.Download
|
|
|
|
import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
|
|
|
|
import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
|
|
|
|
import eu.kanade.tachiyomi.ui.main.MainActivity
|
|
|
|
import eu.kanade.tachiyomi.ui.main.MainActivity
|
|
|
|
|
|
|
|
import eu.kanade.tachiyomi.util.plusAssign
|
|
|
|
import eu.kanade.tachiyomi.widget.NpaLinearLayoutManager
|
|
|
|
import eu.kanade.tachiyomi.widget.NpaLinearLayoutManager
|
|
|
|
import kotlinx.android.synthetic.main.fragment_download_queue.*
|
|
|
|
import kotlinx.android.synthetic.main.fragment_download_queue.*
|
|
|
|
import nucleus.factory.RequiresPresenter
|
|
|
|
import nucleus.factory.RequiresPresenter
|
|
|
@ -46,9 +47,9 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
|
|
|
|
private var clearButton: MenuItem? = null
|
|
|
|
private var clearButton: MenuItem? = null
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Subscription list to be cleared during [onPause].
|
|
|
|
* Subscription list to be cleared during [onDestroyView].
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private val resumeSubscriptions by lazy { CompositeSubscription() }
|
|
|
|
private val subscriptions by lazy { CompositeSubscription() }
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Map of subscriptions for active downloads.
|
|
|
|
* Map of subscriptions for active downloads.
|
|
|
@ -94,6 +95,28 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
|
|
|
|
// Set the layout manager for the recycler and fixed size.
|
|
|
|
// Set the layout manager for the recycler and fixed size.
|
|
|
|
recycler.layoutManager = NpaLinearLayoutManager(activity)
|
|
|
|
recycler.layoutManager = NpaLinearLayoutManager(activity)
|
|
|
|
recycler.setHasFixedSize(true)
|
|
|
|
recycler.setHasFixedSize(true)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Suscribe to changes
|
|
|
|
|
|
|
|
subscriptions += presenter.downloadManager.runningSubject
|
|
|
|
|
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
|
|
|
.subscribe { onQueueStatusChange(it) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscriptions += presenter.getStatusObservable()
|
|
|
|
|
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
|
|
|
.subscribe { onStatusChange(it) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subscriptions += presenter.getProgressObservable()
|
|
|
|
|
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
|
|
|
.subscribe { onUpdateDownloadedPages(it) }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onDestroyView() {
|
|
|
|
|
|
|
|
for (subscription in progressSubscriptions.values) {
|
|
|
|
|
|
|
|
subscription.unsubscribe()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
progressSubscriptions.clear()
|
|
|
|
|
|
|
|
subscriptions.clear()
|
|
|
|
|
|
|
|
super.onDestroyView()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
|
|
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
|
|
@ -131,33 +154,6 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
|
|
|
|
return true
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun onResume() {
|
|
|
|
|
|
|
|
super.onResume()
|
|
|
|
|
|
|
|
presenter.downloadManager.runningSubject
|
|
|
|
|
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
|
|
|
.subscribe { onQueueStatusChange(it) }
|
|
|
|
|
|
|
|
.apply { resumeSubscriptions.add(this) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
presenter.getStatusObservable()
|
|
|
|
|
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
|
|
|
.subscribe { onStatusChange(it) }
|
|
|
|
|
|
|
|
.apply { resumeSubscriptions.add(this) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
presenter.getProgressObservable()
|
|
|
|
|
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
|
|
|
|
|
.subscribe { onUpdateDownloadedPages(it) }
|
|
|
|
|
|
|
|
.apply { resumeSubscriptions.add(this) }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onPause() {
|
|
|
|
|
|
|
|
for (subscription in progressSubscriptions.values) {
|
|
|
|
|
|
|
|
subscription.unsubscribe()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
progressSubscriptions.clear()
|
|
|
|
|
|
|
|
resumeSubscriptions.clear()
|
|
|
|
|
|
|
|
super.onPause()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Called when the status of a download changes.
|
|
|
|
* Called when the status of a download changes.
|
|
|
|
*
|
|
|
|
*
|
|
|
|