Mark accepted or outgoing callHistory as seen

Co-authored-by: trevor-signal <131492920+trevor-signal@users.noreply.github.com>
This commit is contained in:
automated-signal
2026-03-24 11:07:23 -05:00
committed by GitHub
parent 2601fb7536
commit 09126429c0
2 changed files with 21 additions and 15 deletions

View File

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

View File

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