Periphery cleanup (#5893)

This commit is contained in:
Mauro
2026-07-20 11:16:11 +02:00
committed by GitHub
parent 175aca596e
commit 9093631f8b
275 changed files with 381 additions and 2268 deletions
@@ -22,7 +22,6 @@ class AuthenticationFlowCoordinator: FlowCoordinatorProtocol {
private let appMediator: AppMediatorProtocol
private let appSettings: AppSettings
private let appHooks: AppHooks
private let analytics: AnalyticsServiceProtocol
private let userIndicatorController: UserIndicatorControllerProtocol
enum State: StateType {
@@ -108,7 +107,6 @@ class AuthenticationFlowCoordinator: FlowCoordinatorProtocol {
appMediator: AppMediatorProtocol,
appSettings: AppSettings,
appHooks: AppHooks,
analytics: AnalyticsServiceProtocol,
userIndicatorController: UserIndicatorControllerProtocol) {
self.authenticationService = authenticationService
self.bugReportService = bugReportService
@@ -116,7 +114,6 @@ class AuthenticationFlowCoordinator: FlowCoordinatorProtocol {
self.appMediator = appMediator
self.appSettings = appSettings
self.appHooks = appHooks
self.analytics = analytics
self.userIndicatorController = userIndicatorController
navigationStackCoordinator = NavigationStackCoordinator()
@@ -443,8 +440,7 @@ class AuthenticationFlowCoordinator: FlowCoordinatorProtocol {
let parameters = LoginScreenCoordinatorParameters(authenticationService: authenticationService,
loginHint: loginHint,
userIndicatorController: userIndicatorController,
appSettings: appSettings,
analytics: analytics)
appSettings: appSettings)
let coordinator = LoginScreenCoordinator(parameters: parameters)
coordinator.actions
@@ -31,12 +31,10 @@ class ChatsTabFlowCoordinator: FlowCoordinatorProtocol {
private let stateMachine: ChatsTabFlowCoordinatorStateMachine
// periphery:ignore - retaining purpose
private var roomFlowCoordinator: RoomFlowCoordinator?
// periphery:ignore - retaining purpose
private var spaceFlowCoordinator: SpaceFlowCoordinator?
// periphery:ignore - retaining purpose
private var bugReportFlowCoordinator: BugReportFlowCoordinator?
// periphery:ignore - retaining purpose
private var encryptionResetFlowCoordinator: EncryptionResetFlowCoordinator?
@@ -54,8 +52,7 @@ class ChatsTabFlowCoordinator: FlowCoordinatorProtocol {
actionsSubject.eraseToAnyPublisher()
}
init(isNewLogin: Bool,
navigationSplitCoordinator: NavigationSplitCoordinator,
init(navigationSplitCoordinator: NavigationSplitCoordinator,
flowParameters: CommonFlowParameters) {
stateMachine = flowParameters.stateMachineFactory.makeChatsTabFlowStateMachine()
self.navigationSplitCoordinator = navigationSplitCoordinator
@@ -754,8 +751,7 @@ class ChatsTabFlowCoordinator: FlowCoordinatorProtocol {
isPresentedModally: true,
userSession: userSession,
userIndicatorController: flowParameters.userIndicatorController,
analytics: flowParameters.analytics,
appSettings: flowParameters.appSettings)
analytics: flowParameters.analytics)
let coordinator = UserProfileScreenCoordinator(parameters: parameters)
coordinator.actionsPublisher.sink { [weak self] action in
guard let self else { return }
@@ -349,7 +349,7 @@ class OnboardingFlowCoordinator: FlowCoordinatorProtocol {
}
private func presentIdentityConfirmedScreen() {
let coordinator = IdentityConfirmedScreenCoordinator(parameters: .init())
let coordinator = IdentityConfirmedScreenCoordinator()
coordinator.actionsPublisher
.sink { [weak self] action in
guard let self else { return }
@@ -90,11 +90,9 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
private var pinnedEventsTimelineFlowCoordinator: PinnedEventsTimelineFlowCoordinator?
// periphery:ignore - used to avoid deallocation
private var mediaEventsTimelineFlowCoordinator: MediaEventsTimelineFlowCoordinator?
// periphery:ignore - used to avoid deallocation
private var childRoomFlowCoordinator: RoomFlowCoordinator?
// periphery:ignore - retaining purpose
private var spaceFlowCoordinator: SpaceFlowCoordinator?
// periphery:ignore - retaining purpose
private var membersFlowCoordinator: RoomMembersFlowCoordinator?
private let stateMachine: StateMachine<State, Event> = .init(state: .initial)
@@ -946,8 +944,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
analyticsService: flowParameters.analytics,
userIndicatorController: flowParameters.userIndicatorController,
notificationSettings: userSession.clientProxy.notificationSettings,
attributedStringBuilder: AttributedStringBuilder(mentionBuilder: PlainMentionBuilder()),
appSettings: flowParameters.appSettings)
attributedStringBuilder: AttributedStringBuilder(mentionBuilder: PlainMentionBuilder()))
let coordinator = RoomDetailsScreenCoordinator(parameters: params)
coordinator.actions.sink { [weak self] action in
guard let self else { return }
@@ -1025,8 +1022,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
mediaUploadingPreprocessor: MediaUploadingPreprocessor(appSettings: flowParameters.appSettings),
navigationStackCoordinator: stackCoordinator,
userIndicatorController: flowParameters.userIndicatorController,
orientationManager: flowParameters.appMediator.windowManager,
appSettings: flowParameters.appSettings)
orientationManager: flowParameters.appMediator.windowManager)
let roomDetailsEditCoordinator = RoomDetailsEditScreenCoordinator(parameters: roomDetailsEditParameters)
roomDetailsEditCoordinator.actions.sink { [weak self] action in
@@ -1123,7 +1119,6 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
let parameters = MediaUploadPreviewScreenCoordinatorParameters(mediaURLs: mediaURLs,
caption: caption,
title: title,
isRoomEncrypted: roomProxy.infoPublisher.value.isEncrypted,
shouldShowCaptionWarning: flowParameters.appSettings.shouldShowMediaCaptionWarning,
mediaUploadingPreprocessor: MediaUploadingPreprocessor(appSettings: flowParameters.appSettings),
timelineController: timelineController,
@@ -1170,7 +1165,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
}
.store(in: &cancellables)
navigationStackCoordinator.setSheetCoordinator(coordinator) { [weak self] in
navigationStackCoordinator.setSheetCoordinator(coordinator, animated: animated) { [weak self] in
self?.stateMachine.tryEvent(.dismissEmojiPicker)
}
}
@@ -1203,7 +1198,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
stackCoordinator.setRootCoordinator(coordinator)
navigationStackCoordinator.setSheetCoordinator(stackCoordinator) { [weak self] in
navigationStackCoordinator.setSheetCoordinator(stackCoordinator, animated: animated) { [weak self] in
self?.stateMachine.tryEvent(.dismissMapNavigator)
}
}
@@ -1351,8 +1346,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
roomType: roomType,
isSkippable: false,
userDiscoveryService: UserDiscoveryService(clientProxy: userSession.clientProxy),
userIndicatorController: flowParameters.userIndicatorController,
appSettings: flowParameters.appSettings)
userIndicatorController: flowParameters.userIndicatorController)
let coordinator = InviteUsersScreenCoordinator(parameters: inviteParameters)
stackCoordinator.setRootCoordinator(coordinator)
@@ -10,18 +10,6 @@ import Foundation
import SwiftState
extension RoomFlowCoordinator {
struct HashableRoomMemberWrapper: Hashable {
let value: RoomMemberProxyProtocol
static func == (lhs: HashableRoomMemberWrapper, rhs: HashableRoomMemberWrapper) -> Bool {
lhs.value.userID == rhs.value.userID
}
func hash(into hasher: inout Hasher) {
hasher.combine(value.userID)
}
}
enum PresentationAction: Hashable {
case eventFocus(FocusEvent)
case share(ShareExtensionPayload)
@@ -39,8 +39,6 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol {
}
enum Event: EventType {
case start
case presentRoomMembersList
case presentRoomMemberDetails(userID: String)
@@ -234,8 +232,7 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol {
roomProxy: roomProxy,
userSession: flowParameters.userSession,
userIndicatorController: flowParameters.userIndicatorController,
analytics: flowParameters.analytics,
appSettings: flowParameters.appSettings)
analytics: flowParameters.analytics)
let coordinator = RoomMemberDetailsScreenCoordinator(parameters: params)
coordinator.actions.sink { [weak self] action in
@@ -264,8 +261,7 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol {
roomType: .existingRoom(roomProxy: roomProxy),
isSkippable: false,
userDiscoveryService: UserDiscoveryService(clientProxy: flowParameters.userSession.clientProxy),
userIndicatorController: flowParameters.userIndicatorController,
appSettings: flowParameters.appSettings)
userIndicatorController: flowParameters.userIndicatorController)
let coordinator = InviteUsersScreenCoordinator(parameters: inviteParameters)
stackCoordinator.setRootCoordinator(coordinator)
@@ -292,8 +288,7 @@ final class RoomMembersFlowCoordinator: FlowCoordinatorProtocol {
isPresentedModally: false,
userSession: flowParameters.userSession,
userIndicatorController: flowParameters.userIndicatorController,
analytics: flowParameters.analytics,
appSettings: flowParameters.appSettings)
analytics: flowParameters.analytics)
let coordinator = UserProfileScreenCoordinator(parameters: parameters)
coordinator.actionsPublisher.sink { [weak self] action in
guard let self else { return }
@@ -25,7 +25,6 @@ class SettingsFlowCoordinator: FlowCoordinatorProtocol {
// periphery:ignore - retaining purpose
private var appLockSetupFlowCoordinator: AppLockSetupFlowCoordinator?
// periphery:ignore - retaining purpose
private var bugReportFlowCoordinator: BugReportFlowCoordinator?
// periphery:ignore - retaining purpose
private var encryptionSettingsFlowCoordinator: EncryptionSettingsFlowCoordinator?
@@ -60,7 +59,7 @@ class SettingsFlowCoordinator: FlowCoordinatorProtocol {
case .settings:
presentSettingsScreen(animated: animated)
case .chatBackupSettings:
startEncryptionSettingsFlow(animated: animated)
startEncryptionSettingsFlow()
default:
break
}
@@ -89,7 +88,7 @@ class SettingsFlowCoordinator: FlowCoordinatorProtocol {
case .logout:
actionsSubject.send(.runLogoutFlow)
case .secureBackup:
startEncryptionSettingsFlow(animated: true)
startEncryptionSettingsFlow()
case .userDetails:
presentUserDetailsEditScreen()
case .linkNewDevice:
@@ -141,7 +140,7 @@ class SettingsFlowCoordinator: FlowCoordinatorProtocol {
navigationStackCoordinator.push(coordinator)
}
private func startEncryptionSettingsFlow(animated: Bool) {
private func startEncryptionSettingsFlow() {
let coordinator = EncryptionSettingsFlowCoordinator(parameters: .init(userSession: flowParameters.userSession,
appSettings: flowParameters.appSettings,
appHooks: flowParameters.appHooks,
@@ -165,8 +164,7 @@ class SettingsFlowCoordinator: FlowCoordinatorProtocol {
userSession: flowParameters.userSession,
mediaUploadingPreprocessor: MediaUploadingPreprocessor(appSettings: flowParameters.appSettings),
navigationStackCoordinator: navigationStackCoordinator,
userIndicatorController: flowParameters.userIndicatorController,
appSettings: flowParameters.appSettings))
userIndicatorController: flowParameters.userIndicatorController))
coordinator.actions
.sink { [weak self] action in
switch action {
@@ -45,6 +45,7 @@ class SpaceFlowCoordinator: FlowCoordinatorProtocol {
private var membersFlowCoordinator: RoomMembersFlowCoordinator?
private var settingsFlowCoordinator: SpaceSettingsFlowCoordinator?
private var rolesAndPermissionsFlowCoordinator: RoomRolesAndPermissionsFlowCoordinator?
// periphery:ignore - retaining purpose
private var createChildRoomFlowCoordinator: StartChatFlowCoordinator?
indirect enum State: StateType {
@@ -40,8 +40,6 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
}
enum Event: EventType {
case start
case presentSpaceSettings
case presentEditDetailsScreen
@@ -75,9 +73,6 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
private let stateMachine: StateMachine<State, Event>
private var cancellables = Set<AnyCancellable>()
private var membersFlowCoordinator: RoomMembersFlowCoordinator?
private var rolesAndPermissionsFlowCoordinator: RoomRolesAndPermissionsFlowCoordinator?
private var childFlowCoordinator: FlowCoordinatorProtocol?
private let actionsSubject: PassthroughSubject<SpaceSettingsFlowCoordinatorAction, Never> = .init()
@@ -219,8 +214,7 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
analyticsService: flowParameters.analytics,
userIndicatorController: flowParameters.userIndicatorController,
notificationSettings: flowParameters.userSession.clientProxy.notificationSettings,
attributedStringBuilder: AttributedStringBuilder(mentionBuilder: MentionBuilder()),
appSettings: flowParameters.appSettings))
attributedStringBuilder: AttributedStringBuilder(mentionBuilder: MentionBuilder())))
var leftRoom = false
coordinator.actions.sink { [weak self] action in
@@ -259,8 +253,7 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
mediaUploadingPreprocessor: MediaUploadingPreprocessor(appSettings: flowParameters.appSettings),
navigationStackCoordinator: stackCoordinator,
userIndicatorController: flowParameters.userIndicatorController,
orientationManager: flowParameters.appMediator.windowManager,
appSettings: flowParameters.appSettings)
orientationManager: flowParameters.appMediator.windowManager)
let coordinator = RoomDetailsEditScreenCoordinator(parameters: parameters)
@@ -24,7 +24,9 @@ class SpacesTabFlowCoordinator: FlowCoordinatorProtocol {
private let sidebarNavigationStackCoordinator: NavigationStackCoordinator
private let detailNavigationStackCoordinator: NavigationStackCoordinator
// periphery:ignore - retaining purpose
private var spaceFlowCoordinator: SpaceFlowCoordinator?
// periphery:ignore - retaining purpose
private var startChatFlowCoordinator: StartChatFlowCoordinator?
enum State: StateType {
@@ -146,7 +148,6 @@ class SpacesTabFlowCoordinator: FlowCoordinatorProtocol {
private func presentSpacesScreen() {
let parameters = SpacesScreenCoordinatorParameters(userSession: userSession,
selectedSpacePublisher: selectedSpaceSubject.asCurrentValuePublisher(),
appSettings: flowParameters.appSettings,
userIndicatorController: flowParameters.userIndicatorController)
let coordinator = SpacesScreenCoordinator(parameters: parameters)
coordinator.actionsPublisher
@@ -185,7 +185,6 @@ class StartChatFlowCoordinator: FlowCoordinatorProtocol {
let parameters = StartChatScreenCoordinatorParameters(userSession: flowParameters.userSession,
userDiscoveryService: userDiscoveryService,
userIndicatorController: flowParameters.userIndicatorController,
appSettings: flowParameters.appSettings,
analytics: flowParameters.analytics)
let coordinator = StartChatScreenCoordinator(parameters: parameters)
@@ -273,8 +272,7 @@ class StartChatFlowCoordinator: FlowCoordinatorProtocol {
roomType: .existingRoom(roomProxy: roomProxy),
isSkippable: true,
userDiscoveryService: userDiscoveryService,
userIndicatorController: flowParameters.userIndicatorController,
appSettings: flowParameters.appSettings)
userIndicatorController: flowParameters.userIndicatorController)
let coordinator = InviteUsersScreenCoordinator(parameters: inviteParameters)
coordinator.actions.sink { [weak self] action in
guard let self else { return }
@@ -42,7 +42,6 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
private let searchTabNavigationStackCoordinator: NavigationStackCoordinator?
private let searchTabDetails: NavigationTabCoordinator<HomeTab>.TabDetails?
// periphery:ignore - retaining purpose
private var settingsFlowCoordinator: SettingsFlowCoordinator?
enum State: StateType {
@@ -84,8 +83,7 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
navigationRootCoordinator.setRootCoordinator(navigationTabCoordinator)
let chatsSplitCoordinator = NavigationSplitCoordinator(placeholderCoordinator: PlaceholderScreenCoordinator(hideBrandChrome: flowParameters.appSettings.hideBrandChrome))
chatsTabFlowCoordinator = ChatsTabFlowCoordinator(isNewLogin: isNewLogin,
navigationSplitCoordinator: chatsSplitCoordinator,
chatsTabFlowCoordinator = ChatsTabFlowCoordinator(navigationSplitCoordinator: chatsSplitCoordinator,
flowParameters: flowParameters)
chatsTabDetails = .init(tag: HomeTab.chats, title: L10n.screenHomeTabChats, icon: \.chat, selectedIcon: \.chatSolid)
chatsTabDetails.navigationSplitCoordinator = chatsSplitCoordinator