From a17edd0ce9288acf7ddd7e1da4e665b99561afcc Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Thu, 16 Jul 2020 15:54:17 +1000 Subject: [PATCH] enable back delivery Receipt and read receipt message --- js/models/conversations.js | 45 +++++++++++++++++--------------------- ts/receiver/dataMessage.ts | 15 +++++++------ 2 files changed, 28 insertions(+), 32 deletions(-) diff --git a/js/models/conversations.js b/js/models/conversations.js index b9472f74c..ba9a8bbf7 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -2099,31 +2099,26 @@ window.log.info(`Sending ${read.length} read receipts`); // Because syncReadMessages sends to our other devices, and sendReadReceipts goes // to a contact, we need accessKeys for both. - const { sendOptions } = ConversationController.prepareForSend( - this.ourNumber, - { syncMessage: true } - ); - await textsecure.messaging.syncReadMessages(read, sendOptions); - - // FIXME AUDRIC - // if (storage.get('read-receipt-setting')) { - // await Promise.all( - // _.map(_.groupBy(read, 'sender'), async (receipts, sender) => { - // const timestamps = _.map(receipts, 'timestamp'); - // const receiptMessage = new libsession.Messages.Outgoing.ReadReceiptMessage( - // { - // timestamp: Date.now(), - // timestamps, - // } - // ); - - // const device = new libsession.Types.PubKey(sender); - // await libsession - // .getMessageQueue() - // .sendUsingMultiDevice(device, receiptMessage); - // }) - // ); - // } + await textsecure.messaging.syncReadMessages(read); + + if (storage.get('read-receipt-setting')) { + await Promise.all( + _.map(_.groupBy(read, 'sender'), async (receipts, sender) => { + const timestamps = _.map(receipts, 'timestamp'); + const receiptMessage = new libsession.Messages.Outgoing.ReadReceiptMessage( + { + timestamp: Date.now(), + timestamps, + } + ); + + const device = new libsession.Types.PubKey(sender); + await libsession + .getMessageQueue() + .sendUsingMultiDevice(device, receiptMessage); + }) + ); + } } }, diff --git a/ts/receiver/dataMessage.ts b/ts/receiver/dataMessage.ts index 24de0c604..df74fcbd4 100644 --- a/ts/receiver/dataMessage.ts +++ b/ts/receiver/dataMessage.ts @@ -14,6 +14,8 @@ import { handleUnpairRequest } from './multidevice'; import { downloadAttachment } from './attachments'; import _ from 'lodash'; import { StringUtils } from '../session/utils'; +import { DeliveryReceiptMessage } from '../session/messages/outgoing'; +import { getMessageQueue } from '../session'; export async function updateProfile( conversation: any, @@ -528,13 +530,12 @@ function createMessage( } function sendDeliveryReceipt(source: string, timestamp: any) { - // FIXME audric - // const receiptMessage = new DeliveryReceiptMessage({ - // timestamp: Date.now(), - // timestamps: [timestamp], - // }); - // const device = new PubKey(source); - // await getMessageQueue().sendUsingMultiDevice(device, receiptMessage); + const receiptMessage = new DeliveryReceiptMessage({ + timestamp: Date.now(), + timestamps: [timestamp], + }); + const device = new PubKey(source); + void getMessageQueue().sendUsingMultiDevice(device, receiptMessage); } interface MessageEvent {