updateSettingsForSource function

Future<String?> updateSettingsForSource(
  1. Map<String, dynamic> updates
)

Update user settings with the given partial updates. Returns an error message string or null on success.

Implementation

Future<String?> updateSettingsForSource(Map<String, dynamic> updates) async {
  try {
    final settings = await _readUserSettings();
    // Merge updates. Explicit null values signal key removal.
    for (final entry in updates.entries) {
      if (entry.value == null) {
        settings.remove(entry.key);
      } else {
        settings[entry.key] = entry.value;
      }
    }
    await _writeUserSettings(settings);
    return null;
  } catch (e) {
    return e.toString();
  }
}