mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
Player download & like button alignment fix
This commit is contained in:
parent
5b855e1e55
commit
2c5e848fbc
@ -245,6 +245,7 @@ class _PlayerState extends State<Player> with WidgetsBindingObserver {
|
|||||||
),
|
),
|
||||||
artistsToClickableArtists(
|
artistsToClickableArtists(
|
||||||
playback.currentTrack?.artists ?? [],
|
playback.currentTrack?.artists ?? [],
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -339,42 +340,15 @@ class _PlayerState extends State<Player> with WidgetsBindingObserver {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
DownloadTrackButton(
|
|
||||||
track: playback.currentTrack,
|
|
||||||
),
|
|
||||||
// add to saved tracks
|
// add to saved tracks
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 1,
|
flex: 1,
|
||||||
child: Wrap(
|
child: Wrap(
|
||||||
crossAxisAlignment: WrapCrossAlignment.center,
|
alignment: WrapAlignment.center,
|
||||||
|
runAlignment: WrapAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Consumer<SpotifyDI>(builder: (context, data, widget) {
|
Container(
|
||||||
return FutureBuilder<bool>(
|
height: 20,
|
||||||
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(
|
|
||||||
constraints: const BoxConstraints(maxWidth: 200),
|
constraints: const BoxConstraints(maxWidth: 200),
|
||||||
child: Slider.adaptive(
|
child: Slider.adaptive(
|
||||||
value: _volume,
|
value: _volume,
|
||||||
@ -392,6 +366,41 @@ class _PlayerState extends State<Player> with WidgetsBindingObserver {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
DownloadTrackButton(
|
||||||
|
track: playback.currentTrack,
|
||||||
|
),
|
||||||
|
Consumer<SpotifyDI>(builder: (context, data, widget) {
|
||||||
|
return FutureBuilder<bool>(
|
||||||
|
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(() {}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -3,8 +3,14 @@ import 'package:spotify/spotify.dart';
|
|||||||
import 'package:spotube/components/Artist/ArtistProfile.dart';
|
import 'package:spotube/components/Artist/ArtistProfile.dart';
|
||||||
import 'package:spotube/components/Shared/LinkText.dart';
|
import 'package:spotube/components/Shared/LinkText.dart';
|
||||||
|
|
||||||
Widget artistsToClickableArtists(List<ArtistSimple> artists) {
|
Widget artistsToClickableArtists(
|
||||||
|
List<ArtistSimple> artists, {
|
||||||
|
CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center,
|
||||||
|
MainAxisAlignment mainAxisAlignment = MainAxisAlignment.start,
|
||||||
|
}) {
|
||||||
return Row(
|
return Row(
|
||||||
|
crossAxisAlignment: crossAxisAlignment,
|
||||||
|
mainAxisAlignment: mainAxisAlignment,
|
||||||
children: artists
|
children: artists
|
||||||
.asMap()
|
.asMap()
|
||||||
.entries
|
.entries
|
||||||
|
Loading…
Reference in New Issue
Block a user