From e5d67e74edcf2a993de292c9bd3ac2cdcdcee4bb Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Wed, 8 Jul 2026 02:09:23 +0100 Subject: [PATCH] Align settings page with add app page styling - SettingsToggleRow contentPadding: 16 -> 20 (matches add app tileMode) - SettingsTile: borderRadius -> RoundedSuperellipseBorder shape (matches add app) - SettingsToggleRow: RoundedRectangleBorder -> RoundedSuperellipseBorder - Add app _FormSwitchRow: add haptic feedback via selectionClick() (respects tactileFeedbackEnabled pref, matches settings page) --- lib/components/generated_form_renderer.dart | 10 +++++++++- lib/components/settings_widgets.dart | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/components/generated_form_renderer.dart b/lib/components/generated_form_renderer.dart index 7e7e20e3..19fe5aae 100644 --- a/lib/components/generated_form_renderer.dart +++ b/lib/components/generated_form_renderer.dart @@ -151,7 +151,15 @@ class _FormSwitchRow extends StatelessWidget { ), ), const SizedBox(width: 8), - Switch(value: value, onChanged: item.disabled ? null : onChanged), + Switch( + value: value, + onChanged: item.disabled + ? null + : (v) { + context.read().selectionClick(); + onChanged?.call(v); + }, + ), ], ); } diff --git a/lib/components/settings_widgets.dart b/lib/components/settings_widgets.dart index d3dfd22f..fd9031a0 100644 --- a/lib/components/settings_widgets.dart +++ b/lib/components/settings_widgets.dart @@ -73,7 +73,7 @@ class SettingsTile extends StatelessWidget { borderRadius ?? BorderRadius.circular(connectedTileBigRadius); return Material( color: color ?? Theme.of(context).colorScheme.surfaceContainerLow, - borderRadius: effectiveRadius, + shape: RoundedSuperellipseBorder(borderRadius: effectiveRadius), clipBehavior: Clip.antiAlias, child: Padding(padding: padding, child: child), ); @@ -107,13 +107,13 @@ class SettingsToggleRow extends StatelessWidget { onChanged!(v); }; final tileShape = borderRadius != null - ? RoundedRectangleBorder(borderRadius: borderRadius!) + ? RoundedSuperellipseBorder(borderRadius: borderRadius!) : null; return SettingsTile( padding: EdgeInsets.zero, borderRadius: borderRadius, child: ListTile( - contentPadding: const EdgeInsets.symmetric(horizontal: 16), + contentPadding: const EdgeInsets.symmetric(horizontal: 20), shape: tileShape, title: Text(label), subtitle: subtitle,