From 512dcaad45e85cefbe35b2075dde4e0d9cc34b87 Mon Sep 17 00:00:00 2001 From: trevor-signal <131492920+trevor-signal@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:28:29 -0500 Subject: [PATCH] Improve handling of expireTimerVersion glare --- ts/models/conversations.ts | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/ts/models/conversations.ts b/ts/models/conversations.ts index 984bbb7426..08edfc7e23 100644 --- a/ts/models/conversations.ts +++ b/ts/models/conversations.ts @@ -4679,32 +4679,37 @@ export class ConversationModel extends window.Backbone expireTimer = undefined; } + const timerMatchesLocalValue = + this.get('expireTimer') === expireTimer || + (!expireTimer && !this.get('expireTimer')); + + const localVersion = this.getExpireTimerVersion(); + const logId = `updateExpirationTimer(${this.idForLogging()}, ` + `${expireTimer || 'disabled'}, version=${version || 0}) ` + - `source=${source ?? '?'} reason=${reason}`; + `source=${source ?? '?'} localValue=${this.get('expireTimer')} ` + + `localVersion=${localVersion}, reason=${reason}`; if (isSetByOther) { - const expireTimerVersion = this.getExpireTimerVersion(); if (version) { - if (expireTimerVersion && version < expireTimerVersion) { - log.warn( - `${logId}: not updating, local version is ${expireTimerVersion}` - ); + if (localVersion && version < localVersion) { + log.warn(`${logId}: not updating, local version is ${localVersion}`); return; } - if (version === expireTimerVersion) { - log.warn(`${logId}: expire version glare`); + + if (version === localVersion) { + if (!timerMatchesLocalValue) { + log.warn(`${logId}: expire version glare`); + } } else { this.set({ expireTimerVersion: version }); log.info(`${logId}: updating expire version`); } } } - if ( - this.get('expireTimer') === expireTimer || - (!expireTimer && !this.get('expireTimer')) - ) { + + if (timerMatchesLocalValue) { return; }