From 8710b7a9e87df3732b3cd770d12e40ec5ceeb43d Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Mon, 9 Nov 2020 12:24:17 +1100 Subject: [PATCH] medium group: send existing expiretimer to joining members if set --- ts/session/medium_group/index.ts | 19 ++++++++++++++++++- .../content/data/GroupInvitationMessage.ts | 1 - 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ts/session/medium_group/index.ts b/ts/session/medium_group/index.ts index 98cdc30ef..ea4dcd12f 100644 --- a/ts/session/medium_group/index.ts +++ b/ts/session/medium_group/index.ts @@ -392,6 +392,7 @@ export async function initiateGroupUpdate( members, is_medium_group: isMediumGroup, admins: convo.get('groupAdmins'), + expireTimer: convo.get('expireTimer'), }; if (isMediumGroup) { @@ -593,7 +594,7 @@ async function sendGroupUpdateForMedium( groupUpdate: GroupInfo, messageId?: string ) { - const { id: groupId, members, name: groupName } = groupUpdate; + const { id: groupId, members, name: groupName, expireTimer } = groupUpdate; const ourPrimary = await UserUtil.getPrimary(); const leavingMembers = diff.leavingMembers || []; @@ -700,6 +701,22 @@ async function sendGroupUpdateForMedium( memberPubKey, mediumGroupCreateMessage ); + // if an expire timer is set, we have to send it to the joining members + if (expireTimer && expireTimer > 0) { + const expireUpdate = { + timestamp: Date.now(), + expireTimer, + groupId: groupId, + }; + + const expirationTimerMessage = new ExpirationTimerUpdateMessage( + expireUpdate + ); + await getMessageQueue().sendUsingMultiDevice( + memberPubKey, + expirationTimerMessage + ); + } }); } } diff --git a/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts b/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts index 868ab6c92..a5ebbf569 100644 --- a/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts +++ b/ts/session/messages/outgoing/content/data/GroupInvitationMessage.ts @@ -37,7 +37,6 @@ export class GroupInvitationMessage extends DataMessage { serverName: this.serverName, }); - return new SignalService.DataMessage({ groupInvitation, expireTimer: this.expireTimer,