vector-im/element-x-ios/issues/53 - Adopt MainActors, dispatch heavy operations do detached tasks and ensure combine publisher call back on the right queue

This commit is contained in:
Stefan Ceriu
2022-05-25 13:28:19 +03:00
committed by Stefan Ceriu
parent dde7786152
commit f5890b68a2
29 changed files with 100 additions and 90 deletions
@@ -85,16 +85,12 @@ final class HomeScreenCoordinator: Coordinator, Presentable {
Task {
if case let .success(userAvatarURL) = await parameters.userSession.loadUserAvatarURL() {
if case let .success(avatar) = await parameters.mediaProvider.loadImageFromURL(userAvatarURL) {
await MainActor.run {
self.viewModel.updateWithUserAvatar(avatar)
}
self.viewModel.updateWithUserAvatar(avatar)
}
}
if case let .success(userDisplayName) = await parameters.userSession.loadUserDisplayName() {
await MainActor.run {
self.viewModel.updateWithUserDisplayName(userDisplayName)
}
self.viewModel.updateWithUserDisplayName(userDisplayName)
}
}
}
@@ -47,11 +47,11 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
override func process(viewAction: HomeScreenViewAction) {
switch viewAction {
case .logout:
self.completion?(.logout)
completion?(.logout)
case .loadRoomData(let roomIdentifier):
self.loadRoomDataForIdentifier(roomIdentifier)
loadRoomDataForIdentifier(roomIdentifier)
case .selectRoom(let roomIdentifier):
self.completion?(.selectRoom(roomIdentifier: roomIdentifier))
completion?(.selectRoom(roomIdentifier: roomIdentifier))
}
}
@@ -17,6 +17,7 @@
import Foundation
import UIKit
@MainActor
protocol HomeScreenViewModelProtocol {
var completion: ((HomeScreenViewModelResult) -> Void)? { get set }