Remove unnecessary awaits on RoomFlowCoordinator.init. (#4434)

This commit is contained in:
Doug
2025-08-22 16:13:53 +01:00
committed by GitHub
parent d119964d50
commit a1c31faa64
3 changed files with 58 additions and 58 deletions
@@ -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)
} }
} }