Update api and call messages

This commit is contained in:
Isaac
2025-09-12 10:56:05 +02:00
parent 18e40eafe3
commit a257009780
15 changed files with 606 additions and 148 deletions

View File

@@ -822,6 +822,18 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
private let e2eContext: ConferenceCallE2EContext?
private var messagesContext: GroupCallMessagesContext? {
didSet {
if let messagesContext = self.messagesContext {
self.messagesStatePromise.set(messagesContext.state)
}
}
}
private let messagesStatePromise = Promise<GroupCallMessagesContext.State>(GroupCallMessagesContext.State(messages: []))
public var messagesState: Signal<GroupCallMessagesContext.State, NoError> {
return self.messagesStatePromise.get()
}
private var lastErrorAlertTimestamp: Double = 0.0
init(
@@ -911,6 +923,14 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
self.e2eContext = nil
}
if let initialCall {
self.messagesContext = accountContext.engine.messages.groupCallMessages(
callId: initialCall.description.id,
reference: .id(id: initialCall.description.id, accessHash: initialCall.description.accessHash),
e2eContext: self.e2eContext
)
}
var sharedAudioContext = sharedAudioContext
if sharedAudioContext == nil {
var useSharedAudio = !isStream
@@ -2959,6 +2979,11 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
}
public func setIsMuted(action: PresentationGroupCallMuteAction) {
if "".isEmpty {
self.messagesContext?.send(text: "test\(UInt32.random(in: 0 ... UInt32.max))", entities: [])
return
}
if self.isMutedValue == action {
return
}
@@ -3959,6 +3984,12 @@ public final class PresentationGroupCallImpl: PresentationGroupCall {
}
})
}
public func sendMessage(text: String, entities: [MessageTextEntity]) {
if let messagesContext = self.messagesContext {
messagesContext.send(text: text, entities: entities)
}
}
}
public final class TelegramE2EEncryptionProviderImpl: TelegramE2EEncryptionProvider {