DietaryGuard/lib/controllers/alert.dart
2024-08-15 11:53:01 +08:00

39 lines
1.0 KiB
Dart

import 'dart:convert';
import 'package:dietary_guard/models/alert_configuration.dart';
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
class AlertController extends GetxController {
List<AlertConfiguration> configuration = List.empty();
late final SharedPreferences _prefs;
@override
void onInit() async {
_prefs = await SharedPreferences.getInstance();
loadAlertConfiguration();
super.onInit();
}
void loadAlertConfiguration() {
final raw = _prefs.getString("alert_configuration");
if (raw == null) return;
configuration = List<AlertConfiguration>.from(jsonDecode(raw).map(
(x) => AlertConfiguration.fromJson(x),
));
}
Future<void> setAlertConfiguration(List<AlertConfiguration> value) async {
await _prefs.setString(
"alert_configuration",
jsonEncode(value.map((x) => x.toJson()).toList()),
);
loadAlertConfiguration();
}
void clearAlertConfiguration() {
_prefs.remove("alert_configuration");
}
}