From 58331209c7c0fbfc3f8467fa8082884d2d1a38a6 Mon Sep 17 00:00:00 2001 From: William Grant Date: Mon, 11 Sep 2023 10:09:36 +1000 Subject: [PATCH] fix: closed groups works correctly now I think --- ts/receiver/queuedJob.ts | 2 -- ts/session/group/closed-group.ts | 26 ++++---------------------- ts/util/expiringMessages.ts | 1 - 3 files changed, 4 insertions(+), 25 deletions(-) diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts index 27734cd13..ebd4e85e4 100644 --- a/ts/receiver/queuedJob.ts +++ b/ts/receiver/queuedJob.ts @@ -398,8 +398,6 @@ export async function handleMessageJob( // TODO I think this is incorrect? Let's fix if ( conversation && - (messageModel.isIncoming() || conversation.isMe()) && - expirationType && expireTimer > 0 && Boolean(messageModel.get('expirationStartTimestamp')) === false ) { diff --git a/ts/session/group/closed-group.ts b/ts/session/group/closed-group.ts index 939d3af75..f1d365bbf 100644 --- a/ts/session/group/closed-group.ts +++ b/ts/session/group/closed-group.ts @@ -27,7 +27,6 @@ import { UserUtils } from '../utils'; import { fromHexToArray, toHex } from '../utils/String'; import { DisappearAfterSendOnly, - changeToDisappearingMessageConversationType, changeToDisappearingMessageType, setExpirationStartTimestamp, } from '../../util/expiringMessages'; @@ -233,8 +232,8 @@ function buildGroupDiff(convo: ConversationModel, update: GroupInfo): GroupDiff return groupDiff; } -export async function updateOrCreateClosedGroup(details: GroupInfo, fromLegacyConfig?: boolean) { - const { id, expirationType, expireTimer } = details; +export async function updateOrCreateClosedGroup(details: GroupInfo) { + const { id } = details; const conversation = await getConversationController().getOrCreateAndWait( id, @@ -260,25 +259,6 @@ export async function updateOrCreateClosedGroup(details: GroupInfo, fromLegacyCo await conversation.updateGroupAdmins(details.admins, false); } - // if ( - // details.expirationType !== conversation.get('expirationType') || - // details.expireTimer !== conversation.get('expireTimer') - // ) { - // await conversation.updateExpireTimer({ - // providedExpirationType: changeToDisappearingMessageConversationType( - // conversation, - // expirationType, - // expireTimer - // ), - // providedExpireTimer: expireTimer || 0, - // providedChangeTimestamp: GetNetworkTime.getNowWithNetworkOffset(), - // providedSource: UserUtils.getOurPubKeyStrFromCache(), - // receivedAt: Date.now(), - // fromSync: true, - // fromConfigMessage: Boolean(fromLegacyConfig), - // }); - // } - await conversation.commit(); } @@ -324,6 +304,7 @@ async function sendAddedMembers( } const encryptionKeyPair = ECKeyPair.fromHexKeyPair(hexEncryptionKeyPair); + const expirationMode = convo.get('expirationType') || 'off'; const existingExpireTimer = convo.get('expireTimer') || 0; // Send the Added Members message to the group (only members already in the group will get it) const closedGroupControlMessage = new ClosedGroupAddedMembersMessage({ @@ -346,6 +327,7 @@ async function sendAddedMembers( members, keypair: encryptionKeyPair, identifier: messageId || uuidv4(), + expirationType: changeToDisappearingMessageType(convo, expirationMode), expireTimer: existingExpireTimer, }); diff --git a/ts/util/expiringMessages.ts b/ts/util/expiringMessages.ts index b7cde19de..9ae6f7568 100644 --- a/ts/util/expiringMessages.ts +++ b/ts/util/expiringMessages.ts @@ -374,7 +374,6 @@ export async function checkForExpireUpdateInContentMessage( const dataMessage = content.dataMessage as SignalService.DataMessage; // We will only support legacy disappearing messages for a short period before disappearing messages v2 is unlocked const isDisappearingMessagesV2Released = await ReleasedFeatures.checkIsDisappearMessageV2FeatureReleased(); - // debugger; const isLegacyContentMessage = checkIsLegacyContentMessage(content); const isLegacyDataMessage = Boolean(