diff --git a/lib/components/Player/Player.dart b/lib/components/Player/Player.dart index 7031b6b1..b27b5d4a 100644 --- a/lib/components/Player/Player.dart +++ b/lib/components/Player/Player.dart @@ -245,6 +245,7 @@ class _PlayerState extends State with WidgetsBindingObserver { ), artistsToClickableArtists( playback.currentTrack?.artists ?? [], + mainAxisAlignment: MainAxisAlignment.center, ) ], ), @@ -339,42 +340,15 @@ class _PlayerState extends State with WidgetsBindingObserver { }, ), ), - DownloadTrackButton( - track: playback.currentTrack, - ), // add to saved tracks Expanded( flex: 1, child: Wrap( - crossAxisAlignment: WrapCrossAlignment.center, + alignment: WrapAlignment.center, + runAlignment: WrapAlignment.center, children: [ - Consumer(builder: (context, data, widget) { - return FutureBuilder( - future: playback.currentTrack?.id != null - ? data.spotifyApi.tracks.me - .containsOne(playback.currentTrack!.id!) - : Future.value(false), - initialData: false, - builder: (context, snapshot) { - bool isLiked = snapshot.data ?? false; - return IconButton( - icon: Icon( - !isLiked - ? Icons.favorite_outline_rounded - : Icons.favorite_rounded, - color: isLiked ? Colors.green : null, - ), - onPressed: () { - if (!isLiked && - playback.currentTrack?.id != null) { - data.spotifyApi.tracks.me - .saveOne(playback.currentTrack!.id!) - .then((value) => setState(() {})); - } - }); - }); - }), - ConstrainedBox( + Container( + height: 20, constraints: const BoxConstraints(maxWidth: 200), child: Slider.adaptive( value: _volume, @@ -392,6 +366,41 @@ class _PlayerState extends State with WidgetsBindingObserver { }, ), ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + DownloadTrackButton( + track: playback.currentTrack, + ), + Consumer(builder: (context, data, widget) { + return FutureBuilder( + future: playback.currentTrack?.id != null + ? data.spotifyApi.tracks.me + .containsOne(playback.currentTrack!.id!) + : Future.value(false), + initialData: false, + builder: (context, snapshot) { + bool isLiked = snapshot.data ?? false; + return IconButton( + icon: Icon( + !isLiked + ? Icons.favorite_outline_rounded + : Icons.favorite_rounded, + color: isLiked ? Colors.green : null, + ), + onPressed: () { + if (!isLiked && + playback.currentTrack?.id != null) { + data.spotifyApi.tracks.me + .saveOne( + playback.currentTrack!.id!) + .then((value) => setState(() {})); + } + }); + }); + }), + ], + ), ], ), ) diff --git a/lib/helpers/artists-to-clickable-artists.dart b/lib/helpers/artists-to-clickable-artists.dart index 94508777..a4b11fa5 100644 --- a/lib/helpers/artists-to-clickable-artists.dart +++ b/lib/helpers/artists-to-clickable-artists.dart @@ -3,8 +3,14 @@ import 'package:spotify/spotify.dart'; import 'package:spotube/components/Artist/ArtistProfile.dart'; import 'package:spotube/components/Shared/LinkText.dart'; -Widget artistsToClickableArtists(List artists) { +Widget artistsToClickableArtists( + List artists, { + CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, + MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start, +}) { return Row( + crossAxisAlignment: crossAxisAlignment, + mainAxisAlignment: mainAxisAlignment, children: artists .asMap() .entries