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) {