mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
api!: remove data from DC_EVENT_INCOMING_MSG_BUNCH
It is not used by existing clients and incorrectly included all downloaded messages, including outgoing messages and MDNs.
This commit is contained in:
@@ -6074,10 +6074,12 @@ void dc_event_unref(dc_event_t* event);
|
|||||||
* Downloading a bunch of messages just finished. This is an
|
* Downloading a bunch of messages just finished. This is an
|
||||||
* event to allow the UI to only show one notification per message bunch,
|
* event to allow the UI to only show one notification per message bunch,
|
||||||
* instead of cluttering the user with many notifications.
|
* instead of cluttering the user with many notifications.
|
||||||
* For each of the msg_ids, an additional #DC_EVENT_INCOMING_MSG event was emitted before.
|
* UI may store #DC_EVENT_INCOMING_MSG events
|
||||||
|
* and display notifications for all messages at once
|
||||||
|
* when this event arrives.
|
||||||
*
|
*
|
||||||
* @param data1 0
|
* @param data1 0
|
||||||
* @param data2 (char*) msg_ids, a json object with the message ids.
|
* @param data2 0
|
||||||
*/
|
*/
|
||||||
#define DC_EVENT_INCOMING_MSG_BUNCH 2006
|
#define DC_EVENT_INCOMING_MSG_BUNCH 2006
|
||||||
|
|
||||||
|
|||||||
@@ -719,7 +719,8 @@ pub unsafe extern "C" fn dc_event_get_data2_str(event: *mut dc_event_t) -> *mut
|
|||||||
| EventType::WebxdcStatusUpdate { .. }
|
| EventType::WebxdcStatusUpdate { .. }
|
||||||
| EventType::WebxdcInstanceDeleted { .. }
|
| EventType::WebxdcInstanceDeleted { .. }
|
||||||
| EventType::AccountsBackgroundFetchDone
|
| EventType::AccountsBackgroundFetchDone
|
||||||
| EventType::ChatEphemeralTimerModified { .. } => ptr::null_mut(),
|
| EventType::ChatEphemeralTimerModified { .. }
|
||||||
|
| EventType::IncomingMsgBunch { .. } => ptr::null_mut(),
|
||||||
EventType::ConfigureProgress { comment, .. } => {
|
EventType::ConfigureProgress { comment, .. } => {
|
||||||
if let Some(comment) = comment {
|
if let Some(comment) = comment {
|
||||||
comment.to_c_string().unwrap_or_default().into_raw()
|
comment.to_c_string().unwrap_or_default().into_raw()
|
||||||
@@ -731,11 +732,6 @@ pub unsafe extern "C" fn dc_event_get_data2_str(event: *mut dc_event_t) -> *mut
|
|||||||
let data2 = file.to_c_string().unwrap_or_default();
|
let data2 = file.to_c_string().unwrap_or_default();
|
||||||
data2.into_raw()
|
data2.into_raw()
|
||||||
}
|
}
|
||||||
EventType::IncomingMsgBunch { msg_ids } => serde_json::to_string(msg_ids)
|
|
||||||
.unwrap_or_default()
|
|
||||||
.to_c_string()
|
|
||||||
.unwrap_or_default()
|
|
||||||
.into_raw(),
|
|
||||||
EventType::ConfigSynced { key } => {
|
EventType::ConfigSynced { key } => {
|
||||||
let data2 = key.to_string().to_c_string().unwrap_or_default();
|
let data2 = key.to_string().to_c_string().unwrap_or_default();
|
||||||
data2.into_raw()
|
data2.into_raw()
|
||||||
|
|||||||
@@ -101,17 +101,15 @@ pub enum EventType {
|
|||||||
/// There is a fresh message. Typically, the user will show an notification
|
/// There is a fresh message. Typically, the user will show an notification
|
||||||
/// when receiving this message.
|
/// when receiving this message.
|
||||||
///
|
///
|
||||||
/// There is no extra #DC_EVENT_MSGS_CHANGED event send together with this event.
|
/// There is no extra #DC_EVENT_MSGS_CHANGED event sent together with this event.
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
IncomingMsg { chat_id: u32, msg_id: u32 },
|
IncomingMsg { chat_id: u32, msg_id: u32 },
|
||||||
|
|
||||||
/// Downloading a bunch of messages just finished. This is an experimental
|
/// Downloading a bunch of messages just finished. This is an
|
||||||
/// event to allow the UI to only show one notification per message bunch,
|
/// event to allow the UI to only show one notification per message bunch,
|
||||||
/// instead of cluttering the user with many notifications.
|
/// instead of cluttering the user with many notifications.
|
||||||
///
|
|
||||||
/// msg_ids contains the message ids.
|
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
IncomingMsgBunch { msg_ids: Vec<u32> },
|
IncomingMsgBunch,
|
||||||
|
|
||||||
/// Messages were seen or noticed.
|
/// Messages were seen or noticed.
|
||||||
/// chat id is always set.
|
/// chat id is always set.
|
||||||
@@ -287,9 +285,7 @@ impl From<CoreEventType> for EventType {
|
|||||||
chat_id: chat_id.to_u32(),
|
chat_id: chat_id.to_u32(),
|
||||||
msg_id: msg_id.to_u32(),
|
msg_id: msg_id.to_u32(),
|
||||||
},
|
},
|
||||||
CoreEventType::IncomingMsgBunch { msg_ids } => IncomingMsgBunch {
|
CoreEventType::IncomingMsgBunch => IncomingMsgBunch,
|
||||||
msg_ids: msg_ids.into_iter().map(|id| id.to_u32()).collect(),
|
|
||||||
},
|
|
||||||
CoreEventType::MsgsNoticed(chat_id) => MsgsNoticed {
|
CoreEventType::MsgsNoticed(chat_id) => MsgsNoticed {
|
||||||
chat_id: chat_id.to_u32(),
|
chat_id: chat_id.to_u32(),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -107,10 +107,7 @@ pub enum EventType {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/// Downloading a bunch of messages just finished.
|
/// Downloading a bunch of messages just finished.
|
||||||
IncomingMsgBunch {
|
IncomingMsgBunch,
|
||||||
/// List of incoming message IDs.
|
|
||||||
msg_ids: Vec<MsgId>,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// Messages were seen or noticed.
|
/// Messages were seen or noticed.
|
||||||
/// chat id is always set.
|
/// chat id is always set.
|
||||||
|
|||||||
@@ -717,12 +717,8 @@ impl Imap {
|
|||||||
|
|
||||||
info!(context, "{} mails read from \"{}\".", read_cnt, folder);
|
info!(context, "{} mails read from \"{}\".", read_cnt, folder);
|
||||||
|
|
||||||
let msg_ids: Vec<MsgId> = received_msgs
|
if !received_msgs.is_empty() {
|
||||||
.iter()
|
context.emit_event(EventType::IncomingMsgBunch);
|
||||||
.flat_map(|m| m.msg_ids.clone())
|
|
||||||
.collect();
|
|
||||||
if !msg_ids.is_empty() {
|
|
||||||
context.emit_event(EventType::IncomingMsgBunch { msg_ids });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
chat::mark_old_messages_as_noticed(context, received_msgs).await?;
|
chat::mark_old_messages_as_noticed(context, received_msgs).await?;
|
||||||
|
|||||||
Reference in New Issue
Block a user