Show "unplayed" dot on incoming audio messages
This commit is contained in:
parent
9fd191ae00
commit
b0750e5f4e
36 changed files with 812 additions and 175 deletions
|
@ -58,6 +58,7 @@ import {
|
|||
StickerPackEvent,
|
||||
VerifiedEvent,
|
||||
ReadSyncEvent,
|
||||
ViewSyncEvent,
|
||||
ContactEvent,
|
||||
GroupEvent,
|
||||
EnvelopeEvent,
|
||||
|
@ -79,7 +80,9 @@ import {
|
|||
import { MessageRequests } from './messageModifiers/MessageRequests';
|
||||
import { Reactions } from './messageModifiers/Reactions';
|
||||
import { ReadSyncs } from './messageModifiers/ReadSyncs';
|
||||
import { ViewSyncs } from './messageModifiers/ViewSyncs';
|
||||
import { ViewOnceOpenSyncs } from './messageModifiers/ViewOnceOpenSyncs';
|
||||
import { ReadStatus } from './messages/MessageReadStatus';
|
||||
import {
|
||||
SendStateByConversationId,
|
||||
SendStatus,
|
||||
|
@ -211,6 +214,10 @@ export async function startApp(): Promise<void> {
|
|||
'readSync',
|
||||
queuedEventListener(onReadSync)
|
||||
);
|
||||
messageReceiver.addEventListener(
|
||||
'viewSync',
|
||||
queuedEventListener(onViewSync)
|
||||
);
|
||||
messageReceiver.addEventListener(
|
||||
'read',
|
||||
queuedEventListener(onReadReceipt)
|
||||
|
@ -3518,7 +3525,7 @@ export async function startApp(): Promise<void> {
|
|||
conversationId: descriptor.id,
|
||||
unidentifiedDeliveryReceived: data.unidentifiedDeliveryReceived,
|
||||
type: 'incoming',
|
||||
unread: true,
|
||||
readStatus: ReadStatus.Unread,
|
||||
timestamp: data.timestamp,
|
||||
} as Partial<MessageAttributesType>) as WhatIsThis);
|
||||
}
|
||||
|
@ -3851,6 +3858,38 @@ export async function startApp(): Promise<void> {
|
|||
return ReadSyncs.getSingleton().onSync(receipt);
|
||||
}
|
||||
|
||||
function onViewSync(ev: ViewSyncEvent) {
|
||||
const { envelopeTimestamp, senderE164, senderUuid, timestamp } = ev.view;
|
||||
const senderId = window.ConversationController.ensureContactIds({
|
||||
e164: senderE164,
|
||||
uuid: senderUuid,
|
||||
});
|
||||
|
||||
window.log.info(
|
||||
'view sync',
|
||||
senderE164,
|
||||
senderUuid,
|
||||
envelopeTimestamp,
|
||||
senderId,
|
||||
'for message',
|
||||
timestamp
|
||||
);
|
||||
|
||||
const receipt = ViewSyncs.getSingleton().add({
|
||||
senderId,
|
||||
senderE164,
|
||||
senderUuid,
|
||||
timestamp,
|
||||
viewedAt: envelopeTimestamp,
|
||||
});
|
||||
|
||||
receipt.on('remove', ev.confirm);
|
||||
|
||||
// Note: Here we wait, because we want viewed states to be in the database
|
||||
// before we move on.
|
||||
return ViewSyncs.getSingleton().onSync(receipt);
|
||||
}
|
||||
|
||||
async function onVerified(ev: VerifiedEvent) {
|
||||
const e164 = ev.verified.destination;
|
||||
const uuid = ev.verified.destinationUuid;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue