mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
DownloadBottomPresenter as a BaseCoroutinePresenter
This commit is contained in:
parent
1596bce43e
commit
ff30974cf7
4 changed files with 12 additions and 11 deletions
|
@ -3,9 +3,8 @@ package eu.kanade.tachiyomi.ui.download
|
|||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||
import eu.kanade.tachiyomi.data.download.model.Download
|
||||
import eu.kanade.tachiyomi.data.download.model.DownloadQueue
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import eu.kanade.tachiyomi.ui.base.presenter.BaseCoroutinePresenter
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
@ -13,7 +12,7 @@ import uy.kohesive.injekt.injectLazy
|
|||
/**
|
||||
* Presenter of [DownloadBottomSheet].
|
||||
*/
|
||||
class DownloadBottomPresenter(val sheet: DownloadBottomSheet) {
|
||||
class DownloadBottomPresenter : BaseCoroutinePresenter<DownloadBottomSheet>() {
|
||||
|
||||
/**
|
||||
* Download manager.
|
||||
|
@ -21,8 +20,6 @@ class DownloadBottomPresenter(val sheet: DownloadBottomSheet) {
|
|||
val downloadManager: DownloadManager by injectLazy()
|
||||
var items = listOf<DownloadHeaderItem>()
|
||||
|
||||
private var scope = CoroutineScope(Job() + Dispatchers.Default)
|
||||
|
||||
/**
|
||||
* Property to get the queue from the download manager.
|
||||
*/
|
||||
|
@ -30,7 +27,7 @@ class DownloadBottomPresenter(val sheet: DownloadBottomSheet) {
|
|||
get() = downloadManager.queue
|
||||
|
||||
fun getItems() {
|
||||
scope.launch {
|
||||
presenterScope.launch {
|
||||
val items = downloadQueue
|
||||
.groupBy { it.source }
|
||||
.map { entry ->
|
||||
|
@ -56,7 +53,7 @@ class DownloadBottomPresenter(val sheet: DownloadBottomSheet) {
|
|||
}
|
||||
this@DownloadBottomPresenter.items = items
|
||||
if (hasChanged) {
|
||||
withContext(Dispatchers.Main) { sheet.onNextDownloads(items) }
|
||||
withContext(Dispatchers.Main) { controller?.onNextDownloads(items) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ class DownloadBottomSheet @JvmOverloads constructor(
|
|||
*/
|
||||
private var adapter: DownloadAdapter? = null
|
||||
|
||||
private val presenter = DownloadBottomPresenter(this)
|
||||
private val presenter = DownloadBottomPresenter()
|
||||
|
||||
/**
|
||||
* Whether the download queue is running or not.
|
||||
|
@ -55,6 +55,8 @@ class DownloadBottomSheet @JvmOverloads constructor(
|
|||
|
||||
fun onCreate(controller: RecentsController) {
|
||||
// Initialize adapter, scroll listener and recycler views
|
||||
presenter.attachView(this)
|
||||
presenter.onCreate()
|
||||
adapter = DownloadAdapter(this)
|
||||
sheetBehavior = BottomSheetBehavior.from(this)
|
||||
activity = controller.activity
|
||||
|
@ -336,4 +338,8 @@ class DownloadBottomSheet @JvmOverloads constructor(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun onDestroy() {
|
||||
presenter.onDestroy()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -387,9 +387,6 @@ class ExtensionBottomSheet @JvmOverloads constructor(context: Context, attrs: At
|
|||
presenter.uninstallExtension(pkgName)
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the view of this adapter is being destroyed.
|
||||
*/
|
||||
fun onDestroy() {
|
||||
presenter.onDestroy()
|
||||
}
|
||||
|
|
|
@ -500,6 +500,7 @@ class RecentsController(bundle: Bundle? = null) :
|
|||
|
||||
override fun onDestroyView(view: View) {
|
||||
super.onDestroyView(view)
|
||||
binding.downloadBottomSheet.root.onDestroy()
|
||||
displaySheet?.dismiss()
|
||||
displaySheet = null
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue