Key backup Rust API adoption (#1952)

* Adopt Rust side secure backup APIs (incomplete, based on poljar/backup-pr)

* Implement the home screen recovery key confirmation banner.

* Update with the latest Rust changes.

The loading button for .unknown was incorrect. It should be treated as disabled.

---------

Co-authored-by: Doug <douglase@element.io>
This commit is contained in:
Stefan Ceriu
2023-10-27 22:16:51 +03:00
committed by GitHub
parent 4077f5f4bb
commit a837ce5cff
22 changed files with 444 additions and 166 deletions
@@ -2607,44 +2607,39 @@ class SecureBackupControllerMock: SecureBackupControllerProtocol {
set(value) { underlyingKeyBackupState = value }
}
var underlyingKeyBackupState: CurrentValuePublisher<SecureBackupKeyBackupState, Never>!
var isLastSession: Bool {
get { return underlyingIsLastSession }
set(value) { underlyingIsLastSession = value }
//MARK: - enable
var enableCallsCount = 0
var enableCalled: Bool {
return enableCallsCount > 0
}
var underlyingIsLastSession: Bool!
var enableReturnValue: Result<Void, SecureBackupControllerError>!
var enableClosure: (() async -> Result<Void, SecureBackupControllerError>)?
//MARK: - enableBackup
var enableBackupCallsCount = 0
var enableBackupCalled: Bool {
return enableBackupCallsCount > 0
}
var enableBackupReturnValue: Result<Void, SecureBackupControllerError>!
var enableBackupClosure: (() async -> Result<Void, SecureBackupControllerError>)?
func enableBackup() async -> Result<Void, SecureBackupControllerError> {
enableBackupCallsCount += 1
if let enableBackupClosure = enableBackupClosure {
return await enableBackupClosure()
func enable() async -> Result<Void, SecureBackupControllerError> {
enableCallsCount += 1
if let enableClosure = enableClosure {
return await enableClosure()
} else {
return enableBackupReturnValue
return enableReturnValue
}
}
//MARK: - disableBackup
//MARK: - disable
var disableBackupCallsCount = 0
var disableBackupCalled: Bool {
return disableBackupCallsCount > 0
var disableCallsCount = 0
var disableCalled: Bool {
return disableCallsCount > 0
}
var disableBackupReturnValue: Result<Void, SecureBackupControllerError>!
var disableBackupClosure: (() async -> Result<Void, SecureBackupControllerError>)?
var disableReturnValue: Result<Void, SecureBackupControllerError>!
var disableClosure: (() async -> Result<Void, SecureBackupControllerError>)?
func disableBackup() async -> Result<Void, SecureBackupControllerError> {
disableBackupCallsCount += 1
if let disableBackupClosure = disableBackupClosure {
return await disableBackupClosure()
func disable() async -> Result<Void, SecureBackupControllerError> {
disableCallsCount += 1
if let disableClosure = disableClosure {
return await disableClosure()
} else {
return disableBackupReturnValue
return disableReturnValue
}
}
//MARK: - generateRecoveryKey
@@ -2685,6 +2680,23 @@ class SecureBackupControllerMock: SecureBackupControllerProtocol {
return confirmRecoveryKeyReturnValue
}
}
//MARK: - isLastSession
var isLastSessionCallsCount = 0
var isLastSessionCalled: Bool {
return isLastSessionCallsCount > 0
}
var isLastSessionReturnValue: Result<Bool, SecureBackupControllerError>!
var isLastSessionClosure: (() async -> Result<Bool, SecureBackupControllerError>)?
func isLastSession() async -> Result<Bool, SecureBackupControllerError> {
isLastSessionCallsCount += 1
if let isLastSessionClosure = isLastSessionClosure {
return await isLastSessionClosure()
} else {
return isLastSessionReturnValue
}
}
//MARK: - waitForKeyBackup
var waitForKeyBackupCallsCount = 0