MXRecoveryService: Add convenient var to return SecretsRecoveryAvailability.

This commit is contained in:
SBiOSoftWhare 2020-06-15 16:12:58 +02:00
parent f70eb6e55f
commit cdb6369231
2 changed files with 30 additions and 12 deletions

View file

@ -0,0 +1,28 @@
/*
Copyright 2020 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import Foundation
extension MXRecoveryService {
var vc_availability: SecretsRecoveryAvailability {
guard self.hasRecovery() else {
return .notAvailable
}
let secretsRecoveryMode: SecretsRecoveryMode = self.usePassphrase() ? .passphraseOrKey : .onlyKey
return .available(secretsRecoveryMode)
}
}

View file

@ -28,10 +28,7 @@ final class KeyVerificationSelfVerifyWaitViewModel: KeyVerificationSelfVerifyWai
private let keyVerificationService: KeyVerificationService
private let verificationManager: MXKeyVerificationManager
private let isNewSignIn: Bool
private lazy var secretsRecoveryAvailability: SecretsRecoveryAvailability = {
return self.secretsRecoveryAvailability(from: self.session.crypto.recoveryService)
}()
private let secretsRecoveryAvailability: SecretsRecoveryAvailability
private var keyVerificationRequest: MXKeyVerificationRequest?
// MARK: Public
@ -46,6 +43,7 @@ final class KeyVerificationSelfVerifyWaitViewModel: KeyVerificationSelfVerifyWai
self.verificationManager = session.crypto.keyVerificationManager
self.keyVerificationService = KeyVerificationService()
self.isNewSignIn = isNewSignIn
self.secretsRecoveryAvailability = session.crypto.recoveryService.vc_availability
}
deinit {
@ -96,14 +94,6 @@ final class KeyVerificationSelfVerifyWaitViewModel: KeyVerificationSelfVerifyWai
self.registerTransactionDidStateChangeNotification()
}
private func secretsRecoveryAvailability(from recoveryService: MXRecoveryService) -> SecretsRecoveryAvailability {
guard recoveryService.hasRecovery() else {
return .notAvailable
}
let secretsRecoveryMode: SecretsRecoveryMode = recoveryService.usePassphrase() ? .passphraseOrKey : .onlyKey
return .available(secretsRecoveryMode)
}
private func cancel() {
self.unregisterKeyVerificationManagerNewRequestNotification()
self.cancelKeyVerificationRequest()