Add method to clear a Rich Presence status

This commit is contained in:
Patrick Auernig 2018-04-08 21:07:19 +02:00
parent 6bbc9f85d7
commit a9480b9d72
2 changed files with 17 additions and 2 deletions

View File

@ -48,6 +48,11 @@ impl Client {
self.execute(Command::SetActivity, SetActivityArgs::new(f), None) self.execute(Command::SetActivity, SetActivityArgs::new(f), None)
} }
#[cfg(feature = "rich_presence")]
pub fn clear_activity(&mut self) -> Result<Payload<Activity>> {
self.execute(Command::SetActivity, SetActivityArgs::default(), None)
}
pub fn subscribe<F>(&mut self, evt: Event, f: F) -> Result<Payload<Subscription>> pub fn subscribe<F>(&mut self, evt: Event, f: F) -> Result<Payload<Subscription>>
where F: FnOnce(SubscriptionArgs) -> SubscriptionArgs where F: FnOnce(SubscriptionArgs) -> SubscriptionArgs
{ {

View File

@ -1,5 +1,7 @@
#![cfg(feature = "rich_presence")] #![cfg(feature = "rich_presence")]
use std::default::Default;
use super::shared::PartialUser; use super::shared::PartialUser;
use utils; use utils;
@ -7,14 +9,22 @@ use utils;
#[derive(Debug, PartialEq, Deserialize, Serialize)] #[derive(Debug, PartialEq, Deserialize, Serialize)]
pub struct SetActivityArgs { pub struct SetActivityArgs {
pid: i32, pid: i32,
activity: Activity,
#[serde(skip_serializing_if = "Option::is_none")]
activity: Option<Activity>,
} }
impl SetActivityArgs { impl SetActivityArgs {
pub fn new<F>(f: F) -> Self pub fn new<F>(f: F) -> Self
where F: FnOnce(Activity) -> Activity where F: FnOnce(Activity) -> Activity
{ {
Self { pid: utils::pid(), activity: f(Activity::new()) } Self { pid: utils::pid(), activity: Some(f(Activity::new())) }
}
}
impl Default for SetActivityArgs {
fn default() -> Self {
Self { pid: utils::pid(), activity: None }
} }
} }