From 7ebb98ce06f610f111b7a02f3a9ab1bdf448c795 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sun, 13 Feb 2022 08:50:41 +0200 Subject: [PATCH] Allow overwrite non-empty download directory #99 --- .../java/org/koitharu/kotatsu/local/data/MangaZip.kt | 2 +- .../org/koitharu/kotatsu/local/data/WritableCbzFile.kt | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/MangaZip.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/MangaZip.kt index c9d93f147..533c619a8 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/data/MangaZip.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/data/MangaZip.kt @@ -16,7 +16,7 @@ class MangaZip(val file: File) { private var index = MangaIndex(null) suspend fun prepare(manga: Manga) { - writableCbz.prepare() + writableCbz.prepare(overwrite = true) index = MangaIndex(writableCbz[INDEX_ENTRY].takeIfReadable()?.readText()) index.setMangaInfo(manga, append = true) } diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/WritableCbzFile.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/WritableCbzFile.kt index fbc2637aa..fe61169b2 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/data/WritableCbzFile.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/data/WritableCbzFile.kt @@ -14,9 +14,13 @@ class WritableCbzFile(private val file: File) { private val dir = File(file.parentFile, file.nameWithoutExtension) - suspend fun prepare() = withContext(Dispatchers.IO) { - check(dir.list().isNullOrEmpty()) { - "Dir ${dir.name} is not empty" + suspend fun prepare(overwrite: Boolean) = withContext(Dispatchers.IO) { + if (!dir.list().isNullOrEmpty()) { + if (overwrite) { + dir.deleteRecursively() + } else { + throw IllegalStateException("Dir ${dir.name} is not empty") + } } if (!dir.exists()) { dir.mkdir()