Merge branch 'develop' into alfogrillo/learn_more_sheet

# Conflicts:
#	RiotSwiftUI/Modules/UserSessions/UserOtherSessions/UserOtherSessionsModels.swift
#	RiotSwiftUI/Modules/UserSessions/UserOtherSessions/UserOtherSessionsViewModel.swift
#	RiotSwiftUI/Modules/UserSessions/UserSessionOverview/UserSessionOverviewModels.swift
#	RiotSwiftUI/Modules/UserSessions/UserSessionOverview/UserSessionOverviewViewModel.swift
#	RiotSwiftUI/Modules/UserSessions/UserSessionOverview/View/UserSessionOverview.swift
This commit is contained in:
Alfonso Grillo
2022-11-03 18:18:08 +01:00
34 changed files with 315 additions and 107 deletions
@@ -22,13 +22,15 @@ typealias UserSessionOverviewViewModelType = StateStoreViewModel<UserSessionOver
class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessionOverviewViewModelProtocol {
private let sessionInfo: UserSessionInfo
private let service: UserSessionOverviewServiceProtocol
private let settingService: UserSessionSettingsProtocol
var completion: ((UserSessionOverviewViewModelResult) -> Void)?
// MARK: - Setup
init(sessionInfo: UserSessionInfo,
service: UserSessionOverviewServiceProtocol,
settingsService: UserSessionSettingsProtocol,
sessionsOverviewDataPublisher: CurrentValueSubject<UserSessionsOverviewData, Never> = .init(.init(currentSession: nil,
unverifiedSessions: [],
inactiveSessions: [],
@@ -36,13 +38,15 @@ class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessio
linkDeviceEnabled: false))) {
self.sessionInfo = sessionInfo
self.service = service
self.settingService = settingsService
let cardViewData = UserSessionCardViewData(sessionInfo: sessionInfo)
let state = UserSessionOverviewViewState(cardViewData: cardViewData,
isCurrentSession: sessionInfo.isCurrent,
isPusherEnabled: service.pusherEnabledSubject.value,
remotelyTogglingPushersAvailable: service.remotelyTogglingPushersAvailableSubject.value,
showLoadingIndicator: false)
showLoadingIndicator: false,
showLocationInfo: settingsService.showIPAddressesInSessionsManager)
super.init(initialViewState: state)
startObservingService()
@@ -95,6 +99,9 @@ class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessio
completion?(.renameSession(sessionInfo))
case .logoutOfSession:
completion?(.logoutOfSession(sessionInfo))
case .showLocationInfo:
settingService.showIPAddressesInSessionsManager.toggle()
state.showLocationInfo = settingService.showIPAddressesInSessionsManager
case .viewSessionInfo:
completion?(.showSessionStateInfo(sessionInfo))
}