diff --git a/lib/data/models/task_model.dart b/lib/data/models/task_model.dart index 2702f6a41..591e21fbc 100644 --- a/lib/data/models/task_model.dart +++ b/lib/data/models/task_model.dart @@ -138,6 +138,10 @@ abstract class TaskEntity extends Object int get duration; + bool get areTimesValid { + final times = taskTimes; + } + List get taskTimes { final List details = []; @@ -158,6 +162,8 @@ abstract class TaskEntity extends Object details.add(taskTime); }); + details.sort((timeA, timeB) => timeA.startDate.compareTo(timeB.startDate)); + return details; } diff --git a/lib/ui/task/edit/task_edit_times.dart b/lib/ui/task/edit/task_edit_times.dart index 7d3d10ef2..1dabb4d11 100644 --- a/lib/ui/task/edit/task_edit_times.dart +++ b/lib/ui/task/edit/task_edit_times.dart @@ -199,8 +199,9 @@ class TimeEditDetailsState extends State { selectedDate: _startDate, onSelected: (timeOfDay) { _startDate = timeOfDay; - _durationController.text = - formatDuration(_endDate.difference(_startDate)); + _durationController.text = _endDate != null + ? formatDuration(_endDate.difference(_startDate)) + : ''; }, ), TimePicker( @@ -209,8 +210,9 @@ class TimeEditDetailsState extends State { selectedDate: _endDate, onSelected: (timeOfDay) { _endDate = timeOfDay; - _durationController.text = - formatDuration(_endDate.difference(_startDate)); + _durationController.text = _endDate != null + ? formatDuration(_endDate.difference(_startDate)) + : ''; }, ), PopupMenuButton( diff --git a/lib/ui/task/edit/task_edit_vm.dart b/lib/ui/task/edit/task_edit_vm.dart index cbf9540c8..390dba0d1 100644 --- a/lib/ui/task/edit/task_edit_vm.dart +++ b/lib/ui/task/edit/task_edit_vm.dart @@ -69,6 +69,8 @@ class TaskEditVM { store.dispatch(EditTaskTime(taskTime)); }, onSavePressed: (BuildContext context) { + + final Completer completer = new Completer(); store.dispatch(SaveTaskRequest(completer: completer, task: task)); return completer.future.then((savedTask) {