Skip to content

Commit 8893c7c

Browse files
committed
Fix test_mua_can_add
1 parent 71ca2e7 commit 8893c7c

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/receive_imf.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -2330,21 +2330,18 @@ async fn apply_group_changes(
23302330
let mut removed_ids = HashSet::<ContactId>::new();
23312331

23322332
if !recreate_member_list {
2333+
if mime_parser.get_header(HeaderDef::ChatVersion).is_none() {
2334+
// Allow non-Delta Chat MUAs to add members.
2335+
added_ids = new_members.difference(&chat_contacts).copied().collect();
2336+
}
2337+
23332338
if let Some(added_id) = added_id {
23342339
added_ids.insert(added_id);
23352340
}
2341+
23362342
new_members.clone_from(&chat_contacts);
23372343
// Don't delete any members locally, but instead add absent ones to provide group
23382344
// membership consistency for all members:
2339-
// - Classical MUA users usually don't intend to remove users from an email thread, so
2340-
// if they removed a recipient then it was probably by accident.
2341-
// - DC users could miss new member additions and then better to handle this in the same
2342-
// way as for classical MUA messages. Moreover, if we remove a member implicitly, they
2343-
// will never know that and continue to think they're still here.
2344-
// But it shouldn't be a big problem if somebody missed a member removal, because they
2345-
// will likely recreate the member list from the next received message. The problem
2346-
// occurs only if that "somebody" managed to reply earlier. Really, it's a problem for
2347-
// big groups with high message rate, but let it be for now.
23482345
new_members.extend(added_ids.clone());
23492346
}
23502347
if let Some(removed_id) = removed_id {

0 commit comments

Comments
 (0)