created controller for alarms
This commit is contained in:
@@ -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<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));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user