diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index 587eed8c7d..a9d102bab9 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -538,7 +538,6 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } private var missingSsrcs = Set() - private var processedMissingSsrcs = Set() private let missingSsrcsDisposable = MetaDisposable() private var isRequestingMissingSsrcs: Bool = false @@ -1633,22 +1632,16 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } private func maybeRequestParticipants(ssrcs: Set) { - var missingSsrcs = ssrcs - missingSsrcs.subtract(self.processedMissingSsrcs) - if missingSsrcs.isEmpty { - return - } - self.processedMissingSsrcs.formUnion(ssrcs) - + var addedMissingSsrcs = ssrcs + var addedParticipants: [(UInt32, String?)] = [] if let membersValue = self.membersValue { for participant in membersValue.participants { let participantSsrcs = participant.allSsrcs - if !missingSsrcs.intersection(participantSsrcs).isEmpty { - missingSsrcs.subtract(participantSsrcs) - self.processedMissingSsrcs.formUnion(participantSsrcs) + if !addedMissingSsrcs.intersection(participantSsrcs).isEmpty { + addedMissingSsrcs.subtract(participantSsrcs) if let ssrc = participant.ssrc { addedParticipants.append((ssrc, participant.jsonParams)) @@ -1661,8 +1654,8 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.callContext?.addParticipants(participants: addedParticipants) } - if !missingSsrcs.isEmpty { - self.missingSsrcs.formUnion(missingSsrcs) + if !addedMissingSsrcs.isEmpty { + self.missingSsrcs.formUnion(addedMissingSsrcs) self.maybeRequestMissingSsrcs() } } @@ -2100,7 +2093,6 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.missingSsrcsDisposable.set(nil) self.missingSsrcs.removeAll() - self.processedMissingSsrcs.removeAll() self.internalState = .requesting self.internalStatePromise.set(.single(.requesting)) diff --git a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift index 56777b8b79..2232c30a19 100644 --- a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift @@ -2731,6 +2731,7 @@ func replayFinalState(accountManager: AccountManager, postbox: Postbox, accountP if count == 0 { transaction.removeHole(peerId: peerId, namespace: namespace, space: .tag(.unseenPersonalMessage), range: 1 ... (Int32.max - 1)) let ids = transaction.getMessageIndicesWithTag(peerId: peerId, namespace: namespace, tag: .unseenPersonalMessage).map({ $0.id }) + Logger.shared.log("State", "will call markUnseenPersonalMessage for \(ids.count) messages") for id in ids { markUnseenPersonalMessage(transaction: transaction, id: id, addSynchronizeAction: false) } diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index e80667a343..ea8dbb49de 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit e80667a343b62f6b8b2c3e0a828222096a497990 +Subproject commit ea8dbb49dea53d6778ba3ffbd556a10d164cef69