This commit is contained in:
Hillel Coren 2018-12-20 23:04:59 +02:00
parent 15b9e6ef01
commit f1e846dfb4
5 changed files with 20 additions and 13 deletions

View File

@ -132,8 +132,7 @@ abstract class TaskEntity extends Object
final taskTime = TaskTime(
startDate: convertTimestampToDate(startDate),
endDate:
endDate > 0 ? convertTimestampToDate(endDate) : DateTime.now());
endDate: endDate > 0 ? convertTimestampToDate(endDate) : null);
details.add(taskTime);
});

View File

@ -40,16 +40,17 @@ class _TimePickerState extends State<TimePicker> {
DateTime _convertToDate(TimeOfDay timeOfDay) {
final now = new DateTime.now();
final date = DateTime(
now.year, now.month, now.day, timeOfDay.hour, timeOfDay.minute);
final date = DateTime(now.year, now.month, now.day, timeOfDay?.hour ?? 0,
timeOfDay?.minute ?? 0);
return date;
}
void _showDatePicker() async {
final selectedDate = widget.timeOfDay;
final hour = selectedDate.hour;
final minute = selectedDate.minute;
final hour = selectedDate?.hour ?? 0;
final minute = selectedDate?.minute ?? 0;
final TimeOfDay selectedTime = await showTimePicker(
context: context, initialTime: TimeOfDay(hour: hour, minute: minute));

View File

@ -108,9 +108,11 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
_startTime = TimeOfDay(
hour: widget.taskTime.startDate.hour,
minute: widget.taskTime.startDate.minute);
_endTime = TimeOfDay(
hour: widget.taskTime.endDate.hour,
minute: widget.taskTime.endDate.minute);
if (widget.taskTime.endDate != null) {
_endTime = TimeOfDay(
hour: widget.taskTime.endDate.hour,
minute: widget.taskTime.endDate.minute);
}
super.didChangeDependencies();
}
@ -196,9 +198,9 @@ class TimeEditDetailsState extends State<TimeEditDetails> {
),
TimePicker(
labelText: localization.endTime,
timeOfDay: TimeOfDay(
timeOfDay: widget.taskTime.endDate != null ? TimeOfDay(
hour: widget.taskTime.endDate.hour,
minute: widget.taskTime.endDate.minute),
minute: widget.taskTime.endDate.minute) : null,
onSelected: (timeOfDay) => _endTime = timeOfDay,
),
],

View File

@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/redux/company/company_selectors.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/data/models/task_model.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class TaskItemListTile extends StatelessWidget {
const TaskItemListTile({
@ -22,9 +23,9 @@ class TaskItemListTile extends StatelessWidget {
final startDateString = formatDate(
taskItem.startDate.toIso8601String(), context,
showTime: true, showDate: false);
final endDateString = formatDate(
final endDateString = taskItem.endDate != null ? formatDate(
taskItem.endDate.toIso8601String(), context,
showTime: true, showDate: false);
showTime: true, showDate: false) : AppLocalization.of(context).now;
final state = StoreProvider.of<AppState>(context).state;
final title = DateFormat('EEE MMM d, yyy', localeSelector(state))

View File

@ -20,6 +20,7 @@ class AppLocalization {
static final Map<String, Map<String, String>> _localizedValues = {
'en': {
'now': 'Now',
'auto_start_tasks': 'Auto Start Tasks',
'timer': 'Timer',
'manual': 'Manual',
@ -10689,6 +10690,9 @@ class AppLocalization {
String get autoStartTasks =>
_localizedValues[locale.toString()]['auto_start_tasks'];
String get now =>
_localizedValues[locale.toString()]['now'];