mirror of
https://github.com/chatmail/core.git
synced 2026-04-17 13:36:30 +03:00
Compare commits
2 Commits
v2.41.0
...
hoc/timest
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c64e4c7f8c | ||
|
|
d7ada8affa |
@@ -123,20 +123,23 @@ pub(super) async fn start_protocol(context: &Context, invite: QrInvite) -> Resul
|
||||
}
|
||||
}
|
||||
|
||||
let timestamp = smeared_time(context);
|
||||
match invite {
|
||||
QrInvite::Group { .. } => {
|
||||
let joining_chat_id = joining_chat_id(context, &invite, private_chat_id).await?;
|
||||
let joining_chat_id =
|
||||
joining_chat_id(context, &invite, private_chat_id, timestamp).await?;
|
||||
let msg = stock_str::secure_join_started(context, invite.contact_id()).await;
|
||||
chat::add_info_msg(context, joining_chat_id, &msg, time()).await?;
|
||||
chat::add_info_msg(context, joining_chat_id, &msg, timestamp).await?;
|
||||
Ok(joining_chat_id)
|
||||
}
|
||||
QrInvite::Broadcast { .. } => {
|
||||
let joining_chat_id = joining_chat_id(context, &invite, private_chat_id).await?;
|
||||
let joining_chat_id =
|
||||
joining_chat_id(context, &invite, private_chat_id, timestamp).await?;
|
||||
// We created the broadcast channel already, now we need to add Alice to it.
|
||||
if !is_contact_in_chat(context, joining_chat_id, invite.contact_id()).await? {
|
||||
chat::add_to_chat_contacts_table(
|
||||
context,
|
||||
time(),
|
||||
timestamp,
|
||||
joining_chat_id,
|
||||
&[invite.contact_id()],
|
||||
)
|
||||
@@ -148,28 +151,26 @@ pub(super) async fn start_protocol(context: &Context, invite: QrInvite) -> Resul
|
||||
// use the generic `Establishing guaranteed end-to-end encryption, please wait…`
|
||||
if !is_contact_in_chat(context, joining_chat_id, ContactId::SELF).await? {
|
||||
let msg = stock_str::securejoin_wait(context).await;
|
||||
chat::add_info_msg(context, joining_chat_id, &msg, time()).await?;
|
||||
chat::add_info_msg(context, joining_chat_id, &msg, timestamp).await?;
|
||||
}
|
||||
Ok(joining_chat_id)
|
||||
}
|
||||
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
|
||||
.calc_sort_timestamp(context, 0, sort_to_bottom, received, incoming)
|
||||
.await?;
|
||||
let ts_start = time();
|
||||
chat::add_info_msg_with_cmd(
|
||||
context,
|
||||
private_chat_id,
|
||||
&stock_str::securejoin_wait(context).await,
|
||||
SystemMessage::SecurejoinWait,
|
||||
ts_sort,
|
||||
Some(ts_start),
|
||||
Some(timestamp),
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
@@ -242,8 +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 chat_id = joining_chat_id(context, &invite, chat_id).await?;
|
||||
chat::add_info_msg(context, chat_id, &msg, time()).await?;
|
||||
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, timestamp).await?;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,6 +370,7 @@ async fn joining_chat_id(
|
||||
context: &Context,
|
||||
invite: &QrInvite,
|
||||
alice_chat_id: ChatId,
|
||||
timestamp: i64,
|
||||
) -> Result<ChatId> {
|
||||
match invite {
|
||||
QrInvite::Contact { .. } => Ok(alice_chat_id),
|
||||
@@ -391,7 +394,7 @@ async fn joining_chat_id(
|
||||
name,
|
||||
Blocked::Not,
|
||||
None,
|
||||
smeared_time(context),
|
||||
timestamp,
|
||||
)
|
||||
.await?
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
InBroadcast#Chat#2002: My Channel [2 member(s)] Icon: e9b6c7a78aa2e4f415644f55a553e73.png
|
||||
--------------------------------------------------------------------------------
|
||||
Msg#2004: info (Contact#Contact#Info): Establishing guaranteed end-to-end encryption, please wait… [NOTICED][INFO]
|
||||
Msg#2003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO]
|
||||
Msg#2004: info (Contact#Contact#Info): Establishing guaranteed end-to-end encryption, please wait… [NOTICED][INFO]
|
||||
Msg#2007🔒: (Contact#Contact#2001): You joined the channel. [FRESH][INFO]
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
InBroadcast#Chat#2002: Channel [1 member(s)]
|
||||
--------------------------------------------------------------------------------
|
||||
Msg#2004: info (Contact#Contact#Info): Establishing guaranteed end-to-end encryption, please wait… [NOTICED][INFO]
|
||||
Msg#2003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO]
|
||||
Msg#2004: info (Contact#Contact#Info): Establishing guaranteed end-to-end encryption, please wait… [NOTICED][INFO]
|
||||
Msg#2008🔒: (Contact#Contact#2001): You joined the channel. [FRESH][INFO]
|
||||
Msg#2010🔒: (Contact#Contact#2001): hi [FRESH]
|
||||
Msg#2011🔒: (Contact#Contact#2001): Member Me removed by alice@example.org. [FRESH][INFO]
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
Group#Chat#6002: Group [3 member(s)]
|
||||
--------------------------------------------------------------------------------
|
||||
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#6003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO]
|
||||
Msg#6008🔒: (Contact#Contact#6001): Member Me added by alice@example.org. [FRESH][INFO]
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Group#Chat#3002: Group [3 member(s)]
|
||||
--------------------------------------------------------------------------------
|
||||
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#3003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [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]
|
||||
|
||||
Reference in New Issue
Block a user