From 128726b0a022a9b215b842473e2733310f14b5c4 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Mon, 13 Mar 2023 18:23:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=B1=BB=E4=B9=A6=E6=BA=90?= =?UTF-8?q?=E8=A7=A3=E5=8E=8B=E4=BD=8D=E7=BD=AE=E6=94=B9=E5=88=B0=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=B9=A6=E7=B1=8D=E7=9B=AE=E5=BD=95=E7=9A=84=E5=9C=B0?= =?UTF-8?q?=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/model/localBook/LocalBook.kt | 1 + .../java/io/legado/app/ui/book/info/BookInfoViewModel.kt | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt index 16ec10c4b..2797bbe16 100644 --- a/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt +++ b/app/src/main/java/io/legado/app/model/localBook/LocalBook.kt @@ -160,6 +160,7 @@ object LocalBook { //updateTime变量不要修改,否则会导致读取不到缓存 val (fileName, _, _, updateTime, _) = FileDoc.fromUri(uri, false).apply { if (size == 0L) throw EmptyFileException("Unexpected empty File") + bookUrl = toString() } var book = appDb.bookDao.getBook(bookUrl) diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt index a88f2fb1f..05f745a97 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt @@ -12,7 +12,6 @@ import io.legado.app.constant.AppPattern import io.legado.app.constant.BookSourceType import io.legado.app.constant.BookType import io.legado.app.constant.EventBus -import io.legado.app.help.config.AppConfig.defaultBookTreeUri import io.legado.app.data.appDb import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookChapter @@ -275,7 +274,7 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { fun deCompress(archiveFileUri: Uri, onSuccess: (List) -> Unit) { execute { - ArchiveUtils.deCompress(archiveFileUri, defaultBookTreeUri!!).list { + ArchiveUtils.deCompress(archiveFileUri).list { AppPattern.bookFileRegex.matches(it.name) } ?: emptyList() }.onError { @@ -286,7 +285,11 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { } fun importBook(fileDoc: FileDoc) { - LocalBook.importFile(fileDoc.uri).let { changeToLocalBook(it) } + val uri = LocalBook.saveBookFile( + fileDoc.uri.inputstream(context), + fileDoc.name + ) + LocalBook.importFile(uri).let { changeToLocalBook(it) } } fun changeTo(source: BookSource, book: Book, toc: List) {