mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 15:52: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 badgeImage: UIImage
|
||||||
let title: String
|
let title: String
|
||||||
|
|
||||||
|
self.untrustedSessionContainerView.isHidden = viewData.isDeviceTrusted
|
||||||
|
|
||||||
if viewData.isDeviceTrusted {
|
if viewData.isDeviceTrusted {
|
||||||
badgeImage = Asset.Images.encryptionTrusted.image
|
badgeImage = Asset.Images.encryptionTrusted.image
|
||||||
title = "Trusted"
|
title = "Trusted"
|
||||||
|
|
|
@ -30,6 +30,7 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
||||||
private let session: MXSession
|
private let session: MXSession
|
||||||
private let userId: String
|
private let userId: String
|
||||||
private let userDisplayName: String?
|
private let userDisplayName: String?
|
||||||
|
private var deviceId: String?
|
||||||
|
|
||||||
// MARK: Public
|
// MARK: Public
|
||||||
|
|
||||||
|
@ -48,6 +49,11 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
||||||
self.userDisplayName = userDisplayName
|
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
|
// MARK: - Public methods
|
||||||
|
|
||||||
func start() {
|
func start() {
|
||||||
|
@ -56,8 +62,14 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let rootCoordinator = UserVerificationSessionsStatusCoordinator(session: self.session, userId: self.userId)
|
let rootCoordinator: Coordinator & Presentable
|
||||||
rootCoordinator.delegate = self
|
|
||||||
|
if let deviceId = self.deviceId {
|
||||||
|
rootCoordinator = self.createSessionStatusCoordinator(with: deviceId, for: self.userId, userDisplayName: self.userDisplayName)
|
||||||
|
} else {
|
||||||
|
rootCoordinator = self.createUserVerificationSessionsStatusCoordinator()
|
||||||
|
}
|
||||||
|
|
||||||
rootCoordinator.start()
|
rootCoordinator.start()
|
||||||
|
|
||||||
self.add(childCoordinator: rootCoordinator)
|
self.add(childCoordinator: rootCoordinator)
|
||||||
|
@ -70,7 +82,7 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
||||||
rootViewController.modalPresentationStyle = .formSheet
|
rootViewController.modalPresentationStyle = .formSheet
|
||||||
|
|
||||||
self.presenter.toPresentable().present(rootViewController, animated: true, completion: nil)
|
self.presenter.toPresentable().present(rootViewController, animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func toPresentable() -> UIViewController {
|
func toPresentable() -> UIViewController {
|
||||||
return self.navigationRouter.toPresentable()
|
return self.navigationRouter.toPresentable()
|
||||||
|
@ -78,9 +90,20 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy
|
||||||
|
|
||||||
// MARK: - Private methods
|
// 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)
|
let coordinator = UserVerificationSessionStatusCoordinator(session: self.session, userId: userId, userDisplayName: userDisplayName, deviceId: deviceId)
|
||||||
coordinator.delegate = self
|
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()
|
coordinator.start()
|
||||||
|
|
||||||
self.navigationRouter.push(coordinator, animated: true) {
|
self.navigationRouter.push(coordinator, animated: true) {
|
||||||
|
|
|
@ -35,6 +35,7 @@ final class UserVerificationCoordinatorBridgePresenter: NSObject {
|
||||||
private let session: MXSession
|
private let session: MXSession
|
||||||
private let userId: String
|
private let userId: String
|
||||||
private let userDisplayName: String?
|
private let userDisplayName: String?
|
||||||
|
private var deviceId: String?
|
||||||
|
|
||||||
private var coordinator: Coordinator?
|
private var coordinator: Coordinator?
|
||||||
|
|
||||||
|
@ -52,6 +53,15 @@ final class UserVerificationCoordinatorBridgePresenter: NSObject {
|
||||||
super.init()
|
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
|
// MARK: - Public
|
||||||
|
|
||||||
func start() {
|
func start() {
|
||||||
|
@ -59,7 +69,15 @@ final class UserVerificationCoordinatorBridgePresenter: NSObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
func present() {
|
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()
|
userVerificationCoordinator.start()
|
||||||
self.coordinator = userVerificationCoordinator
|
self.coordinator = userVerificationCoordinator
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue