Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios

This commit is contained in:
Ilya Laktyushin 2021-03-17 19:10:05 +04:00
commit 71a5d5560e
3 changed files with 8 additions and 15 deletions

View File

@ -538,7 +538,6 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
}
private var missingSsrcs = Set<UInt32>()
private var processedMissingSsrcs = Set<UInt32>()
private let missingSsrcsDisposable = MetaDisposable()
private var isRequestingMissingSsrcs: Bool = false
@ -1633,22 +1632,16 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
}
private func maybeRequestParticipants(ssrcs: Set<UInt32>) {
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))

View File

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

@ -1 +1 @@
Subproject commit e80667a343b62f6b8b2c3e0a828222096a497990
Subproject commit ea8dbb49dea53d6778ba3ffbd556a10d164cef69