configRead function

Future<Queue<Task>> configRead (int tasksMax, Function removeTask Function saveConfig)

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;
}