Add analytics tracking for room creation (#1100)

This commit is contained in:
Johannes Marbach
2023-06-19 14:35:58 +02:00
committed by GitHub
parent 1f65b7b9f9
commit ee643f7a69
6 changed files with 11 additions and 0 deletions
@@ -156,6 +156,7 @@ class CreateRoomViewModel: CreateRoomViewModelType, CreateRoomViewModelProtocol
userIDs: state.selectedUsers.map(\.userID), userIDs: state.selectedUsers.map(\.userID),
avatarURL: avatarURL) { avatarURL: avatarURL) {
case .success(let roomId): case .success(let roomId):
ServiceLocator.shared.analytics.trackCreatedRoom(isDM: false)
actionsSubject.send(.openRoom(withIdentifier: roomId)) actionsSubject.send(.openRoom(withIdentifier: roomId))
case .failure(let failure): case .failure(let failure):
displayError(failure) displayError(failure)
@@ -32,6 +32,7 @@ struct CreateRoomScreen: View {
securitySection securitySection
} }
.elementFormStyle() .elementFormStyle()
.track(screen: .createRoom)
.scrollDismissesKeyboard(.immediately) .scrollDismissesKeyboard(.immediately)
.navigationTitle(L10n.screenCreateRoomTitle) .navigationTitle(L10n.screenCreateRoomTitle)
.navigationBarTitleDisplayMode(.inline) .navigationBarTitleDisplayMode(.inline)
@@ -133,6 +133,7 @@ class StartChatScreenViewModel: StartChatScreenViewModelType, StartChatScreenVie
showLoadingIndicator() showLoadingIndicator()
switch await clientProxy.createDirectRoom(with: user.userID, expectedRoomName: user.displayName) { switch await clientProxy.createDirectRoom(with: user.userID, expectedRoomName: user.displayName) {
case .success(let roomId): case .success(let roomId):
ServiceLocator.shared.analytics.trackCreatedRoom(isDM: true)
actionsSubject.send(.openRoom(withIdentifier: roomId)) actionsSubject.send(.openRoom(withIdentifier: roomId))
case .failure(let failure): case .failure(let failure):
displayError(failure) displayError(failure)
@@ -29,6 +29,7 @@ struct StartChatScreen: View {
} }
} }
.elementFormStyle() .elementFormStyle()
.track(screen: .startChat)
.scrollDismissesKeyboard(.immediately) .scrollDismissesKeyboard(.immediately)
.navigationTitle(L10n.actionStartChat) .navigationTitle(L10n.actionStartChat)
.navigationBarTitleDisplayMode(.inline) .navigationBarTitleDisplayMode(.inline)
@@ -125,4 +125,10 @@ extension Analytics {
let event = AnalyticsEvent.MobileScreen(durationMs: milliseconds, screenName: screen.screenName) let event = AnalyticsEvent.MobileScreen(durationMs: milliseconds, screenName: screen.screenName)
client.screen(event) client.screen(event)
} }
/// Track the creation of a room
/// - Parameter isDM: true if the created room is a direct message, false otherwise
func trackCreatedRoom(isDM: Bool) {
capture(event: AnalyticsEvent.CreatedRoom(isDM: isDM))
}
} }
+1
View File
@@ -0,0 +1 @@
Add analytics tracking for room creation