Commit 1dd48ff

derdilla <derdilla06@gmail.com>
2023-07-13 16:23:47
fix edge case that could lead to app freeze during load
1 parent 71a8299
Changed files (2)
lib/components/measurement_graph.dart
@@ -83,16 +83,14 @@ class _LineChartState extends State<_LineChart> {
                                   interval: _lineChartTitleIntervall,
                                   getTitlesWidget: (double pos, TitleMeta meta) {
                                     // calculate new intervall
+                                    // as graphWidth can technically be as low as one max is needed here to avoid freezes
                                     double graphWidth = meta.max - meta.min;
-                                    assert(graphWidth > 0);
-                                    if (((graphWidth - 2) / settings.graphTitlesCount) !=
-                                        _lineChartTitleIntervall) {
+                                    if ((max(graphWidth - 2,1) / settings.graphTitlesCount) != _lineChartTitleIntervall) {
                                       // simple hack needed to change the state during build
                                       // https://stackoverflow.com/a/63607696/21489239
                                       Future.delayed(Duration.zero, () async {
                                         setState(() {
-                                          _lineChartTitleIntervall =
-                                              (graphWidth - 2) / settings.graphTitlesCount;
+                                          _lineChartTitleIntervall = max(graphWidth - 2,1) / settings.graphTitlesCount;
                                         });
                                       });
                                     }
lib/screens/add_measurement.dart
@@ -191,7 +191,6 @@ class _AddMeasurementPageState extends State<AddMeasurementPage> {
                                   }
                                   navigator.pop();
                                 }
-                                print(_systolic);
                               },
                               style: ElevatedButton.styleFrom(backgroundColor: Theme.of(context).primaryColor),
                               child: Text(AppLocalizations.of(context)!.btnSave))
@@ -240,7 +239,7 @@ class ValueInput extends StatelessWidget {
               return AppLocalizations.of(context)?.errNaN;
             } else if (settings.validateInputs && (int.tryParse(value) ?? -1) <= 30) {
               return AppLocalizations.of(context)?.errLt30;
-            } else if (settings.validateInputs && (int.tryParse(value??'')??0) >= 400) {
+            } else if (settings.validateInputs && (int.tryParse(value)??0) >= 400) {
               // https://pubmed.ncbi.nlm.nih.gov/7741618/
               return AppLocalizations.of(context)?.errUnrealistic;
             }