diff --git a/protos/SignalService.proto b/protos/SignalService.proto index 4fb3db885..5caffd649 100644 --- a/protos/SignalService.proto +++ b/protos/SignalService.proto @@ -37,9 +37,7 @@ message Unsend { message MessageRequestResponse { // @required - required bytes publicKey = 1; // The public key of the contact that was approved - // @required - required bool isApproved = 2; + required bool isApproved = 1; } message Content { diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts index b10a5e63d..91dc3a5fe 100644 --- a/ts/models/conversation.ts +++ b/ts/models/conversation.ts @@ -656,6 +656,13 @@ export class ConversationModel extends Backbone.Model { // void forceSyncConfigurationNowIfNeeded(); } + // TODO: remove once dev-tested + // if (chatMessageParams.body?.includes('unapprove')) { + // await this.setIsApproved(false); + // await this.setDidApproveMe(false); + // // void forceSyncConfigurationNowIfNeeded(); + // } + if (this.isOpenGroupV2()) { const chatMessageOpenGroupV2 = new OpenGroupVisibleMessage(chatMessageParams); const roomInfos = this.toOpenGroupV2(); @@ -1198,7 +1205,7 @@ export class ConversationModel extends Backbone.Model { } } - public async setIsApproved(value: boolean, commit: boolean = true) { + public async setIsApproved(value: boolean, shouldCommit: boolean = true) { if (value !== this.isApproved()) { window?.log?.info(`Setting ${this.attributes.profileName} isApproved to:: ${value}`); this.set({ @@ -1211,18 +1218,22 @@ export class ConversationModel extends Backbone.Model { void forceSyncConfigurationNowIfNeeded(); } - await this.commit(); + if (shouldCommit) { + await this.commit(); + } } } - public async setDidApproveMe(value: boolean, commit: boolean = false) { + public async setDidApproveMe(value: boolean, shouldCommit: boolean = true) { if (value !== this.didApproveMe()) { window?.log?.info(`Setting ${this.attributes.profileName} didApproveMe to:: ${value}`); this.set({ didApproveMe: value, }); - await this.commit(); + if (shouldCommit) { + await this.commit(); + } } } diff --git a/ts/models/messageType.ts b/ts/models/messageType.ts index d3c7a8b90..409c19610 100644 --- a/ts/models/messageType.ts +++ b/ts/models/messageType.ts @@ -146,7 +146,6 @@ export type PropsForMessageRequestResponse = MessageRequestResponseMsg & { receivedAt?: number; isUnread: boolean; isApproved?: boolean; - publicKey?: string; source?: string; }; @@ -196,7 +195,6 @@ export interface MessageAttributesOptionals { messageRequestResponse?: { /** 1 means approved, 0 means unapproved. */ isApproved?: number; - publicKey?: string; }; unread?: number; group?: any; diff --git a/ts/receiver/configMessage.ts b/ts/receiver/configMessage.ts index 022c7b229..925a49db0 100644 --- a/ts/receiver/configMessage.ts +++ b/ts/receiver/configMessage.ts @@ -158,7 +158,6 @@ const handleContactReceived = async ( received_at: Date.now(), messageRequestResponse: { isApproved: 1, - publicKey: UserUtils.getOurPubKeyStrFromCache(), // it's a sync therefore the pubkey would be ours }, unread: 1, // 1 means unread expireTimer: 0, diff --git a/ts/receiver/contentMessage.ts b/ts/receiver/contentMessage.ts index 49a8456b2..ba947ec0b 100644 --- a/ts/receiver/contentMessage.ts +++ b/ts/receiver/contentMessage.ts @@ -531,7 +531,7 @@ async function handleMessageRequestResponse( envelope: EnvelopePlus, messageRequestResponse: SignalService.MessageRequestResponse ) { - const { isApproved, publicKey } = messageRequestResponse; + const { isApproved } = messageRequestResponse; if (!messageRequestResponse) { window?.log?.error('handleMessageRequestResponse: Invalid parameters -- dropping message.'); @@ -539,7 +539,7 @@ async function handleMessageRequestResponse( return; } - const convoId = toHex(publicKey); + const convoId = envelope.source; // TODO: commenting out, including in one larger function for now // await updateConversationDidApproveMe(toHex(publicKey), isApproved); @@ -566,7 +566,6 @@ async function handleMessageRequestResponse( received_at: Date.now(), messageRequestResponse: { isApproved: 1, - publicKey: convoId, }, unread: 1, // 1 means unread expireTimer: 0, diff --git a/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts b/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts index c5b2b3f49..8ebdfdd60 100644 --- a/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts +++ b/ts/session/messages/outgoing/controlMessage/MessageRequestResponse.ts @@ -1,24 +1,19 @@ import { SignalService } from '../../../../protobuf'; -import { fromHexToArray } from '../../../utils/String'; import { ContentMessage } from '../ContentMessage'; import { MessageParams } from '../Message'; interface MessageRequestResponseParams extends MessageParams { - publicKey: string; isApproved: boolean; } export class MessageRequestResponse extends ContentMessage { - private readonly publicKey: Uint8Array; private readonly isApproved: boolean; constructor(params: MessageRequestResponseParams) { super({ timestamp: params.timestamp, - publicKey: params.publicKey, isApproved: params.isApproved, } as MessageRequestResponseParams); - this.publicKey = fromHexToArray(params.publicKey); this.isApproved = params.isApproved; } @@ -30,7 +25,6 @@ export class MessageRequestResponse extends ContentMessage { public messageRequestResponseProto(): SignalService.MessageRequestResponse { return new SignalService.MessageRequestResponse({ - publicKey: this.publicKey, isApproved: this.isApproved, }); }