From 5c37347cecc99582752ee500171e8480008c836e Mon Sep 17 00:00:00 2001 From: arkon Date: Tue, 22 Nov 2022 09:25:00 -0500 Subject: [PATCH] Delete empty source folder when deleting all downloads for a manga It previously only attempted this after deleting a list of chapters, so it wasn't applicable when deleting from Library or after unfavoriting an entry. Closes #8594 --- .../data/download/DownloadManager.kt | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index ff200819f..d0db09a8d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -239,20 +239,33 @@ class DownloadManager( // Delete manga directory if empty if (mangaDir?.listFiles()?.isEmpty() == true) { - mangaDir.delete() - cache.removeManga(manga) - - // Delete source directory if empty - val sourceDir = provider.findSourceDir(source) - if (sourceDir?.listFiles()?.isEmpty() == true) { - sourceDir.delete() - cache.removeSource(source) - } + deleteManga(manga, source) } } } } + /** + * Deletes the directory of a downloaded manga. + * + * @param manga the manga to delete. + * @param source the source of the manga. + */ + fun deleteManga(manga: Manga, source: Source) { + launchIO { + downloader.queue.remove(manga) + provider.findMangaDir(manga.title, source)?.delete() + cache.removeManga(manga) + + // Delete source directory if empty + val sourceDir = provider.findSourceDir(source) + if (sourceDir?.listFiles()?.isEmpty() == true) { + sourceDir.delete() + cache.removeSource(source) + } + } + } + private fun removeFromDownloadQueue(chapters: List) { val wasRunning = downloader.isRunning if (wasRunning) { @@ -271,20 +284,6 @@ class DownloadManager( } } - /** - * Deletes the directory of a downloaded manga. - * - * @param manga the manga to delete. - * @param source the source of the manga. - */ - fun deleteManga(manga: Manga, source: Source) { - launchIO { - downloader.queue.remove(manga) - provider.findMangaDir(manga.title, source)?.delete() - cache.removeManga(manga) - } - } - /** * Adds a list of chapters to be deleted later. *