From 0474e84b19a982f4e483ddd91733eea6906c484a Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Thu, 2 Jul 2020 09:49:12 +1000 Subject: [PATCH] fix profileKey sharing and avatar --- js/models/conversations.js | 1 + js/models/messages.js | 1 + .../messages/outgoing/content/data/ChatMessage.ts | 15 +++++++-------- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/js/models/conversations.js b/js/models/conversations.js index 191562d62..c592d8489 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -1315,6 +1315,7 @@ expireTimer, preview: uploads.preview, quote: uploads.quote, + lokiProfile: this.getOurProfile(), }); if (this.isMe()) { diff --git a/js/models/messages.js b/js/models/messages.js index 752efb77c..ea04cd15e 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -1094,6 +1094,7 @@ attachments, preview, quote, + lokiProfile: this.getOurProfile(), }); // Special-case the self-send case - we send only a sync message diff --git a/ts/session/messages/outgoing/content/data/ChatMessage.ts b/ts/session/messages/outgoing/content/data/ChatMessage.ts index 47c63b1f7..0ad70faa8 100644 --- a/ts/session/messages/outgoing/content/data/ChatMessage.ts +++ b/ts/session/messages/outgoing/content/data/ChatMessage.ts @@ -2,6 +2,7 @@ import { DataMessage } from './DataMessage'; import { SignalService } from '../../../../../protobuf'; import { MessageParams } from '../../Message'; import { LokiProfile } from '../../../../../types/Message'; +import ByteBuffer from 'bytebuffer'; export interface AttachmentPointer { id?: number; @@ -62,7 +63,12 @@ export class ChatMessage extends DataMessage { this.body = params.body; this.quote = params.quote; this.expireTimer = params.expireTimer; - this.profileKey = params.lokiProfile && params.lokiProfile.profileKey; + if (params.lokiProfile && params.lokiProfile.profileKey) { + this.profileKey = new Uint8Array( + ByteBuffer.wrap(params.lokiProfile.profileKey).toArrayBuffer() + ); + } + this.displayName = params.lokiProfile && params.lokiProfile.displayName; this.avatarPointer = params.lokiProfile && params.lokiProfile.avatarPointer; this.preview = params.preview; @@ -85,10 +91,6 @@ export class ChatMessage extends DataMessage { dataMessage.expireTimer = this.expireTimer; } - if (this.profileKey) { - dataMessage.profileKey = this.profileKey; - } - if (this.preview) { dataMessage.preview = this.preview; } @@ -107,9 +109,6 @@ export class ChatMessage extends DataMessage { } if (this.profileKey) { dataMessage.profileKey = this.profileKey; - dataMessage.flags = - // tslint:disable-next-line: no-bitwise - dataMessage.flags | SignalService.DataMessage.Flags.PROFILE_KEY_UPDATE; } if (this.quote) {