From 6d11d4e2441307c5fe75d7b15c4550fef9863516 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Fri, 10 Mar 2023 19:26:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BF=9C=E7=A8=8BwebDav=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E6=97=B6=E6=9C=8D=E5=8A=A1=E5=99=A8id?= =?UTF-8?q?=E9=94=99=E8=AF=AF=20=E9=BB=98=E8=AE=A4webDavId=E4=B8=BA-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/constant/AppConst.kt | 2 ++ .../io/legado/app/lib/webdav/Authorization.kt | 3 +++ .../ui/book/import/remote/RemoteBookActivity.kt | 3 ++- .../ui/book/import/remote/RemoteBookViewModel.kt | 15 ++++----------- .../app/ui/book/import/remote/ServersDialog.kt | 3 ++- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/io/legado/app/constant/AppConst.kt b/app/src/main/java/io/legado/app/constant/AppConst.kt index f19ad27fd..215fe431c 100644 --- a/app/src/main/java/io/legado/app/constant/AppConst.kt +++ b/app/src/main/java/io/legado/app/constant/AppConst.kt @@ -25,6 +25,8 @@ object AppConst { const val MAX_THREAD = 9 + const val DEFAULT_WEBDAV_ID = -1 + val SCRIPT_ENGINE: RhinoScriptEngine by lazy { RhinoScriptEngine() } diff --git a/app/src/main/java/io/legado/app/lib/webdav/Authorization.kt b/app/src/main/java/io/legado/app/lib/webdav/Authorization.kt index b89126ba3..af78adc12 100644 --- a/app/src/main/java/io/legado/app/lib/webdav/Authorization.kt +++ b/app/src/main/java/io/legado/app/lib/webdav/Authorization.kt @@ -1,6 +1,7 @@ package io.legado.app.lib.webdav import io.legado.app.data.appDb +import io.legado.app.data.entities.Server.WebDavConfig import io.legado.app.exception.NoStackTraceException import okhttp3.Credentials import java.nio.charset.Charset @@ -29,4 +30,6 @@ data class Authorization( } ?: throw WebDavException("Unexpected WebDav Authorization") } + constructor(webDavConfig: WebDavConfig): this(webDavConfig.username, webDavConfig.password) + } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt index 3a4aacce6..f31733182 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt @@ -30,7 +30,8 @@ import java.io.File class RemoteBookActivity : BaseImportBookActivity(), RemoteBookAdapter.CallBack, SelectActionBar.CallBack, - ServerConfigDialog.Callback { + ServerConfigDialog.Callback, + ServersDialog.Callback { override val binding by viewBinding(ActivityImportBookBinding::inflate) override val viewModel by viewModels() private val adapter by lazy { RemoteBookAdapter(this, this) } diff --git a/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookViewModel.kt index fd53daf23..50d34a2c2 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookViewModel.kt @@ -80,17 +80,10 @@ class RemoteBookViewModel(application: Application) : BaseViewModel(application) fun initData(onSuccess: () -> Unit) { execute { - val server = appDb.serverDao.get(AppConfig.remoteServerId) - val serverConfig = server?.getConfigJsonObject() - if (serverConfig != null && serverConfig.has("url")) { - val url = serverConfig.getString("url") - if (url.isNotBlank()) { - val user = serverConfig.getString("user") - val password = serverConfig.getString("password") - val authorization = Authorization(user, password) - remoteBookWebDav = RemoteBookWebDav(url, authorization, 10001) - return@execute - } + appDb.serverDao.get(AppConfig.remoteServerId)?.getWebDavConfig()?.let { + val authorization = Authorization(it) + remoteBookWebDav = RemoteBookWebDav(it.url, authorization, AppConfig.remoteServerId) + return@execute } remoteBookWebDav = AppWebDav.defaultBookWebDav ?: throw NoStackTraceException("webDav没有配置") diff --git a/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt b/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt index cba564f77..913fe376c 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt @@ -10,6 +10,7 @@ import androidx.appcompat.widget.Toolbar import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager import io.legado.app.R +import io.legado.app.constant.AppConst.DEFAULT_WEBDAV_ID import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter @@ -61,7 +62,7 @@ class ServersDialog : BaseDialogFragment(R.layout.dialog_recycler_view), binding.tvFooterLeft.text = getString(R.string.text_default) binding.tvFooterLeft.visible() binding.tvFooterLeft.setOnClickListener { - AppConfig.remoteServerId = 0 + AppConfig.remoteServerId = DEFAULT_WEBDAV_ID dismissAllowingStateLoss() } binding.tvCancel.visible()