Display only available secure backup methods on setup

This commit is contained in:
Arnaud Ringenbach 2022-03-09 11:36:49 +01:00
parent 90b79f2303
commit 6102927e9c
4 changed files with 25 additions and 3 deletions

View file

@ -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() {

View file

@ -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
}
} }

View file

@ -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 }
} }

View file

@ -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