diff --git a/src/playlist.rs b/src/playlist.rs index ccb1bd5..c49cd62 100644 --- a/src/playlist.rs +++ b/src/playlist.rs @@ -75,13 +75,18 @@ impl Playlist { track_pos_pairs: &[(Track, usize)], spotify: Arc, library: Arc, - ) { - if spotify.delete_tracks(&self.id, track_pos_pairs) { - if let Some(tracks) = &mut self.tracks { - for (_track, pos) in track_pos_pairs { - tracks.remove(*pos); + ) -> bool { + match spotify.delete_tracks(&self.id, track_pos_pairs) { + false => false, + true => { + if let Some(tracks) = &mut self.tracks { + for (_track, pos) in track_pos_pairs { + tracks.remove(*pos); + } + library.playlist_update(&self); } - library.playlist_update(&self); + + true } } } diff --git a/src/ui/playlist.rs b/src/ui/playlist.rs index 1346bef..ac5c81f 100644 --- a/src/ui/playlist.rs +++ b/src/ui/playlist.rs @@ -62,12 +62,13 @@ impl ViewExt for PlaylistView { }; let track = tracks.get(pos); if let Some(t) = track { - self.playlist.delete_tracks( + if self.playlist.delete_tracks( &[(t.clone(), pos)], self.spotify.clone(), self.library.clone(), - ); - self.list.remove(pos); + ) { + self.list.remove(pos); + } } return Ok(CommandResult::Consumed(None)); }