EC: handle back navigation from the webview
EC: remove native header updated element call to 0.13.0-rc1
This commit is contained in:
@@ -8764,7 +8764,7 @@
|
||||
repositoryURL = "https://github.com/element-hq/element-call-swift";
|
||||
requirement = {
|
||||
kind = exactVersion;
|
||||
version = 0.12.2;
|
||||
version = "0.13.0-rc.1";
|
||||
};
|
||||
};
|
||||
821C67C9A7F8CC3FD41B28B4 /* XCRemoteSwiftPackageReference "emojibase-bindings" */ = {
|
||||
|
||||
@@ -59,8 +59,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/element-hq/element-call-swift",
|
||||
"state" : {
|
||||
"revision" : "46e04acd94d139223364806063eda083f17007d0",
|
||||
"version" : "0.12.2"
|
||||
"revision" : "b3ceeddf59652a0806c008858ef9885bdd924d4c",
|
||||
"version" : "0.13.0-rc.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -56,6 +56,8 @@ enum CallScreenJavaScriptMessageName: String, CaseIterable {
|
||||
case showNativeOutputDevicePicker
|
||||
/// Used to determine if the webview has selected the earpiece or not.
|
||||
case onOutputDeviceSelect
|
||||
/// Used to handle the webview back button
|
||||
case onBackButtonPressed
|
||||
|
||||
private var postMessageScript: String {
|
||||
switch self {
|
||||
@@ -87,6 +89,12 @@ enum CallScreenJavaScriptMessageName: String, CaseIterable {
|
||||
window.webkit.messageHandlers.\(rawValue).postMessage(id);
|
||||
};
|
||||
"""
|
||||
case .onBackButtonPressed:
|
||||
"""
|
||||
window.controls.\(rawValue) = () => {
|
||||
window.webkit.messageHandlers.\(rawValue).postMessage("");
|
||||
}
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ class CallScreenViewModel: CallScreenViewModelType, CallScreenViewModelProtocol
|
||||
setupCall()
|
||||
|
||||
timeoutTask = Task { [weak self] in
|
||||
try? await Task.sleep(for: .seconds(30))
|
||||
try? await Task.sleep(for: .seconds(10))
|
||||
guard !Task.isCancelled, let self else { return }
|
||||
MXLog.error("Failed to join Element Call: Timeout")
|
||||
state.bindings.alertInfo = .init(id: UUID(),
|
||||
|
||||
@@ -16,21 +16,10 @@ struct CallScreen: View {
|
||||
@ObservedObject var context: CallScreenViewModel.Context
|
||||
|
||||
var body: some View {
|
||||
NavigationStack {
|
||||
content
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||
.background(Color.compound.bgCanvasDefault.ignoresSafeArea())
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .cancellationAction) {
|
||||
Button { context.send(viewAction: .navigateBack) } label: {
|
||||
Image(systemSymbol: .chevronBackward)
|
||||
.fontWeight(.semibold)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.alert(item: $context.alertInfo)
|
||||
content
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||
.background(Color.compound.bgCanvasDefault.ignoresSafeArea())
|
||||
.alert(item: $context.alertInfo)
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
@@ -185,6 +174,8 @@ private struct CallView: UIViewRepresentable {
|
||||
case .onOutputDeviceSelect:
|
||||
guard let deviceID = message.body as? String else { return }
|
||||
viewModelContext?.send(viewAction: .outputDeviceSelected(deviceID: deviceID))
|
||||
case .onBackButtonPressed:
|
||||
viewModelContext?.send(viewAction: .navigateBack)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -354,8 +345,6 @@ struct CallScreen_Previews: PreviewProvider {
|
||||
}()
|
||||
|
||||
static var previews: some View {
|
||||
NavigationStack {
|
||||
CallScreen(context: viewModel.context)
|
||||
}
|
||||
CallScreen(context: viewModel.context)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ class ElementCallWidgetDriver: WidgetCapabilitiesProvider, ElementCallWidgetDriv
|
||||
widgetId: widgetID,
|
||||
parentUrl: nil,
|
||||
header: .appBar,
|
||||
hideHeader: nil,
|
||||
hideHeader: true,
|
||||
preload: nil,
|
||||
fontScale: nil,
|
||||
appPrompt: false,
|
||||
|
||||
@@ -77,7 +77,7 @@ packages:
|
||||
# path: ../matrix-analytics-events
|
||||
EmbeddedElementCall:
|
||||
url: https://github.com/element-hq/element-call-swift
|
||||
exactVersion: 0.12.2
|
||||
exactVersion: 0.13.0-rc.1
|
||||
Emojibase:
|
||||
url: https://github.com/matrix-org/emojibase-bindings
|
||||
minorVersion: 1.4.2
|
||||
|
||||
Reference in New Issue
Block a user