moved controllers to folder

This commit is contained in:
2026-06-18 23:19:44 +02:00
parent 2b718b5bd8
commit 5a39148577
3 changed files with 6 additions and 6 deletions
@@ -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));
}
}
@@ -0,0 +1,33 @@
import 'package:flutter/material.dart';
import '../../model/location.dart';
import '../../model/repositories/interfaces/location_repository.dart';
class LocationController extends ChangeNotifier {
LocationController(LocationRepository repository) : _repository = repository {
_loadLocations();
}
final LocationRepository _repository;
final List<Location> _locations = [];
Future<void> addLocation(Location location) {
_locations.add(location);
notifyListeners();
return _repository.createLocation(location);
}
Future<void> deleteLocation(Location location) {
_locations.remove(location);
notifyListeners();
return _repository.deleteLocation(location);
}
Future<void> _loadLocations() {
_locations.clear();
return _repository.loadLocations().then(
(value) => _locations.addAll(value),
);
}
}
@@ -0,0 +1,64 @@
import 'package:flutter/material.dart' show ChangeNotifier;
import '../../model/repositories/interfaces/task_repository.dart';
import '../../model/task.dart';
class TaskController extends ChangeNotifier {
TaskController(TaskRepository repository) : _repository = repository {
Future.wait([
_loadTaskOrder(),
_loadTasks(),
]).whenComplete(() => notifyListeners());
}
final TaskRepository _repository;
final List<Task> _tasks = [];
final List<String> _taskOrder = [];
List<Task> get orderedTasks {
final lookup = {for (final task in _tasks) task.id: task};
return _taskOrder.map((id) => lookup[id]!).toList();
}
Future<void> reorderTask(int oldIndex, int newIndex) async {
final taskId = _taskOrder.removeAt(oldIndex);
_taskOrder.insert(newIndex, taskId);
_repository.updateTaskOrder(_taskOrder);
}
Future<void> saveTask(Task task) async {
if (_tasks.contains(task)) {
_tasks.remove(task);
_tasks.add(task);
_repository.updateTask(task);
} else {
_tasks.add(task);
_taskOrder.add(task.id);
_repository.createTask(task);
_repository.updateTaskOrder(_taskOrder);
}
notifyListeners();
}
Future<void> deleteTask(Task task) async {
_tasks.remove(task);
_taskOrder.remove(task.id);
notifyListeners();
_repository.deleteTask(task);
_repository.updateTaskOrder(_taskOrder);
}
Future<void> _loadTasks() async {
_tasks.clear();
return _repository.loadTasks().then((value) => _tasks.addAll(value));
}
Future<void> _loadTaskOrder() async {
_taskOrder.clear();
return _repository.loadTaskOrder().then(
(value) => _taskOrder.addAll(value),
);
}
}