Minor cleanup

This commit is contained in:
arkon
2022-11-27 17:05:04 -05:00
parent 5076ab3049
commit 3480b45098
14 changed files with 74 additions and 91 deletions
@@ -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 })
}