|
Future<void> _showDialog() async {
_freeTime.clear();
final List<Appointment> visibleAppointments =
_events.getVisibleAppointments(_controller.displayDate!, '');
final List<int> eventsSlotHour = <int>[];
for (int i = 0; i < visibleAppointments.length; i++) {
final Appointment app = visibleAppointments[i];
for (int i = app.startTime.hour; i <= app.endTime.hour; i++) {
eventsSlotHour.add(i);
}
}
for (int i = _startHour.toInt(); i <= _endHour.toInt(); i++) {
if (!eventsSlotHour.contains(i)) {
final DateTime freeTime = DateTime(_controller.displayDate!.year,
_controller.displayDate!.month, _controller.displayDate!.day, i);
_freeTime.add(freeTime);
}
}
await showDialog<Widget>(
builder: (BuildContext context) => AlertDialog(
title: Container(
child: Text('Visible dates contains ' +
_freeTime.length.toString() +
'slots'),
),
contentPadding: const EdgeInsets.all(16.0),
content: ListView.builder(
itemCount: _freeTime.length,
itemBuilder: (BuildContext context, int index) {
return Container(
color: Colors.greenAccent,
child: Text(_freeTime.toString()));
}),
actions: <Widget>[
TextButton(
child: const Text('OK'),
onPressed: () {
Navigator.pop(context);
})
],
),
context: context,
);
} |
this code give me wrong
free slots DateTime.
the apointments between 00:00 - 10:00 and 12:00 - 24:00
and the results is ...