[skip ci] 优化

This commit is contained in:
Xwite
2023-03-10 08:25:40 +08:00
parent c48fdc5fbc
commit d605d2f149
2 changed files with 23 additions and 22 deletions
@@ -290,28 +290,30 @@ object LocalBook {
inputStream: InputStream, inputStream: InputStream,
fileName: String fileName: String
): Uri { ): Uri {
if (inputStream.isEmpty()) throw EmptyFileException("Unexpected empty inputStream") inputStream.use {
val defaultBookTreeUri = AppConfig.defaultBookTreeUri if (it.isEmpty()) throw EmptyFileException("Unexpected empty inputStream")
if (defaultBookTreeUri.isNullOrBlank()) throw NoStackTraceException("没有设置书籍保存位置!") val defaultBookTreeUri = AppConfig.defaultBookTreeUri
val treeUri = Uri.parse(defaultBookTreeUri) if (defaultBookTreeUri.isNullOrBlank()) throw NoStackTraceException("没有设置书籍保存位置!")
return if (treeUri.isContentScheme()) { val treeUri = Uri.parse(defaultBookTreeUri)
val treeDoc = DocumentFile.fromTreeUri(appCtx, treeUri) return if (treeUri.isContentScheme()) {
var doc = treeDoc!!.findFile(fileName) val treeDoc = DocumentFile.fromTreeUri(appCtx, treeUri)
if (doc == null) { var doc = treeDoc!!.findFile(fileName)
doc = treeDoc.createFile(FileUtils.getMimeType(fileName), fileName) if (doc == null) {
?: throw SecurityException("请重新设置书籍保存位置\nPermission Denial") doc = treeDoc.createFile(FileUtils.getMimeType(fileName), fileName)
?: throw SecurityException("请重新设置书籍保存位置\nPermission Denial")
}
appCtx.contentResolver.openOutputStream(doc.uri)!!.use { oStream ->
it.copyTo(oStream)
}
doc.uri
} else {
val treeFile = File(treeUri.path!!)
val file = treeFile.getFile(fileName)
FileOutputStream(file).use { oStream ->
it.copyTo(oStream)
}
Uri.fromFile(file)
} }
appCtx.contentResolver.openOutputStream(doc.uri)!!.use { oStream ->
inputStream.copyTo(oStream)
}
doc.uri
} else {
val treeFile = File(treeUri.path!!)
val file = treeFile.getFile(fileName)
FileOutputStream(file).use { oStream ->
inputStream.copyTo(oStream)
}
Uri.fromFile(file)
} }
} }
@@ -17,7 +17,6 @@ import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter import io.legado.app.data.entities.BookChapter
import io.legado.app.data.entities.BookSource import io.legado.app.data.entities.BookSource
import io.legado.app.exception.NoStackTraceException import io.legado.app.exception.NoStackTraceException
import io.legado.app.exception.EmptyFileException
import io.legado.app.help.AppWebDav import io.legado.app.help.AppWebDav
import io.legado.app.help.book.* import io.legado.app.help.book.*
import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.coroutine.Coroutine