Skip to content

Commit 09504e0

Browse files
Elxas866simonoppowa
authored andcommitted
Fix negative weight
1 parent 6b4c8c6 commit 09504e0

File tree

3 files changed

+73
-59
lines changed

3 files changed

+73
-59
lines changed

.metadata

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
# This file tracks properties of this Flutter project.
22
# Used by Flutter tool to assess capabilities and perform upgrades etc.
33
#
4-
# This file should be version controlled.
4+
# This file should be version controlled and should not be manually edited.
55

66
version:
7-
revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
8-
channel: stable
7+
revision: "35c388afb57ef061d06a39b537336c87e0e3d1b1"
8+
channel: "[user-branch]"
99

1010
project_type: app
1111

1212
# Tracks metadata for the flutter migrate command
1313
migration:
1414
platforms:
1515
- platform: root
16-
create_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
17-
base_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
18-
- platform: android
19-
create_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
20-
base_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
21-
- platform: ios
22-
create_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
23-
base_revision: e3c29ec00c9c825c891d75054c63fcc46454dca1
16+
create_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1
17+
base_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1
18+
- platform: web
19+
create_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1
20+
base_revision: 35c388afb57ef061d06a39b537336c87e0e3d1b1
2421

2522
# User provided section
2623

lib/features/profile/presentation/widgets/set_weight_dialog.dart

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
22
import 'package:horizontal_picker/horizontal_picker.dart';
33
import 'package:opennutritracker/generated/l10n.dart';
44

