diff --git a/lib/ui/advanced_settings_screen.dart b/lib/ui/advanced_settings_screen.dart index 0e7817dbf..63ac319b2 100644 --- a/lib/ui/advanced_settings_screen.dart +++ b/lib/ui/advanced_settings_screen.dart @@ -78,7 +78,7 @@ class _AdvancedSettingsScreenState extends State { Icons.chevron_right_outlined, color: colorScheme.strokeBase, ), - borderRadius: 8, + singleBorderRadius: 8, alignCaptionedTextToLeft: true, // isBottomBorderRadiusRemoved: true, isGestureDetectorDisabled: true, @@ -96,7 +96,7 @@ class _AdvancedSettingsScreenState extends State { Icons.chevron_right_outlined, color: colorScheme.strokeBase, ), - borderRadius: 8, + singleBorderRadius: 8, alignCaptionedTextToLeft: true, onTap: () { routeToPage(context, const AppStorageViewer()); diff --git a/lib/ui/backup_settings_screen.dart b/lib/ui/backup_settings_screen.dart index 8b838bb81..729b0232e 100644 --- a/lib/ui/backup_settings_screen.dart +++ b/lib/ui/backup_settings_screen.dart @@ -65,7 +65,7 @@ class BackupSettingsScreen extends StatelessWidget { ); }, ), - borderRadius: 8, + singleBorderRadius: 8, alignCaptionedTextToLeft: true, isBottomBorderRadiusRemoved: true, isGestureDetectorDisabled: true, @@ -87,7 +87,7 @@ class BackupSettingsScreen extends StatelessWidget { !Configuration.instance.shouldBackupVideos(), ), ), - borderRadius: 8, + singleBorderRadius: 8, alignCaptionedTextToLeft: true, isTopBorderRadiusRemoved: true, isGestureDetectorDisabled: true, @@ -115,7 +115,7 @@ class BackupSettingsScreen extends StatelessWidget { ); }, ), - borderRadius: 8, + singleBorderRadius: 8, alignCaptionedTextToLeft: true, isGestureDetectorDisabled: true, ), diff --git a/lib/ui/components/menu_item_widget.dart b/lib/ui/components/menu_item_widget.dart index 71b8637d2..8b2518122 100644 --- a/lib/ui/components/menu_item_widget.dart +++ b/lib/ui/components/menu_item_widget.dart @@ -13,6 +13,7 @@ class MenuItemWidget extends StatefulWidget { final Color? leadingIconColor; final Widget? leadingIconWidget; + // leadIconSize deafult value is 20. final double leadingIconSize; @@ -29,7 +30,13 @@ class MenuItemWidget extends StatefulWidget { final VoidCallback? onDoubleTap; final Color? menuItemColor; final bool alignCaptionedTextToLeft; - final double borderRadius; + + // singleBorderRadius is applied to the border when it's a standalone menu item. + // Widget will apply singleBorderRadius if value of both isTopBorderRadiusRemoved + // and isBottomBorderRadiusRemoved is false. Otherwise, multipleBorderRadius will + // be applied + final double singleBorderRadius; + final double multipleBorderRadius; final Color? pressedColor; final ExpandableController? expandableController; final bool isBottomBorderRadiusRemoved; @@ -54,7 +61,8 @@ class MenuItemWidget extends StatefulWidget { this.onDoubleTap, this.menuItemColor, this.alignCaptionedTextToLeft = false, - this.borderRadius = 8.0, + this.singleBorderRadius = 4.0, + this.multipleBorderRadius = 8.0, this.pressedColor, this.expandableController, this.isBottomBorderRadiusRemoved = false, @@ -69,10 +77,15 @@ class MenuItemWidget extends StatefulWidget { class _MenuItemWidgetState extends State { Color? menuItemColor; + late double borderRadius; @override void initState() { menuItemColor = widget.menuItemColor; + borderRadius = + (widget.isBottomBorderRadiusRemoved || widget.isTopBorderRadiusRemoved) + ? widget.multipleBorderRadius + : widget.singleBorderRadius; if (widget.expandableController != null) { widget.expandableController!.addListener(() { setState(() {}); @@ -111,15 +124,15 @@ class _MenuItemWidgetState extends State { Widget menuItemWidget(BuildContext context) { final enteColorScheme = Theme.of(context).colorScheme.enteTheme.colorScheme; - final borderRadius = Radius.circular(widget.borderRadius); + final circularRadius = Radius.circular(borderRadius); final isExpanded = widget.expandableController?.value; final bottomBorderRadius = (isExpanded != null && isExpanded) || widget.isBottomBorderRadiusRemoved ? const Radius.circular(0) - : borderRadius; + : circularRadius; final topBorderRadius = widget.isTopBorderRadiusRemoved ? const Radius.circular(0) - : borderRadius; + : circularRadius; return AnimatedContainer( duration: const Duration(milliseconds: 20), width: double.infinity, diff --git a/lib/ui/sharing/album_participants_page.dart b/lib/ui/sharing/album_participants_page.dart index e78b814e2..9ed71239a 100644 --- a/lib/ui/sharing/album_participants_page.dart +++ b/lib/ui/sharing/album_participants_page.dart @@ -112,7 +112,7 @@ class _AlbumParticipantsPageState extends State { ), leadingIconSize: 24, menuItemColor: colorScheme.fillFaint, - borderRadius: 8, + singleBorderRadius: 8, isGestureDetectorDisabled: true, ), ], @@ -166,7 +166,7 @@ class _AlbumParticipantsPageState extends State { : null, isTopBorderRadiusRemoved: listIndex > 0, isBottomBorderRadiusRemoved: true, - borderRadius: 8, + singleBorderRadius: 8, ), DividerWidget( dividerType: DividerType.menu, @@ -188,7 +188,7 @@ class _AlbumParticipantsPageState extends State { await _navigateToAddUser(false); }, isTopBorderRadiusRemoved: collaborators.isNotEmpty, - borderRadius: 8, + singleBorderRadius: 8, ); } return const SizedBox.shrink(); @@ -240,7 +240,7 @@ class _AlbumParticipantsPageState extends State { : null, isTopBorderRadiusRemoved: listIndex > 0, isBottomBorderRadiusRemoved: !isLastItem, - borderRadius: 8, + singleBorderRadius: 8, ), isLastItem ? const SizedBox.shrink() @@ -262,7 +262,7 @@ class _AlbumParticipantsPageState extends State { await _navigateToAddUser(true); }, isTopBorderRadiusRemoved: viewers.isNotEmpty, - borderRadius: 8, + singleBorderRadius: 8, ); } return const SizedBox.shrink(); diff --git a/lib/ui/tools/debug/app_storage_viewer.dart b/lib/ui/tools/debug/app_storage_viewer.dart index d7b368e02..2695d8e2e 100644 --- a/lib/ui/tools/debug/app_storage_viewer.dart +++ b/lib/ui/tools/debug/app_storage_viewer.dart @@ -161,7 +161,7 @@ class _AppStorageViewerState extends State { ), menuItemColor: getEnteColorScheme(context).fillFaint, - borderRadius: 8, + singleBorderRadius: 8, onTap: () async { for (var pathItem in paths) { if (pathItem.allowCacheClear) { diff --git a/lib/ui/tools/debug/path_storage_viewer.dart b/lib/ui/tools/debug/path_storage_viewer.dart index 37a31bbcb..9306a8158 100644 --- a/lib/ui/tools/debug/path_storage_viewer.dart +++ b/lib/ui/tools/debug/path_storage_viewer.dart @@ -98,7 +98,7 @@ class _PathStorageViewerState extends State { ), trailingIcon: err != null ? Icons.error_outline_outlined : null, trailingIconIsMuted: err != null, - borderRadius: 8, + singleBorderRadius: 8, menuItemColor: getEnteColorScheme(context).fillFaint, isBottomBorderRadiusRemoved: widget.removeBottomRadius, isTopBorderRadiusRemoved: widget.removeTopRadius, diff --git a/lib/ui/viewer/gallery/device_folder_page.dart b/lib/ui/viewer/gallery/device_folder_page.dart index 0418e0e82..8dcae2eaf 100644 --- a/lib/ui/viewer/gallery/device_folder_page.dart +++ b/lib/ui/viewer/gallery/device_folder_page.dart @@ -113,7 +113,7 @@ class _BackupHeaderWidgetState extends State { children: [ MenuItemWidget( captionedTextWidget: const CaptionedTextWidget(title: "Backup"), - borderRadius: 8.0, + singleBorderRadius: 8.0, menuItemColor: colorScheme.fillFaint, alignCaptionedTextToLeft: true, trailingWidget: ToggleSwitchWidget( @@ -235,7 +235,7 @@ class _ResetIgnoredFilesWidgetState extends State { captionedTextWidget: const CaptionedTextWidget( title: "Reset ignored files", ), - borderRadius: 8.0, + singleBorderRadius: 8.0, menuItemColor: getEnteColorScheme(context).fillFaint, leadingIcon: Icons.cloud_off_outlined, onTap: () async {