setCurrentNasInfo static method

Future<void> setCurrentNasInfo(
  1. NASDeviceInfo? info
)

设置当前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;
    }
  }
}