自定义线路与线路优化

This commit is contained in:
2026-06-04 17:52:16 +08:00
parent 33509de4e3
commit e6c60a9d6d
16 changed files with 1184 additions and 203 deletions
+21 -26
View File
@@ -45,12 +45,7 @@ class ServerService {
} catch (e) {
AppLogger.d('加载服务器列表失败: $e');
// 加载失败时使用默认服务器
_servers = [
ServerModel(
label: _defaultLabel,
baseUrl: _defaultBaseUrl,
),
];
_servers = [ServerModel(label: _defaultLabel, baseUrl: _defaultBaseUrl)];
_currentServer = _servers.first;
}
}
@@ -65,15 +60,10 @@ class ServerService {
}
}
_currentServer = (savedDefaultServer ??
ServerModel(
label: _defaultLabel,
baseUrl: _defaultBaseUrl,
))
.copyWith(
label: _defaultLabel,
baseUrl: _defaultBaseUrl,
);
_currentServer =
(savedDefaultServer ??
ServerModel(label: _defaultLabel, baseUrl: _defaultBaseUrl))
.copyWith(label: _defaultLabel, baseUrl: _defaultBaseUrl);
_servers = [_currentServer!];
}
@@ -91,7 +81,9 @@ class ServerService {
/// 保存上次选中的服务器
Future<void> _saveLastSelected() async {
if (_currentServer != null) {
await StorageService.instance.setLastSelectedServerLabel(_currentServer!.label);
await StorageService.instance.setLastSelectedServerLabel(
_currentServer!.label,
);
}
}
@@ -125,16 +117,21 @@ class ServerService {
String? password,
UserModel? user,
bool? rememberMe,
bool clearEmail = false,
bool clearPassword = false,
bool clearUser = false,
}) async {
if (_currentServer == null) {
throw Exception('没有选中的服务器');
}
_currentServer = _currentServer!.copyWith(
email: email,
password: password,
user: user,
_currentServer = ServerModel(
label: _currentServer!.label,
baseUrl: _currentServer!.baseUrl,
rememberMe: rememberMe ?? _currentServer!.rememberMe,
email: clearEmail ? null : (email ?? _currentServer!.email),
password: clearPassword ? null : (password ?? _currentServer!.password),
user: clearUser ? null : (user ?? _currentServer!.user),
);
// 更新列表中的引用
@@ -152,17 +149,15 @@ class ServerService {
email: null,
password: null,
user: null,
clearEmail: true,
clearPassword: true,
clearUser: true,
);
}
/// 重置为默认服务器列表
Future<void> resetToDefault() async {
_servers = [
ServerModel(
label: _defaultLabel,
baseUrl: _defaultBaseUrl,
),
];
_servers = [ServerModel(label: _defaultLabel, baseUrl: _defaultBaseUrl)];
_currentServer = _servers.first;
await _saveServers();
await _saveLastSelected();