diff --git a/lib/service/alarm_controller.dart b/lib/service/alarm_controller.dart new file mode 100644 index 0000000..641b613 --- /dev/null +++ b/lib/service/alarm_controller.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +import '../model/alarm.dart'; +import '../model/repositories/interfaces/alarm_repository.dart'; + +class AlarmController extends ChangeNotifier { + AlarmController(AlarmRepository repository) : _repository = repository { + _loadAlarms(); + } + + final AlarmRepository _repository; + + final List _alarms = []; + + Future addAlarm(Alarm alarm) { + _alarms.add(alarm); + notifyListeners(); + return _repository.createAlarm(alarm); + } + + Future deleteAlarm(Alarm alarm) { + _alarms.remove(alarm); + notifyListeners(); + return _repository.deleteAlarm(alarm); + } + + Future _loadAlarms() { + _alarms.clear(); + return _repository.loadAlarms().then((value) => _alarms.addAll(value)); + } +}