From 3ed041c4a501d12553028ed93682e1f061e06109 Mon Sep 17 00:00:00 2001 From: William Grant Date: Mon, 2 Oct 2023 14:15:36 +1100 Subject: [PATCH] feat: created getters on convo model replaced all expirationMode calls --- ts/models/conversation.ts | 34 +++++++++++++++---- ts/receiver/configMessage.ts | 6 ++-- ts/receiver/contentMessage.ts | 2 +- ts/session/group/closed-group.ts | 6 ++-- ts/session/utils/calling/CallManager.ts | 6 ++-- .../libsession/libsession_utils_contacts.ts | 2 +- .../libsession_utils_user_groups.ts | 2 +- ts/util/expiringMessages.ts | 10 +++--- 8 files changed, 44 insertions(+), 24 deletions(-) diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts index 3f38f5277..576fe1e69 100644 --- a/ts/models/conversation.ts +++ b/ts/models/conversation.ts @@ -327,8 +327,8 @@ export class ConversationModel extends Backbone.Model { toRet.avatarPath = avatarPath; } - if (this.get('expirationMode')) { - toRet.expirationMode = this.get('expirationMode'); + if (this.getExpirationMode()) { + toRet.expirationMode = this.getExpirationMode(); } if (this.get('lastDisappearingMessageChangeTimestamp')) { @@ -757,7 +757,7 @@ export class ConversationModel extends Backbone.Model { expirationType: changeToDisappearingMessageType( this, this.get('expireTimer'), - this.get('expirationMode') + this.getExpirationMode() ), expireTimer: this.get('expireTimer'), serverTimestamp: this.isPublic() ? networkTimestamp : undefined, @@ -849,7 +849,7 @@ export class ConversationModel extends Backbone.Model { // NOTE: We don' mind if the message is the same, we still want to update the conversation because we want to show visible control messages we receive an ExpirationTimerUpdate // Compare mode and timestamp if ( - isEqual(expirationMode, this.get('expirationMode')) && + isEqual(expirationMode, this.getExpirationMode()) && isEqual(expireTimer, this.get('expireTimer')) ) { window.log.info( @@ -2337,15 +2337,35 @@ export class ConversationModel extends Backbone.Model { private isDisappearingMode(mode: DisappearingMessageConversationModeType) { const success = mode === 'deleteAfterRead' - ? this.get('expirationMode') === 'deleteAfterRead' + ? this.getExpirationMode() === 'deleteAfterRead' : mode === 'deleteAfterSend' - ? this.get('expirationMode') === 'deleteAfterSend' + ? this.getExpirationMode() === 'deleteAfterSend' : mode === 'off' - ? this.get('expirationMode') === 'off' + ? this.getExpirationMode() === 'off' : false; return success; } + + // NOTE We want to replace Backbone .get() calls with these getters as we migrate to Redux completely eventually + // region Start of getters + public getExpirationMode() { + return this.get('expirationMode'); + } + + public getExpireTimer() { + return this.get('expireTimer'); + } + + public getHasOutdatedClient() { + return this.get('hasOutdatedClient'); + } + + public getLastDisappearingMessageChangeTimestamp() { + return this.get('lastDisappearingMessageChangeTimestamp'); + } + + // endregon } export async function commitConversationAndRefreshWrapper(id: string) { diff --git a/ts/receiver/configMessage.ts b/ts/receiver/configMessage.ts index 7f118b783..00998e73e 100644 --- a/ts/receiver/configMessage.ts +++ b/ts/receiver/configMessage.ts @@ -384,7 +384,7 @@ async function handleContactsUpdate(result: IncomingConfResult): Promise 0 ) { const messages2Expire = await Data.getDisappearingUnreadByConversation( diff --git a/ts/receiver/contentMessage.ts b/ts/receiver/contentMessage.ts index f5562d0f6..b7caf9399 100644 --- a/ts/receiver/contentMessage.ts +++ b/ts/receiver/contentMessage.ts @@ -872,7 +872,7 @@ export async function handleDataExtractionNotification( const envelopeTimestamp = toNumber(timestamp); const referencedAttachmentTimestamp = toNumber(referencedAttachment); - const expirationMode = convo.get('expirationMode'); + const expirationMode = convo.getExpirationMode(); const expireTimer = convo.get('expireTimer'); let expirationType; let expirationStartTimestamp; diff --git a/ts/session/group/closed-group.ts b/ts/session/group/closed-group.ts index b8bfd9d97..f843b91f9 100644 --- a/ts/session/group/closed-group.ts +++ b/ts/session/group/closed-group.ts @@ -75,7 +75,7 @@ export async function initiateClosedGroupUpdate( const expirationType = changeToDisappearingMessageType( convo, convo.get('expireTimer'), - convo.get('expirationMode') + convo.getExpirationMode() ); if (expirationType === 'deleteAfterRead') { @@ -173,7 +173,7 @@ export async function addUpdateMessage( groupUpdate.kicked = diff.kickedMembers; } - const expirationMode = convo.get('expirationMode'); + const expirationMode = convo.getExpirationMode(); const expireTimer = convo.get('expireTimer'); let expirationType; let expirationStartTimestamp; @@ -316,7 +316,7 @@ async function sendAddedMembers( } const encryptionKeyPair = ECKeyPair.fromHexKeyPair(hexEncryptionKeyPair); - const expirationMode = convo.get('expirationMode') || 'off'; + const expirationMode = convo.getExpirationMode() || 'off'; const existingExpireTimer = convo.get('expireTimer') || 0; // Send the Added Members message to the group (only members already in the group will get it) const closedGroupControlMessage = new ClosedGroupAddedMembersMessage({ diff --git a/ts/session/utils/calling/CallManager.ts b/ts/session/utils/calling/CallManager.ts index 695eb7453..771704029 100644 --- a/ts/session/utils/calling/CallManager.ts +++ b/ts/session/utils/calling/CallManager.ts @@ -516,7 +516,7 @@ export async function USER_callRecipient(recipient: string) { await calledConvo.unhideIfNeeded(false); weAreCallerOnCurrentCall = true; - const expirationMode = calledConvo.get('expirationMode'); + const expirationMode = calledConvo.getExpirationMode(); const expireTimer = calledConvo.get('expireTimer') || 0; let expirationType; let expirationStartTimestamp; @@ -901,7 +901,7 @@ export async function USER_acceptIncomingCallRequest(fromSender: string) { callerConvo.set('active_at', networkTimestamp); await callerConvo.unhideIfNeeded(false); - const expirationMode = callerConvo.get('expirationMode'); + const expirationMode = callerConvo.getExpirationMode(); const expireTimer = callerConvo.get('expireTimer') || 0; let expirationType; let expirationStartTimestamp; @@ -1258,7 +1258,7 @@ async function addMissedCallMessage(callerPubkey: string, sentAt: number) { await incomingCallConversation.unhideIfNeeded(false); } - const expirationMode = incomingCallConversation.get('expirationMode'); + const expirationMode = incomingCallConversation.getExpirationMode(); const expireTimer = incomingCallConversation.get('expireTimer') || 0; let expirationType; let expirationStartTimestamp; diff --git a/ts/session/utils/libsession/libsession_utils_contacts.ts b/ts/session/utils/libsession/libsession_utils_contacts.ts index d71d6cc4e..8b9df5c38 100644 --- a/ts/session/utils/libsession/libsession_utils_contacts.ts +++ b/ts/session/utils/libsession/libsession_utils_contacts.ts @@ -54,7 +54,7 @@ async function insertContactFromDBIntoWrapperAndRefresh(id: string): Promise