From 6a70f7ef5d423aaabdbe6c688d6c669a6be05be7 Mon Sep 17 00:00:00 2001 From: tanjianbin <632190820@qq.com> Date: Tue, 31 Mar 2026 17:28:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=AE=BE=E7=BD=AE):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=9C=B0=E5=9D=80=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加服务器地址配置界面,允许用户自定义WebSocket服务器地址。包含输入验证,确保地址格式正确(ws://或wss://开头)。 --- .../activity/SettingsAdvanceActivity.kt | 28 +++++++++++ .../res/layout/activity_settings_advance.xml | 47 +++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt b/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt index a70a2fb..52732b0 100644 --- a/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt @@ -78,6 +78,8 @@ class SettingsAdvanceActivity : AppCompatActivity() { ll_corp_param.visibility = if (Constant.customLink) View.VISIBLE else View.GONE rl_username.visibility = if (Constant.customMP) View.VISIBLE else View.GONE rl_qa_url.setOnClickListener { showQaUrlDialog() } + rl_host.setOnClickListener { showHostDialog() } + tv_select_host.text = Constant.host rl_corp_name.setOnClickListener { showCorpNameDialog() } rl_corp.setOnClickListener { showCorpIdDialog() } rl_agent.setOnClickListener { showAgentIdDialog() } @@ -117,6 +119,32 @@ class SettingsAdvanceActivity : AppCompatActivity() { .create(R.style.QMUI_Dialog).show() } + private fun showHostDialog() { + val builder = QMUIDialog.EditTextDialogBuilder(this) + builder.setTitle("服务器地址") + .setPlaceholder("请输入WebSocket服务器地址") + .setDefaultText(Constant.host) + .setInputType(InputType.TYPE_CLASS_TEXT) + .addAction(getString(R.string.cancel)) { dialog, index -> dialog.dismiss() } + .addAction(getString(R.string.add)) { dialog, index -> + val text = builder.editText.text + if (text != null && text.isNotEmpty()) { + val host = text.toString().trim() + if (host.matches("wss?://[^:]+:\\d+".toRegex())) { + dialog.dismiss() + Constant.host = host + tv_select_host.text = host + ToastUtils.showLong("服务器地址已更新") + } else { + ToastUtils.showLong("格式异常!示例: ws://192.168.1.1:18680") + } + } else { + ToastUtils.showLong("请勿为空!") + } + } + .create(R.style.QMUI_Dialog).show() + } + private fun updateRobotQaUrl(callbackUrl: String) { try { val json = hashMapOf() diff --git a/app/src/main/res/layout/activity_settings_advance.xml b/app/src/main/res/layout/activity_settings_advance.xml index 116a89b..66d4f4b 100644 --- a/app/src/main/res/layout/activity_settings_advance.xml +++ b/app/src/main/res/layout/activity_settings_advance.xml @@ -317,6 +317,53 @@ + + + + + + + + + + + + +