refactored storage system that controller handles logic checks
This commit is contained in:
@@ -25,16 +25,31 @@ class TaskController extends ChangeNotifier {
|
||||
Future<void> reorderTask(int oldIndex, int newIndex) async {
|
||||
final taskId = _taskOrder.removeAt(oldIndex);
|
||||
_taskOrder.insert(newIndex, taskId);
|
||||
_repository.saveTaskOrder(_taskOrder);
|
||||
_repository.updateTaskOrder(_taskOrder);
|
||||
}
|
||||
|
||||
Future<void> saveTask(Task task) async {
|
||||
await _repository.saveTask(task);
|
||||
await _loadTasks();
|
||||
await _loadTaskOrder();
|
||||
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));
|
||||
|
||||
Reference in New Issue
Block a user