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 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
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 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<double>(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),
),
);
}