diff --git a/Sources/justMUSIC/lib/components/music_list_component.dart b/Sources/justMUSIC/lib/components/music_list_component.dart index 9a777da..1cbc516 100644 --- a/Sources/justMUSIC/lib/components/music_list_component.dart +++ b/Sources/justMUSIC/lib/components/music_list_component.dart @@ -77,11 +77,13 @@ class MusicListComponent extends StatelessWidget { intervalSpaces: 10, ), )), - Icon( - Icons.explicit, - color: Colors.grey.withOpacity(0.7), - size: 17, - ), + music.explicit + ? Icon( + Icons.explicit, + color: Colors.grey.withOpacity(0.7), + size: 17, + ) + : Container(), ], ), ScrollConfiguration( diff --git a/Sources/justMUSIC/lib/model/Music.dart b/Sources/justMUSIC/lib/model/Music.dart index 711b10a..ed9d9f4 100644 --- a/Sources/justMUSIC/lib/model/Music.dart +++ b/Sources/justMUSIC/lib/model/Music.dart @@ -8,7 +8,7 @@ class Music { String? _title; String? _cover; String? _previewUrl; - DateTime? _date; + int? _date; double? _duration; bool _explicit = false; List _artists; @@ -38,9 +38,9 @@ class Music { _previewUrl = value; } - DateTime? get date => _date; + int? get date => _date; - set date(DateTime? value) { + set date(int? value) { _date = value; } diff --git a/Sources/justMUSIC/lib/screens/feed_screen.dart b/Sources/justMUSIC/lib/screens/feed_screen.dart index 3e2c6ea..afc113e 100644 --- a/Sources/justMUSIC/lib/screens/feed_screen.dart +++ b/Sources/justMUSIC/lib/screens/feed_screen.dart @@ -7,6 +7,7 @@ import 'package:google_fonts/google_fonts.dart'; import '../components/comment_component.dart'; import '../components/post_component.dart'; import '../components/top_nav_bar_component.dart'; +import '../main.dart'; import '../values/constants.dart'; class FeedScreen extends StatefulWidget { @@ -88,7 +89,7 @@ class _FeedScreenState extends State shape: const RoundedRectangleBorder( borderRadius: BorderRadius.only( topLeft: Radius.circular(20), topRight: Radius.circular(20))), - builder: ((context) { + builder: ((BuildContext context) { return GestureDetector( onTap: () { FocusScopeNode currentFocus = FocusScope.of(context); @@ -235,6 +236,10 @@ class _FeedScreenState extends State ); } + void _onModalClosed() { + print("modal closed"); + } + @override Widget build(BuildContext context) { return Scaffold( diff --git a/Sources/justMUSIC/lib/view_model/MusicViewModel.dart b/Sources/justMUSIC/lib/view_model/MusicViewModel.dart index e50285e..8b5dc4a 100644 --- a/Sources/justMUSIC/lib/view_model/MusicViewModel.dart +++ b/Sources/justMUSIC/lib/view_model/MusicViewModel.dart @@ -32,7 +32,7 @@ class MusicViewModel { responseData['name'], responseData['album']['images'][0]['url'], responseData['preview_url'], - DateTime.parse(responseData['album']['release_date']), + int.parse(responseData['album']['release_date'].split('-')[0]), responseData['duration_ms'] / 1000, responseData['explicit'], artists); @@ -50,14 +50,12 @@ class MusicViewModel { return Artist(artist['id'], artist['name'], ''); })); - DateTime releaseDate = DateTime.parse(track['album']['release_date']); - musics.add(Music( track['id'], track['name'], track['album']['images'][0]['url'], track['preview_url'], - releaseDate, + int.parse(track['album']['release_date'].split('-')[0]), track['duration_ms'] / 1000, track['explicit'], artists)); @@ -198,22 +196,27 @@ class MusicViewModel { List tracks = responseData['tracks']['items']; for (var track in tracks) { - List artists = List.from(track['track']['artists'].map((artist) { + List artists = + List.from(track['track']['artists'].map((artist) { 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( track['track']['id'], track['track']['name'], track['track']['album']['images'][0]['url'], track['track']['preview_url'], - releaseDate, + int.parse(responseData['album']['release_date'].split('-')[0]), track['track']['duration_ms'] / 1000, track['track']['explicit'], artists)); } + /* + List musics = _getMusicsFromResponse(responseData['tracks']['items']); + }*/ return musics; } else { @@ -225,7 +228,7 @@ class MusicViewModel { Future> getMusicsWithIds(List ids, {String market = "FR"}) async { 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 []; @@ -233,8 +236,7 @@ class MusicViewModel { print(url); - var response = await http - .get(Uri.parse(url), headers: { + var response = await http.get(Uri.parse(url), headers: { 'Authorization': 'Bearer $accessToken', }); @@ -246,5 +248,4 @@ class MusicViewModel { 'Error while retrieving music : ${response.statusCode} ${response.reasonPhrase}'); } } - }