From 90a3d57bb1a2460ccbc2182233878de41a07a0c6 Mon Sep 17 00:00:00 2001 From: Rust Date: Fri, 31 Oct 2025 22:14:01 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E8=8A=82=E7=82=B9=E6=97=B6=E4=B8=8D=E5=BA=94?= =?UTF-8?q?=E6=98=BE=E7=A4=BA'=E6=AD=A3=E5=9C=A8=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E4=B8=AD'=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - 从节点列表选择节点时,UI显示'正在连接中' - 但实际未连接VPN,只是选择了节点 - 导致用户困惑 根本原因: - VPN未连接时,kr_currentNodeLatency被设置为-1 - 当延迟为-1时,UI显示'connecting'(正在连接) - 导致UI显示错误的状态 修复: 1️⃣ VPN未连接时:不设置kr_currentNodeLatency为-1,保持原值 - 仅保存节点选择,UI显示选中的节点名称 - 不显示'正在连接'状态 2️⃣ VPN已连接时:才设置kr_currentNodeLatency为-1 - 进行节点切换时正确显示'正在连接' - 切换完成后更新延迟值 修改: - 删除VPN未连接时的kr_currentNodeLatency = -1赋值(行885) - 在VPN已连接节点切换时添加kr_currentNodeLatency = -1赋值(行909) 编译验证: ✅ 通过 (cherry picked from commit 6be1cd1006e923dc28c26a78f9e51790969325ae) --- lib/app/modules/kr_home/controllers/kr_home_controller.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/app/modules/kr_home/controllers/kr_home_controller.dart b/lib/app/modules/kr_home/controllers/kr_home_controller.dart index f3b963b..eb0b989 100755 --- a/lib/app/modules/kr_home/controllers/kr_home_controller.dart +++ b/lib/app/modules/kr_home/controllers/kr_home_controller.dart @@ -1133,8 +1133,6 @@ class KRHomeController extends GetxController with WidgetsBindingObserver { // 2. 设置切换中状态 kr_cutTag.value = tag; kr_currentNodeName.value = tag; // 🔧 修复:更新节点名称 - kr_currentNodeLatency.value = -1; // 切换中状态 - kr_isLatency.value = true; // 显示加载动画 // 3. 如果VPN未连接,只更新UI变量即可 if (!kr_isConnected.value) { @@ -1158,6 +1156,10 @@ class KRHomeController extends GetxController with WidgetsBindingObserver { try { KRLogUtil.kr_i('🔌 VPN已连接,开始切换后台节点: $tag', tag: 'HomeController'); + // 🔧 修复:VPN已连接时,设置延迟为-1(切换中状态),显示"正在连接" + kr_currentNodeLatency.value = -1; + kr_isLatency.value = true; // 显示加载动画 + // 等待后台节点切换完成(关键!) await KRSingBoxImp.instance.kr_selectOutbound(tag);