Merge pull request #3040 from Bilb/fix-disappear-v2-hopefully-last-one

fix: do not force ttl for groupExpireTimerUpdate
pull/3042/head
Audric Ackermann 4 months ago committed by GitHub
commit 4bdae8b74e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -187,6 +187,7 @@ export const TimerNotification = (props: PropsForExpirationTimer) => {
const textToRender = useTextToRender(props);
const isGroupOrCommunity = useSelectedIsGroupOrCommunity();
const isGroupV2 = useSelectedIsGroupV2();
// renderOff is true when the update is put to off, or when we have a legacy group control message (as they are not expiring at all)
const renderOffIcon = props.disabled || (isGroupOrCommunity && !isGroupV2);
if (!textToRender || textToRender.length === 0) {

@ -882,15 +882,23 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
expirationMode = 'off';
expireTimer = 0;
}
const shouldAddExpireUpdateMsgPrivate = this.isPrivate() && !fromConfigMessage;
const isLegacyGroup = this.isClosedGroup() && !PubKey.isClosedGroupV3(this.id);
/**
* it's ugly, but we want to add a message for legacy groups only when
* - not coming from a config message
* - effectively changes the setting
* - ignores a off setting for a legacy group (as we can get a setting from restored from configMessage, and a newgroup can still be in the swarm when linking a device
*/
const shouldAddExpireUpdateMsgGroup =
isLegacyGroup &&
!fromConfigMessage &&
(expirationMode !== this.get('expirationMode') || expireTimer !== this.get('expireTimer')) &&
expirationMode !== 'off';
const shouldAddExpireUpdateMessage =
(this.isPrivate() && !fromConfigMessage) ||
(this.isClosedGroup() &&
!PubKey.isClosedGroupV3(this.id) &&
!fromConfigMessage &&
expirationMode !== this.get('expirationMode') &&
expireTimer !== this.get('expireTimer') &&
expirationMode !== 'off' &&
expireTimer !== 0);
shouldAddExpireUpdateMsgPrivate || shouldAddExpireUpdateMsgGroup;
// When we add a disappearing messages notification to the conversation, we want it
// to be above the message that initiated that change, hence the subtraction.

@ -1,4 +1,5 @@
import { SignalService } from '../../../../protobuf';
import { TTL_DEFAULT } from '../../../constants';
import { PubKey } from '../../../types';
import { StringUtils } from '../../../utils';
import { DataMessage } from '../DataMessage';
@ -60,4 +61,11 @@ export class ExpirationTimerUpdateMessage extends DataMessage {
return data;
}
public ttl(): number {
if (this.groupId) {
return TTL_DEFAULT.CONTENT_MESSAGE;
}
return super.ttl();
}
}

Loading…
Cancel
Save