|
|
|
@ -856,9 +856,12 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const previousExpirationMode = this.getExpirationMode();
|
|
|
|
|
const previousExpirationTimer = this.getExpireTimer();
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
isEqual(expirationMode, this.getExpirationMode()) &&
|
|
|
|
|
isEqual(expireTimer, this.getExpireTimer())
|
|
|
|
|
isEqual(expirationMode, previousExpirationMode) &&
|
|
|
|
|
isEqual(expireTimer, previousExpirationTimer)
|
|
|
|
|
) {
|
|
|
|
|
window.log.debug(
|
|
|
|
|
`[updateExpireTimer] Ignoring ExpireTimerUpdate ${
|
|
|
|
@ -898,6 +901,11 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
|
|
|
|
|
expirationMode
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// For some reasons, we want a timer update to "off" to disappear with the previous setting on that conversation...
|
|
|
|
|
const shouldUsePreviousExpiration =
|
|
|
|
|
expirationType === 'unknown' &&
|
|
|
|
|
previousExpirationMode !== 'off' &&
|
|
|
|
|
previousExpirationMode !== 'legacy';
|
|
|
|
|
const commonAttributes = {
|
|
|
|
|
flags: SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE,
|
|
|
|
|
expirationTimerUpdate: {
|
|
|
|
@ -927,6 +935,11 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
|
|
|
|
|
received_at: timestamp,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
message.set({
|
|
|
|
|
expirationType: shouldUsePreviousExpiration ? previousExpirationMode : expirationType,
|
|
|
|
|
expireTimer: shouldUsePreviousExpiration ? previousExpirationTimer : expireTimer,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.isActive()) {
|
|
|
|
|