Răsfoiți Sursa

Merge pull request #1595 from Xwite/master

优化
kunfei 4 ani în urmă
părinte
comite
796f4b6278

+ 4 - 1
app/src/main/java/io/legado/app/api/controller/BookController.kt

@@ -7,6 +7,7 @@ import io.legado.app.api.ReturnData
 import io.legado.app.constant.PreferKey
 import io.legado.app.constant.PreferKey
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
+import io.legado.app.help.AppConfig
 import io.legado.app.help.BookHelp
 import io.legado.app.help.BookHelp
 import io.legado.app.help.CacheManager
 import io.legado.app.help.CacheManager
 import io.legado.app.help.ContentProcessor
 import io.legado.app.help.ContentProcessor
@@ -206,7 +207,9 @@ object BookController {
                 ?: return returnData.setErrorMsg("fileName 不能为空")
                 ?: return returnData.setErrorMsg("fileName 不能为空")
             val fileData = parameters["fileData"]?.firstOrNull()
             val fileData = parameters["fileData"]?.firstOrNull()
                 ?: return returnData.setErrorMsg("fileData 不能为空")
                 ?: return returnData.setErrorMsg("fileData 不能为空")
-            val file = FileUtils.createFileIfNotExist(LocalBook.cacheFolder, fileName)
+            if (AppConfig.defaultBookTreeUri == null) return returnData.setErrorMsg("没有设置书籍保存位置!")
+            val bookFolder = FileUtils.createFolderIfNotExist(AppConfig.defaultBookTreeUri!!)
+            val file = FileUtils.createFileIfNotExist(bookFolder, fileName)
             val fileBytes = Base64.decode(fileData.substringAfter("base64,"), Base64.DEFAULT)
             val fileBytes = Base64.decode(fileData.substringAfter("base64,"), Base64.DEFAULT)
             file.writeBytes(fileBytes)
             file.writeBytes(fileBytes)
             val nameAuthor = LocalBook.analyzeNameAuthor(fileName)
             val nameAuthor = LocalBook.analyzeNameAuthor(fileName)

+ 0 - 14
app/src/main/java/io/legado/app/model/localBook/LocalBook.kt

@@ -24,11 +24,6 @@ import javax.script.SimpleBindings
 
 
 object LocalBook {
 object LocalBook {
 
 
-    private const val folderName = "bookTxt"
-    val cacheFolder: File by lazy {
-        FileUtils.createFolderIfNotExist(appCtx.externalFiles, folderName)
-    }
-
     @Throws(FileNotFoundException::class, SecurityException::class)
     @Throws(FileNotFoundException::class, SecurityException::class)
     fun getBookInputStream(book: Book): InputStream {
     fun getBookInputStream(book: Book): InputStream {
         val uri = Uri.parse(book.bookUrl)
         val uri = Uri.parse(book.bookUrl)
@@ -168,15 +163,6 @@ object LocalBook {
 
 
     fun deleteBook(book: Book, deleteOriginal: Boolean) {
     fun deleteBook(book: Book, deleteOriginal: Boolean) {
         kotlin.runCatching {
         kotlin.runCatching {
-            if (book.isLocalTxt() || book.isUmd()) {
-                cacheFolder.getFile(book.originName).delete()
-            }
-            if (book.isEpub()) {
-                FileUtils.delete(
-                    cacheFolder.getFile(book.getFolderName())
-                )
-            }
-
             if (deleteOriginal) {
             if (deleteOriginal) {
                 if (book.bookUrl.isContentScheme()) {
                 if (book.bookUrl.isContentScheme()) {
                     val uri = Uri.parse(book.bookUrl)
                     val uri = Uri.parse(book.bookUrl)

+ 3 - 1
app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt

@@ -127,8 +127,10 @@ class BookInfoActivity :
             viewModel.bookSource != null
             viewModel.bookSource != null
         menu.findItem(R.id.menu_set_book_variable)?.isVisible =
         menu.findItem(R.id.menu_set_book_variable)?.isVisible =
             viewModel.bookSource != null
             viewModel.bookSource != null
+        menu.findItem(R.id.menu_can_update)?.isVisible =
+            viewModel.bookSource != null
         menu.findItem(R.id.menu_limit_content_length)?.isVisible =
         menu.findItem(R.id.menu_limit_content_length)?.isVisible =
-            viewModel.bookSource == null
+            viewModel.bookData.value?.isLocalTxt() ?: false
         return super.onMenuOpened(featureId, menu)
         return super.onMenuOpened(featureId, menu)
     }
     }