import 'dart:async'; import 'dart:convert'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tsacdop/class/podcast_group.dart'; class KeyValueStorage { final String key; KeyValueStorage(this.key); Future> getGroups() async { SharedPreferences prefs = await SharedPreferences.getInstance(); if (prefs.getString(key) == null) { PodcastGroup home = PodcastGroup('Home'); await prefs.setString( key, json.encode({ 'groups': [home.toEntity().toJson()] }));} print(prefs.getString(key)); return json .decode(prefs.getString(key))['groups'] .cast>() .map(GroupEntity.fromJson) .toList(growable: false); } Future saveGroup(List groupList) async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.setString( key, json.encode( {'groups': groupList.map((group) => group.toJson()).toList()})); } Future saveInt(int setting) async{ SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.setInt(key, setting); } Future getInt() async{ SharedPreferences prefs = await SharedPreferences.getInstance(); if(prefs.getInt(key) == null) await prefs.setInt(key, 0); return prefs.getInt(key); } Future saveStringList(List playList) async{ SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.setStringList(key, playList); } Future> getStringList() async{ SharedPreferences prefs = await SharedPreferences.getInstance(); if(prefs.getStringList(key) == null) {await prefs.setStringList(key, []);} return prefs.getStringList(key); } Future saveString(String string) async{ SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.setString(key, string); } Future getString() async{ SharedPreferences prefs = await SharedPreferences.getInstance(); if(prefs.getString(key) == null) {await prefs.setString(key, '');} return prefs.getString(key); } }