Commit 1add3c7
Changed files (3)
lib
components
screens
subsettings
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');