diff --git a/lib/data/models/task_model.dart b/lib/data/models/task_model.dart index 5ca2ab084..2702f6a41 100644 --- a/lib/data/models/task_model.dart +++ b/lib/data/models/task_model.dart @@ -55,7 +55,10 @@ class TaskFields { abstract class TaskTime implements Built { factory TaskTime({DateTime startDate, DateTime endDate}) { return _$TaskTime._( - startDate: startDate ?? DateTime.now().toUtc(), + startDate: startDate ?? + DateTime.fromMillisecondsSinceEpoch( + (DateTime.now().millisecondsSinceEpoch / 1000).floor() * 1000, + isUtc: true), endDate: endDate, ); } diff --git a/lib/ui/task/edit/task_edit_times.dart b/lib/ui/task/edit/task_edit_times.dart index 2ab7c1361..e0d768d09 100644 --- a/lib/ui/task/edit/task_edit_times.dart +++ b/lib/ui/task/edit/task_edit_times.dart @@ -47,7 +47,7 @@ class _TaskEditTimesState extends State { final viewModel = widget.viewModel; final task = viewModel.task; final taskTime = - task.taskTimes.contains(viewModel.taskTime) ? viewModel.taskTime : null; + task.taskTimes.contains(viewModel.taskTime) ? viewModel.taskTime : null; if (taskTime != null && taskTime != selectedTaskTime) { selectedTaskTime = taskTime; @@ -71,12 +71,11 @@ class _TaskEditTimesState extends State { final taskTimes = task.taskTimes .toList() .reversed - .map((taskTime) => - TaskTimeListTile( - task: task, - taskTime: taskTime, - onTap: (context) => _showTaskTimeEditor(taskTime, context), - )); + .map((taskTime) => TaskTimeListTile( + task: task, + taskTime: taskTime, + onTap: (context) => _showTaskTimeEditor(taskTime, context), + )); return ListView( children: taskTimes.toList(), @@ -126,8 +125,7 @@ class TimeEditDetailsState extends State { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery - .of(context) + bottom: MediaQuery.of(context) .viewInsets .bottom, // stay clear of the keyboard ), @@ -157,17 +155,17 @@ class TimeEditDetailsState extends State { final date = DateTime.parse(_date); final taskTime = TaskTime( startDate: DateTime( - date.year, - date.month, - date.day, - _startTime.hour, - _startTime.minute, - widget.taskTime.startDate.second) + date.year, + date.month, + date.day, + _startTime.hour, + _startTime.minute, + widget.taskTime.startDate.second) .toUtc(), endDate: _endTime != null ? DateTime(date.year, date.month, date.day, - _endTime.hour, _endTime.minute) - .toUtc() + _endTime.hour, _endTime.minute) + .toUtc() : null, ); widget.viewModel @@ -193,8 +191,8 @@ class TimeEditDetailsState extends State { labelText: localization.endTime, timeOfDay: widget.taskTime.endDate != null ? TimeOfDay( - hour: widget.taskTime.endDate.hour, - minute: widget.taskTime.endDate.minute) + hour: widget.taskTime.endDate.hour, + minute: widget.taskTime.endDate.minute) : null, onSelected: (timeOfDay) => _endTime = timeOfDay, ), diff --git a/lib/ui/task/edit/task_edit_vm.dart b/lib/ui/task/edit/task_edit_vm.dart index d4465abc3..cbf9540c8 100644 --- a/lib/ui/task/edit/task_edit_vm.dart +++ b/lib/ui/task/edit/task_edit_vm.dart @@ -63,7 +63,11 @@ class TaskEditVM { store.dispatch(UpdateCurrentRoute(TaskScreen.route)); } }, - onAddTimePressed: () => store.dispatch(AddTaskTime(TaskTime())), + onAddTimePressed: () { + final taskTime = TaskTime(); + store.dispatch(AddTaskTime(taskTime)); + store.dispatch(EditTaskTime(taskTime)); + }, onSavePressed: (BuildContext context) { final Completer completer = new Completer(); store.dispatch(SaveTaskRequest(completer: completer, task: task));