From 09126429c0d21f689d03df2b45f126b30d4b676e Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Tue, 24 Mar 2026 11:07:23 -0500 Subject: [PATCH] Mark accepted or outgoing callHistory as seen Co-authored-by: trevor-signal <131492920+trevor-signal@users.noreply.github.com> --- ts/services/backups/export.preload.ts | 4 ++-- ts/util/callDisposition.preload.ts | 32 ++++++++++++++++----------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/ts/services/backups/export.preload.ts b/ts/services/backups/export.preload.ts index 3efc70644b..97f23c9665 100644 --- a/ts/services/backups/export.preload.ts +++ b/ts/services/backups/export.preload.ts @@ -2174,7 +2174,7 @@ export class BackupExportStream extends Readable { callHistory.endedTimestamp ); } - const read = message.seenStatus === SeenStatus.Seen; + const read = message.seenStatus !== SeenStatus.Unseen; updateMessage.update = { groupCall: { @@ -2212,7 +2212,7 @@ export class BackupExportStream extends Readable { direction: toIndividualCallDirectionProto(direction), state: toIndividualCallStateProto(status, direction), startedCallTimestamp: BigInt(timestamp), - read: message.seenStatus === SeenStatus.Seen, + read: message.seenStatus !== SeenStatus.Unseen, }, }; return { kind: NonBubbleResultKind.Directionless, patch }; diff --git a/ts/util/callDisposition.preload.ts b/ts/util/callDisposition.preload.ts index 49bc1c1088..97c51621df 100644 --- a/ts/util/callDisposition.preload.ts +++ b/ts/util/callDisposition.preload.ts @@ -1219,21 +1219,27 @@ async function saveCallHistory({ return callHistory; } - let unseen = false; - if (callHistory.mode === CallMode.Direct) { - unseen = - callHistory.direction === CallDirection.Incoming && - (callHistory.status === DirectCallStatus.Missed || - callHistory.status === DirectCallStatus.Pending); - } else if (callHistory.mode === CallMode.Group) { - unseen = - callHistory.direction === CallDirection.Incoming && - (callHistory.status === GroupCallStatus.Ringing || - callHistory.status === GroupCallStatus.GenericGroupCall || - callHistory.status === GroupCallStatus.Missed); + let seenStatus: SeenStatus; + + const isUnseenDirectCall = + callHistory.mode === CallMode.Direct && + callHistory.direction === CallDirection.Incoming && + (callHistory.status === DirectCallStatus.Missed || + callHistory.status === DirectCallStatus.Pending); + + const isUnseenGroupCall = + callHistory.mode === CallMode.Group && + callHistory.direction === CallDirection.Incoming && + (callHistory.status === GroupCallStatus.Ringing || + callHistory.status === GroupCallStatus.GenericGroupCall || + callHistory.status === GroupCallStatus.Missed); + + if (isUnseenDirectCall || isUnseenGroupCall) { + seenStatus = SeenStatus.Unseen; + } else { + seenStatus = SeenStatus.Seen; } - let seenStatus = unseen ? SeenStatus.Unseen : SeenStatus.NotApplicable; if (prevMessage?.seenStatus != null) { seenStatus = maxSeenStatus(seenStatus, prevMessage.seenStatus); }