mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-17 03:40:18 +00:00
Allow leaving chat before it's connected
This commit is contained in:
parent
42d4c2691e
commit
d22703638d
@ -360,6 +360,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
|
|||||||
|
|
||||||
private var internalState: InternalState = .requesting
|
private var internalState: InternalState = .requesting
|
||||||
private let internalStatePromise = Promise<InternalState>(.requesting)
|
private let internalStatePromise = Promise<InternalState>(.requesting)
|
||||||
|
private var currentLocalSsrc: UInt32?
|
||||||
|
|
||||||
private var callContext: OngoingGroupCallContext?
|
private var callContext: OngoingGroupCallContext?
|
||||||
private var currentConnectionMode: OngoingGroupCallContext.ConnectionMode = .none
|
private var currentConnectionMode: OngoingGroupCallContext.ConnectionMode = .none
|
||||||
@ -1003,6 +1004,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
|
|||||||
guard let strongSelf = self else {
|
guard let strongSelf = self else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
strongSelf.currentLocalSsrc = ssrc
|
||||||
strongSelf.requestDisposable.set((joinGroupCall(
|
strongSelf.requestDisposable.set((joinGroupCall(
|
||||||
account: strongSelf.account,
|
account: strongSelf.account,
|
||||||
peerId: strongSelf.peerId,
|
peerId: strongSelf.peerId,
|
||||||
@ -1608,7 +1610,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func leave(terminateIfPossible: Bool) -> Signal<Bool, NoError> {
|
public func leave(terminateIfPossible: Bool) -> Signal<Bool, NoError> {
|
||||||
if case let .established(callInfo, _, _, localSsrc, _) = self.internalState {
|
if let callInfo = self.internalState.callInfo, let localSsrc = self.currentLocalSsrc {
|
||||||
if terminateIfPossible {
|
if terminateIfPossible {
|
||||||
self.leaveDisposable.set((stopGroupCall(account: self.account, peerId: self.peerId, callId: callInfo.id, accessHash: callInfo.accessHash)
|
self.leaveDisposable.set((stopGroupCall(account: self.account, peerId: self.peerId, callId: callInfo.id, accessHash: callInfo.accessHash)
|
||||||
|> deliverOnMainQueue).start(completed: { [weak self] in
|
|> deliverOnMainQueue).start(completed: { [weak self] in
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user