refactor: abstract player & deduplicate

This commit is contained in:
edde746
2026-01-24 04:06:58 +01:00
parent 9777344edc
commit 54e8e0c621
12 changed files with 659 additions and 985 deletions
+2 -8
View File
@@ -130,12 +130,6 @@ class _CollectionDetailScreenState extends BaseMediaListDetailScreen<CollectionD
}
}
int _getGridColumnCount(BuildContext context, SettingsProvider settingsProvider) {
final screenWidth = MediaQuery.of(context).size.width - 16;
final maxCrossAxisExtent = GridSizeCalculator.getMaxCrossAxisExtent(context, settingsProvider.libraryDensity);
return (screenWidth / maxCrossAxisExtent).floor().clamp(1, 100);
}
@override
Widget build(BuildContext context) {
return PopScope(
@@ -163,7 +157,7 @@ class _CollectionDetailScreenState extends BaseMediaListDetailScreen<CollectionD
Widget _buildFocusableGrid() {
return Consumer<SettingsProvider>(
builder: (context, settingsProvider, child) {
final columnCount = _getGridColumnCount(context, settingsProvider);
final columnCount = GridSizeCalculator.getColumnCount(context, settingsProvider.libraryDensity);
return SliverPadding(
padding: const EdgeInsets.fromLTRB(8, 8, 8, 8),
sliver: SliverGrid.builder(
@@ -171,7 +165,7 @@ class _CollectionDetailScreenState extends BaseMediaListDetailScreen<CollectionD
itemCount: items.length,
itemBuilder: (context, index) {
final item = items[index];
final inFirstRow = isFirstRow(index, columnCount);
final inFirstRow = GridSizeCalculator.isFirstRow(index, columnCount);
final focusNode = index == 0 ? firstItemFocusNode : getGridItemFocusNode(index);
return FocusableMediaCard(