diff --git a/submodules/TelegramCore/Sources/GroupCalls.swift b/submodules/TelegramCore/Sources/GroupCalls.swift index c903f4a357..9ccf8065df 100644 --- a/submodules/TelegramCore/Sources/GroupCalls.swift +++ b/submodules/TelegramCore/Sources/GroupCalls.swift @@ -622,6 +622,7 @@ public func joinGroupCall(account: Account, peerId: PeerId, joinAs: PeerId?, cal guard let peer = transaction.getPeer(peerId) else { continue loop } + let videoJoined = (flags & (1 << 15)) != 0 let muted = (flags & (1 << 0)) != 0 let mutedByYou = (flags & (1 << 9)) != 0 var muteState: GroupCallParticipantsContext.Participant.MuteState? @@ -645,6 +646,7 @@ public func joinGroupCall(account: Account, peerId: PeerId, joinAs: PeerId?, cal videoDescription: videoDescription, presentationDescription: presentationDescription, joinTimestamp: date, + videoJoined: videoJoined, raiseHandRating: raiseHandRating, hasRaiseHand: raiseHandRating != nil, activityTimestamp: activeDate.flatMap(Double.init), @@ -863,6 +865,7 @@ public final class GroupCallParticipantsContext { public var videoDescription: VideoDescription? public var presentationDescription: VideoDescription? public var joinTimestamp: Int32 + public var videoJoined: Bool public var raiseHandRating: Int64? public var hasRaiseHand: Bool public var activityTimestamp: Double? @@ -878,6 +881,7 @@ public final class GroupCallParticipantsContext { videoDescription: VideoDescription?, presentationDescription: VideoDescription?, joinTimestamp: Int32, + videoJoined: Bool, raiseHandRating: Int64?, hasRaiseHand: Bool, activityTimestamp: Double?, @@ -892,6 +896,7 @@ public final class GroupCallParticipantsContext { self.videoDescription = videoDescription self.presentationDescription = presentationDescription self.joinTimestamp = joinTimestamp + self.videoJoined = videoJoined self.raiseHandRating = raiseHandRating self.hasRaiseHand = hasRaiseHand self.activityTimestamp = activityTimestamp @@ -1128,6 +1133,7 @@ public final class GroupCallParticipantsContext { public var videoDescription: GroupCallParticipantsContext.Participant.VideoDescription? public var presentationDescription: GroupCallParticipantsContext.Participant.VideoDescription? public var joinTimestamp: Int32 + public var videoJoined: Bool public var activityTimestamp: Double? public var raiseHandRating: Int64? public var muteState: Participant.MuteState? @@ -1143,6 +1149,7 @@ public final class GroupCallParticipantsContext { videoDescription: GroupCallParticipantsContext.Participant.VideoDescription?, presentationDescription: GroupCallParticipantsContext.Participant.VideoDescription?, joinTimestamp: Int32, + videoJoined: Bool, activityTimestamp: Double?, raiseHandRating: Int64?, muteState: Participant.MuteState?, @@ -1157,6 +1164,7 @@ public final class GroupCallParticipantsContext { self.videoDescription = videoDescription self.presentationDescription = presentationDescription self.joinTimestamp = joinTimestamp + self.videoJoined = videoJoined self.activityTimestamp = activityTimestamp self.raiseHandRating = raiseHandRating self.muteState = muteState @@ -1699,6 +1707,7 @@ public final class GroupCallParticipantsContext { videoDescription: participantUpdate.videoDescription, presentationDescription: participantUpdate.presentationDescription, joinTimestamp: previousJoinTimestamp ?? participantUpdate.joinTimestamp, + videoJoined: participantUpdate.videoJoined, raiseHandRating: participantUpdate.raiseHandRating, hasRaiseHand: participantUpdate.raiseHandRating != nil, activityTimestamp: activityTimestamp, @@ -2066,6 +2075,7 @@ extension GroupCallParticipantsContext.Update.StateUpdate.ParticipantUpdate { let justJoined = (flags & (1 << 4)) != 0 let joinedVideo = (flags & (1 << 15)) != 0 let isMin = (flags & (1 << 8)) != 0 + let videoJoined = (flags & (1 << 15)) != 0 let participationStatusChange: GroupCallParticipantsContext.Update.StateUpdate.ParticipantUpdate.ParticipationStatusChange if isRemoved { @@ -2088,6 +2098,7 @@ extension GroupCallParticipantsContext.Update.StateUpdate.ParticipantUpdate { videoDescription: videoDescription, presentationDescription: presentationDescription, joinTimestamp: date, + videoJoined: videoJoined, activityTimestamp: activeDate.flatMap(Double.init), raiseHandRating: raiseHandRating, muteState: muteState, @@ -2457,6 +2468,9 @@ extension GroupCallParticipantsContext.Participant { } else if mutedByYou { muteState = GroupCallParticipantsContext.Participant.MuteState(canUnmute: false, mutedByYou: mutedByYou) } + + let videoJoined = (flags & (1 << 15)) != 0 + var videoDescription = video.flatMap(GroupCallParticipantsContext.Participant.VideoDescription.init) var presentationDescription = presentation.flatMap(GroupCallParticipantsContext.Participant.VideoDescription.init) if muteState?.canUnmute == false { @@ -2471,6 +2485,7 @@ extension GroupCallParticipantsContext.Participant { videoDescription: videoDescription, presentationDescription: presentationDescription, joinTimestamp: date, + videoJoined: videoJoined, raiseHandRating: raiseHandRating, hasRaiseHand: raiseHandRating != nil, activityTimestamp: activeDate.flatMap(Double.init),