@@ -15,8 +15,11 @@ import '../widgets/slider_with_text.dart';
15
15
16
16
class AddMealScreen extends StatefulWidget {
17
17
final DateTime _day;
18
- const AddMealScreen ({required DateTime day, Key ? key})
18
+ final Meal ? _meal;
19
+
20
+ const AddMealScreen ({required DateTime day, Meal ? meal, Key ? key})
19
21
: _day = day,
22
+ _meal = meal,
20
23
super (key: key);
21
24
22
25
@override
@@ -30,7 +33,7 @@ enum _TimeButtonEnum {
30
33
}
31
34
32
35
class _AddMealScreenState extends State <AddMealScreen > {
33
- double _hungerBeforeValue = 3 ;
36
+ double _hungerBeforeValue = 5 ;
34
37
double _hungerAfterValue = 3 ;
35
38
final ImagePicker _picker = ImagePicker ();
36
39
XFile ? _image;
@@ -39,6 +42,31 @@ class _AddMealScreenState extends State<AddMealScreen> {
39
42
TimeOfDay ? _startTime;
40
43
TimeOfDay ? _endTime;
41
44
final TextEditingController _nameTextController = TextEditingController ();
45
+ final TextEditingController _settingsController = TextEditingController ();
46
+ final TextEditingController _commentController = TextEditingController ();
47
+
48
+ @override
49
+ void initState () {
50
+ if (widget._meal != null ) {
51
+ _nameTextController.text = widget._meal! .title;
52
+
53
+ if (widget._meal! .setting != null ) {
54
+ _settingsController.text = widget._meal! .setting! ;
55
+ }
56
+
57
+ if (widget._meal! .comment != null ) {
58
+ _commentController.text = widget._meal! .comment! ;
59
+ }
60
+
61
+ _hungerBeforeValue = widget._meal! .hunger.toDouble ();
62
+ _hungerAfterValue = widget._meal! .satiety.toDouble ();
63
+
64
+ _startTime = TimeOfDay .fromDateTime (widget._meal! .startTime);
65
+ _endTime = TimeOfDay .fromDateTime (widget._meal! .endTime);
66
+ }
67
+
68
+ super .initState ();
69
+ }
42
70
43
71
Future <XFile ?> _takePicture () async {
44
72
final XFile ? image = await _picker.pickImage (source: ImageSource .camera);
@@ -54,6 +82,8 @@ class _AddMealScreenState extends State<AddMealScreen> {
54
82
Widget build (BuildContext context) {
55
83
return AddMeal (
56
84
nameTextController: _nameTextController,
85
+ settingsController: _settingsController,
86
+ commentController: _commentController,
57
87
hungerBeforeValue: _hungerBeforeValue,
58
88
hungerAfterValue: _hungerAfterValue,
59
89
onHungerAfterChanged: (value) => setState (() {
@@ -125,12 +155,28 @@ class _AddMealScreenState extends State<AddMealScreen> {
125
155
_endTime? .hour ?? 0 ,
126
156
_endTime? .minute ?? 0 ,
127
157
);
158
+ if (widget._meal == null ) {
159
+ AutoRouter .of (context).pop (Meal (
160
+ title: _nameTextController.text,
161
+ startTime: selectedStartDate,
162
+ endTime: selectedEndDate,
163
+ hunger: _hungerBeforeValue.toInt (),
164
+ satiety: _hungerAfterValue.toInt (),
165
+ setting: _settingsController.text,
166
+ comment: _commentController.text,
167
+ owner: context.read <AuthProvider >().userUid,
168
+ ));
169
+ return ;
170
+ }
128
171
AutoRouter .of (context).pop (Meal (
172
+ uid: widget._meal! .uid,
129
173
title: _nameTextController.text,
130
174
startTime: selectedStartDate,
131
175
endTime: selectedEndDate,
132
- hunger: 0 ,
133
- satiety: 0 ,
176
+ hunger: _hungerBeforeValue.toInt (),
177
+ satiety: _hungerAfterValue.toInt (),
178
+ setting: _settingsController.text,
179
+ comment: _commentController.text,
134
180
owner: context.read <AuthProvider >().userUid,
135
181
));
136
182
},
@@ -155,26 +201,30 @@ class AddMeal extends StatelessWidget {
155
201
final String ? _endTimeText;
156
202
final void Function ()? _onValidatePressed;
157
203
final TextEditingController ? _nameTextController;
204
+ final TextEditingController ? _settingsController;
205
+ final TextEditingController ? _commentController;
158
206
159
- const AddMeal ({
160
- Key ? key,
161
- required double hungerBeforeValue,
162
- required double hungerAfterValue,
163
- required void Function (double ) onHungerBeforeChanged,
164
- required void Function (double ) onHungerAfterChanged,
165
- required void Function () onCameraPressed,
166
- required void Function () onGalleryPressed,
167
- required void Function (TimeOfDay ) onTimeSelected,
168
- void Function ()? onStartTimeSelected,
169
- void Function ()? onEndTimeSelected,
170
- void Function ()? onTimeSelectCanceled,
171
- void Function ()? onValidatePressed,
172
- bool showTimePicker = false ,
173
- String ? startTimeText,
174
- String ? endTimeText,
175
- XFile ? image,
176
- TextEditingController ? nameTextController,
177
- }) : _hungerBeforeValue = hungerBeforeValue,
207
+ const AddMeal (
208
+ {Key ? key,
209
+ required double hungerBeforeValue,
210
+ required double hungerAfterValue,
211
+ required void Function (double ) onHungerBeforeChanged,
212
+ required void Function (double ) onHungerAfterChanged,
213
+ required void Function () onCameraPressed,
214
+ required void Function () onGalleryPressed,
215
+ required void Function (TimeOfDay ) onTimeSelected,
216
+ void Function ()? onStartTimeSelected,
217
+ void Function ()? onEndTimeSelected,
218
+ void Function ()? onTimeSelectCanceled,
219
+ void Function ()? onValidatePressed,
220
+ bool showTimePicker = false ,
221
+ String ? startTimeText,
222
+ String ? endTimeText,
223
+ XFile ? image,
224
+ TextEditingController ? nameTextController,
225
+ TextEditingController ? settingsController,
226
+ TextEditingController ? commentController})
227
+ : _hungerBeforeValue = hungerBeforeValue,
178
228
_hungerAfterValue = hungerAfterValue,
179
229
_onHungerAfterChanged = onHungerAfterChanged,
180
230
_onHungerBeforeChanged = onHungerBeforeChanged,
@@ -190,6 +240,8 @@ class AddMeal extends StatelessWidget {
190
240
_endTimeText = endTimeText,
191
241
_onValidatePressed = onValidatePressed,
192
242
_nameTextController = nameTextController,
243
+ _settingsController = settingsController,
244
+ _commentController = commentController,
193
245
super (key: key);
194
246
195
247
@override
@@ -207,6 +259,8 @@ class AddMeal extends StatelessWidget {
207
259
Expanded (
208
260
child: _ListView (
209
261
nameTextController: _nameTextController,
262
+ settingsController: _settingsController,
263
+ commentController: _commentController,
210
264
hungerAfterValue: _hungerAfterValue,
211
265
hungerBeforeValue: _hungerBeforeValue,
212
266
onHungerAfterChanged: _onHungerAfterChanged,
@@ -331,19 +385,23 @@ class _ListView extends StatelessWidget {
331
385
final String ? _startTimeText;
332
386
final String ? _endTimeText;
333
387
final TextEditingController ? _nameTextController;
388
+ final TextEditingController ? _settingsController;
389
+ final TextEditingController ? _commentController;
334
390
335
- const _ListView ({
336
- Key ? key,
337
- required double hungerBeforeValue,
338
- required double hungerAfterValue,
339
- required void Function (double ) onHungerBeforeChanged,
340
- required void Function (double ) onHungerAfterChanged,
341
- void Function ()? onStartTimePress,
342
- void Function ()? onEndTimePress,
343
- String ? startTimeText,
344
- String ? endTimeText,
345
- TextEditingController ? nameTextController,
346
- }) : _hungerBeforeValue = hungerBeforeValue,
391
+ const _ListView (
392
+ {Key ? key,
393
+ required double hungerBeforeValue,
394
+ required double hungerAfterValue,
395
+ required void Function (double ) onHungerBeforeChanged,
396
+ required void Function (double ) onHungerAfterChanged,
397
+ void Function ()? onStartTimePress,
398
+ void Function ()? onEndTimePress,
399
+ String ? startTimeText,
400
+ String ? endTimeText,
401
+ TextEditingController ? nameTextController,
402
+ TextEditingController ? settingsController,
403
+ TextEditingController ? commentController})
404
+ : _hungerBeforeValue = hungerBeforeValue,
347
405
_hungerAfterValue = hungerAfterValue,
348
406
_onHungerAfterChanged = onHungerAfterChanged,
349
407
_onHungerBeforeChanged = onHungerBeforeChanged,
@@ -352,6 +410,8 @@ class _ListView extends StatelessWidget {
352
410
_startTimeText = startTimeText,
353
411
_endTimeText = endTimeText,
354
412
_nameTextController = nameTextController,
413
+ _settingsController = settingsController,
414
+ _commentController = commentController,
355
415
super (key: key);
356
416
357
417
List <Widget > listViewContent (BuildContext context) => [
@@ -384,22 +444,36 @@ class _ListView extends StatelessWidget {
384
444
value: _hungerBeforeValue,
385
445
onChanged: _onHungerBeforeChanged,
386
446
labels: const [
387
- "encore faim" ,
388
- "inconfort" ,
389
- "léger inconfort" ,
390
- "confort"
447
+ "0 - not hungry" ,
448
+ "1" ,
449
+ "2" ,
450
+ "3" ,
451
+ "4" ,
452
+ "5 - really hungry"
391
453
]),
392
454
SliderWithText (
393
455
context: context,
394
456
text: "Rate your satiety after eating" ,
395
457
value: _hungerAfterValue,
396
458
onChanged: _onHungerAfterChanged,
397
459
labels: const [
398
- "encore faim " ,
399
- "inconfort " ,
400
- "léger inconfort " ,
401
- "confort "
460
+ "still hungry " ,
461
+ "discomfort " ,
462
+ "mild discomfort " ,
463
+ "comfort "
402
464
]),
465
+ MainTextField (
466
+ name: "Settings" ,
467
+ icon: const Icon (Icons .people_alt, color: Colors .black),
468
+ maxLines: null ,
469
+ controller: _settingsController,
470
+ ),
471
+ MainTextField (
472
+ name: "Comments" ,
473
+ icon: const Icon (Icons .comment, color: Colors .black),
474
+ maxLines: null ,
475
+ controller: _commentController,
476
+ ),
403
477
];
404
478
405
479
@override
0 commit comments