diff --git a/src/securejoin/bob.rs b/src/securejoin/bob.rs index 45224fd82..32a299310 100644 --- a/src/securejoin/bob.rs +++ b/src/securejoin/bob.rs @@ -158,8 +158,7 @@ pub(super) async fn start_protocol(context: &Context, invite: QrInvite) -> Resul QrInvite::Contact { .. } => { // For setup-contact the BobState already ensured the 1:1 chat exists because it // uses it to send the handshake messages. - // Calculate the sort timestamp before checking the chat protection status so that if we - // race with its change, we don't add our message below the protection message. + // Use calc_sort_timestamp() to make sure that the new message is the last message in the chat. let sort_to_bottom = true; let (received, incoming) = (false, false); let ts_sort = private_chat_id @@ -244,9 +243,9 @@ pub(super) async fn handle_auth_required( // so only show it when joining a group and not for a 1:1 chat or broadcast channel. let contact_id = invite.contact_id(); let msg = stock_str::secure_join_replies(context, contact_id).await; - let timestamp = message.timestamp_sent; + let timestamp = smeared_time(context); let chat_id = joining_chat_id(context, &invite, chat_id, timestamp).await?; - chat::add_info_msg(context, chat_id, &msg, time()).await?; + chat::add_info_msg(context, chat_id, &msg, timestamp).await?; } } diff --git a/test-data/golden/two_group_securejoins b/test-data/golden/two_group_securejoins index d79e67c3c..a7a5e627f 100644 --- a/test-data/golden/two_group_securejoins +++ b/test-data/golden/two_group_securejoins @@ -1,9 +1,9 @@ Group#Chat#6002: Group [3 member(s)] -------------------------------------------------------------------------------- -Msg#6006: info (Contact#Contact#Info): alice@example.org replied, waiting for being added to the group… [NOTICED][INFO] Msg#6003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] Msg#6004: info (Contact#Contact#Info): alice@example.org invited you to join this group. Waiting for the device of alice@example.org to reply… [NOTICED][INFO] +Msg#6006: info (Contact#Contact#Info): alice@example.org replied, waiting for being added to the group… [NOTICED][INFO] Msg#6008🔒: (Contact#Contact#6001): Member Me added by alice@example.org. [FRESH][INFO] -------------------------------------------------------------------------------- diff --git a/test-data/golden/verified_chats_editor_reordering b/test-data/golden/verified_chats_editor_reordering index cf8638562..288ed1055 100644 --- a/test-data/golden/verified_chats_editor_reordering +++ b/test-data/golden/verified_chats_editor_reordering @@ -1,10 +1,10 @@ Group#Chat#3002: Group [3 member(s)] -------------------------------------------------------------------------------- -Msg#3006: info (Contact#Contact#Info): alice@example.org replied, waiting for being added to the group… [NOTICED][INFO] Msg#3003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] Msg#3004: info (Contact#Contact#Info): alice@example.org invited you to join this group. Waiting for the device of alice@example.org to reply… [NOTICED][INFO] +Msg#3006: info (Contact#Contact#Info): alice@example.org replied, waiting for being added to the group… [NOTICED][INFO] Msg#3008🔒: (Contact#Contact#3002): [FRESH] Msg#3009: info (Contact#Contact#Info): Member bob@example.net added. [NOTICED][INFO] Msg#3010🔒: (Contact#Contact#3001): Member Me added by alice@example.org. [FRESH][INFO]