Enable room list invites by default and remove old code paths

This commit is contained in:
Stefan Ceriu
2024-05-09 12:05:28 +03:00
committed by Stefan Ceriu
parent 65310acc64
commit a401976b2b
60 changed files with 27 additions and 1155 deletions
@@ -286,12 +286,7 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
}
case(.roomList, .deselectRoom, .roomList):
dismissRoomFlow(animated: animated)
case (.invitesScreen, .selectRoom, .invitesScreen):
break
case (.invitesScreen, .deselectRoom, .invitesScreen):
dismissRoomFlow(animated: animated)
case (.roomList, .showSettingsScreen, .settingsScreen):
break
case (.settingsScreen, .dismissedSettingsScreen, .roomList):
@@ -312,13 +307,6 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
case (.startChatScreen, .dismissedStartChatScreen, .roomList):
break
case (.roomList, .showInvitesScreen, .invitesScreen):
presentInvitesList(animated: animated)
case (.invitesScreen, .showInvitesScreen, .invitesScreen):
break
case (.invitesScreen, .dismissedInvitesScreen, .roomList):
break
case (.roomList, .showLogoutConfirmationScreen, .logoutConfirmationScreen):
presentSecureBackupLogoutConfirmationScreen()
case (.logoutConfirmationScreen, .dismissedLogoutConfirmationScreen, .roomList):
@@ -389,8 +377,6 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
stateMachine.processEvent(.showStartChatScreen)
case .logout:
Task { await self.runLogoutFlow() }
case .presentInvitesScreen:
stateMachine.processEvent(.showInvitesScreen)
case .presentGlobalSearch:
presentGlobalSearch()
case .presentRoomDirectorySearch:
@@ -493,12 +479,7 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
case .roomDetails:
coordinator.handleAppRoute(.roomDetails(roomID: roomID), animated: animated)
}
let availableInvitesCount = userSession.clientProxy.inviteSummaryProvider?.roomListPublisher.value.count ?? 0
if case .invitesScreen = stateMachine.state, availableInvitesCount == 1 {
dismissInvitesList(animated: true)
}
Task {
let _ = await userSession.clientProxy.trackRecentlyVisitedRoom(roomID)
@@ -544,38 +525,6 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
}
}
// MARK: Invites list
private func presentInvitesList(animated: Bool) {
let parameters = InvitesScreenCoordinatorParameters(userSession: userSession)
let coordinator = InvitesScreenCoordinator(parameters: parameters)
coordinator.actions
.sink { [weak self] action in
switch action {
case .openRoom(let roomID):
self?.stateMachine.processEvent(.selectRoom(roomID: roomID, entryPoint: .room))
}
}
.store(in: &cancellables)
sidebarNavigationStackCoordinator.push(coordinator, animated: animated) { [weak self] in
self?.stateMachine.processEvent(.dismissedInvitesScreen)
}
Task {
await notificationManager.removeDeliveredInviteNotifications()
}
}
private func dismissInvitesList(animated: Bool) {
guard case .invitesScreen = stateMachine.state else {
fatalError()
}
sidebarNavigationStackCoordinator.pop(animated: animated)
}
// MARK: Calls
private func presentCallScreen(roomProxy: RoomProxyProtocol) {
@@ -36,9 +36,6 @@ class UserSessionFlowCoordinatorStateMachine {
/// Showing the start chat screen
case startChatScreen(selectedRoomID: String?)
/// Showing invites list screen
case invitesScreen(selectedRoomID: String?)
/// Showing the logout flows
case logoutConfirmationScreen(selectedRoomID: String?)
@@ -57,7 +54,6 @@ class UserSessionFlowCoordinatorStateMachine {
.feedbackScreen(let selectedRoomID),
.settingsScreen(let selectedRoomID),
.startChatScreen(let selectedRoomID),
.invitesScreen(let selectedRoomID),
.logoutConfirmationScreen(let selectedRoomID),
.roomDirectorySearchScreen(let selectedRoomID):
selectedRoomID
@@ -95,12 +91,7 @@ class UserSessionFlowCoordinatorStateMachine {
case showStartChatScreen
/// Start chat has been dismissed
case dismissedStartChatScreen
/// Request presentation of the invites screen
case showInvitesScreen
/// The invites screen has been dismissed
case dismissedInvitesScreen
/// Logout has been requested and this is the last sesion
case showLogoutConfirmationScreen
/// Logout has been cancelled
@@ -140,12 +131,8 @@ class UserSessionFlowCoordinatorStateMachine {
switch (fromState, event) {
case (.roomList, .selectRoom(let roomID, _)):
return .roomList(selectedRoomID: roomID)
case (.invitesScreen, .selectRoom(let roomID, _)):
return .invitesScreen(selectedRoomID: roomID)
case (.roomList, .deselectRoom):
return .roomList(selectedRoomID: nil)
case (.invitesScreen, .deselectRoom):
return .invitesScreen(selectedRoomID: nil)
case (.roomList(let selectedRoomID), .showSettingsScreen):
return .settingsScreen(selectedRoomID: selectedRoomID)
@@ -161,15 +148,7 @@ class UserSessionFlowCoordinatorStateMachine {
return .startChatScreen(selectedRoomID: selectedRoomID)
case (.startChatScreen(let selectedRoomID), .dismissedStartChatScreen):
return .roomList(selectedRoomID: selectedRoomID)
case (.roomList(let selectedRoomID), .showInvitesScreen):
return .invitesScreen(selectedRoomID: selectedRoomID)
case (.invitesScreen(let selectedRoomID), .showInvitesScreen):
return .invitesScreen(selectedRoomID: selectedRoomID)
case (.invitesScreen(let selectedRoomID), .dismissedInvitesScreen):
return .roomList(selectedRoomID: selectedRoomID)
case (.roomList(let selectedRoomID), .showLogoutConfirmationScreen):
return .logoutConfirmationScreen(selectedRoomID: selectedRoomID)
case (.logoutConfirmationScreen(let selectedRoomID), .dismissedLogoutConfirmationScreen):
@@ -224,8 +203,6 @@ class UserSessionFlowCoordinatorStateMachine {
switch stateMachine.state {
case .roomList(let selectedRoomID):
return roomID == selectedRoomID
case .invitesScreen(let selectedRoomID):
return roomID == selectedRoomID
default:
return false
}