Skip to content

Commit 110f0d3

Browse files
committed
2squash: make reactions tests pass
1 parent cdc0326 commit 110f0d3

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/receive_imf.rs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ pub struct ReceivedMsg {
5454
/// Received message state.
5555
pub state: MessageState,
5656

57+
/// Whether the message is hidden.
58+
pub hidden: bool,
59+
5760
/// Message timestamp for sorting.
5861
pub sort_timestamp: i64,
5962

@@ -192,6 +195,7 @@ pub(crate) async fn receive_imf_inner(
192195
return Ok(Some(ReceivedMsg {
193196
chat_id: DC_CHAT_ID_TRASH,
194197
state: MessageState::Undefined,
198+
hidden: false,
195199
sort_timestamp: 0,
196200
msg_ids,
197201
needs_delete_job: false,
@@ -373,6 +377,7 @@ pub(crate) async fn receive_imf_inner(
373377
received_msg = Some(ReceivedMsg {
374378
chat_id: DC_CHAT_ID_TRASH,
375379
state: MessageState::InSeen,
380+
hidden: false,
376381
sort_timestamp: mime_parser.timestamp_sent,
377382
msg_ids: vec![msg_id],
378383
needs_delete_job: res == securejoin::HandshakeMessage::Done,
@@ -611,7 +616,11 @@ pub(crate) async fn receive_imf_inner(
611616
} else if !chat_id.is_trash() {
612617
let fresh = received_msg.state == MessageState::InFresh;
613618
for msg_id in &received_msg.msg_ids {
614-
chat_id.emit_msg_event(context, *msg_id, mime_parser.incoming && fresh);
619+
chat_id.emit_msg_event(
620+
context,
621+
*msg_id,
622+
mime_parser.incoming && fresh && !received_msg.hidden,
623+
);
615624
}
616625
}
617626
context.new_msgs_notify.notify_one();
@@ -1018,7 +1027,14 @@ async fn add_parts(
10181027
}
10191028
}
10201029

1021-
state = if seen || fetching_existing_messages || is_mdn || chat_id_blocked == Blocked::Yes {
1030+
state = if seen
1031+
|| fetching_existing_messages
1032+
|| is_mdn
1033+
// Currently only reactions are hidden, so this check is just in case we have other
1034+
// hidden messages in the future to make `chat::marknoticed_chat()` no-op for them.
1035+
|| (hidden && !is_reaction)
1036+
|| chat_id_blocked == Blocked::Yes
1037+
{
10221038
MessageState::InSeen
10231039
} else {
10241040
MessageState::InFresh
@@ -1730,6 +1746,7 @@ RETURNING id
17301746
Ok(ReceivedMsg {
17311747
chat_id,
17321748
state,
1749+
hidden,
17331750
sort_timestamp,
17341751
msg_ids: created_db_entries,
17351752
needs_delete_job,

0 commit comments

Comments
 (0)