diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index 5277a4401..fbb1f4e62 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -13,6 +13,7 @@ object PreferKey { const val coverShowAuthor = "coverShowAuthor" const val coverShowNameN = "coverShowNameN" const val coverShowAuthorN = "coverShowAuthorN" + const val remoteServerId = "remoteServerId" const val hideStatusBar = "hideStatusBar" const val clickActionTL = "clickActionTopLeft" const val clickActionTC = "clickActionTopCenter" diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index d46c10346..2c8b75fa1 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -174,6 +174,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { appCtx.putPrefInt(PreferKey.threadCount, value) } + var remoteServerId: Long + get() = appCtx.getPrefLong(PreferKey.remoteServerId) + set(value) { + appCtx.putPrefLong(PreferKey.remoteServerId, value) + } + // 添加本地选择的目录 var importBookPath: String? get() = appCtx.getPrefString("importBookPath") 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 b0ab19f18..fd53daf23 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 @@ -7,6 +7,7 @@ import io.legado.app.constant.BookType import io.legado.app.data.appDb import io.legado.app.exception.NoStackTraceException import io.legado.app.help.AppWebDav +import io.legado.app.help.config.AppConfig import io.legado.app.lib.webdav.Authorization import io.legado.app.model.analyzeRule.CustomUrl import io.legado.app.model.localBook.LocalBook @@ -79,12 +80,13 @@ class RemoteBookViewModel(application: Application) : BaseViewModel(application) fun initData(onSuccess: () -> Unit) { execute { - val config = appDb.serverDao.get(10001)?.getConfigJsonObject() - if (config != null && config.has("url")) { - val url = config.getString("url") + 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 = config.getString("user") - val password = config.getString("password") + val user = serverConfig.getString("user") + val password = serverConfig.getString("password") val authorization = Authorization(user, password) remoteBookWebDav = RemoteBookWebDav(url, authorization, 10001) return@execute 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 7a9de16bb..cba564f77 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 @@ -17,6 +17,7 @@ import io.legado.app.data.appDb import io.legado.app.data.entities.Server import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemServerSelectBinding +import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.theme.backgroundColor import io.legado.app.lib.theme.primaryColor @@ -25,6 +26,7 @@ import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout import io.legado.app.utils.showDialogFragment import io.legado.app.utils.viewbindingdelegate.viewBinding +import io.legado.app.utils.visible import kotlinx.coroutines.launch class ServersDialog : BaseDialogFragment(R.layout.dialog_recycler_view), @@ -56,6 +58,21 @@ class ServersDialog : BaseDialogFragment(R.layout.dialog_recycler_view), binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.addItemDecoration(VerticalDivider(requireContext())) binding.recyclerView.adapter = adapter + binding.tvFooterLeft.text = getString(R.string.text_default) + binding.tvFooterLeft.visible() + binding.tvFooterLeft.setOnClickListener { + AppConfig.remoteServerId = 0 + dismissAllowingStateLoss() + } + binding.tvCancel.visible() + binding.tvCancel.setOnClickListener { + dismissAllowingStateLoss() + } + binding.tvOk.visible() + binding.tvOk.setOnClickListener { + AppConfig.remoteServerId = adapter.selectServerId + dismissAllowingStateLoss() + } } private fun initData() { @@ -81,7 +98,7 @@ class ServersDialog : BaseDialogFragment(R.layout.dialog_recycler_view), inner class ServersAdapter(context: Context) : RecyclerAdapter(context) { - private var selectServerId: Long? = null + var selectServerId: Long = AppConfig.remoteServerId override fun getViewBinding(parent: ViewGroup): ItemServerSelectBinding { return ItemServerSelectBinding.inflate(inflater, parent, false) @@ -90,7 +107,8 @@ class ServersDialog : BaseDialogFragment(R.layout.dialog_recycler_view), override fun registerListener(holder: ItemViewHolder, binding: ItemServerSelectBinding) { binding.rbServer.setOnCheckedChangeListener { buttonView, isChecked -> if (buttonView.isPressed && isChecked) { - selectServerId = getItemByLayoutPosition(holder.layoutPosition)?.id + selectServerId = getItemByLayoutPosition(holder.layoutPosition)!!.id + adapter.updateItems(0, itemCount - 1, "upSelect") } } binding.ivEdit.setOnClickListener { diff --git a/app/src/main/res/layout/dialog_webdav_server.xml b/app/src/main/res/layout/dialog_webdav_server.xml index a422a5427..85efe466e 100644 --- a/app/src/main/res/layout/dialog_webdav_server.xml +++ b/app/src/main/res/layout/dialog_webdav_server.xml @@ -39,6 +39,7 @@ android:id="@+id/et_id" android:layout_width="match_parent" android:layout_height="wrap_content" + android:numeric="integer" tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index a1a4750fc..86a7e2008 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -992,7 +992,7 @@ Download Success Download Fail Upload - WebDavBook + RemoteBook Current cache max size %1$s MB bitmap cache size Export Picture Files diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index e1283cf01..f9e2f5be5 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -995,7 +995,7 @@ Download Success Download Fail Upload - WebDavBook + RemoteBook Current cache max size %1$s MB bitmap cache size Export Picture Files diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 72a7334f2..742282612 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -995,7 +995,7 @@ Download Success Download Fail Upload - WebDavBook + RemoteBook Current cache max size %1$s MB bitmap cache size Export Picture Files diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 3e4f709b2..385286c0c 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -992,7 +992,7 @@ Download Success Download Fail Upload - WebDav书籍 + 远程书籍 当前最大缓存 %1$s MB 图片绘制缓存 TXT导出图片 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 6f956ab0f..60bff7d95 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -994,7 +994,7 @@ 下載成功 下載失敗 上傳 - WebDav書籍 + 远程書籍 目前最大快取 %1$s MB 圖片繪製快取 TXT匯出圖片 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index ed320e1f2..7597845c6 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -994,7 +994,7 @@ 下载成功 下载失败 上传 WebDav - WebDav 书籍 + 远程书籍 当前最大缓存 %1$s MB 图片绘制缓存 TXT 导出图片 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 259ded3bb..0b8c75f1f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -996,7 +996,7 @@ Download Success Download Fail Upload - WebDavBook + RemoteBook Current cache max size %1$s MB bitmap cache size Export Picture Files