duePickerAction method
Future<void>
duePickerAction( - dynamic context,
- dynamic task
)
Implementation
Future<void> duePickerAction(BuildContext context, Task task) async {
final newDue = await showDuePicker(
context: context,
initialDate: task.dueDate() != null
? DateTime.parse(task.dueDate()!)
: DateTime.now(),
);
if (!context.mounted) return;
if (newDue == null) return;
EasyLoading.show(status: L10n.of(context).updatingDue);
try {
final updater = task.updateBuilder();
updater.dueDate(newDue.due.year, newDue.due.month, newDue.due.day);
if (newDue.includeTime) {
final seconds = newDue.due.hour * 60 * 60 +
newDue.due.minute * 60 +
newDue.due.second;
// adapt the timezone value
updater.utcDueTimeOfDay(seconds + newDue.due.timeZoneOffset.inSeconds);
} else if (task.utcDueTimeOfDay() != null) {
// we have one, we need to reset it
updater.unsetUtcDueTimeOfDay();
}
await updater.send();
if (!context.mounted) {
EasyLoading.dismiss();
return;
}
EasyLoading.showToast(L10n.of(context).dueSuccess);
} catch (e, s) {
_log.severe('Failed to change due date of task', e, s);
if (!context.mounted) {
EasyLoading.dismiss();
return;
}
EasyLoading.showError(
L10n.of(context).updatingDueFailed(e),
duration: const Duration(seconds: 3),
);
}
}