diff --git a/src/chat.rs b/src/chat.rs index cd0dfd12c..c39b63dd0 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -1099,10 +1099,9 @@ impl Chat { if self.typ == Chattype::Group && !is_contact_in_chat(context, self.id, DC_CONTACT_ID_SELF).await { - emit_event!( - context, - EventType::ErrorSelfNotInGroup("Cannot send message; self not in group.".into()) - ); + context.emit_event(EventType::ErrorSelfNotInGroup( + "Cannot send message; self not in group.".into(), + )); bail!("Cannot set message; self not in group."); } @@ -2273,12 +2272,9 @@ pub(crate) async fn add_contact_to_chat_ex( if !is_contact_in_chat(context, chat_id, DC_CONTACT_ID_SELF).await { /* we should respect this - whatever we send to the group, it gets discarded anyway! */ - emit_event!( - context, - EventType::ErrorSelfNotInGroup( - "Cannot add contact to group; self not in group.".into() - ) - ); + context.emit_event(EventType::ErrorSelfNotInGroup( + "Cannot add contact to group; self not in group.".into(), + )); bail!("can not add contact because our account is not part of it"); } if from_handshake && chat.param.get_int(Param::Unpromoted).unwrap_or_default() == 1 { @@ -2485,12 +2481,9 @@ pub async fn remove_contact_from_chat( if let Ok(chat) = Chat::load_from_db(context, chat_id).await { if chat.typ == Chattype::Group { if !is_contact_in_chat(context, chat_id, DC_CONTACT_ID_SELF).await { - emit_event!( - context, - EventType::ErrorSelfNotInGroup( - "Cannot remove contact from chat; self not in group.".into() - ) - ); + context.emit_event(EventType::ErrorSelfNotInGroup( + "Cannot remove contact from chat; self not in group.".into(), + )); } else { if let Ok(contact) = Contact::get_by_id(context, contact_id).await { if chat.is_promoted() { @@ -2582,10 +2575,9 @@ pub async fn set_chat_name(context: &Context, chat_id: ChatId, new_name: &str) - if chat.name == new_name { success = true; } else if !is_contact_in_chat(context, chat_id, DC_CONTACT_ID_SELF).await { - emit_event!( - context, - EventType::ErrorSelfNotInGroup("Cannot set chat name; self not in group".into()) - ); + context.emit_event(EventType::ErrorSelfNotInGroup( + "Cannot set chat name; self not in group".into(), + )); } else { /* we should respect this - whatever we send to the group, it gets discarded anyway! */ if context @@ -2649,12 +2641,9 @@ pub async fn set_chat_profile_image( ); /* we should respect this - whatever we send to the group, it gets discarded anyway! */ if !is_contact_in_chat(context, chat_id, DC_CONTACT_ID_SELF).await { - emit_event!( - context, - EventType::ErrorSelfNotInGroup( - "Cannot set chat profile image; self not in group.".into() - ) - ); + context.emit_event(EventType::ErrorSelfNotInGroup( + "Cannot set chat profile image; self not in group.".into(), + )); bail!("Failed to set profile image"); } let mut msg = Message::new(Viewtype::Text); @@ -2682,15 +2671,12 @@ pub async fn set_chat_profile_image( chat.update_param(context).await?; if chat.is_promoted() && !chat.is_mailing_list() { msg.id = send_msg(context, chat_id, &mut msg).await?; - emit_event!( - context, - EventType::MsgsChanged { - chat_id, - msg_id: msg.id - } - ); + context.emit_event(EventType::MsgsChanged { + chat_id, + msg_id: msg.id, + }); } - emit_event!(context, EventType::ChatModified(chat_id)); + context.emit_event(EventType::ChatModified(chat_id)); Ok(()) } diff --git a/src/ephemeral.rs b/src/ephemeral.rs index c8eab5c65..b63b3511e 100644 --- a/src/ephemeral.rs +++ b/src/ephemeral.rs @@ -416,24 +416,18 @@ pub async fn schedule_ephemeral_task(context: &Context) { let context1 = context.clone(); let ephemeral_task = task::spawn(async move { async_std::task::sleep(duration).await; - emit_event!( - context1, - EventType::MsgsChanged { - chat_id: ChatId::new(0), - msg_id: MsgId::new(0) - } - ); + context1.emit_event(EventType::MsgsChanged { + chat_id: ChatId::new(0), + msg_id: MsgId::new(0), + }); }); *context.ephemeral_task.write().await = Some(ephemeral_task); } else { // Emit event immediately - emit_event!( - context, - EventType::MsgsChanged { - chat_id: ChatId::new(0), - msg_id: MsgId::new(0) - } - ); + context.emit_event(EventType::MsgsChanged { + chat_id: ChatId::new(0), + msg_id: MsgId::new(0), + }); } } } diff --git a/src/imap.rs b/src/imap.rs index 9a6112b41..7eebd963e 100644 --- a/src/imap.rs +++ b/src/imap.rs @@ -350,10 +350,10 @@ impl Imap { self.connected = true; self.session = Some(session); self.login_failed_once = false; - emit_event!( - context, - EventType::ImapConnected(format!("IMAP-LOGIN as {}", self.config.lp.user)) - ); + context.emit_event(EventType::ImapConnected(format!( + "IMAP-LOGIN as {}", + self.config.lp.user + ))); Ok(()) } @@ -1015,13 +1015,10 @@ impl Imap { if let Some(ref mut session) = &mut self.session { match session.uid_mv(&set, &dest_folder).await { Ok(_) => { - emit_event!( - context, - EventType::ImapMessageMoved(format!( - "IMAP Message {} moved to {}", - display_folder_id, dest_folder - )) - ); + context.emit_event(EventType::ImapMessageMoved(format!( + "IMAP Message {} moved to {}", + display_folder_id, dest_folder + ))); return ImapActionResult::Success; } Err(err) => { @@ -1059,23 +1056,17 @@ impl Imap { if !self.add_flag_finalized(context, uid, "\\Deleted").await { warn!(context, "Cannot mark {} as \"Deleted\" after copy.", uid); - emit_event!( - context, - EventType::ImapMessageMoved(format!( - "IMAP Message {} copied to {} (delete FAILED)", - display_folder_id, dest_folder - )) - ); + context.emit_event(EventType::ImapMessageMoved(format!( + "IMAP Message {} copied to {} (delete FAILED)", + display_folder_id, dest_folder + ))); ImapActionResult::Failed } else { self.config.selected_folder_needs_expunge = true; - emit_event!( - context, - EventType::ImapMessageMoved(format!( - "IMAP Message {} copied to {} (delete successfull)", - display_folder_id, dest_folder - )) - ); + context.emit_event(EventType::ImapMessageMoved(format!( + "IMAP Message {} copied to {} (delete successfull)", + display_folder_id, dest_folder + ))); ImapActionResult::Success } } @@ -1269,13 +1260,10 @@ impl Imap { ); ImapActionResult::RetryLater } else { - emit_event!( - context, - EventType::ImapMessageDeleted(format!( - "IMAP Message {} marked as deleted [{}]", - display_imap_id, message_id - )) - ); + context.emit_event(EventType::ImapMessageDeleted(format!( + "IMAP Message {} marked as deleted [{}]", + display_imap_id, message_id + ))); self.config.selected_folder_needs_expunge = true; ImapActionResult::Success } diff --git a/src/imex.rs b/src/imex.rs index eeadef710..c794689dd 100644 --- a/src/imex.rs +++ b/src/imex.rs @@ -759,7 +759,7 @@ async fn export_backup_inner(context: &Context, temp_path: &PathBuf) -> Result<( let progress = 1000 * written_files / count; if progress != last_progress && progress > 10 && progress < 1000 { // We already emitted ImexProgress(10) above - emit_event!(context, EventType::ImexProgress(progress)); + context.emit_event(EventType::ImexProgress(progress)); last_progress = progress; } } diff --git a/src/log.rs b/src/log.rs index e8927b548..0df7792f6 100644 --- a/src/log.rs +++ b/src/log.rs @@ -13,7 +13,7 @@ macro_rules! info { file = file!(), line = line!(), msg = &formatted); - emit_event!($ctx, $crate::EventType::Info(full)); + $ctx.emit_event($crate::EventType::Info(full)); }}; } @@ -28,7 +28,7 @@ macro_rules! warn { file = file!(), line = line!(), msg = &formatted); - emit_event!($ctx, $crate::EventType::Warning(full)); + $ctx.emit_event($crate::EventType::Warning(full)); }}; } @@ -39,17 +39,10 @@ macro_rules! error { }; ($ctx:expr, $msg:expr, $($args:expr),* $(,)?) => {{ let formatted = format!($msg, $($args),*); - emit_event!($ctx, $crate::EventType::Error(formatted)); + $ctx.emit_event($crate::EventType::Error(formatted)); }}; } -#[macro_export] -macro_rules! emit_event { - ($ctx:expr, $event:expr) => { - $ctx.emit_event($event); - }; -} - pub trait LogExt where Self: std::marker::Sized, @@ -136,7 +129,7 @@ impl LogExt for Result { ); // We can't use the warn!() macro here as the file!() and line!() macros // don't work with #[track_caller] - emit_event!(context, crate::EventType::Warning(full)); + context.emit_event(crate::EventType::Warning(full)); }; self } diff --git a/src/peerstate.rs b/src/peerstate.rs index 560085364..84a2d1851 100644 --- a/src/peerstate.rs +++ b/src/peerstate.rs @@ -278,7 +278,7 @@ impl Peerstate { let msg = stock_str::contact_setup_changed(context, self.addr.clone()).await; chat::add_info_msg(context, chat_id, msg, timestamp).await; - emit_event!(context, EventType::ChatModified(chat_id)); + context.emit_event(EventType::ChatModified(chat_id)); } else { bail!("contact with peerstate.addr {:?} not found", &self.addr); } diff --git a/src/securejoin.rs b/src/securejoin.rs index 063df7fd2..807d1abb4 100644 --- a/src/securejoin.rs +++ b/src/securejoin.rs @@ -638,7 +638,7 @@ pub(crate) async fn handle_securejoin_handshake( Contact::scaleup_origin_by_id(context, contact_id, Origin::SecurejoinInvited).await?; info!(context, "Auth verified.",); secure_connection_established(context, contact_chat_id).await?; - emit_event!(context, EventType::ContactsChanged(Some(contact_id))); + context.emit_event(EventType::ContactsChanged(Some(contact_id))); inviter_progress!(context, contact_id, 600); if join_vg { // the vg-member-added message is special: @@ -861,7 +861,7 @@ async fn secure_connection_established( }; let msg = stock_str::contact_verified(context, addr).await; chat::add_info_msg(context, contact_chat_id, msg, time()).await; - emit_event!(context, EventType::ChatModified(contact_chat_id)); + context.emit_event(EventType::ChatModified(contact_chat_id)); info!(context, "StockMessage::ContactVerified posted to 1:1 chat"); Ok(()) diff --git a/src/securejoin/bobstate.rs b/src/securejoin/bobstate.rs index 201462925..0ceb48f71 100644 --- a/src/securejoin/bobstate.rs +++ b/src/securejoin/bobstate.rs @@ -358,7 +358,7 @@ impl BobState { mark_peer_as_verified(context, self.invite.fingerprint()).await?; Contact::scaleup_origin_by_id(context, self.invite.contact_id(), Origin::SecurejoinJoined) .await?; - emit_event!(context, EventType::ContactsChanged(None)); + context.emit_event(EventType::ContactsChanged(None)); if let QrInvite::Group { .. } = self.invite { let member_added = mime_message