Commit 3eacedd

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-11-05 11:40:15
migrate custom SwitchSettingsTile implementation to standard SwitchListTile
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 1d2801e
Changed files (4)
lib/components/settings_widgets.dart
@@ -112,39 +112,6 @@ class ColorSelectionListTile extends StatelessWidget {
   }
 }
 
-/// A ListTile with a trailing switch.
-///
-/// The properties behave like those of [ListTile] and [Switch] respectively.
-class SwitchSettingsTile extends StatelessWidget {
-  /// Creates a new [ListTile] with a trailing switch. 
-  const SwitchSettingsTile(
-      {super.key,
-      required this.title,
-      required this.onToggle,
-      required this.initialValue,
-      this.leading,
-      this.subtitle,});
-
-  final Widget title;
-  final Widget? subtitle;
-  final void Function(bool newValue) onToggle;
-  final Widget? leading;
-  final bool initialValue;
-
-  @override
-  Widget build(BuildContext context) {
-    return ListTile(
-      title: title,
-      leading: leading,
-      subtitle: subtitle,
-      trailing: Switch(
-        value: initialValue,
-        onChanged: onToggle,
-      ),
-    );
-  }
-}
-
 class SliderSettingsTile extends StatefulWidget {
   final Widget title;
   final void Function(double newValue) onChanged;
lib/model/storage/settings_store.dart
@@ -210,7 +210,7 @@ class Settings extends ChangeNotifier {
   bool _allowManualTimeInput = true;
   bool get allowManualTimeInput => _allowManualTimeInput;
   set allowManualTimeInput(bool value) {
-    _allowManualTimeInput = false;
+    _allowManualTimeInput = value;
     notifyListeners();
   }
 
lib/screens/subsettings/export_import_screen.dart
@@ -48,11 +48,11 @@ class ExportImportScreen extends StatelessWidget {
                         await JSaver.instance.setDefaultSavingDirectory();
                     settings.defaultExportDir = appDir.value;
                   }),
-              SwitchSettingsTile(
+              SwitchListTile(
                   title: Text(localizations.exportAfterEveryInput),
                   subtitle: Text(localizations.exportAfterEveryInputDesc),
-                  initialValue: settings.exportAfterEveryEntry,
-                  onToggle: (value) {
+                  value: settings.exportAfterEveryEntry,
+                  onChanged: (value) {
                     settings.exportAfterEveryEntry = value;
                   },
               ),
@@ -98,11 +98,11 @@ class ExportImportScreen extends StatelessWidget {
                           }
                         },
                       ),
-                      SwitchSettingsTile(
+                      SwitchListTile(
                         title: Text(localizations.exportCsvHeadline),
                         subtitle: Text(localizations.exportCsvHeadlineDesc),
-                        initialValue: csvExportSettings.exportHeadline,
-                        onToggle: (value) {
+                        value: csvExportSettings.exportHeadline,
+                        onChanged: (value) {
                           csvExportSettings.exportHeadline = value;
                         }
                       ),
@@ -116,22 +116,22 @@ class ExportImportScreen extends StatelessWidget {
                 Consumer<PdfExportSettings>(builder: (context, pdfExportSettings, child) =>
                   Column(
                     children: [
-                      SwitchSettingsTile(
+                      SwitchListTile(
                           title: Text(localizations.exportPdfExportTitle),
-                          initialValue: pdfExportSettings.exportTitle,
-                          onToggle: (value) {
+                          value: pdfExportSettings.exportTitle,
+                          onChanged: (value) {
                             pdfExportSettings.exportTitle = value;
                           }),
-                      SwitchSettingsTile(
+                      SwitchListTile(
                           title: Text(localizations.exportPdfExportStatistics),
-                          initialValue: pdfExportSettings.exportStatistics,
-                          onToggle: (value) {
+                          value: pdfExportSettings.exportStatistics,
+                          onChanged: (value) {
                             pdfExportSettings.exportStatistics = value;
                           }),
-                      SwitchSettingsTile(
+                      SwitchListTile(
                           title: Text(localizations.exportPdfExportData),
-                          initialValue: pdfExportSettings.exportData,
-                          onToggle: (value) {
+                          value: pdfExportSettings.exportData,
+                          onChanged: (value) {
                             pdfExportSettings.exportData = value;
                           }),
                       InputSettingsTile(
@@ -218,10 +218,10 @@ class ExportFieldCustomisationSetting extends StatelessWidget {
 
           return Column(
             children: [
-              SwitchSettingsTile(
+              SwitchListTile(
                 title: Text(localizations.exportCustomEntries),
-                initialValue: fieldsSettings.exportCustomFields,
-                onToggle: (value) {
+                value: fieldsSettings.exportCustomFields,
+                onChanged: (value) {
                   fieldsSettings.exportCustomFields = value;
                 }
               ),
lib/screens/settings.dart
@@ -124,47 +124,47 @@ class SettingsPage extends StatelessWidget {
                 onMainColorChanged: (color) => settings.pulColor = color,
                 initialColor: settings.pulColor,
                 title: Text(localizations.pulColor)),
-              SwitchSettingsTile(
+              SwitchListTile(
                 key: const Key('useLegacyList'),
-                initialValue: settings.useLegacyList,
-                onToggle: (value) {
+                value: settings.useLegacyList,
+                onChanged: (value) {
                   settings.useLegacyList = value;
                 },
-                leading: const Icon(Icons.list_alt_outlined),
-                title: Text(localizations.useLegacyList)),
+                secondary: const Icon(Icons.list_alt_outlined),
+                title: Text(localizations.useLegacyList),),
             ]),
 
             SettingsSection(title: Text(localizations.behavior), children: [
-              SwitchSettingsTile(
+              SwitchListTile(
                 key: const Key('allowManualTimeInput'),
-                initialValue: settings.allowManualTimeInput,
-                onToggle: (value) {
+                value: settings.allowManualTimeInput,
+                onChanged: (value) {
                   settings.allowManualTimeInput = value;
                 },
-                leading: const Icon(Icons.details),
+                secondary: const Icon(Icons.details),
                 title: Text(localizations.allowManualTimeInput)),
-              SwitchSettingsTile(
+              SwitchListTile(
                 key: const Key('validateInputs'),
-                initialValue: settings.validateInputs,
+                value: settings.validateInputs,
                 title: Text(localizations.validateInputs),
-                leading: const Icon(Icons.edit),
-                onToggle: (value) {
+                secondary: const Icon(Icons.edit),
+                onChanged: (value) {
                   settings.validateInputs = value;
                 }),
-              SwitchSettingsTile(
+              SwitchListTile(
                 key: const Key('allowMissingValues'),
-                initialValue: settings.allowMissingValues,
+                value: settings.allowMissingValues,
                 title: Text(localizations.allowMissingValues),
-                leading: const Icon(Icons.report_off_outlined),
-                onToggle: (value) {
+                secondary: const Icon(Icons.report_off_outlined),
+                onChanged: (value) {
                   settings.allowMissingValues = value;
                 }),
-              SwitchSettingsTile(
+              SwitchListTile(
                 key: const Key('confirmDeletion'),
-                initialValue: settings.confirmDeletion,
+                value: settings.confirmDeletion,
                 title: Text(localizations.confirmDeletion),
-                leading: const Icon(Icons.check),
-                onToggle: (value) {
+                secondary: const Icon(Icons.check),
+                onChanged: (value) {
                   settings.confirmDeletion = value;
                 }),
               InputSettingsTile(
@@ -247,21 +247,21 @@ class SettingsPage extends StatelessWidget {
                   );
                 }
               ),
-              SwitchSettingsTile(
+              SwitchListTile(
                 title: Text(localizations.drawRegressionLines),
-                leading: const Icon(Icons.trending_down_outlined),
+                secondary: const Icon(Icons.trending_down_outlined),
                 subtitle: Text(localizations.drawRegressionLinesDesc),
-                initialValue: settings.drawRegressionLines,
-                onToggle: (value) {
+                value: settings.drawRegressionLines,
+                onChanged: (value) {
                   settings.drawRegressionLines = value;
                 }
               ),
-              SwitchSettingsTile(
+              SwitchListTile(
                 title: Text(localizations.startWithAddMeasurementPage),
                 subtitle: Text(localizations.startWithAddMeasurementPageDescription),
-                leading: const Icon(Icons.electric_bolt_outlined),
-                initialValue: settings.startWithAddMeasurementPage,
-                onToggle: (value) {
+                secondary: const Icon(Icons.electric_bolt_outlined),
+                value: settings.startWithAddMeasurementPage,
+                onChanged: (value) {
                   settings.startWithAddMeasurementPage = value;
                 }
               ),