setCurrentNasInfo static method
设置当前NAS设备信息并持久化 当info为null时,不保存到本地存储,保持原有值不变
Implementation
static Future<void> setCurrentNasInfo(NASDeviceInfo? info) async {
// 确保已初始化
await _ensureInitialized();
try {
// 只有当info不为null时才保存到本地存储
if (info != null) {
final prefs = await SharedPreferences.getInstance();
final deviceJson = jsonEncode(info.toMap());
await prefs.setString(_nasDeviceKey, deviceJson);
_currentNasDevice = info;
log('保存NAS设备信息到本地存储: ${info.serviceName}');
} else {
// null值时不更新内存中的值,不覆盖本地存储
log('NAS设备信息为null,忽略保存,保持本地存储的值不变');
}
} catch (e) {
log('保存NAS设备信息失败: $e');
// 即使保存失败,也更新内存中的值(如果不为null)
if (info != null) {
_currentNasDevice = info;
}
}
}