From a3667c30cd651b0586f7d7cb15432f3c20d31880 Mon Sep 17 00:00:00 2001 From: Robin Date: Sun, 23 Feb 2025 20:33:38 +0700 Subject: [PATCH] Show error screens in group calls Element Call now sends a 'close' widget action when the widget is ready to close. Usually this will be sent immediately after the 'hangup' action, but it could be sent later if the widget wants to present an error screen before closing. So by listening to the 'close' action rather than the 'hangup' action, we get to see these error screens. --- .../Sources/Services/ElementCall/ElementCallWidgetDriver.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ElementX/Sources/Services/ElementCall/ElementCallWidgetDriver.swift b/ElementX/Sources/Services/ElementCall/ElementCallWidgetDriver.swift index 9aaaa40cb9..dfa1e3bb62 100644 --- a/ElementX/Sources/Services/ElementCall/ElementCallWidgetDriver.swift +++ b/ElementX/Sources/Services/ElementCall/ElementCallWidgetDriver.swift @@ -17,6 +17,7 @@ struct ElementCallWidgetMessage: Codable { enum Action: String, Codable { case hangup = "im.vector.hangup" + case close = "io.element.close" case mediaState = "io.element.device_mute" } @@ -181,6 +182,8 @@ class ElementCallWidgetDriver: WidgetCapabilitiesProvider, ElementCallWidgetDriv if widgetMessage.direction == .fromWidget { switch widgetMessage.action { case .hangup: + break + case .close: actionsSubject.send(.callEnded) case .mediaState: guard let audioEnabled = widgetMessage.data.audioEnabled,