Commit bdf064a

derdilla <derdilla06@gmail.com>
2023-09-03 12:50:36
add support for using old list design
1 parent 94cc87f
lib/components/measurement_list.dart → lib/components/legacy_measurement_list.dart
@@ -9,11 +9,11 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:intl/intl.dart';
 import 'package:provider/provider.dart';
 
-class MeasurementList extends StatelessWidget {
+class LegacyMeasurementsList extends StatelessWidget {
   late final List<int> _tableElementsSizes;
   late final int _sideFlex;
 
-  MeasurementList(BuildContext context, {super.key}) {
+  LegacyMeasurementsList(BuildContext context, {super.key}) {
     if (MediaQuery.of(context).size.width < 1000) {
       _tableElementsSizes = [33, 9, 9, 9, 30];
       _sideFlex = 1;
lib/l10n/app_en.arb
@@ -417,5 +417,7 @@
   "customGraphMarkings": "Custom markings",
   "@customGraphMarkings": {},
   "addLine": "Add line",
-  "@addLine": {}
+  "@addLine": {},
+  "useLegacyList": "Use legacy list",
+  "@useLegacyList": {}
 }
lib/model/ram_only_implementations.dart
@@ -531,6 +531,19 @@ class RamSettings extends ChangeNotifier implements Settings {
     notifyListeners();
   }
 
+  bool _useLegacyList = false;
+
+  @override
+  bool get useLegacyList {
+    return _useLegacyList;
+  }
+
+  @override
+  set useLegacyList(bool value) {
+    _useLegacyList = value;
+    notifyListeners();
+  }
+
   @override
   void changeStepSize(TimeStep value) {
     graphStepSize = value;
lib/model/settings_store.dart
@@ -627,6 +627,15 @@ class Settings extends ChangeNotifier {
     _prefs.setStringList('horizontalGraphLines', value.map((e) => jsonEncode(e)).toList());
     notifyListeners();
   }
+
+  bool get useLegacyList {
+    return _prefs.getBool('useLegacyList') ?? false;
+  }
+
+  set useLegacyList(bool value) {
+    _prefs.setBool('useLegacyList', value);
+    notifyListeners();
+  }
 }
 
 enum TimeStep {
lib/screens/home.dart
@@ -1,4 +1,5 @@
 import 'package:blood_pressure_app/components/consistent_future_builder.dart';
+import 'package:blood_pressure_app/components/legacy_measurement_list.dart';
 import 'package:blood_pressure_app/components/measurement_graph.dart';
 import 'package:blood_pressure_app/model/blood_pressure.dart';
 import 'package:blood_pressure_app/model/settings_store.dart';
@@ -47,29 +48,35 @@ class AppHome extends StatelessWidget {
         return Center(
           child: Container(
             padding: padding,
-            child: Column(children: [
-              const MeasurementGraph(),
-              ModernListHeader(),
-              Expanded(
-                flex: 50,
-                child: Consumer<BloodPressureModel>(
-                  builder: (context, model, child) {
-                    return Consumer<Settings>(
-                      builder: (context, settings, child) {
-                        return ConsistentFutureBuilder(
+            child: Consumer<Settings>(
+              builder: (context, settings, child) {
+                return Column(children: [
+                  const MeasurementGraph(),
+                  if (!settings.useLegacyList)
+                    const ModernListHeader(),
+                  if (!settings.useLegacyList)
+                    Expanded(
+                      flex: 50,
+                      child: Consumer<BloodPressureModel>(
+                        builder: (context, model, child) {
+                          return ConsistentFutureBuilder(
                             future: model.getInTimeRange(settings.displayDataStart, settings.displayDataEnd),
                             onData: (context, data) {
                               return MeasurementList(
                                 entries: data
                               );
                             }
-                        );
-                      },
-                    );
-                  },
-                )
-              ),
-            ]),
+                          );
+                        },
+                      )
+                    ),
+                  if(settings.useLegacyList)
+                    Expanded(
+                      flex: 50,
+                      child: LegacyMeasurementsList(context)),
+                ]);
+              }
+            ),
           ),
         );
       },
lib/screens/settings.dart
@@ -153,6 +153,14 @@ class SettingsPage extends StatelessWidget {
                 onMainColorChanged: (color) => settings.pulColor = createMaterialColor((color ?? Colors.red).value),
                 initialColor: settings.pulColor,
                 title: Text(AppLocalizations.of(context)!.pulColor)),
+              SwitchSettingsTile(
+                key: const Key('useLegacyList'),
+                initialValue: settings.useLegacyList,
+                onToggle: (value) {
+                  settings.useLegacyList = value;
+                },
+                leading: const Icon(Icons.list_alt_outlined),
+                title: Text(AppLocalizations.of(context)!.useLegacyList)),
             ]),
 
             SettingsSection(title: Text(AppLocalizations.of(context)!.behavior), children: [