mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Enable room list invites by default and remove old code paths
This commit is contained in:
committed by
Stefan Ceriu
parent
65310acc64
commit
a401976b2b
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user