mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-06 16:07:42 +02:00
Merge pull request #2964 from vector-im/riot_2922_2
Settings: Add session verification screens
This commit is contained in:
@@ -62,6 +62,8 @@ enum {
|
||||
UIViewController *pushedViewController;
|
||||
}
|
||||
|
||||
@property (nonatomic, strong) UserVerificationCoordinatorBridgePresenter *userVerificationCoordinatorBridgePresenter;
|
||||
|
||||
@end
|
||||
|
||||
@implementation ManageSessionViewController
|
||||
@@ -636,7 +638,13 @@ enum {
|
||||
|
||||
- (void)showTrustForDevice:(MXDevice *)device
|
||||
{
|
||||
[[AppDelegate theDelegate] showAlertWithTitle:@"Device Trust" message:@"TODO with bottom sheet 😛"];
|
||||
UserVerificationCoordinatorBridgePresenter *userVerificationCoordinatorBridgePresenter = [[UserVerificationCoordinatorBridgePresenter alloc] initWithPresenter:self
|
||||
session:self.mainSession
|
||||
userId:self.mainSession.myUser.userId
|
||||
userDisplayName:nil
|
||||
deviceId:device.deviceId];
|
||||
[userVerificationCoordinatorBridgePresenter start];
|
||||
self.userVerificationCoordinatorBridgePresenter = userVerificationCoordinatorBridgePresenter;
|
||||
}
|
||||
|
||||
- (void)removeDevice
|
||||
|
||||
+2
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user