mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Add analytics for Room Moderation. (#2571)
* Add an option to use analytics locally. * Add analytics for Room Moderation. * Update tests. * Include the role in the event where appropriate. * Update the AnalyticsEvents package.
This commit is contained in:
@@ -592,10 +592,12 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
fatalError()
|
||||
}
|
||||
|
||||
let params = RoomMembersListScreenCoordinatorParameters(mediaProvider: userSession.mediaProvider,
|
||||
roomProxy: roomProxy,
|
||||
appSettings: appSettings)
|
||||
let coordinator = RoomMembersListScreenCoordinator(parameters: params)
|
||||
let parameters = RoomMembersListScreenCoordinatorParameters(mediaProvider: userSession.mediaProvider,
|
||||
roomProxy: roomProxy,
|
||||
userIndicatorController: userIndicatorController,
|
||||
appSettings: appSettings,
|
||||
analytics: analytics)
|
||||
let coordinator = RoomMembersListScreenCoordinator(parameters: parameters)
|
||||
|
||||
coordinator.actions
|
||||
.sink { [weak self] action in
|
||||
@@ -1176,7 +1178,8 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
|
||||
let parameters = RoomRolesAndPermissionsFlowCoordinatorParameters(roomProxy: roomProxy,
|
||||
navigationStackCoordinator: navigationStackCoordinator,
|
||||
userIndicatorController: userIndicatorController)
|
||||
userIndicatorController: userIndicatorController,
|
||||
analytics: analytics)
|
||||
let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: parameters)
|
||||
coordinator.actionsPublisher.sink { [weak self] action in
|
||||
switch action {
|
||||
|
||||
@@ -27,12 +27,14 @@ struct RoomRolesAndPermissionsFlowCoordinatorParameters {
|
||||
let roomProxy: RoomProxyProtocol
|
||||
let navigationStackCoordinator: NavigationStackCoordinator
|
||||
let userIndicatorController: UserIndicatorControllerProtocol
|
||||
let analytics: AnalyticsService
|
||||
}
|
||||
|
||||
class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
private let roomProxy: RoomProxyProtocol
|
||||
private let navigationStackCoordinator: NavigationStackCoordinator
|
||||
private let userIndicatorController: UserIndicatorControllerProtocol
|
||||
private let analytics: AnalyticsService
|
||||
|
||||
enum State: StateType {
|
||||
/// The state machine hasn't started.
|
||||
@@ -74,6 +76,7 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
roomProxy = parameters.roomProxy
|
||||
navigationStackCoordinator = parameters.navigationStackCoordinator
|
||||
userIndicatorController = parameters.userIndicatorController
|
||||
analytics = parameters.analytics
|
||||
|
||||
stateMachine = .init(state: .initial)
|
||||
configureStateMachine()
|
||||
@@ -132,7 +135,9 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
}
|
||||
|
||||
private func presentRolesAndPermissionsScreen() {
|
||||
let parameters = RoomRolesAndPermissionsScreenCoordinatorParameters(roomProxy: roomProxy, userIndicatorController: userIndicatorController)
|
||||
let parameters = RoomRolesAndPermissionsScreenCoordinatorParameters(roomProxy: roomProxy,
|
||||
userIndicatorController: userIndicatorController,
|
||||
analytics: analytics)
|
||||
let coordinator = RoomRolesAndPermissionsScreenCoordinator(parameters: parameters)
|
||||
coordinator.actionsPublisher.sink { [stateMachine] action in
|
||||
switch action {
|
||||
@@ -159,7 +164,8 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
|
||||
let parameters = RoomChangeRolesScreenCoordinatorParameters(mode: mode,
|
||||
roomProxy: roomProxy,
|
||||
userIndicatorController: userIndicatorController)
|
||||
userIndicatorController: userIndicatorController,
|
||||
analytics: analytics)
|
||||
let coordinator = RoomChangeRolesScreenCoordinator(parameters: parameters)
|
||||
coordinator.actionsPublisher.sink { [weak self] action in
|
||||
guard let self else { return }
|
||||
@@ -180,7 +186,8 @@ class RoomRolesAndPermissionsFlowCoordinator: FlowCoordinatorProtocol {
|
||||
let parameters = RoomChangePermissionsScreenCoordinatorParameters(permissions: permissions,
|
||||
permissionsGroup: group,
|
||||
roomProxy: roomProxy,
|
||||
userIndicatorController: userIndicatorController)
|
||||
userIndicatorController: userIndicatorController,
|
||||
analytics: analytics)
|
||||
let coordinator = RoomChangePermissionsScreenCoordinator(parameters: parameters)
|
||||
coordinator.actionsPublisher.sink { [weak self] action in
|
||||
guard let self else { return }
|
||||
|
||||
Reference in New Issue
Block a user