mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 17:12:45 +02:00
IM: Terms modal: Display terms page into a webview
This commit is contained in:
@@ -58,12 +58,16 @@ final class ServiceTermsModalScreenCoordinator: ServiceTermsModalScreenCoordinat
|
||||
|
||||
// MARK: - ServiceTermsModalScreenViewModelCoordinatorDelegate
|
||||
extension ServiceTermsModalScreenCoordinator: ServiceTermsModalScreenViewModelCoordinatorDelegate {
|
||||
|
||||
func ServiceTermsModalScreenViewModelDidAccept(_ viewModel: ServiceTermsModalScreenViewModelType) {
|
||||
self.delegate?.ServiceTermsModalScreenCoordinatorDidAccept(self)
|
||||
|
||||
func serviceTermsModalScreenViewModelDidAccept(_ viewModel: ServiceTermsModalScreenViewModelType) {
|
||||
self.delegate?.serviceTermsModalScreenCoordinatorDidAccept(self)
|
||||
}
|
||||
|
||||
func serviceTermsModalScreenViewModel(_ coordinator: ServiceTermsModalScreenViewModelType, displayPolicy policy: MXLoginPolicyData) {
|
||||
self.delegate?.serviceTermsModalScreenCoordinator(self, displayPolicy: policy)
|
||||
}
|
||||
|
||||
func ServiceTermsModalScreenViewModelDidCancel(_ viewModel: ServiceTermsModalScreenViewModelType) {
|
||||
self.delegate?.ServiceTermsModalScreenCoordinatorDidCancel(self)
|
||||
func serviceTermsModalScreenViewModelDidCancel(_ viewModel: ServiceTermsModalScreenViewModelType) {
|
||||
self.delegate?.serviceTermsModalScreenCoordinatorDidCancel(self)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,9 @@
|
||||
import Foundation
|
||||
|
||||
protocol ServiceTermsModalScreenCoordinatorDelegate: class {
|
||||
func ServiceTermsModalScreenCoordinatorDidAccept(_ coordinator: ServiceTermsModalScreenCoordinatorType)
|
||||
func ServiceTermsModalScreenCoordinatorDidCancel(_ coordinator: ServiceTermsModalScreenCoordinatorType)
|
||||
func serviceTermsModalScreenCoordinatorDidAccept(_ coordinator: ServiceTermsModalScreenCoordinatorType)
|
||||
func serviceTermsModalScreenCoordinator(_ coordinator: ServiceTermsModalScreenCoordinatorType, displayPolicy policy: MXLoginPolicyData)
|
||||
func serviceTermsModalScreenCoordinatorDidCancel(_ coordinator: ServiceTermsModalScreenCoordinatorType)
|
||||
}
|
||||
|
||||
/// `ServiceTermsModalScreenCoordinatorType` is a protocol describing a Coordinator that handle key backup setup passphrase navigation flow.
|
||||
|
||||
@@ -21,7 +21,7 @@ import Foundation
|
||||
/// ServiceTermsModalScreenViewController view actions exposed to view model
|
||||
enum ServiceTermsModalScreenViewAction {
|
||||
case load
|
||||
case review(String)
|
||||
case display(MXLoginPolicyData)
|
||||
case accept
|
||||
case cancel
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ final class ServiceTermsModalScreenViewController: UIViewController {
|
||||
// MARK: - ServiceTermsModalScreenViewModelViewDelegate
|
||||
extension ServiceTermsModalScreenViewController: ServiceTermsModalScreenViewModelViewDelegate {
|
||||
|
||||
func ServiceTermsModalScreenViewModel(_ viewModel: ServiceTermsModalScreenViewModelType, didUpdateViewState viewSate: ServiceTermsModalScreenViewState) {
|
||||
func serviceTermsModalScreenViewModel(_ viewModel: ServiceTermsModalScreenViewModelType, didUpdateViewState viewSate: ServiceTermsModalScreenViewState) {
|
||||
self.render(viewState: viewSate)
|
||||
}
|
||||
}
|
||||
@@ -253,6 +253,6 @@ extension ServiceTermsModalScreenViewController: UITableViewDataSource {
|
||||
extension ServiceTermsModalScreenViewController: UITableViewDelegate {
|
||||
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
||||
let policy = policies[indexPath.row]
|
||||
self.viewModel.process(viewAction: .review(policy.url))
|
||||
self.viewModel.process(viewAction: .display(policy))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,13 +48,12 @@ final class ServiceTermsModalScreenViewModel: ServiceTermsModalScreenViewModelTy
|
||||
switch viewAction {
|
||||
case .load:
|
||||
self.loadTerms()
|
||||
case .review(let policy):
|
||||
// TODO
|
||||
self.coordinatorDelegate?.ServiceTermsModalScreenViewModelDidCancel(self)
|
||||
case .display(let policy):
|
||||
self.coordinatorDelegate?.serviceTermsModalScreenViewModel(self, displayPolicy: policy)
|
||||
case .accept:
|
||||
self.acceptTerms()
|
||||
case .cancel:
|
||||
self.coordinatorDelegate?.ServiceTermsModalScreenViewModelDidCancel(self)
|
||||
self.coordinatorDelegate?.serviceTermsModalScreenViewModelDidCancel(self)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +90,7 @@ final class ServiceTermsModalScreenViewModel: ServiceTermsModalScreenViewModelTy
|
||||
return
|
||||
}
|
||||
self.update(viewState: .accepted)
|
||||
self.coordinatorDelegate?.ServiceTermsModalScreenViewModelDidAccept(self)
|
||||
self.coordinatorDelegate?.serviceTermsModalScreenViewModelDidAccept(self)
|
||||
|
||||
}, failure: { [weak self] (error) in
|
||||
guard let self = self else {
|
||||
@@ -119,6 +118,6 @@ final class ServiceTermsModalScreenViewModel: ServiceTermsModalScreenViewModelTy
|
||||
}
|
||||
|
||||
private func update(viewState: ServiceTermsModalScreenViewState) {
|
||||
self.viewDelegate?.ServiceTermsModalScreenViewModel(self, didUpdateViewState: viewState)
|
||||
self.viewDelegate?.serviceTermsModalScreenViewModel(self, didUpdateViewState: viewState)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,12 +19,13 @@
|
||||
import Foundation
|
||||
|
||||
protocol ServiceTermsModalScreenViewModelViewDelegate: class {
|
||||
func ServiceTermsModalScreenViewModel(_ viewModel: ServiceTermsModalScreenViewModelType, didUpdateViewState viewSate: ServiceTermsModalScreenViewState)
|
||||
func serviceTermsModalScreenViewModel(_ viewModel: ServiceTermsModalScreenViewModelType, didUpdateViewState viewSate: ServiceTermsModalScreenViewState)
|
||||
}
|
||||
|
||||
protocol ServiceTermsModalScreenViewModelCoordinatorDelegate: class {
|
||||
func ServiceTermsModalScreenViewModelDidAccept(_ viewModel: ServiceTermsModalScreenViewModelType)
|
||||
func ServiceTermsModalScreenViewModelDidCancel(_ viewModel: ServiceTermsModalScreenViewModelType)
|
||||
func serviceTermsModalScreenViewModel(_ coordinator: ServiceTermsModalScreenViewModelType, displayPolicy policy: MXLoginPolicyData)
|
||||
func serviceTermsModalScreenViewModelDidAccept(_ viewModel: ServiceTermsModalScreenViewModelType)
|
||||
func serviceTermsModalScreenViewModelDidCancel(_ viewModel: ServiceTermsModalScreenViewModelType)
|
||||
}
|
||||
|
||||
/// Protocol describing the view model used by `ServiceTermsModalScreenViewController`
|
||||
|
||||
Reference in New Issue
Block a user