setDefaultValues method

Future<bool> setDefaultValues(
  1. Map<String, dynamic> values
)

Set the default preference values

Implementation

Future<bool> setDefaultValues(Map<String, dynamic> values) async {
  var result = true;
  final keys = getKeys();
  for (final key in values.keys) {
    if (!keys.contains(key)) {
      if (!await put<dynamic>(key, values[key])) {
        result = false;
      }
    } else {
      final dynamic value = get<dynamic>(key);

      if (value is List) {
        if (values[key] is! List) {
          if (!await put<dynamic>(key, values[key])) {
            result = false;
          }
        }
      } else if (value.runtimeType != values[key].runtimeType) {
        if (!await put<dynamic>(key, values[key])) {
          result = false;
        }
      }
    }
  }

  return result;
}