Skip to content

Commit

Permalink
Merge pull request #4917 from vector-im/gil/4916_spaces_still_visible…
Browse files Browse the repository at this point in the history
…_after_logging_in_with_another_account

Spaces still visible after logging in with another account #4916
  • Loading branch information
gileluard committed Sep 27, 2021
2 parents 756b14d + 037acbf commit 5c537b6
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 16 deletions.
2 changes: 1 addition & 1 deletion Riot/Modules/SideMenu/SideMenuCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ final class SideMenuCoordinator: NSObject, SideMenuCoordinatorType {
}

private func addSpaceList(with matrixSession: MXSession) {
let parameters = SpaceListCoordinatorParameters(session: matrixSession)
let parameters = SpaceListCoordinatorParameters(userSessionsService: self.parameters.userSessionsService)

let spaceListCoordinator = SpaceListCoordinator(parameters: parameters)
spaceListCoordinator.delegate = self
Expand Down
2 changes: 1 addition & 1 deletion Riot/Modules/Spaces/SpaceList/SpaceListCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ final class SpaceListCoordinator: SpaceListCoordinatorType {
init(parameters: SpaceListCoordinatorParameters) {
self.parameters = parameters

let spaceListViewModel = SpaceListViewModel(session: self.parameters.session)
let spaceListViewModel = SpaceListViewModel(userSessionsService: self.parameters.userSessionsService)
let spaceListViewController = SpaceListViewController.instantiate(with: spaceListViewModel)
self.spaceListViewModel = spaceListViewModel
self.spaceListViewController = spaceListViewController
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import Foundation

class SpaceListCoordinatorParameters {
let session: MXSession
let userSessionsService: UserSessionsService

init(session: MXSession) {
self.session = session
init(userSessionsService: UserSessionsService) {
self.userSessionsService = userSessionsService
}
}
22 changes: 11 additions & 11 deletions Riot/Modules/Spaces/SpaceList/SpaceListViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class SpaceListViewModel: SpaceListViewModelType {

// MARK: Private

private let session: MXSession
private let userSessionsService: UserSessionsService

private var currentOperation: MXHTTPOperation?
private var sections: [SpaceListSection] = []
Expand All @@ -49,8 +49,8 @@ final class SpaceListViewModel: SpaceListViewModelType {

// MARK: - Setup

init(session: MXSession) {
self.session = session
init(userSessionsService: UserSessionsService) {
self.userSessionsService = userSessionsService

NotificationCenter.default.addObserver(self, selector: #selector(self.sessionDidSync(notification:)), name: MXSpaceService.didBuildSpaceGraph, object: nil)

Expand Down Expand Up @@ -123,14 +123,14 @@ final class SpaceListViewModel: SpaceListViewModelType {
}

private func loadData() {
guard session.mediaManager != nil else {
guard let session = self.userSessionsService.mainUserSession?.matrixSession, session.mediaManager != nil else {
return
}

self.update(viewState: .loading)

let homeViewData = self.createHomeViewData()
let viewDataList = getSpacesViewData()
let homeViewData = self.createHomeViewData(session: session)
let viewDataList = getSpacesViewData(session: session)

let sections: [SpaceListSection] = viewDataList.invites.isEmpty ? [
.home(homeViewData),
Expand Down Expand Up @@ -189,21 +189,21 @@ final class SpaceListViewModel: SpaceListViewModelType {
self.coordinatorDelegate?.spaceListViewModel(self, didSelectInviteWithId: spaceId, from: sourceView)
}

private func createHomeViewData() -> SpaceListItemViewData {
let avatarViewData = AvatarViewData(matrixItemId: Constants.homeSpaceId, displayName: nil, avatarUrl: nil, mediaManager: self.session.mediaManager, fallbackImage: .image(Asset.Images.spaceHomeIcon.image, .center))
private func createHomeViewData(session: MXSession) -> SpaceListItemViewData {
let avatarViewData = AvatarViewData(matrixItemId: Constants.homeSpaceId, displayName: nil, avatarUrl: nil, mediaManager: session.mediaManager, fallbackImage: .image(Asset.Images.spaceHomeIcon.image, .center))

let homeNotificationState = session.spaceService.notificationCounter.homeNotificationState
let homeViewData = SpaceListItemViewData(spaceId: Constants.homeSpaceId,
title: VectorL10n.spacesHomeSpaceTitle, avatarViewData: avatarViewData, isInvite: false, notificationCount: homeNotificationState.allCount, highlightedNotificationCount: homeNotificationState.allHighlightCount)
return homeViewData
}

private func getSpacesViewData() -> (invites: [SpaceListItemViewData], spaces: [SpaceListItemViewData]) {
private func getSpacesViewData(session: MXSession) -> (invites: [SpaceListItemViewData], spaces: [SpaceListItemViewData]) {
var invites: [SpaceListItemViewData] = []
var spaces: [SpaceListItemViewData] = []
session.spaceService.rootSpaceSummaries.forEach { summary in
let avatarViewData = AvatarViewData(matrixItemId: summary.roomId, displayName: summary.displayname, avatarUrl: summary.avatar, mediaManager: self.session.mediaManager, fallbackImage: .matrixItem(summary.roomId, summary.displayname))
let notificationState = self.session.spaceService.notificationCounter.notificationState(forSpaceWithId: summary.roomId)
let avatarViewData = AvatarViewData(matrixItemId: summary.roomId, displayName: summary.displayname, avatarUrl: summary.avatar, mediaManager: session.mediaManager, fallbackImage: .matrixItem(summary.roomId, summary.displayname))
let notificationState = session.spaceService.notificationCounter.notificationState(forSpaceWithId: summary.roomId)
let viewData = SpaceListItemViewData(spaceId: summary.roomId, title: summary.displayname, avatarViewData: avatarViewData, isInvite: summary.membership == .invite, notificationCount: notificationState?.groupMissedDiscussionsCount ?? 0, highlightedNotificationCount: notificationState?.groupMissedDiscussionsHighlightedCount ?? 0)
if viewData.isInvite {
invites.append(viewData)
Expand Down
1 change: 1 addition & 0 deletions changelog.d/4916.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fixed Spaces still visible after logging in with another account

0 comments on commit 5c537b6

Please sign in to comment.