Commit 1add3c7

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-11-05 14:02:33
remove SettingsWidget
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent dc3e4b5
Changed files (3)
lib/components/settings_widgets.dart
@@ -2,74 +2,6 @@ import 'package:blood_pressure_app/components/color_picker.dart';
 import 'package:blood_pressure_app/components/dialoges/input_dialoge.dart';
 import 'package:flutter/material.dart';
 
-class SettingsTile extends StatelessWidget {
-  final Widget title;
-  final void Function(BuildContext context) onPressed;
-  final Widget? leading;
-  final Widget? description;
-  final Widget? trailing;
-  final bool disabled;
-
-  const SettingsTile(
-      {super.key,
-      required this.title,
-      this.leading,
-      this.trailing,
-      required this.onPressed,
-      this.description,
-      this.disabled = false});
-
-  @override
-  Widget build(BuildContext context) {
-    // TODO: use Proper disabled widget, convert to ListTile
-    if (disabled) return const SizedBox.shrink();
-
-    var lead = SizedBox(
-      width: 40,
-      child: leading ?? const SizedBox.shrink(),
-    );
-    var trail = trailing ?? const SizedBox.shrink();
-    return InkWell(
-      onTap: () => onPressed(context),
-      child: ConstrainedBox(
-        constraints: BoxConstraints(minHeight: 48, maxWidth: MediaQuery.of(context).size.width),
-        child: Row(
-          mainAxisSize: MainAxisSize.min,
-          children: [
-            lead,
-            const SizedBox(
-              width: 15,
-            ),
-            if (description != null)
-              Expanded(
-                flex: 10,
-                child: Container(
-                  padding: const EdgeInsets.only(top: 5, bottom: 5),
-                  child: Column(
-                    mainAxisSize: MainAxisSize.min,
-                    crossAxisAlignment: CrossAxisAlignment.start,
-                    children: [
-                      title,
-                      DefaultTextStyle(
-                          style: const TextStyle(color: Colors.grey, ),
-                          child: description ?? const SizedBox.shrink()
-                      )
-                    ],
-                  ),
-                ),
-              ),
-            if (description == null)
-              title,
-            const Spacer(),
-            //const Expanded(child: SizedBox.shrink()),
-            trail
-          ],
-        ),
-      ),
-    );
-  }
-}
-
 /// A [ListTile] that shows a color preview and allows changing it.
 class ColorSelectionListTile extends StatelessWidget {
   /// Creates a ListTile with a color preview that opens a color picker on tap.
lib/screens/subsettings/export_import_screen.dart
@@ -40,21 +40,21 @@ class ExportImportScreen extends StatelessWidget {
                 disabled: settings.exportFormat == ExportFormat.db,
                 child: const IntervalPicker(type: IntervallStoreManagerLocation.exportPage,),
               ),
-              SettingsTile(
-                  title: Text(localizations.exportDir),
-                  description: Text(settings.defaultExportDir),
-                  onPressed: (context) async {
-                    final appDir =
-                        await JSaver.instance.setDefaultSavingDirectory();
-                    settings.defaultExportDir = appDir.value;
-                  }),
+              ListTile(
+                title: Text(localizations.exportDir),
+                subtitle: settings.defaultExportDir.isNotEmpty ? Text(settings.defaultExportDir) : null,
+                onTap: () async {
+                  final appDir = await JSaver.instance.setDefaultSavingDirectory();
+                  settings.defaultExportDir = appDir.value;
+                }
+              ),
               SwitchListTile(
-                  title: Text(localizations.exportAfterEveryInput),
-                  subtitle: Text(localizations.exportAfterEveryInputDesc),
-                  value: settings.exportAfterEveryEntry,
-                  onChanged: (value) {
-                    settings.exportAfterEveryEntry = value;
-                  },
+                title: Text(localizations.exportAfterEveryInput),
+                subtitle: Text(localizations.exportAfterEveryInputDesc),
+                value: settings.exportAfterEveryEntry,
+                onChanged: (value) {
+                  settings.exportAfterEveryEntry = value;
+                },
               ),
               DropDownListTile<ExportFormat>(
                 key: const Key('exportFormat'),
lib/screens/settings.dart
@@ -342,6 +342,7 @@ class SettingsPage extends StatelessWidget {
                 key: const Key('sourceCode'),
                 title: Text(localizations.sourceCode),
                 leading: const Icon(Icons.merge),
+                trailing: const Icon(Icons.open_in_new),
                 onTap: () async {
                   final scaffoldMessenger = ScaffoldMessenger.of(context);
                   var url = Uri.parse('https://github.com/NobodyForNothing/blood-pressure-monitor-fl');