Minor cleanup
This commit is contained in:
@@ -479,7 +479,7 @@ class DownloadController :
|
||||
presenter.reorder(selectedSeries + otherSeries)
|
||||
}
|
||||
R.id.cancel_download -> {
|
||||
presenter.cancelDownloads(listOf(item.download))
|
||||
presenter.cancel(listOf(item.download))
|
||||
}
|
||||
R.id.cancel_series -> {
|
||||
val allDownloadsForSeries = adapter?.currentItems
|
||||
@@ -487,7 +487,7 @@ class DownloadController :
|
||||
?.filter { item.download.manga.id == it.download.manga.id }
|
||||
?.map(DownloadItem::download)
|
||||
if (!allDownloadsForSeries.isNullOrEmpty()) {
|
||||
presenter.cancelDownloads(allDownloadsForSeries)
|
||||
presenter.cancel(allDownloadsForSeries)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import android.os.Bundle
|
||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||
import eu.kanade.tachiyomi.data.download.DownloadService
|
||||
import eu.kanade.tachiyomi.data.download.model.Download
|
||||
import eu.kanade.tachiyomi.data.download.model.DownloadQueue
|
||||
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
||||
import eu.kanade.tachiyomi.util.system.logcat
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -15,17 +14,12 @@ import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import logcat.LogPriority
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
class DownloadPresenter : BasePresenter<DownloadController>() {
|
||||
|
||||
val downloadManager: DownloadManager by injectLazy()
|
||||
|
||||
/**
|
||||
* Property to get the queue from the download manager.
|
||||
*/
|
||||
private val downloadQueue: DownloadQueue
|
||||
get() = downloadManager.queue
|
||||
class DownloadPresenter(
|
||||
private val downloadManager: DownloadManager = Injekt.get(),
|
||||
) : BasePresenter<DownloadController>() {
|
||||
|
||||
private val _state = MutableStateFlow(emptyList<DownloadHeaderItem>())
|
||||
val state = _state.asStateFlow()
|
||||
@@ -34,7 +28,7 @@ class DownloadPresenter : BasePresenter<DownloadController>() {
|
||||
super.onCreate(savedState)
|
||||
|
||||
presenterScope.launch {
|
||||
downloadQueue.updates
|
||||
downloadManager.queue.updates
|
||||
.catch { logcat(LogPriority.ERROR, it) }
|
||||
.map { downloads ->
|
||||
downloads
|
||||
@@ -49,20 +43,13 @@ class DownloadPresenter : BasePresenter<DownloadController>() {
|
||||
}
|
||||
}
|
||||
|
||||
fun getDownloadStatusFlow() = downloadQueue.statusFlow()
|
||||
fun getDownloadStatusFlow() = downloadManager.queue.statusFlow()
|
||||
fun getDownloadProgressFlow() = downloadManager.queue.progressFlow()
|
||||
|
||||
fun getDownloadProgressFlow() = downloadQueue.progressFlow()
|
||||
|
||||
/**
|
||||
* Pauses the download queue.
|
||||
*/
|
||||
fun pauseDownloads() {
|
||||
downloadManager.pauseDownloads()
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the download queue.
|
||||
*/
|
||||
fun clearQueue(context: Context) {
|
||||
DownloadService.stop(context)
|
||||
downloadManager.clearQueue()
|
||||
@@ -72,7 +59,7 @@ class DownloadPresenter : BasePresenter<DownloadController>() {
|
||||
downloadManager.reorderQueue(downloads)
|
||||
}
|
||||
|
||||
fun cancelDownloads(downloads: List<Download>) {
|
||||
downloadManager.deletePendingDownloads(downloads)
|
||||
fun cancel(downloads: List<Download>) {
|
||||
downloadManager.cancelQueuedDownloads(downloads)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -496,7 +496,7 @@ class LibraryScreenModel(
|
||||
mangas.forEach { manga ->
|
||||
val chapters = getNextChapters.await(manga.id)
|
||||
.fastFilterNot { chapter ->
|
||||
downloadManager.queue.any { chapter.id == it.chapter.id } ||
|
||||
downloadManager.getQueuedDownloadOrNull(chapter.id) != null ||
|
||||
downloadManager.isChapterDownloaded(
|
||||
chapter.name,
|
||||
chapter.scanlator,
|
||||
|
||||
@@ -46,7 +46,6 @@ import eu.kanade.tachiyomi.data.track.TrackService
|
||||
import eu.kanade.tachiyomi.network.HttpException
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.source.isLocal
|
||||
import eu.kanade.tachiyomi.ui.manga.track.TrackItem
|
||||
import eu.kanade.tachiyomi.util.chapter.getChapterSort
|
||||
import eu.kanade.tachiyomi.util.chapter.getNextUnread
|
||||
@@ -502,7 +501,7 @@ class MangaInfoScreenModel(
|
||||
val activeDownload = if (isLocal) {
|
||||
null
|
||||
} else {
|
||||
downloadManager.queue.find { chapter.id == it.chapter.id }
|
||||
downloadManager.getQueuedDownloadOrNull(chapter.id)
|
||||
}
|
||||
val downloaded = if (isLocal) {
|
||||
true
|
||||
@@ -668,8 +667,8 @@ class MangaInfoScreenModel(
|
||||
}
|
||||
|
||||
fun cancelDownload(chapterId: Long) {
|
||||
val activeDownload = downloadManager.queue.find { chapterId == it.chapter.id } ?: return
|
||||
downloadManager.deletePendingDownloads(listOf(activeDownload))
|
||||
val activeDownload = downloadManager.getQueuedDownloadOrNull(chapterId) ?: return
|
||||
downloadManager.cancelQueuedDownloads(listOf(activeDownload))
|
||||
updateDownloadState(activeDownload.apply { status = Download.State.NOT_DOWNLOADED })
|
||||
}
|
||||
|
||||
|
||||
@@ -339,7 +339,7 @@ class ReaderPresenter(
|
||||
newChapters.ref()
|
||||
oldChapters?.unref()
|
||||
|
||||
chapterToDownload = deleteChapterFromDownloadQueue(newChapters.currChapter)
|
||||
chapterToDownload = cancelQueuedDownloads(newChapters.currChapter)
|
||||
viewerChaptersRelay.call(newChapters)
|
||||
}
|
||||
}
|
||||
@@ -489,9 +489,9 @@ class ReaderPresenter(
|
||||
* Removes [currentChapter] from download queue
|
||||
* if setting is enabled and [currentChapter] is queued for download
|
||||
*/
|
||||
private fun deleteChapterFromDownloadQueue(currentChapter: ReaderChapter): Download? {
|
||||
return downloadManager.getChapterDownloadOrNull(currentChapter.chapter.toDomainChapter()!!)?.also {
|
||||
downloadManager.deletePendingDownloads(listOf(it))
|
||||
private fun cancelQueuedDownloads(currentChapter: ReaderChapter): Download? {
|
||||
return downloadManager.getQueuedDownloadOrNull(currentChapter.chapter.id!!.toLong())?.also {
|
||||
downloadManager.cancelQueuedDownloads(listOf(it))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -875,7 +875,7 @@ class ReaderPresenter(
|
||||
val manga = manga ?: return
|
||||
|
||||
presenterScope.launchNonCancellable {
|
||||
downloadManager.enqueueDeleteChapters(listOf(chapter.chapter.toDomainChapter()!!), manga.toDomainManga()!!)
|
||||
downloadManager.enqueueChaptersToDelete(listOf(chapter.chapter.toDomainChapter()!!), manga.toDomainManga()!!)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ class UpdatesScreenModel(
|
||||
|
||||
private fun List<UpdatesWithRelations>.toUpdateItems(): List<UpdatesItem> {
|
||||
return this.map {
|
||||
val activeDownload = downloadManager.queue.find { download -> it.chapterId == download.chapter.id }
|
||||
val activeDownload = downloadManager.getQueuedDownloadOrNull(it.chapterId)
|
||||
val downloaded = downloadManager.isChapterDownloaded(
|
||||
it.chapterName,
|
||||
it.scanlator,
|
||||
@@ -200,8 +200,8 @@ class UpdatesScreenModel(
|
||||
}
|
||||
|
||||
private fun cancelDownload(chapterId: Long) {
|
||||
val activeDownload = downloadManager.queue.find { chapterId == it.chapter.id } ?: return
|
||||
downloadManager.deletePendingDownloads(listOf(activeDownload))
|
||||
val activeDownload = downloadManager.getQueuedDownloadOrNull(chapterId) ?: return
|
||||
downloadManager.cancelQueuedDownloads(listOf(activeDownload))
|
||||
updateDownloadState(activeDownload.apply { status = Download.State.NOT_DOWNLOADED })
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user