save static method

Future save(
  1. String name,
  2. dynamic value
)

parameter 1 = header , parameter 2 = value note : the name must be different from other data types

Implementation

static Future<dynamic> save(String name, dynamic value) async {
  final SharedPreferences preferences = await SharedPreferences.getInstance();
  String typeData = '';
  final getList = await loadList();
  List savedList = getList == null ? [] : json.decode(getList);
  if (value is String) {
    typeData = 'string';
    preferences.setString(name, value);
  } else if (value is int) {
    typeData = 'int';
    preferences.setInt(name, value);
  } else if (value is bool) {
    typeData = 'bool';
    preferences.setBool(name, value);
  } else if (value is double) {
    typeData = 'double';
    preferences.setDouble(name, value);
  } else {
    return 'Type Data Tidak Diketahui';
  }
  final checking = savedList.where((element) => element['name'] == name).length;
  if (checking == 0) {
    savedList.add({'type': '$typeData', 'name': '$name'});
    final encode = json.encode(savedList);
    preferences.setString('saved_list', encode);
  }
  return true;
}