Mark accepted or outgoing callHistory as seen

This commit is contained in:
trevor-signal
2026-03-24 11:15:22 -04:00
committed by GitHub
parent 8ad63966ae
commit c050a0c8c2
2 changed files with 21 additions and 15 deletions

View File

@@ -2174,7 +2174,7 @@ export class BackupExportStream extends Readable {
callHistory.endedTimestamp callHistory.endedTimestamp
); );
} }
const read = message.seenStatus === SeenStatus.Seen; const read = message.seenStatus !== SeenStatus.Unseen;
updateMessage.update = { updateMessage.update = {
groupCall: { groupCall: {
@@ -2212,7 +2212,7 @@ export class BackupExportStream extends Readable {
direction: toIndividualCallDirectionProto(direction), direction: toIndividualCallDirectionProto(direction),
state: toIndividualCallStateProto(status, direction), state: toIndividualCallStateProto(status, direction),
startedCallTimestamp: BigInt(timestamp), startedCallTimestamp: BigInt(timestamp),
read: message.seenStatus === SeenStatus.Seen, read: message.seenStatus !== SeenStatus.Unseen,
}, },
}; };
return { kind: NonBubbleResultKind.Directionless, patch }; return { kind: NonBubbleResultKind.Directionless, patch };

View File

@@ -1219,21 +1219,27 @@ async function saveCallHistory({
return callHistory; return callHistory;
} }
let unseen = false; let seenStatus: SeenStatus;
if (callHistory.mode === CallMode.Direct) {
unseen = const isUnseenDirectCall =
callHistory.direction === CallDirection.Incoming && callHistory.mode === CallMode.Direct &&
(callHistory.status === DirectCallStatus.Missed || callHistory.direction === CallDirection.Incoming &&
callHistory.status === DirectCallStatus.Pending); (callHistory.status === DirectCallStatus.Missed ||
} else if (callHistory.mode === CallMode.Group) { callHistory.status === DirectCallStatus.Pending);
unseen =
callHistory.direction === CallDirection.Incoming && const isUnseenGroupCall =
(callHistory.status === GroupCallStatus.Ringing || callHistory.mode === CallMode.Group &&
callHistory.status === GroupCallStatus.GenericGroupCall || callHistory.direction === CallDirection.Incoming &&
callHistory.status === GroupCallStatus.Missed); (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) { if (prevMessage?.seenStatus != null) {
seenStatus = maxSeenStatus(seenStatus, prevMessage.seenStatus); seenStatus = maxSeenStatus(seenStatus, prevMessage.seenStatus);
} }