setData<T> static method

void setData<T>(
  1. String key,
  2. T? value
)

Implementation

static void setData<T>(String key, T? value) async {
  final SharedPreferences prefs = await SharedPreferences.getInstance();
  if (T == int) {
    // Save an integer value to 'counter' key.
    await prefs.setInt(key, value == null ? 0 : (value as int));
  } else if (T == bool) {
    // Save an boolean value to 'repeat' key.
    await prefs.setBool(key, value == null ? false : (value as bool));
  } else if (T == double) {
    // Save an double value to 'decimal' key.
    await prefs.setDouble(key, value == null ? 0.0 : (value as double));
  } else if (T == List<String>) {
    // Save an list of strings to 'items' key.
    await prefs.setStringList(
        key, value == null ? [] : (value as List<String>));
  } else if (T == Map<String, dynamic>) {
    if (value == null) {
      await prefs.setString(key, "{}");
    } else {
      final jsonString = jsonEncode(value); // Convert map to JSON string
      await prefs.setString(
          key, jsonString); // Save JSON string to SharedPreferences
    }
  } else if (T == List<dynamic>) {
    if (value == null) {
      await prefs.setString(key, "[]");
    } else {
      final jsonString = jsonEncode(value); // Convert map to JSON string
      await prefs.setString(
          key, jsonString); // Save JSON string to SharedPreferences
    }
  } else {
    //default String
    // Save an double value to 'decimal' key.
    await prefs.setString(key, value == null ? '' : (value as String));
  }
}