save static method
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;
}