From e5083e11831fff9703286d426d099fe085ae7c68 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 23 Mar 2021 19:07:08 +0400 Subject: [PATCH] Restore video --- .../SettingsUI/Sources/DebugController.swift | 29 ++++---------- submodules/TelegramApi/Sources/Api0.swift | 2 +- submodules/TelegramApi/Sources/Api2.swift | 20 ++++++---- .../Sources/PresentationGroupCall.swift | 2 +- .../Sources/VoiceChatController.swift | 36 ++++++++--------- .../TelegramCore/Sources/GroupCalls.swift | 40 +++++++++---------- .../TelegramCore/Sources/Serialization.swift | 2 +- .../TelegramUI/Sources/ChatController.swift | 18 ++------- .../Sources/ExperimentalUISettings.swift | 18 +++------ submodules/TgVoipWebrtc/tgcalls | 2 +- 10 files changed, 70 insertions(+), 99 deletions(-) diff --git a/submodules/SettingsUI/Sources/DebugController.swift b/submodules/SettingsUI/Sources/DebugController.swift index 9882fcd31b..835d77c19f 100644 --- a/submodules/SettingsUI/Sources/DebugController.swift +++ b/submodules/SettingsUI/Sources/DebugController.swift @@ -73,8 +73,7 @@ private enum DebugControllerEntry: ItemListNodeEntry { case optimizeDatabase(PresentationTheme) case photoPreview(PresentationTheme, Bool) case knockoutWallpaper(PresentationTheme, Bool) - case demoAudioStream(Bool) - case snapPinListToTop(Bool) + case demoVideoChats(Bool) case playerEmbedding(Bool) case playlistPlayback(Bool) case voiceConference @@ -94,7 +93,7 @@ private enum DebugControllerEntry: ItemListNodeEntry { return DebugControllerSection.logging.rawValue case .enableRaiseToSpeak, .keepChatNavigationStack, .skipReadHistory, .crashOnSlowQueries: return DebugControllerSection.experiments.rawValue - case .clearTips, .reimport, .resetData, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .reindexUnread, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .demoAudioStream, .snapPinListToTop, .playerEmbedding, .playlistPlayback, .voiceConference: + case .clearTips, .reimport, .resetData, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .reindexUnread, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .demoVideoChats, .playerEmbedding, .playlistPlayback, .voiceConference: return DebugControllerSection.experiments.rawValue case .preferredVideoCodec: return DebugControllerSection.videoExperiments.rawValue @@ -155,10 +154,8 @@ private enum DebugControllerEntry: ItemListNodeEntry { return 22 case .knockoutWallpaper: return 23 - case .demoAudioStream: + case .demoVideoChats: return 24 - case .snapPinListToTop: - return 25 case .playerEmbedding: return 26 case .playlistPlayback: @@ -706,22 +703,12 @@ private enum DebugControllerEntry: ItemListNodeEntry { }) }).start() }) - case let .demoAudioStream(value): - return ItemListSwitchItem(presentationData: presentationData, title: "Demo Audio Stream", value: value, sectionId: self.section, style: .blocks, updated: { value in + case let .demoVideoChats(value): + return ItemListSwitchItem(presentationData: presentationData, title: "Demo Video", value: value, sectionId: self.section, style: .blocks, updated: { value in let _ = arguments.sharedContext.accountManager.transaction ({ transaction in transaction.updateSharedData(ApplicationSpecificSharedDataKeys.experimentalUISettings, { settings in var settings = settings as? ExperimentalUISettings ?? ExperimentalUISettings.defaultSettings - settings.demoAudioStream = value - return settings - }) - }).start() - }) - case let .snapPinListToTop(value): - return ItemListSwitchItem(presentationData: presentationData, title: "Pin List Top Edge", value: value, sectionId: self.section, style: .blocks, updated: { value in - let _ = arguments.sharedContext.accountManager.transaction ({ transaction in - transaction.updateSharedData(ApplicationSpecificSharedDataKeys.experimentalUISettings, { settings in - var settings = settings as? ExperimentalUISettings ?? ExperimentalUISettings.defaultSettings - settings.snapPinListToTop = value + settings.demoVideoChats = value return settings }) }).start() @@ -824,10 +811,8 @@ private func debugControllerEntries(presentationData: PresentationData, loggingS entries.append(.resetHoles(presentationData.theme)) entries.append(.reindexUnread(presentationData.theme)) entries.append(.optimizeDatabase(presentationData.theme)) - //entries.append(.photoPreview(presentationData.theme, experimentalSettings.chatListPhotos)) entries.append(.knockoutWallpaper(presentationData.theme, experimentalSettings.knockoutWallpaper)) - entries.append(.demoAudioStream(experimentalSettings.demoAudioStream)) - entries.append(.snapPinListToTop(experimentalSettings.snapPinListToTop)) + entries.append(.demoVideoChats(experimentalSettings.demoVideoChats)) entries.append(.playerEmbedding(experimentalSettings.playerEmbedding)) entries.append(.playlistPlayback(experimentalSettings.playlistPlayback)) diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index 7e1902600a..26778f64de 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -142,7 +142,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[767652808] = { return Api.InputEncryptedFile.parse_inputEncryptedFileBigUploaded($0) } dict[1304052993] = { return Api.account.Takeout.parse_takeout($0) } dict[-1456996667] = { return Api.messages.InactiveChats.parse_inactiveChats($0) } - dict[430815881] = { return Api.GroupCallParticipant.parse_groupCallParticipant($0) } + dict[-1184160274] = { return Api.GroupCallParticipant.parse_groupCallParticipant($0) } dict[1443858741] = { return Api.messages.SentEncryptedMessage.parse_sentEncryptedMessage($0) } dict[-1802240206] = { return Api.messages.SentEncryptedMessage.parse_sentEncryptedFile($0) } dict[289586518] = { return Api.SavedContact.parse_savedPhoneContact($0) } diff --git a/submodules/TelegramApi/Sources/Api2.swift b/submodules/TelegramApi/Sources/Api2.swift index 9466f52bb2..8ddcfa52dc 100644 --- a/submodules/TelegramApi/Sources/Api2.swift +++ b/submodules/TelegramApi/Sources/Api2.swift @@ -3604,13 +3604,13 @@ public extension Api { } public enum GroupCallParticipant: TypeConstructorDescription { - case groupCallParticipant(flags: Int32, peer: Api.Peer, date: Int32, activeDate: Int32?, source: Int32, volume: Int32?, about: String?, raiseHandRating: Int64?) + case groupCallParticipant(flags: Int32, peer: Api.Peer, date: Int32, activeDate: Int32?, source: Int32, volume: Int32?, about: String?, raiseHandRating: Int64?, params: Api.DataJSON?) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { - case .groupCallParticipant(let flags, let peer, let date, let activeDate, let source, let volume, let about, let raiseHandRating): + case .groupCallParticipant(let flags, let peer, let date, let activeDate, let source, let volume, let about, let raiseHandRating, let params): if boxed { - buffer.appendInt32(430815881) + buffer.appendInt32(-1184160274) } serializeInt32(flags, buffer: buffer, boxed: false) peer.serialize(buffer, true) @@ -3620,14 +3620,15 @@ public extension Api { if Int(flags) & Int(1 << 7) != 0 {serializeInt32(volume!, buffer: buffer, boxed: false)} if Int(flags) & Int(1 << 11) != 0 {serializeString(about!, buffer: buffer, boxed: false)} if Int(flags) & Int(1 << 13) != 0 {serializeInt64(raiseHandRating!, buffer: buffer, boxed: false)} + if Int(flags) & Int(1 << 6) != 0 {params!.serialize(buffer, true)} break } } public func descriptionFields() -> (String, [(String, Any)]) { switch self { - case .groupCallParticipant(let flags, let peer, let date, let activeDate, let source, let volume, let about, let raiseHandRating): - return ("groupCallParticipant", [("flags", flags), ("peer", peer), ("date", date), ("activeDate", activeDate), ("source", source), ("volume", volume), ("about", about), ("raiseHandRating", raiseHandRating)]) + case .groupCallParticipant(let flags, let peer, let date, let activeDate, let source, let volume, let about, let raiseHandRating, let params): + return ("groupCallParticipant", [("flags", flags), ("peer", peer), ("date", date), ("activeDate", activeDate), ("source", source), ("volume", volume), ("about", about), ("raiseHandRating", raiseHandRating), ("params", params)]) } } @@ -3650,6 +3651,10 @@ public extension Api { if Int(_1!) & Int(1 << 11) != 0 {_7 = parseString(reader) } var _8: Int64? if Int(_1!) & Int(1 << 13) != 0 {_8 = reader.readInt64() } + var _9: Api.DataJSON? + if Int(_1!) & Int(1 << 6) != 0 {if let signature = reader.readInt32() { + _9 = Api.parse(reader, signature: signature) as? Api.DataJSON + } } let _c1 = _1 != nil let _c2 = _2 != nil let _c3 = _3 != nil @@ -3658,8 +3663,9 @@ public extension Api { let _c6 = (Int(_1!) & Int(1 << 7) == 0) || _6 != nil let _c7 = (Int(_1!) & Int(1 << 11) == 0) || _7 != nil let _c8 = (Int(_1!) & Int(1 << 13) == 0) || _8 != nil - if _c1 && _c2 && _c3 && _c4 && _c5 && _c6 && _c7 && _c8 { - return Api.GroupCallParticipant.groupCallParticipant(flags: _1!, peer: _2!, date: _3!, activeDate: _4, source: _5!, volume: _6, about: _7, raiseHandRating: _8) + let _c9 = (Int(_1!) & Int(1 << 6) == 0) || _9 != nil + if _c1 && _c2 && _c3 && _c4 && _c5 && _c6 && _c7 && _c8 && _c9 { + return Api.GroupCallParticipant.groupCallParticipant(flags: _1!, peer: _2!, date: _3!, activeDate: _4, source: _5!, volume: _6, about: _7, raiseHandRating: _8, params: _9) } else { return nil diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index b85d7754c3..979b3565aa 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -572,7 +572,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.temporaryJoinTimestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970) - //self.videoCapturer = OngoingCallVideoCapturer(keepLandscape: true) + self.videoCapturer = OngoingCallVideoCapturer(keepLandscape: false) self.isVideo = self.videoCapturer != nil var didReceiveAudioOutputs = false diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 59c98a9489..523565de55 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -174,6 +174,8 @@ final class GroupVideoNode: ASDisplayNode { self.videoViewContainer.addSubview(self.videoView.view) self.view.addSubview(self.videoViewContainer) + self.clipsToBounds = true + videoView.setOnFirstFrameReceived({ [weak self] _ in Queue.mainQueue().async { guard let strongSelf = self else { @@ -763,9 +765,9 @@ public final class VoiceChatController: ViewController { self.backgroundNode.backgroundColor = secondaryPanelBackgroundColor self.backgroundNode.clipsToBounds = false - /*if false { + if sharedContext.immediateExperimentalUISettings.demoVideoChats { self.mainVideoContainer = MainVideoContainerNode(context: call.accountContext, call: call) - }*/ + } self.listNode = ListView() self.listNode.verticalScrollIndicatorColor = UIColor(white: 1.0, alpha: 0.3) @@ -859,12 +861,6 @@ public final class VoiceChatController: ViewController { let _ = self?.call.updateMuteState(peerId: peerId, isMuted: isMuted) }, openPeer: { [weak self] peerId in if let strongSelf = self { - /*let context = strongSelf.context - strongSelf.controller?.dismiss(completion: { - Queue.mainQueue().justDispatch { - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(peerId), keepStack: .always, purposefulAction: {}, peekData: nil)) - } - })*/ for entry in strongSelf.currentEntries { switch entry { case let .peer(peer): @@ -1167,17 +1163,19 @@ public final class VoiceChatController: ViewController { } }), true)) } - - /*items.append(.action(ContextMenuActionItem(text: "Toggle Full Screen", icon: { theme in - return nil - }, action: { _, f in - guard let strongSelf = self else { - return - } - - strongSelf.itemInteraction?.openPeer(peer.id) - f(.default) - })))*/ + + if strongSelf.context.sharedContext.immediateExperimentalUISettings.demoVideoChats { + items.append(.action(ContextMenuActionItem(text: "Toggle Full Screen", icon: { theme in + return nil + }, action: { _, f in + guard let strongSelf = self else { + return + } + + strongSelf.itemInteraction?.openPeer(peer.id) + f(.default) + }))) + } if peer.id == strongSelf.callState?.myPeerId { if entry.raisedHand { diff --git a/submodules/TelegramCore/Sources/GroupCalls.swift b/submodules/TelegramCore/Sources/GroupCalls.swift index 0f2baad395..e902f0c5fa 100644 --- a/submodules/TelegramCore/Sources/GroupCalls.swift +++ b/submodules/TelegramCore/Sources/GroupCalls.swift @@ -110,7 +110,7 @@ public func getCurrentGroupCall(account: Account, callId: Int64, accessHash: Int loop: for participant in participants { switch participant { - case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating): + case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating, params): let peerId: PeerId switch apiPeerId { case let .peerUser(userId): @@ -134,13 +134,13 @@ public func getCurrentGroupCall(account: Account, callId: Int64, accessHash: Int } else if mutedByYou { muteState = GroupCallParticipantsContext.Participant.MuteState(canUnmute: false, mutedByYou: mutedByYou) } - let jsonParams: String? = nil - /*if let params = params { + var jsonParams: String? = nil + if let params = params { switch params { case let .dataJSON(data): jsonParams = data } - }*/ + } parsedParticipants.append(GroupCallParticipantsContext.Participant( peer: peer, ssrc: ssrc, @@ -297,7 +297,7 @@ public func getGroupCallParticipants(account: Account, callId: Int64, accessHash loop: for participant in participants { switch participant { - case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating): + case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating, params): let peerId: PeerId switch apiPeerId { case let .peerUser(userId): @@ -320,13 +320,13 @@ public func getGroupCallParticipants(account: Account, callId: Int64, accessHash } else if mutedByYou { muteState = GroupCallParticipantsContext.Participant.MuteState(canUnmute: false, mutedByYou: mutedByYou) } - let jsonParams: String? = nil - /*if let params = params { + var jsonParams: String? = nil + if let params = params { switch params { case let .dataJSON(data): jsonParams = data } - }*/ + } parsedParticipants.append(GroupCallParticipantsContext.Participant( peer: peer, ssrc: ssrc, @@ -525,7 +525,7 @@ public func joinGroupCall(account: Account, peerId: PeerId, joinAs: PeerId?, cal case let .updateGroupCallParticipants(_, participants, _): loop: for participant in participants { switch participant { - case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating): + case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating, params): let peerId: PeerId switch apiPeerId { case let .peerUser(userId): @@ -548,13 +548,13 @@ public func joinGroupCall(account: Account, peerId: PeerId, joinAs: PeerId?, cal } else if mutedByYou { muteState = GroupCallParticipantsContext.Participant.MuteState(canUnmute: false, mutedByYou: mutedByYou) } - let jsonParams: String? = nil - /*if let params = params { + var jsonParams: String? = nil + if let params = params { switch params { case let .dataJSON(data): jsonParams = data } - }*/ + } if !state.participants.contains(where: { $0.peer.id == peer.id }) { state.participants.append(GroupCallParticipantsContext.Participant( peer: peer, @@ -1720,7 +1720,7 @@ public final class GroupCallParticipantsContext { extension GroupCallParticipantsContext.Update.StateUpdate.ParticipantUpdate { init(_ apiParticipant: Api.GroupCallParticipant) { switch apiParticipant { - case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating): + case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating, params): let peerId: PeerId switch apiPeerId { case let .peerUser(userId): @@ -1753,13 +1753,13 @@ extension GroupCallParticipantsContext.Update.StateUpdate.ParticipantUpdate { participationStatusChange = .none } - let jsonParams: String? = nil - /*if let params = params { + var jsonParams: String? = nil + if let params = params { switch params { case let .dataJSON(data): jsonParams = data } - }*/ + } self.init( peerId: peerId, @@ -1783,7 +1783,7 @@ extension GroupCallParticipantsContext.Update.StateUpdate { var participantUpdates: [GroupCallParticipantsContext.Update.StateUpdate.ParticipantUpdate] = [] for participant in participants { switch participant { - case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating): + case let .groupCallParticipant(flags, apiPeerId, date, activeDate, source, volume, about, raiseHandRating, params): let peerId: PeerId switch apiPeerId { case let .peerUser(userId): @@ -1816,13 +1816,13 @@ extension GroupCallParticipantsContext.Update.StateUpdate { participationStatusChange = .none } - let jsonParams: String? = nil - /*if let params = params { + var jsonParams: String? = nil + if let params = params { switch params { case let .dataJSON(data): jsonParams = data } - }*/ + } participantUpdates.append(GroupCallParticipantsContext.Update.StateUpdate.ParticipantUpdate( peerId: peerId, diff --git a/submodules/TelegramCore/Sources/Serialization.swift b/submodules/TelegramCore/Sources/Serialization.swift index 8a525de035..9e06595675 100644 --- a/submodules/TelegramCore/Sources/Serialization.swift +++ b/submodules/TelegramCore/Sources/Serialization.swift @@ -210,7 +210,7 @@ public class BoxedMessage: NSObject { public class Serialization: NSObject, MTSerialization { public func currentLayer() -> UInt { - return 126 + return 127 } public func parseMessage(_ data: Data!) -> Any! { diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 8bfa8cd056..9089ce6470 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -3714,13 +3714,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G var isScrolled: Bool } - let messageRangeEdge: Signal = self.context.sharedContext.accountManager.sharedData(keys: Set([ApplicationSpecificSharedDataKeys.experimentalUISettings])) - |> map { sharedData -> Bool in - let experimentalSettings: ExperimentalUISettings = (sharedData.entries[ApplicationSpecificSharedDataKeys.experimentalUISettings] as? ExperimentalUISettings) ?? ExperimentalUISettings.defaultSettings - return experimentalSettings.snapPinListToTop - } - |> distinctUntilChanged - let referenceMessage: Signal if latest { referenceMessage = .single(nil) @@ -3728,16 +3721,11 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G referenceMessage = combineLatest( queue: Queue.mainQueue(), self.scrolledToMessageId.get(), - self.chatDisplayNode.historyNode.topVisibleMessageRange.get(), - messageRangeEdge + self.chatDisplayNode.historyNode.topVisibleMessageRange.get() ) - |> map { scrolledToMessageId, topVisibleMessageRange, messageRangeEdge -> ReferenceMessage? in + |> map { scrolledToMessageId, topVisibleMessageRange -> ReferenceMessage? in let topVisibleMessage: MessageId? - if messageRangeEdge { - topVisibleMessage = topVisibleMessageRange?.lowerBound - } else { - topVisibleMessage = topVisibleMessageRange?.upperBound - } + topVisibleMessage = topVisibleMessageRange?.upperBound if let scrolledToMessageId = scrolledToMessageId { if let topVisibleMessage = topVisibleMessage { diff --git a/submodules/TelegramUIPreferences/Sources/ExperimentalUISettings.swift b/submodules/TelegramUIPreferences/Sources/ExperimentalUISettings.swift index d685310c04..f5e71e32b4 100644 --- a/submodules/TelegramUIPreferences/Sources/ExperimentalUISettings.swift +++ b/submodules/TelegramUIPreferences/Sources/ExperimentalUISettings.swift @@ -14,8 +14,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry { public var preferredVideoCodec: String? public var disableVideoAspectScaling: Bool public var enableVoipTcp: Bool - public var snapPinListToTop: Bool - public var demoAudioStream: Bool + public var demoVideoChats: Bool public static var defaultSettings: ExperimentalUISettings { return ExperimentalUISettings( @@ -30,8 +29,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry { preferredVideoCodec: nil, disableVideoAspectScaling: false, enableVoipTcp: false, - snapPinListToTop: false, - demoAudioStream: false + demoVideoChats: false ) } @@ -47,8 +45,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry { preferredVideoCodec: String?, disableVideoAspectScaling: Bool, enableVoipTcp: Bool, - snapPinListToTop: Bool, - demoAudioStream: Bool + demoVideoChats: Bool ) { self.keepChatNavigationStack = keepChatNavigationStack self.skipReadHistory = skipReadHistory @@ -61,8 +58,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry { self.preferredVideoCodec = preferredVideoCodec self.disableVideoAspectScaling = disableVideoAspectScaling self.enableVoipTcp = enableVoipTcp - self.snapPinListToTop = snapPinListToTop - self.demoAudioStream = demoAudioStream + self.demoVideoChats = demoVideoChats } public init(decoder: PostboxDecoder) { @@ -77,8 +73,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry { self.preferredVideoCodec = decoder.decodeOptionalStringForKey("preferredVideoCodec") self.disableVideoAspectScaling = decoder.decodeInt32ForKey("disableVideoAspectScaling", orElse: 0) != 0 self.enableVoipTcp = decoder.decodeInt32ForKey("enableVoipTcp", orElse: 0) != 0 - self.snapPinListToTop = decoder.decodeInt32ForKey("snapPinListToTop", orElse: 0) != 0 - self.demoAudioStream = decoder.decodeInt32ForKey("demoAudioStream", orElse: 0) != 0 + self.demoVideoChats = decoder.decodeInt32ForKey("demoVideoChats", orElse: 0) != 0 } public func encode(_ encoder: PostboxEncoder) { @@ -95,8 +90,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry { } encoder.encodeInt32(self.disableVideoAspectScaling ? 1 : 0, forKey: "disableVideoAspectScaling") encoder.encodeInt32(self.enableVoipTcp ? 1 : 0, forKey: "enableVoipTcp") - encoder.encodeInt32(self.snapPinListToTop ? 1 : 0, forKey: "snapPinListToTop") - encoder.encodeInt32(self.demoAudioStream ? 1 : 0, forKey: "demoAudioStream") + encoder.encodeInt32(self.demoVideoChats ? 1 : 0, forKey: "demoVideoChats") } public func isEqual(to: PreferencesEntry) -> Bool { diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index 25ebd99615..e1f6cdaf2c 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit 25ebd996158eeb164217a10297bafcc445c9a6f3 +Subproject commit e1f6cdaf2cefc1a760d74c1de76568a7557c63be