Skip to content

Commit 18d25df

Browse files
committed
add device-message only once
1 parent 37dde81 commit 18d25df

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/chat.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1929,9 +1929,26 @@ pub fn get_chat_id_by_grpid(context: &Context, grpid: impl AsRef<str>) -> (u32,
19291929
}
19301930

19311931
pub fn add_device_msg(context: &Context, msg: &mut Message) -> Result<MsgId, Error> {
1932+
let label = format!("info-{}", dc_create_id());
1933+
add_device_msg_once(context, &label, msg)
1934+
}
1935+
1936+
pub fn add_device_msg_once(
1937+
context: &Context,
1938+
label: &str,
1939+
msg: &mut Message,
1940+
) -> Result<MsgId, Error> {
19321941
let (chat_id, _blocked) =
19331942
create_or_lookup_by_contact_id(context, DC_CONTACT_ID_DEVICE, Blocked::Not)?;
1934-
let rfc724_mid = dc_create_outgoing_rfc724_mid(None, "@device");
1943+
let rfc724_mid = format!("{}@device", label);
1944+
1945+
if let Ok((_, _, msg_id)) = message::rfc724_mid_exists(context, &rfc724_mid) {
1946+
info!(
1947+
context,
1948+
"device-message {} already exist as {}", label, msg_id
1949+
);
1950+
return Ok(msg_id);
1951+
}
19351952

19361953
prepare_msg_blob(context, msg)?;
19371954
unarchive(context, chat_id)?;
@@ -1955,6 +1972,7 @@ pub fn add_device_msg(context: &Context, msg: &mut Message) -> Result<MsgId, Err
19551972
let row_id = sql::get_rowid(context, &context.sql, "msgs", "rfc724_mid", &rfc724_mid);
19561973
let msg_id = MsgId::new(row_id);
19571974
context.call_cb(Event::IncomingMsg { chat_id, msg_id });
1975+
info!(context, "device-message {} added as {}", label, msg_id);
19581976

19591977
Ok(msg_id)
19601978
}

src/imex.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ fn maybe_add_bcc_self_device_msg(context: &Context) -> Result<()> {
245245
go to the settings and enable \"Send copy to self\"."
246246
.to_string(),
247247
);
248-
chat::add_device_msg(context, &mut msg)?;
248+
chat::add_device_msg_once(context, "bcc-self-hint", &mut msg)?;
249249
}
250250
Ok(())
251251
}

0 commit comments

Comments
 (0)