Commit ca5e769

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-10-10 19:52:46
migrate settings to new color picker
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 08f0fa0
Changed files (2)
lib
lib/components/settings_widgets.dart
@@ -1,7 +1,7 @@
+import 'package:blood_pressure_app/components/color_picker.dart';
+import 'package:blood_pressure_app/model/storage/convert_util.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
-import 'package:flutter_gen/gen_l10n/app_localizations.dart';
-import 'package:flutter_material_color_picker/flutter_material_color_picker.dart';
 
 class SettingsTile extends StatelessWidget {
   final Widget title;
@@ -73,9 +73,8 @@ class SettingsTile extends StatelessWidget {
 
 class ColorSelectionSettingsTile extends StatelessWidget {
   final Widget title;
-  final ValueChanged<ColorSwatch?>? onMainColorChanged;
+  final ValueChanged<MaterialColor>? onMainColorChanged;
   final MaterialColor initialColor;
-  final Widget? leading;
   final Widget? trailing;
   final Widget? description;
   final bool disabled;
@@ -85,7 +84,6 @@ class ColorSelectionSettingsTile extends StatelessWidget {
       required this.title,
       required this.onMainColorChanged,
       required this.initialColor,
-      this.leading,
       this.trailing,
       this.description,
       this.disabled = false});
@@ -105,29 +103,9 @@ class ColorSelectionSettingsTile extends StatelessWidget {
       trailing: trailing,
       description: description,
       disabled: disabled,
-      onPressed: (context) {
-        showDialog(
-          context: context,
-          builder: (_) {
-            return AlertDialog(
-              contentPadding: const EdgeInsets.all(6.0),
-              content: MaterialColorPicker(
-                circleSize: 53,
-                selectedColor: initialColor,
-                onMainColorChange: (color) {
-                  onMainColorChanged?.call(color);
-                  Navigator.of(context).pop();
-                },
-              ),
-              actions: [
-                TextButton(
-                  onPressed: Navigator.of(context).pop,
-                  child: Text(AppLocalizations.of(context)!.btnCancel),
-                ),
-              ],
-            );
-          },
-        );
+      onPressed: (context) async {
+        final color = ConvertUtil.parseMaterialColor(await showColorPickerDialog(context, initialColor));
+        if (color != null) onMainColorChanged?.call(color);
       },
     );
   }
lib/screens/settings.dart
@@ -131,7 +131,7 @@ class SettingsPage extends StatelessWidget {
                   title: Text(localizations.sysColor)),
               ColorSelectionSettingsTile(
                 key: const Key('diaColor'),
-                onMainColorChanged: (color) => settings.diaColor = createMaterialColor((color ?? Colors.teal).value),
+                onMainColorChanged: (color) => settings.diaColor = color,
                 initialColor: settings.diaColor,
                 title: Text(localizations.diaColor)),
               ColorSelectionSettingsTile(