diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index a21ab4aa8..b8571b3e3 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt @@ -207,20 +207,21 @@ class BookInfoActivity : R.id.menu_upload -> { launch { - val uri = Uri.parse(viewModel.bookData.value?.bookUrl.toString()) - val waitDialog = WaitDialog(this@BookInfoActivity) - waitDialog.setText("上传中.....") - waitDialog.show() - try { - val isUpload = RemoteBookWebDav.upload(uri) - if (isUpload) - toastOnUi(getString(R.string.upload_book_success)) - else - toastOnUi(getString(R.string.upload_book_fail)) - } catch (e: Exception) { - toastOnUi(e.localizedMessage) - } finally { - waitDialog.dismiss() + viewModel.bookData.value?.let { + val waitDialog = WaitDialog(this@BookInfoActivity) + waitDialog.setText("上传中.....") + waitDialog.show() + try { + val isUpload = RemoteBookWebDav.upload(it) + if (isUpload) + toastOnUi(getString(R.string.upload_book_success)) + else + toastOnUi(getString(R.string.upload_book_fail)) + } catch (e: Exception) { + toastOnUi(e.localizedMessage) + } finally { + waitDialog.dismiss() + } } } } diff --git a/app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt b/app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt index d5659fab7..ec0348b3a 100644 --- a/app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt +++ b/app/src/main/java/io/legado/app/ui/book/remote/manager/RemoteBookWebDav.kt @@ -3,6 +3,7 @@ package io.legado.app.ui.book.remote.manager import android.net.Uri import io.legado.app.constant.AppPattern.bookFileRegex +import io.legado.app.data.entities.Book import io.legado.app.exception.NoStackTraceException import io.legado.app.help.AppWebDav import io.legado.app.lib.webdav.WebDav @@ -85,11 +86,10 @@ object RemoteBookWebDav : RemoteBookManager() { /** * 上传本地导入的书籍到远程 */ - override suspend fun upload(localBookUri: Uri): Boolean { + override suspend fun upload(book: Book): Boolean { if (!NetworkUtils.isAvailable()) return false - - val localBookName = localBookUri.path?.substringAfterLast(File.separator) - val putUrl = "${rootBookUrl}${File.separator}${localBookName}" + val localBookUri = Uri.parse(book.bookUrl) + val putUrl = "${rootBookUrl}${File.separator}${book.originName}" AppWebDav.authorization?.let { if (localBookUri.isContentScheme()) { WebDav(putUrl, it).upload( @@ -100,6 +100,8 @@ object RemoteBookWebDav : RemoteBookManager() { WebDav(putUrl, it).upload(localBookUri.path!!) } } + book.remoteUrl = putUrl + book.save() return true }