feat(music): music browsing UI — square cards, library groupings, artist/album screens

Un-gates music libraries; adds CardShape.square plumbing (circular
artists), artists/albums/tracks browse groupings with per-grouping
sorts, audio playlists tab, artist + album detail screens with dpad
track rows, music context-menu actions, and a stub MusicPlaybackService
seam for the upcoming engine.
This commit is contained in:
edde746
2026-07-05 17:20:28 +02:00
parent fff559da06
commit 05a631415e
30 changed files with 2235 additions and 67 deletions
+6
View File
@@ -534,6 +534,11 @@ class _HubDetailScreenState extends State<HubDetailScreen>
final useWideLayout =
episodePosterMode == EpisodePosterMode.episodeThumbnail && (isEpisodeOnlyHub || isMixedHub);
// Music hubs render square album/artist artwork
final isSquareHub =
_filteredItems.isNotEmpty &&
_filteredItems.every((item) => item.cardShape(episodePosterMode) == CardShape.square);
if (isListMode) {
return SliverPadding(
padding: const EdgeInsets.all(8),
@@ -579,6 +584,7 @@ class _HubDetailScreenState extends State<HubDetailScreen>
horizontalPadding: 16,
useWideAspectRatio: useWideLayout,
fullBleedImage: fullCardLayout,
shape: isSquareHub ? CardShape.square : null,
);
final columnCount = geometry.columnCount;