set<T> method

Future<void> set<T>(
  1. PrefKey<T> key,
  2. T value
)

Sets a preference's local value and marks state dirty for cloud sync.

No-op for forced preferences.

Implementation

Future<void> set<T>(PrefKey<T> key, T value) async {
  log(
    'Setting preference "${key.name}" to $value',
    name: 'PreferencesRepository',
  );
  if (_readForcedSet().contains(key.name)) {
    log(
      'Preference "${key.name}" is forced and cannot be overridden',
      name: 'PreferencesRepository',
    );
    return;
  }

  await _store.write(key, value);
  await _setDirty(true);
  _maybeSyncUp();
  _updateController.add(null);
}