This commit is contained in:
Hillel Coren 2018-12-25 10:28:51 +02:00
parent c56b32cc9e
commit cbc993385b
3 changed files with 26 additions and 21 deletions

View File

@ -55,7 +55,10 @@ class TaskFields {
abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> { abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
factory TaskTime({DateTime startDate, DateTime endDate}) { factory TaskTime({DateTime startDate, DateTime endDate}) {
return _$TaskTime._( return _$TaskTime._(
startDate: startDate ?? DateTime.now().toUtc(), startDate: startDate ??
DateTime.fromMillisecondsSinceEpoch(
(DateTime.now().millisecondsSinceEpoch / 1000).floor() * 1000,
isUtc: true),
endDate: endDate, endDate: endDate,
); );
} }

View File

@ -47,7 +47,7 @@ class _TaskEditTimesState extends State<TaskEditTimes> {
final viewModel = widget.viewModel; final viewModel = widget.viewModel;
final task = viewModel.task; final task = viewModel.task;
final taskTime = final taskTime =
task.taskTimes.contains(viewModel.taskTime) ? viewModel.taskTime : null; task.taskTimes.contains(viewModel.taskTime) ? viewModel.taskTime : null;
if (taskTime != null && taskTime != selectedTaskTime) { if (taskTime != null && taskTime != selectedTaskTime) {
selectedTaskTime = taskTime; selectedTaskTime = taskTime;
@ -71,12 +71,11 @@ class _TaskEditTimesState extends State<TaskEditTimes> {
final taskTimes = task.taskTimes final taskTimes = task.taskTimes
.toList() .toList()
.reversed .reversed
.map<Widget>((taskTime) => .map<Widget>((taskTime) => TaskTimeListTile(
TaskTimeListTile( task: task,
task: task, taskTime: taskTime,
taskTime: taskTime, onTap: (context) => _showTaskTimeEditor(taskTime, context),
onTap: (context) => _showTaskTimeEditor(taskTime, context), ));
));
return ListView( return ListView(
children: taskTimes.toList(), children: taskTimes.toList(),
@ -126,8 +125,7 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
return Padding( return Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
bottom: MediaQuery bottom: MediaQuery.of(context)
.of(context)
.viewInsets .viewInsets
.bottom, // stay clear of the keyboard .bottom, // stay clear of the keyboard
), ),
@ -157,17 +155,17 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
final date = DateTime.parse(_date); final date = DateTime.parse(_date);
final taskTime = TaskTime( final taskTime = TaskTime(
startDate: DateTime( startDate: DateTime(
date.year, date.year,
date.month, date.month,
date.day, date.day,
_startTime.hour, _startTime.hour,
_startTime.minute, _startTime.minute,
widget.taskTime.startDate.second) widget.taskTime.startDate.second)
.toUtc(), .toUtc(),
endDate: _endTime != null endDate: _endTime != null
? DateTime(date.year, date.month, date.day, ? DateTime(date.year, date.month, date.day,
_endTime.hour, _endTime.minute) _endTime.hour, _endTime.minute)
.toUtc() .toUtc()
: null, : null,
); );
widget.viewModel widget.viewModel
@ -193,8 +191,8 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
labelText: localization.endTime, labelText: localization.endTime,
timeOfDay: widget.taskTime.endDate != null timeOfDay: widget.taskTime.endDate != null
? TimeOfDay( ? TimeOfDay(
hour: widget.taskTime.endDate.hour, hour: widget.taskTime.endDate.hour,
minute: widget.taskTime.endDate.minute) minute: widget.taskTime.endDate.minute)
: null, : null,
onSelected: (timeOfDay) => _endTime = timeOfDay, onSelected: (timeOfDay) => _endTime = timeOfDay,
), ),

View File

@ -63,7 +63,11 @@ class TaskEditVM {
store.dispatch(UpdateCurrentRoute(TaskScreen.route)); 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) { onSavePressed: (BuildContext context) {
final Completer<TaskEntity> completer = new Completer<TaskEntity>(); final Completer<TaskEntity> completer = new Completer<TaskEntity>();
store.dispatch(SaveTaskRequest(completer: completer, task: task)); store.dispatch(SaveTaskRequest(completer: completer, task: task));