From 4a0f44f412e557f334678469c1df76e3ccf12ec5 Mon Sep 17 00:00:00 2001 From: jfaltis Date: Thu, 24 Oct 2019 18:24:37 +0200 Subject: [PATCH 1/3] unsave saved tracks with 's' --- src/app.rs | 27 +++++++++++++++++++++++++++ src/handlers/album_tracks.rs | 2 +- src/handlers/playbar.rs | 2 +- src/handlers/recently_played.rs | 2 +- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/app.rs b/src/app.rs index 7e14bfa9..f51698e6 100644 --- a/src/app.rs +++ b/src/app.rs @@ -707,6 +707,33 @@ impl App { } } + pub fn toggle_save_track(&mut self, track_id: String) { + if let Some(spotify) = &self.spotify { + match spotify.current_user_saved_tracks_contains(&[track_id.clone()]) { + Ok(saved) => { + if saved[0] { + match spotify.current_user_saved_tracks_delete(&[track_id]) { + Ok(()) => {} + Err(e) => { + self.handle_error(e); + } + } + } else { + match spotify.current_user_saved_tracks_add(&[track_id]) { + Ok(()) => {} + Err(e) => { + self.handle_error(e); + } + } + } + } + Err(e) => { + self.handle_error(e); + } + } + }; + } + pub fn save_tracks(&mut self, track_ids: Vec) { if let Some(spotify) = &self.spotify { match spotify.current_user_saved_tracks_add(&track_ids) { diff --git a/src/handlers/album_tracks.rs b/src/handlers/album_tracks.rs index f2deb099..dcd7edf3 100644 --- a/src/handlers/album_tracks.rs +++ b/src/handlers/album_tracks.rs @@ -62,7 +62,7 @@ pub fn handler(key: Key, app: &mut App) { .get(app.saved_album_tracks_index) { if let Some(track_id) = &selected_track.id { - app.save_tracks(vec![track_id.clone()]); + app.toggle_save_track(track_id.clone()); }; }; } diff --git a/src/handlers/playbar.rs b/src/handlers/playbar.rs index ed38b113..f3347e14 100644 --- a/src/handlers/playbar.rs +++ b/src/handlers/playbar.rs @@ -11,7 +11,7 @@ pub fn handler(key: Key, app: &mut App) { if let Some(playing_context) = &app.current_playback_context { if let Some(track) = &playing_context.item { if let Some(id) = track.id.to_owned() { - app.save_tracks(vec![id]); + app.toggle_save_track(id); } } } diff --git a/src/handlers/recently_played.rs b/src/handlers/recently_played.rs index 7bdb8268..de0bce53 100644 --- a/src/handlers/recently_played.rs +++ b/src/handlers/recently_played.rs @@ -29,7 +29,7 @@ pub fn handler(key: Key, app: &mut App) { recently_played_result.items.get(app.recently_played.index) { if let Some(track_id) = &selected_track.track.id { - app.save_tracks(vec![track_id.clone()]); + app.toggle_save_track(track_id.clone()); }; }; }; From a05ff8b4a4f321f81930bd56bc45cfeb2030112d Mon Sep 17 00:00:00 2001 From: jfaltis Date: Thu, 24 Oct 2019 18:30:49 +0200 Subject: [PATCH 2/3] clippy (keep save_tracks for future changes) --- src/app.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app.rs b/src/app.rs index f51698e6..08116e94 100644 --- a/src/app.rs +++ b/src/app.rs @@ -734,6 +734,8 @@ impl App { }; } + // Currently unused but keep for future changes + #[allow(dead_code)] pub fn save_tracks(&mut self, track_ids: Vec) { if let Some(spotify) = &self.spotify { match spotify.current_user_saved_tracks_add(&track_ids) { From 0557cbd9866ee458bbbfb53a6bb9fe99928106b9 Mon Sep 17 00:00:00 2001 From: jfaltis Date: Fri, 25 Oct 2019 17:21:49 +0200 Subject: [PATCH 3/3] remove dead code and use first() instead of [0] --- src/app.rs | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/app.rs b/src/app.rs index 08116e94..05a271be 100644 --- a/src/app.rs +++ b/src/app.rs @@ -711,7 +711,7 @@ impl App { if let Some(spotify) = &self.spotify { match spotify.current_user_saved_tracks_contains(&[track_id.clone()]) { Ok(saved) => { - if saved[0] { + if saved.first() == Some(&true) { match spotify.current_user_saved_tracks_delete(&[track_id]) { Ok(()) => {} Err(e) => { @@ -734,19 +734,6 @@ impl App { }; } - // Currently unused but keep for future changes - #[allow(dead_code)] - pub fn save_tracks(&mut self, track_ids: Vec) { - if let Some(spotify) = &self.spotify { - match spotify.current_user_saved_tracks_add(&track_ids) { - Ok(()) => {} - Err(e) => { - self.handle_error(e); - } - } - }; - } - pub fn shuffle(&mut self) { if let (Some(spotify), Some(context)) = (&self.spotify, &mut self.current_playback_context) {