From ab60556644495e8427d078c3d9ef098f59b2d471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Andersson?= Date: Sat, 23 Jan 2021 22:42:42 +0100 Subject: [PATCH] Fix removing listview item even if not succesfully deleted (#404) * Fix deleting listview item if not deleted * Refactor --- src/playlist.rs | 17 +++++++++++------ src/ui/playlist.rs | 7 ++++--- 2 files changed, 15 insertions(+), 9 deletions(-) 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)); }