mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Remove unnecessary awaits on RoomFlowCoordinator.init. (#4434)
This commit is contained in:
@@ -222,7 +222,7 @@ class ChatsFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
}
|
}
|
||||||
roomFlowCoordinator.handleAppRoute(route, animated: animated)
|
roomFlowCoordinator.handleAppRoute(route, animated: animated)
|
||||||
} else {
|
} else {
|
||||||
Task { await self.startRoomFlow(roomID: roomID, via: via, entryPoint: entryPoint, animated: animated) }
|
startRoomFlow(roomID: roomID, via: via, entryPoint: entryPoint, animated: animated)
|
||||||
}
|
}
|
||||||
hideCallScreenOverlay() // Turn any active call into a PiP so that navigation from a notification is visible to the user.
|
hideCallScreenOverlay() // Turn any active call into a PiP so that navigation from a notification is visible to the user.
|
||||||
case(.roomList, .deselectRoom, .roomList):
|
case(.roomList, .deselectRoom, .roomList):
|
||||||
@@ -478,19 +478,19 @@ class ChatsFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
private func startRoomFlow(roomID: String,
|
private func startRoomFlow(roomID: String,
|
||||||
via: [String],
|
via: [String],
|
||||||
entryPoint: RoomFlowCoordinatorEntryPoint,
|
entryPoint: RoomFlowCoordinatorEntryPoint,
|
||||||
animated: Bool) async {
|
animated: Bool) {
|
||||||
let coordinator = await RoomFlowCoordinator(roomID: roomID,
|
let coordinator = RoomFlowCoordinator(roomID: roomID,
|
||||||
userSession: userSession,
|
userSession: userSession,
|
||||||
isChildFlow: false,
|
isChildFlow: false,
|
||||||
timelineControllerFactory: timelineControllerFactory,
|
timelineControllerFactory: timelineControllerFactory,
|
||||||
navigationStackCoordinator: detailNavigationStackCoordinator,
|
navigationStackCoordinator: detailNavigationStackCoordinator,
|
||||||
emojiProvider: EmojiProvider(appSettings: appSettings),
|
emojiProvider: EmojiProvider(appSettings: appSettings),
|
||||||
ongoingCallRoomIDPublisher: elementCallService.ongoingCallRoomIDPublisher,
|
ongoingCallRoomIDPublisher: elementCallService.ongoingCallRoomIDPublisher,
|
||||||
appMediator: appMediator,
|
appMediator: appMediator,
|
||||||
appSettings: appSettings,
|
appSettings: appSettings,
|
||||||
appHooks: appHooks,
|
appHooks: appHooks,
|
||||||
analytics: analytics,
|
analytics: analytics,
|
||||||
userIndicatorController: ServiceLocator.shared.userIndicatorController)
|
userIndicatorController: ServiceLocator.shared.userIndicatorController)
|
||||||
|
|
||||||
coordinator.actions.sink { [weak self] action in
|
coordinator.actions.sink { [weak self] action in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
appSettings: AppSettings,
|
appSettings: AppSettings,
|
||||||
appHooks: AppHooks,
|
appHooks: AppHooks,
|
||||||
analytics: AnalyticsService,
|
analytics: AnalyticsService,
|
||||||
userIndicatorController: UserIndicatorControllerProtocol) async {
|
userIndicatorController: UserIndicatorControllerProtocol) {
|
||||||
self.roomID = roomID
|
self.roomID = roomID
|
||||||
self.userSession = userSession
|
self.userSession = userSession
|
||||||
self.isChildFlow = isChildFlow
|
self.isChildFlow = isChildFlow
|
||||||
@@ -422,7 +422,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
// Other
|
// Other
|
||||||
|
|
||||||
case (_, .startChildFlow(let roomID, let via, let entryPoint), .presentingChild):
|
case (_, .startChildFlow(let roomID, let via, let entryPoint), .presentingChild):
|
||||||
Task { await self.startChildFlow(for: roomID, via: via, entryPoint: entryPoint) }
|
startChildFlow(for: roomID, via: via, entryPoint: entryPoint)
|
||||||
case (.presentingChild, .dismissChildFlow, _):
|
case (.presentingChild, .dismissChildFlow, _):
|
||||||
childRoomFlowCoordinator = nil
|
childRoomFlowCoordinator = nil
|
||||||
|
|
||||||
@@ -1556,19 +1556,19 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
|
|
||||||
// MARK: - Other flows
|
// MARK: - Other flows
|
||||||
|
|
||||||
private func startChildFlow(for roomID: String, via: [String], entryPoint: RoomFlowCoordinatorEntryPoint) async {
|
private func startChildFlow(for roomID: String, via: [String], entryPoint: RoomFlowCoordinatorEntryPoint) {
|
||||||
let coordinator = await RoomFlowCoordinator(roomID: roomID,
|
let coordinator = RoomFlowCoordinator(roomID: roomID,
|
||||||
userSession: userSession,
|
userSession: userSession,
|
||||||
isChildFlow: true,
|
isChildFlow: true,
|
||||||
timelineControllerFactory: timelineControllerFactory,
|
timelineControllerFactory: timelineControllerFactory,
|
||||||
navigationStackCoordinator: navigationStackCoordinator,
|
navigationStackCoordinator: navigationStackCoordinator,
|
||||||
emojiProvider: emojiProvider,
|
emojiProvider: emojiProvider,
|
||||||
ongoingCallRoomIDPublisher: ongoingCallRoomIDPublisher,
|
ongoingCallRoomIDPublisher: ongoingCallRoomIDPublisher,
|
||||||
appMediator: appMediator,
|
appMediator: appMediator,
|
||||||
appSettings: appSettings,
|
appSettings: appSettings,
|
||||||
appHooks: appHooks,
|
appHooks: appHooks,
|
||||||
analytics: analytics,
|
analytics: analytics,
|
||||||
userIndicatorController: userIndicatorController)
|
userIndicatorController: userIndicatorController)
|
||||||
coordinator.actions.sink { [weak self] action in
|
coordinator.actions.sink { [weak self] action in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
var cancellables = Set<AnyCancellable>()
|
var cancellables = Set<AnyCancellable>()
|
||||||
|
|
||||||
func testRoomPresentation() async throws {
|
func testRoomPresentation() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -29,7 +29,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testRoomDetailsPresentation() async throws {
|
func testRoomDetailsPresentation() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .roomDetails(roomID: "1"))
|
try await process(route: .roomDetails(roomID: "1"))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomDetailsScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomDetailsScreenCoordinator)
|
||||||
@@ -39,7 +39,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testNoOp() async throws {
|
func testNoOp() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .roomDetails(roomID: "1"))
|
try await process(route: .roomDetails(roomID: "1"))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomDetailsScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomDetailsScreenCoordinator)
|
||||||
@@ -53,7 +53,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testPushDetails() async throws {
|
func testPushDetails() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -66,7 +66,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testChildRoomFlow() async throws {
|
func testChildRoomFlow() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -88,7 +88,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
|
|
||||||
/// Tests the child flow teardown in isolation of it's parent.
|
/// Tests the child flow teardown in isolation of it's parent.
|
||||||
func testChildFlowTearDown() async throws {
|
func testChildFlowTearDown() async throws {
|
||||||
await setupRoomFlowCoordinator(asChildFlow: true)
|
setupRoomFlowCoordinator(asChildFlow: true)
|
||||||
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
@@ -106,7 +106,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testChildRoomMemberDetails() async throws {
|
func testChildRoomMemberDetails() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -123,7 +123,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testChildRoomIgnoresDirectDuplicate() async throws {
|
func testChildRoomIgnoresDirectDuplicate() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -145,7 +145,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testRoomMembershipInvite() async throws {
|
func testRoomMembershipInvite() async throws {
|
||||||
await setupRoomFlowCoordinator(roomType: .invited(roomID: "InvitedRoomID"))
|
setupRoomFlowCoordinator(roomType: .invited(roomID: "InvitedRoomID"))
|
||||||
|
|
||||||
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is JoinRoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is JoinRoomScreenCoordinator)
|
||||||
@@ -154,7 +154,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
try await clearRoute(expectedActions: [.finished])
|
try await clearRoute(expectedActions: [.finished])
|
||||||
XCTAssertNil(navigationStackCoordinator.rootCoordinator)
|
XCTAssertNil(navigationStackCoordinator.rootCoordinator)
|
||||||
|
|
||||||
await setupRoomFlowCoordinator(roomType: .invited(roomID: "InvitedRoomID"))
|
setupRoomFlowCoordinator(roomType: .invited(roomID: "InvitedRoomID"))
|
||||||
|
|
||||||
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is JoinRoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is JoinRoomScreenCoordinator)
|
||||||
@@ -171,7 +171,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testChildRoomMembershipInvite() async throws {
|
func testChildRoomMembershipInvite() async throws {
|
||||||
await setupRoomFlowCoordinator(asChildFlow: true, roomType: .invited(roomID: "InvitedRoomID"))
|
setupRoomFlowCoordinator(asChildFlow: true, roomType: .invited(roomID: "InvitedRoomID"))
|
||||||
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
||||||
|
|
||||||
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
||||||
@@ -182,7 +182,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
try await clearRoute(expectedActions: [.finished])
|
try await clearRoute(expectedActions: [.finished])
|
||||||
XCTAssertNil(navigationStackCoordinator.stackCoordinators.last, "A child room flow should remove the join room scren on dismissal")
|
XCTAssertNil(navigationStackCoordinator.stackCoordinators.last, "A child room flow should remove the join room scren on dismissal")
|
||||||
|
|
||||||
await setupRoomFlowCoordinator(asChildFlow: true, roomType: .invited(roomID: "InvitedRoomID"))
|
setupRoomFlowCoordinator(asChildFlow: true, roomType: .invited(roomID: "InvitedRoomID"))
|
||||||
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator())
|
||||||
|
|
||||||
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
try await process(route: .room(roomID: "InvitedRoomID", via: []))
|
||||||
@@ -202,7 +202,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testEventRoute() async throws {
|
func testEventRoute() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .event(eventID: "1", roomID: "1", via: []))
|
try await process(route: .event(eventID: "1", roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -219,7 +219,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testShareMediaRoute() async throws {
|
func testShareMediaRoute() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -244,7 +244,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testShareTextRoute() async throws {
|
func testShareTextRoute() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
try await process(route: .room(roomID: "1", via: []))
|
try await process(route: .room(roomID: "1", via: []))
|
||||||
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
XCTAssert(navigationStackCoordinator.rootCoordinator is RoomScreenCoordinator)
|
||||||
@@ -269,7 +269,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testLeavingRoom() async throws {
|
func testLeavingRoom() async throws {
|
||||||
await setupRoomFlowCoordinator()
|
setupRoomFlowCoordinator()
|
||||||
|
|
||||||
var configuration = JoinedRoomProxyMockConfiguration()
|
var configuration = JoinedRoomProxyMockConfiguration()
|
||||||
let roomProxy = JoinedRoomProxyMock(configuration)
|
let roomProxy = JoinedRoomProxyMock(configuration)
|
||||||
@@ -333,7 +333,7 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func setupRoomFlowCoordinator(asChildFlow: Bool = false, roomType: RoomType? = nil) async {
|
private func setupRoomFlowCoordinator(asChildFlow: Bool = false, roomType: RoomType? = nil) {
|
||||||
cancellables.removeAll()
|
cancellables.removeAll()
|
||||||
clientProxy = ClientProxyMock(.init(userID: "hi@bob", roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms)))))
|
clientProxy = ClientProxyMock(.init(userID: "hi@bob", roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms)))))
|
||||||
timelineControllerFactory = TimelineControllerFactoryMock(.init())
|
timelineControllerFactory = TimelineControllerFactoryMock(.init())
|
||||||
@@ -358,18 +358,18 @@ class RoomFlowCoordinatorTests: XCTestCase {
|
|||||||
"1"
|
"1"
|
||||||
}
|
}
|
||||||
|
|
||||||
roomFlowCoordinator = await RoomFlowCoordinator(roomID: roomID,
|
roomFlowCoordinator = RoomFlowCoordinator(roomID: roomID,
|
||||||
userSession: UserSessionMock(.init(clientProxy: clientProxy)),
|
userSession: UserSessionMock(.init(clientProxy: clientProxy)),
|
||||||
isChildFlow: asChildFlow,
|
isChildFlow: asChildFlow,
|
||||||
timelineControllerFactory: timelineControllerFactory,
|
timelineControllerFactory: timelineControllerFactory,
|
||||||
navigationStackCoordinator: navigationStackCoordinator,
|
navigationStackCoordinator: navigationStackCoordinator,
|
||||||
emojiProvider: EmojiProvider(appSettings: ServiceLocator.shared.settings),
|
emojiProvider: EmojiProvider(appSettings: ServiceLocator.shared.settings),
|
||||||
ongoingCallRoomIDPublisher: .init(.init(nil)),
|
ongoingCallRoomIDPublisher: .init(.init(nil)),
|
||||||
appMediator: AppMediatorMock.default,
|
appMediator: AppMediatorMock.default,
|
||||||
appSettings: ServiceLocator.shared.settings,
|
appSettings: ServiceLocator.shared.settings,
|
||||||
appHooks: AppHooks(),
|
appHooks: AppHooks(),
|
||||||
analytics: ServiceLocator.shared.analytics,
|
analytics: ServiceLocator.shared.analytics,
|
||||||
userIndicatorController: ServiceLocator.shared.userIndicatorController)
|
userIndicatorController: ServiceLocator.shared.userIndicatorController)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user