From d5f9f153937030d57d304cb233ff33ca9458a7e9 Mon Sep 17 00:00:00 2001 From: kunfei Date: Wed, 29 Jan 2020 09:19:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/help/BookHelp.kt | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/BookHelp.kt b/app/src/main/java/io/legado/app/help/BookHelp.kt index dea6192bf..8205243cf 100644 --- a/app/src/main/java/io/legado/app/help/BookHelp.kt +++ b/app/src/main/java/io/legado/app/help/BookHelp.kt @@ -55,9 +55,18 @@ object BookHelp { fun saveContent(book: Book, bookChapter: BookChapter, content: String) { if (content.isEmpty()) return if (downloadUri.isDocumentUri(App.INSTANCE)) { - DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { + DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { root -> + DocumentUtils.getDirDocument( + root, + subDirs = *arrayOf(cacheFolderName, bookFolderName(book)) + )?.listFiles()?.forEach { + if (it.name?.startsWith(String.format("%05d", bookChapter.index)) == true) { + it.delete() + return@forEach + } + } DocumentUtils.createFileIfNotExist( - it, + root, "${bookChapterName(bookChapter)}.nb", subDirs = *arrayOf(cacheFolderName, bookFolderName(book)) )?.uri?.writeText(App.INSTANCE, content) @@ -82,9 +91,9 @@ object BookHelp { fun getChapterCount(book: Book): Int { if (downloadUri.isDocumentUri(App.INSTANCE)) { - DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { + DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { root -> return DocumentUtils.createFolderIfNotExist( - it, + root, subDirs = *arrayOf(cacheFolderName, bookFolderName(book)) )?.listFiles()?.size ?: 0 } @@ -99,9 +108,9 @@ object BookHelp { fun hasContent(book: Book, bookChapter: BookChapter): Boolean { if (downloadUri.isDocumentUri(App.INSTANCE)) { - DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { + DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { root -> return DocumentUtils.exists( - it, + root, "${bookChapterName(bookChapter)}.nb", subDirs = *arrayOf(cacheFolderName, bookFolderName(book)) ) @@ -118,9 +127,9 @@ object BookHelp { fun getContent(book: Book, bookChapter: BookChapter): String? { if (downloadUri.isDocumentUri(App.INSTANCE)) { - DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { + DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { root -> return DocumentUtils.createFileIfNotExist( - it, + root, "${bookChapterName(bookChapter)}.nb", subDirs = *arrayOf(cacheFolderName, bookFolderName(book)) )?.uri?.readText(App.INSTANCE) @@ -137,9 +146,9 @@ object BookHelp { fun delContent(book: Book, bookChapter: BookChapter) { if (downloadUri.isDocumentUri(App.INSTANCE)) { - DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { + DocumentFile.fromTreeUri(App.INSTANCE, downloadUri)?.let { root -> DocumentUtils.getDirDocument( - it, + root, subDirs = *arrayOf(cacheFolderName, bookFolderName(book)) )?.findFile("${bookChapterName(bookChapter)}.nb") ?.delete()