|
|
|
@ -90,12 +90,10 @@ import {
|
|
|
|
|
import { ReactionList } from '../types/Reaction';
|
|
|
|
|
import { roomHasBlindEnabled } from '../types/sqlSharedTypes';
|
|
|
|
|
import {
|
|
|
|
|
DisappearingMessageMode,
|
|
|
|
|
DisappearingMessageType,
|
|
|
|
|
DisappearingMessageUpdate,
|
|
|
|
|
ExpirationTimerOptions,
|
|
|
|
|
setExpirationStartTimestamp,
|
|
|
|
|
changeToDisappearingMessageConversationType,
|
|
|
|
|
checkForExpireUpdateInContentMessage,
|
|
|
|
|
} from '../util/expiringMessages';
|
|
|
|
|
import { LinkPreviews } from '../util/linkPreviews';
|
|
|
|
|
import { Notifications } from '../util/notifications';
|
|
|
|
@ -1025,40 +1023,16 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
|
|
|
|
|
throw new Error('Cannot trigger syncMessage with unknown convo.');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO legacy messages support will be removed in a future release
|
|
|
|
|
const isLegacyDisappearingDataMessage = Boolean(
|
|
|
|
|
(dataMessage.expireTimer && dataMessage.expireTimer > -1) ||
|
|
|
|
|
(!content.expirationTimer &&
|
|
|
|
|
dataMessage.flags === SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const expirationTimer = isLegacyDisappearingDataMessage
|
|
|
|
|
? Number(dataMessage.expireTimer)
|
|
|
|
|
: content.expirationTimer;
|
|
|
|
|
|
|
|
|
|
const expirationType: DisappearingMessageType =
|
|
|
|
|
DisappearingMessageMode[content.expirationType];
|
|
|
|
|
|
|
|
|
|
const lastDisappearingMessageChangeTimestamp = content.lastDisappearingMessageChangeTimestamp
|
|
|
|
|
? Number(content.lastDisappearingMessageChangeTimestamp)
|
|
|
|
|
: undefined;
|
|
|
|
|
|
|
|
|
|
let expireUpdate: DisappearingMessageUpdate | null = null;
|
|
|
|
|
if (expirationType && expirationTimer !== undefined) {
|
|
|
|
|
expireUpdate = {
|
|
|
|
|
expirationType,
|
|
|
|
|
expirationTimer,
|
|
|
|
|
lastDisappearingMessageChangeTimestamp,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
const expireUpdate = await checkForExpireUpdateInContentMessage(content, conversation);
|
|
|
|
|
|
|
|
|
|
const syncMessage = buildSyncMessage(
|
|
|
|
|
this.id,
|
|
|
|
|
dataMessage as SignalService.DataMessage,
|
|
|
|
|
conversation.id,
|
|
|
|
|
sentTimestamp,
|
|
|
|
|
expireUpdate || undefined
|
|
|
|
|
expireUpdate
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
await getMessageQueue().sendSyncMessage({
|
|
|
|
|
namespace: SnodeNamespaces.UserMessages,
|
|
|
|
|
message: syncMessage,
|
|
|
|
|