diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt index 9c1e090816..ac1954a1ec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt @@ -6,7 +6,6 @@ import com.hippo.unifile.UniFile import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import kotlinx.coroutines.flow.onEach import uy.kohesive.injekt.Injekt @@ -114,15 +113,6 @@ class DownloadCache( return 0 } - /** - * Returns true if source has download - * - * @param source the source to check. - */ - fun sourceHasDownload(source: Source): Boolean { - return rootDir.files[source.id]?.files?.size?.let { it > 0 } ?: false - } - /** * Checks if the cache needs a renewal and performs it if needed. */ @@ -138,17 +128,13 @@ class DownloadCache( * Renews the downloads cache. */ private fun renew() { - val onlineSources = sourceManager.getOnlineSources() - - val stubSources = sourceManager.getStubSources() - - val allSource = onlineSources + stubSources + val sources = sourceManager.getOnlineSources() + sourceManager.getStubSources() val sourceDirs = rootDir.dir.listFiles() .orEmpty() .associate { it.name to SourceDirectory(it) } .mapNotNullKeys { entry -> - allSource.find { provider.getSourceDirName(it).equals(entry.key, ignoreCase = true) }?.id + sources.find { provider.getSourceDirName(it).equals(entry.key, ignoreCase = true) }?.id } rootDir.files = sourceDirs 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 97d9f28a37..1c478e91ee 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 @@ -279,14 +279,20 @@ class DownloadManager( val chapterDirs = provider.findChapterDirs(filteredChapters, manga, source) chapterDirs.forEach { it.delete() } cache.removeChapters(filteredChapters, manga) - if (cache.getDownloadCount(manga) == 0) { // Delete manga directory if empty + + // Delete manga directory if empty + if (cache.getDownloadCount(manga) == 0) { chapterDirs.firstOrNull()?.parentFile?.delete() cache.removeManga(manga) } - if (!cache.sourceHasDownload(source)) { // Delete source directory if empty - provider.findSourceDir(source)?.delete() + + // Delete source directory if empty + val sourceDir = provider.findSourceDir(source) + if (sourceDir?.listFiles()?.isEmpty() == true) { + sourceDir.delete() } } + return filteredChapters }