From 36e8b7a9cca08629470863c35dd76b1016224673 Mon Sep 17 00:00:00 2001 From: kunfei Date: Wed, 15 Jun 2022 14:23:53 +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 --- .../java/io/legado/app/data/dao/BookDao.kt | 3 +++ .../legado/app/model/localBook/LocalBook.kt | 19 ++----------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/io/legado/app/data/dao/BookDao.kt b/app/src/main/java/io/legado/app/data/dao/BookDao.kt index dc904794a..513c47ee1 100644 --- a/app/src/main/java/io/legado/app/data/dao/BookDao.kt +++ b/app/src/main/java/io/legado/app/data/dao/BookDao.kt @@ -88,6 +88,9 @@ interface BookDao { @Query("select 1 from books where bookUrl = :bookUrl") fun has(bookUrl: String): Boolean? + @Query("select 1 from books where bookUrl like '%' || :fileName") + fun hasFile(fileName: String): Boolean? + @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(vararg book: Book) 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 b53d1cb32..4fda21143 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 @@ -108,9 +108,7 @@ object LocalBook { fileName: String, source: BaseSource? = null, ): Book { - return saveBookFile(str, fileName, source).let { - importFile(it) - } + return importFile(saveBookFile(str, fileName, source)) } /** @@ -275,20 +273,7 @@ object LocalBook { fun isOnBookShelf( fileName: String ): Boolean { - val defaultBookTreeUri = AppConfig.defaultBookTreeUri - if (defaultBookTreeUri.isNullOrBlank()) throw NoStackTraceException("没有设置书籍保存位置!") - val treeUri = Uri.parse(defaultBookTreeUri) - val bookUrl = if (treeUri.isContentScheme()) { - val treeDoc = DocumentFile.fromTreeUri(appCtx, treeUri) - val doc = treeDoc!!.findFile(fileName) ?: return false - doc.uri.toString() - } else { - val treeFile = File(treeUri.path!!) - val file = treeFile.getFile(fileName) - if (!file.exists()) return false - file.absolutePath - } - return appDb.bookDao.getBook(bookUrl) != null + return appDb.bookDao.hasFile(fileName) == true } //文件类书源 合并在线书籍信息 在线 > 本地