diff --git a/Sources/dafl_project_flutter/lib/api/api.dart b/Sources/dafl_project_flutter/lib/api/api.dart index c41ef3d..6543f03 100644 --- a/Sources/dafl_project_flutter/lib/api/api.dart +++ b/Sources/dafl_project_flutter/lib/api/api.dart @@ -139,6 +139,20 @@ class Api { //functional methods + Future getCurrentlyPlayingTrack() async { + var url = Uri.https('api.spotify.com', 'v1/me/player/currently-playing'); + var token = await _getAccessToken(); + var response = await _client.get(url, headers: { + 'Authorization': '$_tokenType $token', + 'Content-Type': 'application/json' + }); + if (response.statusCode == 204) { + return getRecentlyPlayedTrack(); + } + var decodedResponse = jsonDecode(utf8.decode(response.bodyBytes)) as Map; + return decodedResponse['item']['id']; + } + Future getRecentlyPlayedTrack() async { var url = Uri.https( 'api.spotify.com', 'v1/me/player/recently-played', {'limit': '1'}); diff --git a/Sources/dafl_project_flutter/lib/api/in_app_browser.dart b/Sources/dafl_project_flutter/lib/api/in_app_browser.dart index 9805ad9..ae0c0a7 100644 --- a/Sources/dafl_project_flutter/lib/api/in_app_browser.dart +++ b/Sources/dafl_project_flutter/lib/api/in_app_browser.dart @@ -27,6 +27,7 @@ class MyInAppBrowser extends InAppBrowser { if (url!.origin + url.path == MyApp.api.redirectUri) { try { await MyApp.api.requestUserAuthorization(url); + //await MyApp.api.getPlaylists(); } on ApiException { // TODO : add notification to show that an error occured diff --git a/Sources/dafl_project_flutter/lib/model/user.dart b/Sources/dafl_project_flutter/lib/model/user.dart index df61880..9a47fbf 100644 --- a/Sources/dafl_project_flutter/lib/model/user.dart +++ b/Sources/dafl_project_flutter/lib/model/user.dart @@ -65,7 +65,7 @@ class User { _actualiseTrack() async { try { - _id = await MyApp.api.getRecentlyPlayedTrack(); + _id = await MyApp.api.getCurrentlyPlayingTrack(); track = await MyApp.api.getTrackInfo(_id); } on ApiException { // TODO : add notification to show that an error occured