From 986d898217a3846ddb9e65decfcca17f1e731dc1 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Wed, 3 Oct 2018 15:57:50 +0300 Subject: [PATCH] Player: Remove an unwrap --- podcasts-gtk/src/widgets/player.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/podcasts-gtk/src/widgets/player.rs b/podcasts-gtk/src/widgets/player.rs index ada8698..b61ae32 100644 --- a/podcasts-gtk/src/widgets/player.rs +++ b/podcasts-gtk/src/widgets/player.rs @@ -320,13 +320,20 @@ impl PlayerWidget { fn connect_mpris_buttons(s: &Rc) { let weak = Rc::downgrade(s); - let mpris = s.mpris.clone(); - s.mpris.connect_play_pause(clone!(weak => move || { - match mpris.get_playback_status().unwrap().as_ref() { - "Paused" => weak.upgrade().map(|p| p.play()), - "Stopped" => weak.upgrade().map(|p| p.play()), - _ => weak.upgrade().map(|p| p.pause()), + let mpris = s.info.mpris.clone(); + s.info.mpris.connect_play_pause(clone!(weak => move || { + let player = match weak.upgrade() { + Some(s) => s, + None => return }; + + if let Ok(status) = mpris.get_playback_status() { + match status.as_ref() { + "Paused" => player.play(), + "Stopped" => player.play(), + _ => player.pause(), + }; + } })); s.mpris.connect_next(clone!(weak => move || {