cpd_2022_zi/lib/service/settings_service.dart

44 lines
1.5 KiB
Dart

import 'package:shared_preferences/shared_preferences.dart';
import 'package:smoke_cess_app/models/settings.dart';
import 'package:smoke_cess_app/service/json_service.dart';
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
//access group setting which was saved in local storage
Future<String?> getGroup() {
return getStringSetting('group');
}
void setStringSetting(String settingKey, String settingValue) =>
_prefs.then((pref) => pref.setString(settingKey, settingValue));
Future<String?> getStringSetting(String settingKey) =>
_prefs.then((pref) => pref.getString(settingKey));
void setIntSetting(String settingKey, int settingValue) =>
_prefs.then((pref) => pref.setInt(settingKey, settingValue));
Future<int?> getIntSetting(String settingKey) =>
_prefs.then((pref) => pref.getInt(settingKey));
void setStringList(String settingKey, List<String> list) =>
_prefs.then((pref) => pref.setStringList(settingKey, list));
//Add other setters and getters if needed
//other possible SharedPreferences Types: Int, Bool, Double, StringList
//see https://pub.dev/packages/shared_preferences
Future<void> loadSettings() async {
Map<String, dynamic> configJSON = await loadLocalConfigJSON();
Settings settings = Settings.fromJson(configJSON);
print(settings.group);
saveSettings(settings);
String gruppe = (await getGroup())!;
print('Gruppe: $gruppe');
}
void saveSettings(Settings settings) {
setStringSetting('group', settings.group);
setStringSetting('key', settings.key);
}