configRead function
Load and decode all tasks to a device's sdcard.
Implementation
Future<Queue<Task>> configRead(
int tasksMax, Function removeTask, Function saveConfig) async {
final preferences = await SharedPreferences.getInstance();
final encodedTasks = preferences.getStringList('_encodedTasks') ?? [];
Map<String, dynamic> decoded = {};
Queue<Task> tasks = Queue();
for (String encoded in encodedTasks) {
if (tasks.length < tasksMax) {
final now = DateTime.now();
try {
decoded = json.decode(encoded);
} on FormatException {
continue;
}
tasks.add(
Task(
creationTimestamp:
DateTime.tryParse(decoded['creationTimestamp']) ?? now,
lastModified: DateTime.tryParse(decoded['lastModified']) ?? now,
removeTask: removeTask,
saveConfig: saveConfig,
titleController: TextEditingController(
text: decoded['title'],
),
descriptionController: TextEditingController(
text: decoded['description'],
),
),
);
}
}
return tasks;
}