mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
User verification: Add possibility to present on session detail from UserVerificationCoordinator.
This commit is contained in:
parent
c2d1442f94
commit
beb185dc02
3 changed files with 48 additions and 5 deletions
|
@ -147,6 +147,8 @@ final class UserVerificationSessionStatusViewController: UIViewController {
|
|||
let badgeImage: UIImage
|
||||
let title: String
|
||||
|
||||
self.untrustedSessionContainerView.isHidden = viewData.isDeviceTrusted
|
||||
|
||||
if viewData.isDeviceTrusted {
|
||||
badgeImage = Asset.Images.encryptionTrusted.image
|
||||
title = "Trusted"
|
||||
|
|
|
@ -30,6 +30,7 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
|||
private let session: MXSession
|
||||
private let userId: String
|
||||
private let userDisplayName: String?
|
||||
private var deviceId: String?
|
||||
|
||||
// MARK: Public
|
||||
|
||||
|
@ -48,6 +49,11 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
|||
self.userDisplayName = userDisplayName
|
||||
}
|
||||
|
||||
convenience init(presenter: Presentable, session: MXSession, userId: String, userDisplayName: String?, deviceId: String) {
|
||||
self.init(presenter: presenter, session: session, userId: userId, userDisplayName: userDisplayName)
|
||||
self.deviceId = deviceId
|
||||
}
|
||||
|
||||
// MARK: - Public methods
|
||||
|
||||
func start() {
|
||||
|
@ -56,8 +62,14 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
|||
return
|
||||
}
|
||||
|
||||
let rootCoordinator = UserVerificationSessionsStatusCoordinator(session: self.session, userId: self.userId)
|
||||
rootCoordinator.delegate = self
|
||||
let rootCoordinator: Coordinator & Presentable
|
||||
|
||||
if let deviceId = self.deviceId {
|
||||
rootCoordinator = self.createSessionStatusCoordinator(with: deviceId, for: self.userId, userDisplayName: self.userDisplayName)
|
||||
} else {
|
||||
rootCoordinator = self.createUserVerificationSessionsStatusCoordinator()
|
||||
}
|
||||
|
||||
rootCoordinator.start()
|
||||
|
||||
self.add(childCoordinator: rootCoordinator)
|
||||
|
@ -70,7 +82,7 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
|||
rootViewController.modalPresentationStyle = .formSheet
|
||||
|
||||
self.presenter.toPresentable().present(rootViewController, animated: true, completion: nil)
|
||||
}
|
||||
}
|
||||
|
||||
func toPresentable() -> UIViewController {
|
||||
return self.navigationRouter.toPresentable()
|
||||
|
@ -78,9 +90,20 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
|||
|
||||
// MARK: - Private methods
|
||||
|
||||
private func presentSessionStatus(with deviceId: String, for userId: String, userDisplayName: String?) {
|
||||
private func createUserVerificationSessionsStatusCoordinator() -> UserVerificationSessionsStatusCoordinator {
|
||||
let coordinator = UserVerificationSessionsStatusCoordinator(session: self.session, userId: self.userId)
|
||||
coordinator.delegate = self
|
||||
return coordinator
|
||||
}
|
||||
|
||||
private func createSessionStatusCoordinator(with deviceId: String, for userId: String, userDisplayName: String?) -> UserVerificationSessionStatusCoordinator {
|
||||
let coordinator = UserVerificationSessionStatusCoordinator(session: self.session, userId: userId, userDisplayName: userDisplayName, deviceId: deviceId)
|
||||
coordinator.delegate = self
|
||||
return coordinator
|
||||
}
|
||||
|
||||
private func presentSessionStatus(with deviceId: String, for userId: String, userDisplayName: String?) {
|
||||
let coordinator = self.createSessionStatusCoordinator(with: deviceId, for: userId, userDisplayName: userDisplayName)
|
||||
coordinator.start()
|
||||
|
||||
self.navigationRouter.push(coordinator, animated: true) {
|
||||
|
|
|
@ -35,6 +35,7 @@ final class UserVerificationCoordinatorBridgePresenter: NSObject {
|
|||
private let session: MXSession
|
||||
private let userId: String
|
||||
private let userDisplayName: String?
|
||||
private var deviceId: String?
|
||||
|
||||
private var coordinator: Coordinator?
|
||||
|
||||
|
@ -52,6 +53,15 @@ final class UserVerificationCoordinatorBridgePresenter: NSObject {
|
|||
super.init()
|
||||
}
|
||||
|
||||
init(presenter: UIViewController, session: MXSession, userId: String, userDisplayName: String?, deviceId: String) {
|
||||
self.presenter = presenter
|
||||
self.session = session
|
||||
self.userId = userId
|
||||
self.userDisplayName = userDisplayName
|
||||
self.deviceId = deviceId
|
||||
super.init()
|
||||
}
|
||||
|
||||
// MARK: - Public
|
||||
|
||||
func start() {
|
||||
|
@ -59,7 +69,15 @@ final class UserVerificationCoordinatorBridgePresenter: NSObject {
|
|||
}
|
||||
|
||||
func present() {
|
||||
let userVerificationCoordinator = UserVerificationCoordinator(presenter: self.presenter, session: self.session, userId: self.userId, userDisplayName: self.userDisplayName)
|
||||
|
||||
let userVerificationCoordinator: UserVerificationCoordinator
|
||||
|
||||
if let deviceId = self.deviceId {
|
||||
userVerificationCoordinator = UserVerificationCoordinator(presenter: self.presenter, session: self.session, userId: self.userId, userDisplayName: self.userDisplayName, deviceId: deviceId)
|
||||
} else {
|
||||
userVerificationCoordinator = UserVerificationCoordinator(presenter: self.presenter, session: self.session, userId: self.userId, userDisplayName: self.userDisplayName)
|
||||
}
|
||||
|
||||
userVerificationCoordinator.start()
|
||||
self.coordinator = userVerificationCoordinator
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue