mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Display only available secure backup methods on setup
This commit is contained in:
parent
90b79f2303
commit
6102927e9c
4 changed files with 25 additions and 3 deletions
|
@ -123,6 +123,21 @@ final class SecureBackupSetupIntroViewController: UIViewController {
|
||||||
}
|
}
|
||||||
self.delegate?.secureBackupSetupIntroViewControllerDidTapUsePassphrase(self)
|
self.delegate?.secureBackupSetupIntroViewControllerDidTapUsePassphrase(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setupBackupMethods()
|
||||||
|
}
|
||||||
|
|
||||||
|
private func setupBackupMethods() {
|
||||||
|
let secureBackupSetupMethods = self.viewModel.homeserverEncryptionConfiguration.secureBackupSetupMethods
|
||||||
|
|
||||||
|
// Hide setup methods that are not listed
|
||||||
|
if !secureBackupSetupMethods.contains(.key) {
|
||||||
|
self.secureKeyCell.isHidden = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if !secureBackupSetupMethods.contains(.passphrase) {
|
||||||
|
self.securePassphraseCell.isHidden = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func renderLoading() {
|
private func renderLoading() {
|
||||||
|
|
|
@ -23,11 +23,13 @@ final class SecureBackupSetupIntroViewModel: SecureBackupSetupIntroViewModelType
|
||||||
// TODO: Make these properties private
|
// TODO: Make these properties private
|
||||||
let keyBackup: MXKeyBackup?
|
let keyBackup: MXKeyBackup?
|
||||||
let checkKeyBackup: Bool
|
let checkKeyBackup: Bool
|
||||||
|
let homeserverEncryptionConfiguration: HomeserverEncryptionConfiguration
|
||||||
|
|
||||||
// MARK: - Setup
|
// MARK: - Setup
|
||||||
|
|
||||||
init(keyBackup: MXKeyBackup?, checkKeyBackup: Bool) {
|
init(keyBackup: MXKeyBackup?, checkKeyBackup: Bool, homeserverEncryptionConfiguration: HomeserverEncryptionConfiguration) {
|
||||||
self.keyBackup = keyBackup
|
self.keyBackup = keyBackup
|
||||||
self.checkKeyBackup = checkKeyBackup
|
self.checkKeyBackup = checkKeyBackup
|
||||||
}
|
self.homeserverEncryptionConfiguration = homeserverEncryptionConfiguration
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,4 +22,5 @@ protocol SecureBackupSetupIntroViewModelType {
|
||||||
// TODO: Hide these properties from interface and use same behavior as other view models
|
// TODO: Hide these properties from interface and use same behavior as other view models
|
||||||
var keyBackup: MXKeyBackup? { get }
|
var keyBackup: MXKeyBackup? { get }
|
||||||
var checkKeyBackup: Bool { get }
|
var checkKeyBackup: Bool { get }
|
||||||
|
var homeserverEncryptionConfiguration: HomeserverEncryptionConfiguration { get }
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ final class SecureBackupSetupCoordinator: SecureBackupSetupCoordinatorType {
|
||||||
private let recoveryService: MXRecoveryService
|
private let recoveryService: MXRecoveryService
|
||||||
private let keyBackup: MXKeyBackup?
|
private let keyBackup: MXKeyBackup?
|
||||||
private let checkKeyBackup: Bool
|
private let checkKeyBackup: Bool
|
||||||
|
private let homeserverEncryptionConfiguration: HomeserverEncryptionConfiguration
|
||||||
private let allowOverwrite: Bool
|
private let allowOverwrite: Bool
|
||||||
private let cancellable: Bool
|
private let cancellable: Bool
|
||||||
|
|
||||||
|
@ -58,6 +59,7 @@ final class SecureBackupSetupCoordinator: SecureBackupSetupCoordinatorType {
|
||||||
self.recoveryService = session.crypto.recoveryService
|
self.recoveryService = session.crypto.recoveryService
|
||||||
self.keyBackup = session.crypto.backup
|
self.keyBackup = session.crypto.backup
|
||||||
self.checkKeyBackup = checkKeyBackup
|
self.checkKeyBackup = checkKeyBackup
|
||||||
|
self.homeserverEncryptionConfiguration = session.vc_homeserverConfiguration().encryption
|
||||||
self.allowOverwrite = allowOverwrite
|
self.allowOverwrite = allowOverwrite
|
||||||
self.cancellable = cancellable
|
self.cancellable = cancellable
|
||||||
|
|
||||||
|
@ -90,7 +92,9 @@ final class SecureBackupSetupCoordinator: SecureBackupSetupCoordinatorType {
|
||||||
|
|
||||||
private func createIntro() -> SecureBackupSetupIntroViewController {
|
private func createIntro() -> SecureBackupSetupIntroViewController {
|
||||||
// TODO: Use a coordinator
|
// TODO: Use a coordinator
|
||||||
let viewModel = SecureBackupSetupIntroViewModel(keyBackup: self.keyBackup, checkKeyBackup: self.checkKeyBackup)
|
let viewModel = SecureBackupSetupIntroViewModel(keyBackup: self.keyBackup,
|
||||||
|
checkKeyBackup: self.checkKeyBackup,
|
||||||
|
homeserverEncryptionConfiguration: self.homeserverEncryptionConfiguration)
|
||||||
let introViewController = SecureBackupSetupIntroViewController.instantiate(with: viewModel, cancellable: self.cancellable)
|
let introViewController = SecureBackupSetupIntroViewController.instantiate(with: viewModel, cancellable: self.cancellable)
|
||||||
introViewController.delegate = self
|
introViewController.delegate = self
|
||||||
return introViewController
|
return introViewController
|
||||||
|
|
Loading…
Reference in a new issue