getQueue method
Returns a list of tracks currently in the user's playback queue. The first track is the currently playing track (if present).
Implementation
Future<List<Track>> getQueue() async {
final uri = Uri.https(_baseApiHost, '/v1/me/player/queue');
final json = await _getJson(uri);
final List<Track> queue = [];
final Set<String> trackIds = {};
if (json['currently_playing'] != null) {
final track = Track.fromJson(json['currently_playing']);
if (trackIds.add(track.id)) queue.add(track);
}
if (json['queue'] != null) {
final queueItems = json['queue'] as List;
for (final item in queueItems) {
final track = Track.fromJson(item);
if (trackIds.add(track.id)) queue.add(track);
}
}
return queue;
}