persist method

void persist()

Here the actual storing takes place

This method can be overridden by subclasses in cases where a subclass needs to store e.g. a data type that is not directly suported by shared_preferences. An overriding subclass should make sure that null values are removed from shared_preferences.

Implementation

void persist() {
  if (widget.settingsKey == null) {
    return;
  }

  String settingsKey = widget.settingsKey!;

  if (value == null) {
    prefs.remove(widget.settingsKey!);
    return;
  }

  switch (T) {
    case String:
      prefs.setString(settingsKey, value as String);
      break;
    case bool:
      prefs.setBool(settingsKey, value as bool);
      break;
    case int:
      prefs.setInt(settingsKey, value as int);
      break;
    case double:
      prefs.setDouble(settingsKey, value as double);
      break;
    case List:
      if (T is List<String>) {
        List<String> val = value as List<String>;
        prefs.setStringList(settingsKey, val);
      }
      break;
    default:
      break;
  }
}