add preference updating
This commit is contained in:
parent
8b53d0f650
commit
d715fe27e4
3 changed files with 28 additions and 1 deletions
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"rust-analyzer.cargo.features": [
|
||||
"friends"
|
||||
]
|
||||
}
|
||||
|
|
@ -320,6 +320,26 @@ impl Friends for FriendsUser {
|
|||
async fn check_setting_status(&self) -> Result<u8, ErrorCode> {
|
||||
Ok(0xFF)
|
||||
}
|
||||
|
||||
async fn update_preference(&self, preference: PrincipalPreference) -> Result<(),ErrorCode> {
|
||||
info!("user updated preference: {:?}", preference);
|
||||
let any_presence: Any = Any::new(&preference).expect("out of memory");
|
||||
|
||||
let users = self.fm.users.read().await;
|
||||
for u in users.deref().iter().filter_map(|u| u.upgrade()) {
|
||||
info!("sending preference update");
|
||||
u.remote
|
||||
.process_nintendo_notification_event_2(NintendoNotificationEvent {
|
||||
event_type: 23,
|
||||
sender: self.pid,
|
||||
data: any_presence.clone(),
|
||||
})
|
||||
.await;
|
||||
}
|
||||
drop(users);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
type HMacMd5 = hmac::Hmac<md5::Md5>;
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ pub struct NintendoPresenceV2 {
|
|||
pub unk6: u8,
|
||||
pub unk7: u8,
|
||||
}
|
||||
#[derive(RmcSerialize)]
|
||||
#[derive(RmcSerialize, Clone, Debug)]
|
||||
#[rmc_struct(0)]
|
||||
pub struct PrincipalPreference {
|
||||
#[extends]
|
||||
|
|
@ -171,6 +171,8 @@ pub trait Friends {
|
|||
>;
|
||||
#[method_id(13)]
|
||||
async fn update_presence(&self, presence: NintendoPresenceV2) -> Result<(), ErrorCode>;
|
||||
#[method_id(16)]
|
||||
async fn update_preference(&self, preference: PrincipalPreference) -> Result<(), ErrorCode>;
|
||||
#[method_id(18)]
|
||||
async fn delete_persistent_notification(
|
||||
&self,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue