feat: 修复节点切换bug
This commit is contained in:
parent
d63b3bfc3c
commit
17860e333c
@ -1504,6 +1504,7 @@ class KRHomeController extends GetxController with WidgetsBindingObserver {
|
||||
},
|
||||
(_) {
|
||||
// 切换成功
|
||||
KRSingBoxImp.instance.kr_startNodeSelectionMonitor(tag);
|
||||
KRLogUtil.kr_i('✅ selectOutbound 调用成功', tag: 'HomeController');
|
||||
},
|
||||
);
|
||||
|
||||
@ -1635,9 +1635,7 @@ class KRSingBoxImp {
|
||||
KRLogUtil.kr_i('🛑 停止 SingBox 服务...', tag: 'SingBox');
|
||||
|
||||
// 取消节点选择监控定时器
|
||||
_nodeSelectionTimer?.cancel();
|
||||
_nodeSelectionTimer = null;
|
||||
KRLogUtil.kr_i('✅ 节点选择监控已停止', tag: 'SingBox');
|
||||
kr_resetNodeSelectionMonitor();
|
||||
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
|
||||
@ -1977,7 +1975,22 @@ class KRSingBoxImp {
|
||||
|
||||
// 🔄 如果用户选择了具体节点(不是 auto),启动定期检查和重新选择
|
||||
// 这是为了防止 urltest 自动覆盖用户的手动选择
|
||||
_nodeSelectionTimer?.cancel();
|
||||
kr_startNodeSelectionMonitor(tag);
|
||||
}
|
||||
|
||||
/// 配合文件地址
|
||||
|
||||
Directory get directory =>
|
||||
Directory(p.join(kr_configDics.workingDir.path, "configs"));
|
||||
File _file(String fileName) {
|
||||
return File(p.join(directory.path, "$fileName.json"));
|
||||
}
|
||||
|
||||
File _tempFile(String fileName) => _file("$fileName.tmp");
|
||||
|
||||
/// 启动节点选择监控定时器,防止用户手动选择被自动策略覆盖
|
||||
void kr_startNodeSelectionMonitor(String tag) {
|
||||
kr_resetNodeSelectionMonitor();
|
||||
if (tag != 'auto') {
|
||||
KRLogUtil.kr_i('🔁 启动节点选择监控,防止被 auto 覆盖', tag: 'SingBox');
|
||||
_nodeSelectionTimer =
|
||||
@ -1997,16 +2010,13 @@ class KRSingBoxImp {
|
||||
}
|
||||
}
|
||||
|
||||
/// 配合文件地址
|
||||
|
||||
Directory get directory =>
|
||||
Directory(p.join(kr_configDics.workingDir.path, "configs"));
|
||||
File _file(String fileName) {
|
||||
return File(p.join(directory.path, "$fileName.json"));
|
||||
/// 重置并停止节点选择监控定时器
|
||||
void kr_resetNodeSelectionMonitor() {
|
||||
_nodeSelectionTimer?.cancel();
|
||||
_nodeSelectionTimer = null;
|
||||
KRLogUtil.kr_i('✅ 节点选择监控已停止', tag: 'SingBox');
|
||||
}
|
||||
|
||||
File _tempFile(String fileName) => _file("$fileName.tmp");
|
||||
|
||||
// File tempFile(String fileName) => file("$fileName.tmp");
|
||||
|
||||
Future<void> kr_urlTest(String groupTag) async {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user