mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 03:06:37 +00:00
1b4d3a650e
- updated the authentication coordinator to use async await - replaced the UserSession with a ClientProxy (similar to the RoomProxy) - renamed `completion` to `callback` on the coordinators and view models - renamed `viewModelResult` to `viewModelAction` - introduced back UserSession as a user specific service container
37 lines
903 B
Swift
37 lines
903 B
Swift
//
|
|
// ClientProxyProtocol.swift
|
|
// ElementX
|
|
//
|
|
// Created by Stefan Ceriu on 26/05/2022.
|
|
// Copyright © 2022 element.io. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import MatrixRustSDK
|
|
import Combine
|
|
|
|
enum ClientProxyCallback {
|
|
case updatedRoomsList
|
|
}
|
|
|
|
enum ClientProxyError: Error {
|
|
case failedRetrievingAvatarURL
|
|
case failedRetrievingDisplayName
|
|
}
|
|
|
|
protocol ClientProxyProtocol {
|
|
var callbacks: PassthroughSubject<ClientProxyCallback, Never> { get }
|
|
|
|
var userIdentifier: String { get }
|
|
|
|
var rooms: [RoomProxy] { get }
|
|
|
|
func loadUserDisplayName() async -> Result<String, ClientProxyError>
|
|
|
|
func loadUserAvatarURLString() async -> Result<String, ClientProxyError>
|
|
|
|
func mediaSourceForURLString(_ urlString: String) -> MatrixRustSDK.MediaSource
|
|
|
|
func loadMediaContentForSource(_ source: MatrixRustSDK.MediaSource) throws -> Data
|
|
}
|