fix playing song

PHOTO_PICKER_LDE
Lucas Delanier 2 years ago
parent 593f38062e
commit a03decc7d9

@ -77,11 +77,13 @@ class MusicListComponent extends StatelessWidget {
intervalSpaces: 10, intervalSpaces: 10,
), ),
)), )),
Icon( music.explicit
Icons.explicit, ? Icon(
color: Colors.grey.withOpacity(0.7), Icons.explicit,
size: 17, color: Colors.grey.withOpacity(0.7),
), size: 17,
)
: Container(),
], ],
), ),
ScrollConfiguration( ScrollConfiguration(

@ -8,7 +8,7 @@ class Music {
String? _title; String? _title;
String? _cover; String? _cover;
String? _previewUrl; String? _previewUrl;
DateTime? _date; int? _date;
double? _duration; double? _duration;
bool _explicit = false; bool _explicit = false;
List<Artist> _artists; List<Artist> _artists;
@ -38,9 +38,9 @@ class Music {
_previewUrl = value; _previewUrl = value;
} }
DateTime? get date => _date; int? get date => _date;
set date(DateTime? value) { set date(int? value) {
_date = value; _date = value;
} }

@ -7,6 +7,7 @@ import 'package:google_fonts/google_fonts.dart';
import '../components/comment_component.dart'; import '../components/comment_component.dart';
import '../components/post_component.dart'; import '../components/post_component.dart';
import '../components/top_nav_bar_component.dart'; import '../components/top_nav_bar_component.dart';
import '../main.dart';
import '../values/constants.dart'; import '../values/constants.dart';
class FeedScreen extends StatefulWidget { class FeedScreen extends StatefulWidget {
@ -88,7 +89,7 @@ class _FeedScreenState extends State<FeedScreen>
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
topLeft: Radius.circular(20), topRight: Radius.circular(20))), topLeft: Radius.circular(20), topRight: Radius.circular(20))),
builder: ((context) { builder: ((BuildContext context) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context); FocusScopeNode currentFocus = FocusScope.of(context);
@ -235,6 +236,10 @@ class _FeedScreenState extends State<FeedScreen>
); );
} }
void _onModalClosed() {
print("modal closed");
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(

@ -32,7 +32,7 @@ class MusicViewModel {
responseData['name'], responseData['name'],
responseData['album']['images'][0]['url'], responseData['album']['images'][0]['url'],
responseData['preview_url'], responseData['preview_url'],
DateTime.parse(responseData['album']['release_date']), int.parse(responseData['album']['release_date'].split('-')[0]),
responseData['duration_ms'] / 1000, responseData['duration_ms'] / 1000,
responseData['explicit'], responseData['explicit'],
artists); artists);
@ -50,14 +50,12 @@ class MusicViewModel {
return Artist(artist['id'], artist['name'], ''); return Artist(artist['id'], artist['name'], '');
})); }));
DateTime releaseDate = DateTime.parse(track['album']['release_date']);
musics.add(Music( musics.add(Music(
track['id'], track['id'],
track['name'], track['name'],
track['album']['images'][0]['url'], track['album']['images'][0]['url'],
track['preview_url'], track['preview_url'],
releaseDate, int.parse(track['album']['release_date'].split('-')[0]),
track['duration_ms'] / 1000, track['duration_ms'] / 1000,
track['explicit'], track['explicit'],
artists)); artists));
@ -198,22 +196,27 @@ class MusicViewModel {
List<dynamic> tracks = responseData['tracks']['items']; List<dynamic> tracks = responseData['tracks']['items'];
for (var track in tracks) { for (var track in tracks) {
List<Artist> artists = List<Artist>.from(track['track']['artists'].map((artist) { List<Artist> artists =
List<Artist>.from(track['track']['artists'].map((artist) {
return Artist(artist['id'], artist['name'], ''); return Artist(artist['id'], artist['name'], '');
})); }));
DateTime releaseDate = DateTime.parse(track['track']['album']['release_date']); DateTime releaseDate =
DateTime.parse(track['track']['album']['release_date']);
musics.add(Music( musics.add(Music(
track['track']['id'], track['track']['id'],
track['track']['name'], track['track']['name'],
track['track']['album']['images'][0]['url'], track['track']['album']['images'][0]['url'],
track['track']['preview_url'], track['track']['preview_url'],
releaseDate, int.parse(responseData['album']['release_date'].split('-')[0]),
track['track']['duration_ms'] / 1000, track['track']['duration_ms'] / 1000,
track['track']['explicit'], track['track']['explicit'],
artists)); artists));
} }
/*
List<Music> musics = _getMusicsFromResponse(responseData['tracks']['items']);
}*/
return musics; return musics;
} else { } else {
@ -225,7 +228,7 @@ class MusicViewModel {
Future<List<Music>> getMusicsWithIds(List<String> ids, Future<List<Music>> getMusicsWithIds(List<String> ids,
{String market = "FR"}) async { {String market = "FR"}) async {
var accessToken = await _token.getAccessToken(); var accessToken = await _token.getAccessToken();
String url = API_URL+'/tracks?market=$market&ids='; String url = API_URL + '/tracks?market=$market&ids=';
if (ids.length == 0) return []; if (ids.length == 0) return [];
@ -233,8 +236,7 @@ class MusicViewModel {
print(url); print(url);
var response = await http var response = await http.get(Uri.parse(url), headers: {
.get(Uri.parse(url), headers: {
'Authorization': 'Bearer $accessToken', 'Authorization': 'Bearer $accessToken',
}); });
@ -246,5 +248,4 @@ class MusicViewModel {
'Error while retrieving music : ${response.statusCode} ${response.reasonPhrase}'); 'Error while retrieving music : ${response.statusCode} ${response.reasonPhrase}');
} }
} }
} }

Loading…
Cancel
Save