chip cover detail layout fixes

This commit is contained in:
Thibault Deckers 2025-05-26 23:40:37 +02:00
parent 6f9a581d99
commit 7b0f72d6ee

View file

@ -61,9 +61,13 @@ class CoveredFilterChip<T extends CollectionFilter> extends StatelessWidget {
static Radius radius(double extent) => Radius.circular(min<double>(AvesFilterChip.defaultRadius, extent / 4)); static Radius radius(double extent) => Radius.circular(min<double>(AvesFilterChip.defaultRadius, extent / 4));
static double detailIconSize(double extent) => min<double>(AvesFilterChip.fontSize, extent / 8); static double detailIconSize(double extent) => min<double>(AvesFilterChip.fontSize, extent / 7);
static double detailFontSize(double extent) => min<double>(AvesFilterChip.fontSize, extent / 6); static double detailFontSize(double extent) => min<double>(AvesFilterChip.fontSize, extent / 7);
static double detailIconPadding(double extent) => min<double>(8.0, extent / 16);
static double detailIconTextPadding(double extent) => detailIconPadding(extent) / 2;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -201,30 +205,33 @@ class CoveredFilterChip<T extends CollectionFilter> extends StatelessWidget {
if (filter is StoredAlbumFilter && vaults.isVault(filter.album)) _buildDetailIcon(context, AIcons.locked), if (filter is StoredAlbumFilter && vaults.isVault(filter.album)) _buildDetailIcon(context, AIcons.locked),
if (filter is DynamicAlbumFilter) _buildDetailIcon(context, AIcons.dynamicAlbum), if (filter is DynamicAlbumFilter) _buildDetailIcon(context, AIcons.dynamicAlbum),
if (filter is AlbumGroupFilter) ...[ if (filter is AlbumGroupFilter) ...[
_buildDetailIcon(context, AIcons.album), _buildDetailIcon(context, AIcons.album, padding: detailIconTextPadding(extent)),
Text( Text(
'${NumberFormat.decimalPattern(context.locale).format(albumGrouping.countLeaves(filter.uri))}${AText.separator}', '${NumberFormat.decimalPattern(context.locale).format(albumGrouping.countLeaves(filter.uri))}${AText.separator}',
style: textStyle, style: textStyle,
), ),
], ],
Text( Flexible(
locked ? AText.valueNotAvailable : NumberFormat.decimalPattern(context.locale).format(source.count(filter)), child: Text(
style: textStyle, 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) { Widget _buildDetailIcon(BuildContext context, IconData icon, {double? padding}) {
final padding = min<double>(8.0, extent / 16);
final iconSize = detailIconSize(extent);
return AnimatedPadding( return AnimatedPadding(
padding: EdgeInsetsDirectional.only(end: padding), padding: EdgeInsetsDirectional.only(end: padding ?? detailIconPadding(extent)),
duration: ADurations.chipDecorationAnimation, duration: ADurations.chipDecorationAnimation,
child: Icon( child: Icon(
icon, icon,
color: _detailColor(context), color: _detailColor(context),
size: iconSize, size: detailIconSize(extent),
), ),
); );
} }