32 lines
764 B
Dart
32 lines
764 B
Dart
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<Alarm> _alarms = [];
|
|
|
|
Future<void> addAlarm(Alarm alarm) {
|
|
_alarms.add(alarm);
|
|
notifyListeners();
|
|
return _repository.createAlarm(alarm);
|
|
}
|
|
|
|
Future<void> deleteAlarm(Alarm alarm) {
|
|
_alarms.remove(alarm);
|
|
notifyListeners();
|
|
return _repository.deleteAlarm(alarm);
|
|
}
|
|
|
|
Future<void> _loadAlarms() {
|
|
_alarms.clear();
|
|
return _repository.loadAlarms().then((value) => _alarms.addAll(value));
|
|
}
|
|
}
|