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); }