5-
class SetWeightDialog extends StatelessWidget {
5+
class SetWeightDialog extends StatefulWidget {
66
static const weightRangeKg = 50.0;
77
static const weightRangeLbs = 100.0;
88

@@ -15,9 +15,29 @@ class SetWeightDialog extends StatelessWidget {
1515
required this.usesImperialUnits,
1616
});
1717

18+
@override
19+
State<SetWeightDialog> createState() => _SetWeightDialogState();
20+
}
21+
22+
class _SetWeightDialogState extends State<SetWeightDialog> {
23+
late double selectedWeight;
24+
25+
@override
26+
void initState() {
27+
super.initState();
28+
selectedWeight = widget.userWeight;
29+
}
30+
1831
@override
1932
Widget build(BuildContext context) {
20-
double selectedWeight = userWeight;
33+
final minValue = widget.usesImperialUnits
34+
? widget.userWeight - SetWeightDialog.weightRangeLbs
35+
: widget.userWeight - SetWeightDialog.weightRangeKg;
36+
37+
final maxValue = widget.usesImperialUnits
38+
? widget.userWeight + SetWeightDialog.weightRangeLbs
39+
: widget.userWeight + SetWeightDialog.weightRangeKg;
40+
2141
return AlertDialog(
2242
title: Text(S.of(context).selectWeightDialogLabel),
2343
content: Wrap(
@@ -27,19 +47,17 @@ class SetWeightDialog extends StatelessWidget {
2747
HorizontalPicker(
2848
height: 100,
2949
backgroundColor: Colors.transparent,
30-
minValue: usesImperialUnits
31-
? userWeight - weightRangeLbs
32-
: userWeight - weightRangeKg,
33-
maxValue: usesImperialUnits
34-
? userWeight + weightRangeLbs
35-
: userWeight + weightRangeKg,
50+
minValue: minValue < 0 ? 0 : minValue, // 👈 no negative minimum
51+
maxValue: maxValue,
3652
initialPosition: InitialPosition.center,
3753
divisions: 1000,
38-
suffix: usesImperialUnits
54+
suffix: widget.usesImperialUnits
3955
? S.of(context).lbsLabel
4056
: S.of(context).kgLabel,
4157
onChanged: (value) {
42-
selectedWeight = value;
58+
setState(() {
59+
selectedWeight = value < 0 ? 0 : value; // 👈 no negative values
60+
});
4361
},
4462
),
4563
],
@@ -55,7 +73,6 @@ class SetWeightDialog extends StatelessWidget {
5573
),
5674
TextButton(
5775
onPressed: () {
58-
// TODO validate selected weight
5976
Navigator.pop(context, selectedWeight);
6077
},
6178
child: Text(S.of(context).dialogOKLabel),

pubspec.lock

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ packages:
8282
dependency: transitive
8383
description:
8484
name: async
85-
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
85+
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
8686
url: "https://pub.dev"
8787
source: hosted
88-
version: "2.11.0"
88+
version: "2.12.0"
8989
auto_size_text:
9090
dependency: "direct main"
9191
description:
@@ -106,10 +106,10 @@ packages:
106106
dependency: transitive
107107
description:
108108
name: boolean_selector
109-
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
109+
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
110110
url: "https://pub.dev"
111111
source: hosted
112-
version: "2.1.1"
112+
version: "2.1.2"
113113
build:
114114
dependency: transitive
115115
description:
@@ -202,10 +202,10 @@ packages:
202202
dependency: transitive
203203
description:
204204
name: characters
205-
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
205+
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
206206
url: "https://pub.dev"
207207
source: hosted
208-
version: "1.3.0"
208+
version: "1.4.0"
209209
checked_yaml:
210210
dependency: transitive
211211
description:
@@ -226,10 +226,10 @@ packages:
226226
dependency: transitive
227227
description:
228228
name: clock
229-
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
229+
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
230230
url: "https://pub.dev"
231231
source: hosted
232-
version: "1.1.1"
232+
version: "1.1.2"
233233
code_builder:
234234
dependency: transitive
235235
description:
@@ -242,10 +242,10 @@ packages:
242242
dependency: "direct main"
243243
description:
244244
name: collection
245-
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
245+
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
246246
url: "https://pub.dev"
247247
source: hosted
248-
version: "1.19.0"
248+
version: "1.19.1"
249249
convert:
250250
dependency: transitive
251251
description:
@@ -322,10 +322,10 @@ packages:
322322
dependency: transitive
323323
description:
324324
name: fake_async
325-
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
325+
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
326326
url: "https://pub.dev"
327327
source: hosted
328-
version: "1.3.1"
328+
version: "1.3.2"
329329
ffi:
330330
dependency: transitive
331331
description:
@@ -710,18 +710,18 @@ packages:
710710
dependency: transitive
711711
description:
712712
name: leak_tracker
713-
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
713+
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
714714
url: "https://pub.dev"
715715
source: hosted
716-
version: "10.0.7"
716+
version: "10.0.8"
717717
leak_tracker_flutter_testing:
718718
dependency: transitive
719719
description:
720720
name: leak_tracker_flutter_testing
721-
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
721+
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
722722
url: "https://pub.dev"
723723
source: hosted
724-
version: "3.0.8"
724+
version: "3.0.9"
725725
leak_tracker_testing:
726726
dependency: transitive
727727
description:
@@ -758,10 +758,10 @@ packages:
758758
dependency: transitive
759759
description:
760760
name: matcher
761-
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
761+
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
762762
url: "https://pub.dev"
763763
source: hosted
764-
version: "0.12.16+1"
764+
version: "0.12.17"
765765
material_color_utilities:
766766
dependency: transitive
767767
description:
@@ -774,10 +774,10 @@ packages:
774774
dependency: transitive
775775
description:
776776
name: meta
777-
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
777+
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
778778
url: "https://pub.dev"
779779
source: hosted
780-
version: "1.15.0"
780+
version: "1.16.0"
781781
mime:
782782
dependency: transitive
783783
description:
@@ -846,10 +846,10 @@ packages:
846846
dependency: transitive
847847
description:
848848
name: path
849-
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
849+
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
850850
url: "https://pub.dev"
851851
source: hosted
852-
version: "1.9.0"
852+
version: "1.9.1"
853853
path_parsing:
854854
dependency: transitive
855855
description:
@@ -1139,10 +1139,10 @@ packages:
11391139
dependency: transitive
11401140
description:
11411141
name: source_span
1142-
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
1142+
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
11431143
url: "https://pub.dev"
11441144
source: hosted
1145-
version: "1.10.0"
1145+
version: "1.10.1"
11461146
sprintf:
11471147
dependency: transitive
11481148
description:
@@ -1195,10 +1195,10 @@ packages:
11951195
dependency: transitive
11961196
description:
11971197
name: stack_trace
1198-
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
1198+
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
11991199
url: "https://pub.dev"
12001200
source: hosted
1201-
version: "1.12.0"
1201+
version: "1.12.1"
12021202
storage_client:
12031203
dependency: transitive
12041204
description:
@@ -1211,10 +1211,10 @@ packages:
12111211
dependency: transitive
12121212
description:
12131213
name: stream_channel
1214-
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
1214+
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
12151215
url: "https://pub.dev"
12161216
source: hosted
1217-
version: "2.1.2"
1217+
version: "2.1.4"
12181218
stream_transform:
12191219
dependency: transitive
12201220
description:
@@ -1227,10 +1227,10 @@ packages:
12271227
dependency: transitive
12281228
description:
12291229
name: string_scanner
1230-
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
1230+
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
12311231
url: "https://pub.dev"
12321232
source: hosted
1233-
version: "1.3.0"
1233+
version: "1.4.1"
12341234
supabase:
12351235
dependency: transitive
12361236
description:
@@ -1267,18 +1267,18 @@ packages:
12671267
dependency: transitive
12681268
description:
12691269
name: term_glyph
1270-
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
1270+
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
12711271
url: "https://pub.dev"
12721272
source: hosted
1273-
version: "1.2.1"
1273+
version: "1.2.2"
12741274
test_api:
12751275
dependency: transitive
12761276
description:
12771277
name: test_api
1278-
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
1278+
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
12791279
url: "https://pub.dev"
12801280
source: hosted
1281-
version: "0.7.3"
1281+
version: "0.7.4"
12821282
timing:
12831283
dependency: transitive
12841284
description:
@@ -1403,10 +1403,10 @@ packages:
14031403
dependency: transitive
14041404
description:
14051405
name: vm_service
1406-
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
1406+
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
14071407
url: "https://pub.dev"
14081408
source: hosted
1409-
version: "14.3.0"
1409+
version: "14.3.1"
14101410
watcher:
14111411
dependency: transitive
14121412
description:
@@ -1480,5 +1480,5 @@ packages:
14801480
source: hosted
14811481
version: "2.0.3"
14821482
sdks:
1483-
dart: ">=3.6.0 <4.0.0"
1483+
dart: ">=3.7.0-0 <4.0.0"
14841484
flutter: ">=3.27.0"

0 commit comments

Comments
 (0)