diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Coordinator/TemplateUserProfileCoordinator.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Coordinator/TemplateUserProfileCoordinator.swift index 43a155c8d..3b3674967 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Coordinator/TemplateUserProfileCoordinator.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Coordinator/TemplateUserProfileCoordinator.swift @@ -39,7 +39,7 @@ final class TemplateUserProfileCoordinator: Coordinator { @available(iOS 14.0, *) init(session: MXSession) { self.session = session - let viewModel = TemplateUserProfileViewModel(userService: MXTemplateUserService(session: session)) + let viewModel = TemplateUserProfileViewModel(userService: MXTemplateUserProfileService(session: session)) let view = TemplateUserProfile(viewModel: viewModel) .addDependency(MXAvatarService.instantiate(mediaManager: session.mediaManager)) templateUserProfileViewModel = viewModel diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplatePresence.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfilePresence.swift similarity index 84% rename from RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplatePresence.swift rename to RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfilePresence.swift index 3ce14040f..c2d61aaea 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplatePresence.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfilePresence.swift @@ -16,13 +16,13 @@ import Foundation -enum TemplatePresence { +enum TemplateUserProfilePresence { case online case idle case offline } -extension TemplatePresence { +extension TemplateUserProfilePresence { var title: String { switch self { case .online: @@ -35,8 +35,8 @@ extension TemplatePresence { } } -extension TemplatePresence: CaseIterable { } +extension TemplateUserProfilePresence: CaseIterable { } -extension TemplatePresence: Identifiable { +extension TemplateUserProfilePresence: Identifiable { var id: Self { self } } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateProfileStateAction.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileStateAction.swift similarity index 87% rename from RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateProfileStateAction.swift rename to RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileStateAction.swift index cacfe7c6f..e36cf35ce 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateProfileStateAction.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileStateAction.swift @@ -16,6 +16,6 @@ import Foundation -enum TemplateProfileStateAction { - case updatePresence(TemplatePresence) +enum TemplateUserProfileStateAction { + case updatePresence(TemplateUserProfilePresence) } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateProfileViewAction.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileViewAction.swift similarity index 94% rename from RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateProfileViewAction.swift rename to RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileViewAction.swift index 84a732dae..372e24d30 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateProfileViewAction.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileViewAction.swift @@ -16,7 +16,7 @@ import Foundation -enum TemplateProfileViewAction { +enum TemplateUserProfileViewAction { case cancel case done } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileViewState.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileViewState.swift index 5ef626a0d..75b13eed9 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileViewState.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Model/TemplateUserProfileViewState.swift @@ -19,5 +19,5 @@ import Foundation struct TemplateUserProfileViewState { let avatar: AvatarInputType? let displayName: String? - var presence: TemplatePresence = .offline + var presence: TemplateUserProfilePresence = .offline } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/MatrixSDK/MXTemplateUserService.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/MatrixSDK/MXTemplateUserProfileService.swift similarity index 83% rename from RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/MatrixSDK/MXTemplateUserService.swift rename to RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/MatrixSDK/MXTemplateUserProfileService.swift index fc2f3a7fe..889c5824d 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/MatrixSDK/MXTemplateUserService.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/MatrixSDK/MXTemplateUserProfileService.swift @@ -18,7 +18,7 @@ import Foundation import Combine @available(iOS 14.0, *) -class MXTemplateUserService: TemplateUserServiceProtocol { +class MXTemplateUserProfileService: TemplateUserProfileServiceProtocol { // MARK: - Properties @@ -26,7 +26,7 @@ class MXTemplateUserService: TemplateUserServiceProtocol { private let session: MXSession private var listenerReference: Any! - @Published private var presence: TemplatePresence = .offline + @Published private var presence: TemplateUserProfilePresence = .offline // MARK: Public @@ -42,7 +42,7 @@ class MXTemplateUserService: TemplateUserServiceProtocol { session.myUser.avatarUrl } - var presencePublisher: AnyPublisher { + var presencePublisher: AnyPublisher { $presence.eraseToAnyPublisher() } @@ -56,7 +56,7 @@ class MXTemplateUserService: TemplateUserServiceProtocol { let event = event, case .presence = MXEventType(identifier: event.eventId) else { return } - self.presence = TemplatePresence(mxPresence: self.session.myUser.presence) + self.presence = TemplateUserProfilePresence(mxPresence: self.session.myUser.presence) } self.listenerReference = listenerReference } @@ -66,7 +66,7 @@ class MXTemplateUserService: TemplateUserServiceProtocol { } } -fileprivate extension TemplatePresence { +fileprivate extension TemplateUserProfilePresence { init(mxPresence: MXPresence) { switch mxPresence { diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/Mock/MockTemplateUserService.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/Mock/MockTemplateUserProfileService.swift similarity index 76% rename from RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/Mock/MockTemplateUserService.swift rename to RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/Mock/MockTemplateUserProfileService.swift index 99065010a..e7bd2a7e7 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/Mock/MockTemplateUserService.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/Mock/MockTemplateUserProfileService.swift @@ -18,11 +18,11 @@ import Foundation import Combine @available(iOS 14.0, *) -class MockTemplateUserService: TemplateUserServiceProtocol { +class MockTemplateUserProfileService: TemplateUserProfileServiceProtocol { - static let example = MockTemplateUserService() - @Published var presence: TemplatePresence = .online - var presencePublisher: AnyPublisher { + static let example = MockTemplateUserProfileService() + @Published var presence: TemplateUserProfilePresence = .online + var presencePublisher: AnyPublisher { $presence.eraseToAnyPublisher() } let userId: String = "123" diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/TemplateUserServiceProtocol.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/TemplateUserProfileServiceProtocol.swift similarity index 82% rename from RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/TemplateUserServiceProtocol.swift rename to RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/TemplateUserProfileServiceProtocol.swift index 06d3a3f1f..581d7cc37 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/TemplateUserServiceProtocol.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/Service/TemplateUserProfileServiceProtocol.swift @@ -18,15 +18,15 @@ import Foundation import Combine @available(iOS 14.0, *) -protocol TemplateUserServiceProtocol: Avatarable { +protocol TemplateUserProfileServiceProtocol: Avatarable { var userId: String { get } var displayName: String? { get } var avatarUrl: String? { get } - var presencePublisher: AnyPublisher { get } + var presencePublisher: AnyPublisher { get } } @available(iOS 14.0, *) -extension TemplateUserServiceProtocol { +extension TemplateUserProfileServiceProtocol { var mxContentUri: String? { avatarUrl } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfile.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfile.swift index 29c80798e..d2d8ce7b0 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfile.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfile.swift @@ -62,7 +62,7 @@ struct TemplateUserProfile: View { @available(iOS 14.0, *) struct TemplateUserProfile_Previews: PreviewProvider { static var previews: some View { - TemplateUserProfile(viewModel: TemplateUserProfileViewModel(userService: MockTemplateUserService.example)) + TemplateUserProfile(viewModel: TemplateUserProfileViewModel(userService: MockTemplateUserProfileService.example)) .addDependency(MockAvatarService.example) } } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfileHeader.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfileHeader.swift index c13a15a7b..975010f61 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfileHeader.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfileHeader.swift @@ -22,7 +22,7 @@ struct TemplateUserProfileHeader: View { @Environment(\.theme) var theme: ThemeSwiftUI let avatar: AvatarInputType? let displayName: String? - let presence: TemplatePresence + let presence: TemplateUserProfilePresence var body: some View { VStack { @@ -37,7 +37,7 @@ struct TemplateUserProfileHeader: View { VStack(spacing: 8){ Text(displayName ?? "") .font(theme.fonts.title3) - TemplatePresenceView(presense: presence) + TemplateUserProfilePresenceView(presense: presence) } } } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplatePresenceView.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfilePresenceView.swift similarity index 86% rename from RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplatePresenceView.swift rename to RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfilePresenceView.swift index 18b45609d..b2fa46a84 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplatePresenceView.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/View/TemplateUserProfilePresenceView.swift @@ -17,9 +17,9 @@ import SwiftUI @available(iOS 14.0, *) -struct TemplatePresenceView: View { +struct TemplateUserProfilePresenceView: View { - let presense: TemplatePresence + let presense: TemplateUserProfilePresence var foregroundColor: Color { switch presense { @@ -51,8 +51,8 @@ struct TemplatePresenceView_Previews: PreviewProvider { static var previews: some View { VStack(alignment:.leading){ Text("Presence") - ForEach(TemplatePresence.allCases) { presence in - TemplatePresenceView(presense: presence) + ForEach(TemplateUserProfilePresence.allCases) { presence in + TemplateUserProfilePresenceView(presense: presence) } } } diff --git a/RiotSwiftUI/Modules/Template/SimpleProfileExample/ViewModel/TemplateUserProfileViewModel.swift b/RiotSwiftUI/Modules/Template/SimpleProfileExample/ViewModel/TemplateUserProfileViewModel.swift index 136717c89..d5091d7f5 100644 --- a/RiotSwiftUI/Modules/Template/SimpleProfileExample/ViewModel/TemplateUserProfileViewModel.swift +++ b/RiotSwiftUI/Modules/Template/SimpleProfileExample/ViewModel/TemplateUserProfileViewModel.swift @@ -23,7 +23,7 @@ class TemplateUserProfileViewModel: ObservableObject, TemplateUserProfileViewMod // MARK: - Properties // MARK: Private - private let userService: TemplateUserServiceProtocol + private let userService: TemplateUserProfileServiceProtocol private var cancellables = Set() // MARK: Public @@ -31,24 +31,24 @@ class TemplateUserProfileViewModel: ObservableObject, TemplateUserProfileViewMod var completion: ((TemplateUserProfileViewModelResult) -> Void)? - private static func defaultState(userService: TemplateUserServiceProtocol) -> TemplateUserProfileViewState { + private static func defaultState(userService: TemplateUserProfileServiceProtocol) -> TemplateUserProfileViewState { return TemplateUserProfileViewState(avatar: userService.avatarData, displayName: userService.displayName) } // MARK: - Setup - init(userService: TemplateUserServiceProtocol, initialState: TemplateUserProfileViewState? = nil) { + init(userService: TemplateUserProfileServiceProtocol, initialState: TemplateUserProfileViewState? = nil) { self.userService = userService self.viewState = initialState ?? Self.defaultState(userService: userService) userService.presencePublisher - .map(TemplateProfileStateAction.updatePresence) + .map(TemplateUserProfileStateAction.updatePresence) .receive(on: DispatchQueue.main) .sink(receiveValue: self.dispatch(action:)) .store(in: &cancellables) } // MARK: - Public methods - func proccess(viewAction: TemplateProfileViewAction) { + func proccess(viewAction: TemplateUserProfileViewAction) { switch viewAction { case .cancel: self.cancel() @@ -61,7 +61,7 @@ class TemplateUserProfileViewModel: ObservableObject, TemplateUserProfileViewMod /** Send state actions to mutate the state. */ - private func dispatch(action: TemplateProfileStateAction) { + private func dispatch(action: TemplateUserProfileStateAction) { var newState = self.viewState reducer(state: &newState, action: action) self.viewState = newState @@ -70,7 +70,7 @@ class TemplateUserProfileViewModel: ObservableObject, TemplateUserProfileViewMod /** A redux style reducer, all modifications to state happen here. Recieves a state and a state action and produces a new state. */ - private func reducer(state: inout TemplateUserProfileViewState, action: TemplateProfileStateAction) { + private func reducer(state: inout TemplateUserProfileViewState, action: TemplateUserProfileStateAction) { switch action { case .updatePresence(let presence): state.presence = presence