fix: remove final instances of legacy type not in UI

fixed closed groups being deleteAfterSend incorrectly
pull/2971/head
William Grant 2 years ago
parent ff19c95a92
commit cc63887273

@ -117,8 +117,10 @@ import {
getSubscriberCountOutsideRedux, getSubscriberCountOutsideRedux,
} from '../state/selectors/sogsRoomInfo'; // decide it it makes sense to move this to a redux slice? } from '../state/selectors/sogsRoomInfo'; // decide it it makes sense to move this to a redux slice?
import { DisappearingMessageConversationType } from '../util/expiringMessages'; import {
import { ReleasedFeatures } from '../util/releaseFeature'; DisappearingMessageConversationType,
isLegacyDisappearingModeEnabled,
} from '../util/expiringMessages';
import { markAttributesAsReadIfNeeded } from './messageFactory'; import { markAttributesAsReadIfNeeded } from './messageFactory';
type InMemoryConvoInfos = { type InMemoryConvoInfos = {
@ -848,9 +850,6 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
return; return;
} }
// We will only support legacy disappearing messages for a short period before disappearing messages v2 is unlocked
const isDisappearingMessagesV2Released = await ReleasedFeatures.checkIsDisappearMessageV2FeatureReleased();
const isOutgoing = Boolean(!receivedAt); const isOutgoing = Boolean(!receivedAt);
source = source || UserUtils.getOurPubKeyStrFromCache(); source = source || UserUtils.getOurPubKeyStrFromCache();
@ -886,10 +885,10 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
fromSync, fromSync,
}, },
// TODO legacy messages support will be removed in a future release // TODO legacy messages support will be removed in a future release
expirationType: expirationType: isLegacyDisappearingModeEnabled(expirationType)
expirationType !== 'off' || isDisappearingMessagesV2Released ? expirationType : undefined, ? undefined
expireTimer: : expirationType,
expirationType !== 'off' || isDisappearingMessagesV2Released ? expireTimer : undefined, expireTimer: isLegacyDisappearingModeEnabled(expirationType) ? undefined : expireTimer,
}; };
if (!message) { if (!message) {

@ -90,8 +90,8 @@ import {
import { ReactionList } from '../types/Reaction'; import { ReactionList } from '../types/Reaction';
import { roomHasBlindEnabled } from '../types/sqlSharedTypes'; import { roomHasBlindEnabled } from '../types/sqlSharedTypes';
import { import {
DisappearingMessageConversationSetting, DisappearingMessageMode,
DisappearingMessageConversationType, DisappearingMessageType,
DisappearingMessageUpdate, DisappearingMessageUpdate,
ExpirationTimerOptions, ExpirationTimerOptions,
isLegacyDisappearingModeEnabled, isLegacyDisappearingModeEnabled,
@ -1008,20 +1008,26 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
} }
// TODO legacy messages support will be removed in a future release // TODO legacy messages support will be removed in a future release
const isLegacyDataMessage = Boolean( const isLegacyDisappearingDataMessage = Boolean(
(dataMessage.expireTimer && dataMessage.expireTimer > -1) || (dataMessage.expireTimer && dataMessage.expireTimer > -1) ||
(!content.expirationTimer && (!content.expirationTimer &&
dataMessage.flags === SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE) dataMessage.flags === SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE)
); );
const expirationType: DisappearingMessageConversationType = content.expirationType let expirationType: DisappearingMessageType = DisappearingMessageMode[content.expirationType];
? DisappearingMessageConversationSetting[content.expirationType]
: isLegacyDataMessage if (isLegacyDisappearingDataMessage) {
? DisappearingMessageConversationSetting[3] if (conversation.isMe() || conversation.isClosedGroup()) {
: 'off'; expirationType = 'deleteAfterSend';
const expirationTimer = isLegacyDataMessage } else {
expirationType = 'deleteAfterRead';
}
}
const expirationTimer = isLegacyDisappearingDataMessage
? Number(dataMessage.expireTimer) ? Number(dataMessage.expireTimer)
: content.expirationTimer; : content.expirationTimer;
const lastDisappearingMessageChangeTimestamp = content.lastDisappearingMessageChangeTimestamp const lastDisappearingMessageChangeTimestamp = content.lastDisappearingMessageChangeTimestamp
? Number(content.lastDisappearingMessageChangeTimestamp) ? Number(content.lastDisappearingMessageChangeTimestamp)
: undefined; : undefined;

@ -567,9 +567,9 @@ async function handleLegacyGroupUpdate(latestEnvelopeTimestamp: number) {
? legacyGroupConvo.get('active_at') ? legacyGroupConvo.get('active_at')
: latestEnvelopeTimestamp, : latestEnvelopeTimestamp,
expirationType: expirationType:
!!fromWrapper.disappearingTimerSeconds && fromWrapper.disappearingTimerSeconds === 0 fromWrapper.disappearingTimerSeconds && fromWrapper.disappearingTimerSeconds > 0
? 'off' ? 'deleteAfterSend'
: 'deleteAfterSend', : 'off',
expireTimer: fromWrapper.disappearingTimerSeconds, expireTimer: fromWrapper.disappearingTimerSeconds,
}; };

Loading…
Cancel
Save