diff --git a/lib/widgets/filter_grids/common/covered_filter_chip.dart b/lib/widgets/filter_grids/common/covered_filter_chip.dart index 83058c16d..13c74802e 100644 --- a/lib/widgets/filter_grids/common/covered_filter_chip.dart +++ b/lib/widgets/filter_grids/common/covered_filter_chip.dart @@ -61,9 +61,13 @@ class CoveredFilterChip extends StatelessWidget { static Radius radius(double extent) => Radius.circular(min(AvesFilterChip.defaultRadius, extent / 4)); - static double detailIconSize(double extent) => min(AvesFilterChip.fontSize, extent / 8); + static double detailIconSize(double extent) => min(AvesFilterChip.fontSize, extent / 7); - static double detailFontSize(double extent) => min(AvesFilterChip.fontSize, extent / 6); + static double detailFontSize(double extent) => min(AvesFilterChip.fontSize, extent / 7); + + static double detailIconPadding(double extent) => min(8.0, extent / 16); + + static double detailIconTextPadding(double extent) => detailIconPadding(extent) / 2; @override Widget build(BuildContext context) { @@ -201,30 +205,33 @@ class CoveredFilterChip extends StatelessWidget { if (filter is StoredAlbumFilter && vaults.isVault(filter.album)) _buildDetailIcon(context, AIcons.locked), if (filter is DynamicAlbumFilter) _buildDetailIcon(context, AIcons.dynamicAlbum), if (filter is AlbumGroupFilter) ...[ - _buildDetailIcon(context, AIcons.album), + _buildDetailIcon(context, AIcons.album, padding: detailIconTextPadding(extent)), Text( '${NumberFormat.decimalPattern(context.locale).format(albumGrouping.countLeaves(filter.uri))}${AText.separator}', style: textStyle, ), ], - Text( - locked ? AText.valueNotAvailable : NumberFormat.decimalPattern(context.locale).format(source.count(filter)), - style: textStyle, + Flexible( + child: Text( + locked ? AText.valueNotAvailable : NumberFormat.decimalPattern(context.locale).format(source.count(filter)), + style: textStyle, + softWrap: false, + overflow: TextOverflow.fade, + maxLines: 1, + ), ), ], ); } - Widget _buildDetailIcon(BuildContext context, IconData icon) { - final padding = min(8.0, extent / 16); - final iconSize = detailIconSize(extent); + Widget _buildDetailIcon(BuildContext context, IconData icon, {double? padding}) { return AnimatedPadding( - padding: EdgeInsetsDirectional.only(end: padding), + padding: EdgeInsetsDirectional.only(end: padding ?? detailIconPadding(extent)), duration: ADurations.chipDecorationAnimation, child: Icon( icon, color: _detailColor(context), - size: iconSize, + size: detailIconSize(extent), ), ); }