-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathToDo.dart
62 lines (52 loc) · 1.92 KB
/
ToDo.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// ignore_for_file: file_names
import 'package:flutter/material.dart';
import 'package:todo_app/modal/myToDo.dart';
// --------------------------- Add ToDo content using Provider -----------------
class ToDoProvider extends ChangeNotifier {
final List<MyToDo> _todos = [
MyToDo(createdTime: DateTime.now(), title: 'Walk A Dog'),
MyToDo(createdTime: DateTime.now(), title: 'Plan Jacobs Birthday Party'),
MyToDo(
createdTime: DateTime.now(),
title: 'Plan Jacobs Birthday Party',
description: '''- Eggs
- Milk
- Bread
- Water
'''),
MyToDo(
createdTime: DateTime.now(),
title: 'plan A family trip to Norway',
description: '''- Rent a Car
- Pack Suitcase
'''),
];
// ----------------------- List of ToDos to be Completed ----------------------
List<MyToDo> get todos =>
_todos.where((todo) => todo.isDone == false).toList();
// ------------------------ List of Completed ToDos ----------------------------
List<MyToDo> get todosCompleted =>
_todos.where((todo) => todo.isDone == true).toList();
//------------------- Function to Add ToDos ------------------------------------
void addTodo(MyToDo todo) {
_todos.add(todo);
notifyListeners();
}
// ------------------------ Function to Remover ToDos --------------------------
void removeTodo(MyToDo todo) {
_todos.remove(todo);
notifyListeners();
}
// -------------------------- Function to Toggle between ToDo Tabs -------------
bool toggleToDoStatus(MyToDo todo) {
todo.isDone = !todo.isDone;
notifyListeners();
return todo.isDone;
}
// ------------------------- Function to Update ToDos -------------------------
void updateToDo(MyToDo todo, String title, String description) {
todo.title = title;
todo.description = description;
notifyListeners();
}
}