mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Show internet connection warning when uploading keys on log out. (#4027)
* Show the key upload progress when waiting to log out. Add some basic view model tests too. * Show a network suggestion if key upload doesn't report any progress during logout.
This commit is contained in:
@@ -14154,15 +14154,15 @@ class SecureBackupControllerMock: SecureBackupControllerProtocol, @unchecked Sen
|
||||
}
|
||||
//MARK: - waitForKeyBackupUpload
|
||||
|
||||
var waitForKeyBackupUploadUnderlyingCallsCount = 0
|
||||
var waitForKeyBackupUploadCallsCount: Int {
|
||||
var waitForKeyBackupUploadUploadStateSubjectUnderlyingCallsCount = 0
|
||||
var waitForKeyBackupUploadUploadStateSubjectCallsCount: Int {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return waitForKeyBackupUploadUnderlyingCallsCount
|
||||
return waitForKeyBackupUploadUploadStateSubjectUnderlyingCallsCount
|
||||
} else {
|
||||
var returnValue: Int? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = waitForKeyBackupUploadUnderlyingCallsCount
|
||||
returnValue = waitForKeyBackupUploadUploadStateSubjectUnderlyingCallsCount
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
@@ -14170,27 +14170,29 @@ class SecureBackupControllerMock: SecureBackupControllerProtocol, @unchecked Sen
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
waitForKeyBackupUploadUnderlyingCallsCount = newValue
|
||||
waitForKeyBackupUploadUploadStateSubjectUnderlyingCallsCount = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
waitForKeyBackupUploadUnderlyingCallsCount = newValue
|
||||
waitForKeyBackupUploadUploadStateSubjectUnderlyingCallsCount = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var waitForKeyBackupUploadCalled: Bool {
|
||||
return waitForKeyBackupUploadCallsCount > 0
|
||||
var waitForKeyBackupUploadUploadStateSubjectCalled: Bool {
|
||||
return waitForKeyBackupUploadUploadStateSubjectCallsCount > 0
|
||||
}
|
||||
var waitForKeyBackupUploadUploadStateSubjectReceivedUploadStateSubject: CurrentValueSubject<SecureBackupSteadyState, Never>?
|
||||
var waitForKeyBackupUploadUploadStateSubjectReceivedInvocations: [CurrentValueSubject<SecureBackupSteadyState, Never>] = []
|
||||
|
||||
var waitForKeyBackupUploadUnderlyingReturnValue: Result<Void, SecureBackupControllerError>!
|
||||
var waitForKeyBackupUploadReturnValue: Result<Void, SecureBackupControllerError>! {
|
||||
var waitForKeyBackupUploadUploadStateSubjectUnderlyingReturnValue: Result<Void, SecureBackupControllerError>!
|
||||
var waitForKeyBackupUploadUploadStateSubjectReturnValue: Result<Void, SecureBackupControllerError>! {
|
||||
get {
|
||||
if Thread.isMainThread {
|
||||
return waitForKeyBackupUploadUnderlyingReturnValue
|
||||
return waitForKeyBackupUploadUploadStateSubjectUnderlyingReturnValue
|
||||
} else {
|
||||
var returnValue: Result<Void, SecureBackupControllerError>? = nil
|
||||
DispatchQueue.main.sync {
|
||||
returnValue = waitForKeyBackupUploadUnderlyingReturnValue
|
||||
returnValue = waitForKeyBackupUploadUploadStateSubjectUnderlyingReturnValue
|
||||
}
|
||||
|
||||
return returnValue!
|
||||
@@ -14198,22 +14200,26 @@ class SecureBackupControllerMock: SecureBackupControllerProtocol, @unchecked Sen
|
||||
}
|
||||
set {
|
||||
if Thread.isMainThread {
|
||||
waitForKeyBackupUploadUnderlyingReturnValue = newValue
|
||||
waitForKeyBackupUploadUploadStateSubjectUnderlyingReturnValue = newValue
|
||||
} else {
|
||||
DispatchQueue.main.sync {
|
||||
waitForKeyBackupUploadUnderlyingReturnValue = newValue
|
||||
waitForKeyBackupUploadUploadStateSubjectUnderlyingReturnValue = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var waitForKeyBackupUploadClosure: (() async -> Result<Void, SecureBackupControllerError>)?
|
||||
var waitForKeyBackupUploadUploadStateSubjectClosure: ((CurrentValueSubject<SecureBackupSteadyState, Never>) async -> Result<Void, SecureBackupControllerError>)?
|
||||
|
||||
func waitForKeyBackupUpload() async -> Result<Void, SecureBackupControllerError> {
|
||||
waitForKeyBackupUploadCallsCount += 1
|
||||
if let waitForKeyBackupUploadClosure = waitForKeyBackupUploadClosure {
|
||||
return await waitForKeyBackupUploadClosure()
|
||||
func waitForKeyBackupUpload(uploadStateSubject: CurrentValueSubject<SecureBackupSteadyState, Never>) async -> Result<Void, SecureBackupControllerError> {
|
||||
waitForKeyBackupUploadUploadStateSubjectCallsCount += 1
|
||||
waitForKeyBackupUploadUploadStateSubjectReceivedUploadStateSubject = uploadStateSubject
|
||||
DispatchQueue.main.async {
|
||||
self.waitForKeyBackupUploadUploadStateSubjectReceivedInvocations.append(uploadStateSubject)
|
||||
}
|
||||
if let waitForKeyBackupUploadUploadStateSubjectClosure = waitForKeyBackupUploadUploadStateSubjectClosure {
|
||||
return await waitForKeyBackupUploadUploadStateSubjectClosure(uploadStateSubject)
|
||||
} else {
|
||||
return waitForKeyBackupUploadReturnValue
|
||||
return waitForKeyBackupUploadUploadStateSubjectReturnValue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user