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 2d7d7c5bd..e08f6757c 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. */ @@ -139,18 +129,14 @@ class DownloadCache( */ private fun renew() { // SY --> - val onlineSources = sourceManager.getVisibleOnlineSources() + val sources = sourceManager.getVisibleOnlineSources() + sourceManager.getStubSources() // SY <-- - val stubSources = sourceManager.getStubSources() - - val allSource = onlineSources + stubSources - 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 de05bcf98..4f029d83a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -281,14 +281,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 }