Make sure Element Call uses the correct theme and language. (#3017)

This commit is contained in:
Doug
2024-07-09 12:07:13 +01:00
committed by GitHub
parent dbdea337ca
commit fe5cea15d5
8 changed files with 46 additions and 38 deletions
@@ -24,6 +24,7 @@ struct CallScreenCoordinatorParameters {
let clientID: String
let elementCallBaseURL: URL
let elementCallBaseURLOverride: URL?
let colorScheme: ColorScheme
}
enum CallScreenCoordinatorAction {
@@ -45,7 +46,8 @@ final class CallScreenCoordinator: CoordinatorProtocol {
roomProxy: parameters.roomProxy,
clientID: parameters.clientID,
elementCallBaseURL: parameters.elementCallBaseURL,
elementCallBaseURLOverride: parameters.elementCallBaseURLOverride)
elementCallBaseURLOverride: parameters.elementCallBaseURLOverride,
colorScheme: parameters.colorScheme)
}
func start() {
@@ -42,7 +42,8 @@ class CallScreenViewModel: CallScreenViewModelType, CallScreenViewModelProtocol
roomProxy: RoomProxyProtocol,
clientID: String,
elementCallBaseURL: URL,
elementCallBaseURLOverride: URL?) {
elementCallBaseURLOverride: URL?,
colorScheme: ColorScheme) {
self.elementCallService = elementCallService
self.roomProxy = roomProxy
@@ -100,7 +101,7 @@ class CallScreenViewModel: CallScreenViewModelType, CallScreenViewModelProtocol
elementCallBaseURL
}
switch await widgetDriver.start(baseURL: baseURL, clientID: clientID) {
switch await widgetDriver.start(baseURL: baseURL, clientID: clientID, colorScheme: colorScheme) {
case .success(let url):
state.url = url
case .failure(let error):
@@ -27,7 +27,6 @@ struct CallScreen: View {
.id(context.viewState.url)
.ignoresSafeArea(edges: .bottom)
.presentationDragIndicator(.visible)
.environment(\.colorScheme, .dark)
.alert(item: $context.alertInfo)
}
}
@@ -181,7 +180,7 @@ struct CallScreen_Previews: PreviewProvider {
let widgetDriver = ElementCallWidgetDriverMock()
widgetDriver.underlyingMessagePublisher = .init()
widgetDriver.underlyingActions = PassthroughSubject<ElementCallWidgetDriverAction, Never>().eraseToAnyPublisher()
widgetDriver.startBaseURLClientIDReturnValue = .success(URL.userDirectory)
widgetDriver.startBaseURLClientIDColorSchemeReturnValue = .success(URL.userDirectory)
roomProxy.elementCallWidgetDriverReturnValue = widgetDriver
@@ -190,7 +189,8 @@ struct CallScreen_Previews: PreviewProvider {
roomProxy: roomProxy,
clientID: "io.element.elementx",
elementCallBaseURL: "https://call.element.io",
elementCallBaseURLOverride: nil)
elementCallBaseURLOverride: nil,
colorScheme: .light)
}()
static var previews: some View {