Support voice broadcast live playback (#7094)

This commit is contained in:
Yoan Pintas
2022-11-25 20:59:34 +01:00
committed by GitHub
parent 5e5272ad03
commit 0cb4e69f05
17 changed files with 116 additions and 148 deletions
@@ -70,9 +70,9 @@ class VoiceBroadcastServiceProvider {
}
}
private func createVoiceBroadcastService(for room: MXRoom, state: VoiceBroadcastInfo.State) {
private func createVoiceBroadcastService(for room: MXRoom, state: VoiceBroadcastInfoState) {
let voiceBroadcastService = VoiceBroadcastService(room: room, state: VoiceBroadcastInfo.State.stopped)
let voiceBroadcastService = VoiceBroadcastService(room: room, state: VoiceBroadcastInfoState.stopped)
self.currentVoiceBroadcastService = voiceBroadcastService
@@ -95,22 +95,22 @@ class VoiceBroadcastServiceProvider {
private func setupVoiceBroadcastService(for room: MXRoom, completion: @escaping (VoiceBroadcastService?) -> Void) {
self.getLastVoiceBroadcastInfo(for: room) { event in
guard let voiceBroadcastInfoEvent = event else {
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfo.State.stopped)
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfoState.stopped)
completion(self.currentVoiceBroadcastService)
return
}
guard let voiceBroadcastInfo = VoiceBroadcastInfo(fromJSON: voiceBroadcastInfoEvent.content) else {
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfo.State.stopped)
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfoState.stopped)
completion(self.currentVoiceBroadcastService)
return
}
if voiceBroadcastInfo.state == VoiceBroadcastInfo.State.stopped.rawValue {
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfo.State.stopped)
if voiceBroadcastInfo.state == VoiceBroadcastInfoState.stopped.rawValue {
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfoState.stopped)
completion(self.currentVoiceBroadcastService)
} else if voiceBroadcastInfoEvent.stateKey == room.mxSession.myUserId {
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfo.State(rawValue: voiceBroadcastInfo.state) ?? VoiceBroadcastInfo.State.stopped)
self.createVoiceBroadcastService(for: room, state: VoiceBroadcastInfoState(rawValue: voiceBroadcastInfo.state) ?? VoiceBroadcastInfoState.stopped)
completion(self.currentVoiceBroadcastService)
} else {
completion(nil)