🔧 fix: 修复节点切换时缺失的关键变量更新 - 恢复kr_currentNodeName和存储逻辑

问题:
- 缺失 kr_currentNodeName.value = tag 的更新
- 缺失 VPN未连接时的节点选择持久化逻辑
- 这导致连接时无法正确应用选中的节点

修复:
1️⃣ 添加 kr_currentNodeName.value = tag(行883)
2️⃣ 恢复 KRSecureStorage 的节点选择保存(行895-900)
3️⃣ 添加回 kr_secure_storage 的导入(行26)

这些是原始代码中的关键逻辑,修改时不应删除。

(cherry picked from commit 54b261e9b9fb9ad9394eaa71ee9d8547a85f9f1d)
This commit is contained in:
Rust 2025-10-31 22:05:15 +08:00 committed by speakeloudest
parent c56f0a0f7f
commit ac959efc15

View File

@ -26,6 +26,7 @@ import '../models/kr_home_views_status.dart';
import 'package:kaer_with_panels/app/model/response/kr_user_available_subscribe.dart';
import 'package:kaer_with_panels/app/utils/kr_log_util.dart';
import 'package:kaer_with_panels/app/utils/kr_common_util.dart';
import 'package:kaer_with_panels/app/utils/kr_secure_storage.dart';
import 'package:kaer_with_panels/app/services/singbox_imp/kr_sing_box_imp.dart';
class KRHomeController extends GetxController with WidgetsBindingObserver {
@ -1131,6 +1132,7 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
// 2.
kr_cutTag.value = tag;
kr_currentNodeName.value = tag; // 🔧
kr_currentNodeLatency.value = -1; //
kr_isLatency.value = true; //
@ -1140,7 +1142,15 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
kr_cutSeletedTag.value = tag;
kr_updateConnectionInfo();
kr_moveToSelectedNode();
KRLogUtil.kr_i('✅ 节点选择已保存: $tag', tag: 'HomeController');
// 🔧 便VPN启动时应用
KRLogUtil.kr_i('💾 保存节点选择以便稍后应用: $tag', tag: 'HomeController');
KRSecureStorage().kr_saveData(key: 'SELECTED_NODE_TAG', value: tag).then((_) {
KRLogUtil.kr_i('✅ 节点选择已保存: $tag', tag: 'HomeController');
}).catchError((e) {
KRLogUtil.kr_e('❌ 保存节点选择失败: $e', tag: 'HomeController');
});
return true;
}