mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Add cancel all for series in download queue (#5062)
Co-authored-by: Jays2Kings <jays@outlook.com>
This commit is contained in:
		| @@ -203,6 +203,15 @@ class DownloadManager(private val context: Context) { | ||||
|         deleteChapters(listOf(download.chapter), download.manga, download.source) | ||||
|     } | ||||
|  | ||||
|     fun deletePendingDownloads(vararg downloads: Download) { | ||||
|         val downloadsByManga = downloads.groupBy { it.manga.id } | ||||
|         downloadsByManga.map { entry -> | ||||
|             val manga = entry.value.first().manga | ||||
|             val source = entry.value.first().source | ||||
|             deleteChapters(entry.value.map { it.chapter }, manga, source) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Deletes the directories of a list of downloaded chapters. | ||||
|      * | ||||
|   | ||||
| @@ -356,6 +356,15 @@ class DownloadController : | ||||
|                 val downloads = adapter.currentItems.mapNotNull { it?.download } | ||||
|                 presenter.reorder(downloads) | ||||
|             } | ||||
|             R.id.cancel_series -> { | ||||
|                 val download = adapter?.getItem(position)?.download ?: return | ||||
|                 val allDownloadsForSeries = adapter?.currentItems | ||||
|                     ?.filter { download.manga.id == it.download.manga.id } | ||||
|                     ?.map(DownloadItem::download) | ||||
|                 if (!allDownloadsForSeries.isNullOrEmpty()) { | ||||
|                     presenter.cancelDownloads(allDownloadsForSeries) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -65,4 +65,8 @@ class DownloadPresenter : BasePresenter<DownloadController>() { | ||||
|     fun cancelDownload(download: Download) { | ||||
|         downloadManager.deletePendingDownload(download) | ||||
|     } | ||||
|  | ||||
|     fun cancelDownloads(downloads: List<Download>) { | ||||
|         downloadManager.deletePendingDownloads(*downloads.toTypedArray()) | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user