Commit 3777119

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-11-05 11:19:27
replace SettingsTile in SwitchSettingsTile with ListTile
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 2f8871e
Changed files (3)
lib/components/settings_widgets.dart
@@ -110,38 +110,35 @@ class ColorSelectionSettingsTile extends StatelessWidget {
   }
 }
 
+/// A ListTile with a trailing switch.
+///
+/// The properties behave like those of [ListTile] and [Switch] respectively.
 class SwitchSettingsTile extends StatelessWidget {
-  final Widget title;
-  final void Function(bool newValue) onToggle;
-  final Widget? leading;
-  final Widget? description;
-  final bool? initialValue;
-  final bool disabled;
-
+  /// Creates a new [ListTile] with a trailing switch. 
   const SwitchSettingsTile(
       {super.key,
       required this.title,
       required this.onToggle,
+      required this.initialValue,
       this.leading,
-      this.description,
-      this.initialValue,
-      this.disabled = false});
+      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) {
-    var s = Switch(
-      value: initialValue ?? false,
-      onChanged: onToggle,
-    );
-    return SettingsTile(
+    return ListTile(
       title: title,
-      onPressed: (BuildContext context) {
-        s.value != s.value;
-      },
       leading: leading,
-      description: description,
-      disabled: disabled,
-      trailing: s,
+      subtitle: subtitle,
+      trailing: Switch(
+        value: initialValue,
+        onChanged: onToggle,
+      ),
     );
   }
 }
lib/screens/subsettings/export_import_screen.dart
@@ -50,7 +50,7 @@ class ExportImportScreen extends StatelessWidget {
                   }),
               SwitchSettingsTile(
                   title: Text(localizations.exportAfterEveryInput),
-                  description: Text(localizations.exportAfterEveryInputDesc),
+                  subtitle: Text(localizations.exportAfterEveryInputDesc),
                   initialValue: settings.exportAfterEveryEntry,
                   onToggle: (value) {
                     settings.exportAfterEveryEntry = value;
@@ -81,7 +81,6 @@ class ExportImportScreen extends StatelessWidget {
                         title: Text(localizations.fieldDelimiter),
                         inputWidth: 40,
                         initialValue: csvExportSettings.fieldDelimiter,
-                        disabled: !(settings.exportFormat == ExportFormat.csv),
                         onEditingComplete: (value) {
                           if (value != null) {
                             csvExportSettings.fieldDelimiter = value;
@@ -92,7 +91,6 @@ class ExportImportScreen extends StatelessWidget {
                         title: Text(localizations.textDelimiter),
                         inputWidth: 40,
                         initialValue: csvExportSettings.textDelimiter,
-                        disabled: !(settings.exportFormat == ExportFormat.csv),
                         onEditingComplete: (value) {
                           if (value != null) {
                             csvExportSettings.textDelimiter = value;
@@ -101,9 +99,8 @@ class ExportImportScreen extends StatelessWidget {
                       ),
                       SwitchSettingsTile(
                         title: Text(localizations.exportCsvHeadline),
-                        description: Text(localizations.exportCsvHeadlineDesc),
+                        subtitle: Text(localizations.exportCsvHeadlineDesc),
                         initialValue: csvExportSettings.exportHeadline,
-                        disabled: settings.exportFormat != ExportFormat.csv,
                         onToggle: (value) {
                           csvExportSettings.exportHeadline = value;
                         }
lib/screens/settings.dart
@@ -250,7 +250,7 @@ class SettingsPage extends StatelessWidget {
               SwitchSettingsTile(
                 title: Text(localizations.drawRegressionLines),
                 leading: const Icon(Icons.trending_down_outlined),
-                description: Text(localizations.drawRegressionLinesDesc),
+                subtitle: Text(localizations.drawRegressionLinesDesc),
                 initialValue: settings.drawRegressionLines,
                 onToggle: (value) {
                   settings.drawRegressionLines = value;
@@ -258,7 +258,7 @@ class SettingsPage extends StatelessWidget {
               ),
               SwitchSettingsTile(
                 title: Text(localizations.startWithAddMeasurementPage),
-                description: Text(localizations.startWithAddMeasurementPageDescription),
+                subtitle: Text(localizations.startWithAddMeasurementPageDescription),
                 leading: const Icon(Icons.electric_bolt_outlined),
                 initialValue: settings.startWithAddMeasurementPage,
                 onToggle: (value) {