From 75bee232215da9aff0f8a1b44c958bbf616f8a9c Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 3 Jun 2024 18:08:04 +0200 Subject: [PATCH] Analytics: track interaction `Interaction.Name.MobileRoomCallButton` --- .../android/features/messages/impl/MessagesFlowNode.kt | 5 +++++ .../android/features/roomdetails/impl/RoomDetailsFlowNode.kt | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt index 8ea3075af3..6665c5fa2a 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesFlowNode.kt @@ -29,6 +29,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push import dagger.assisted.Assisted import dagger.assisted.AssistedInject +import im.vector.app.features.analytics.plan.Interaction import io.element.android.anvilannotations.ContributesNode import io.element.android.features.call.CallType import io.element.android.features.call.ui.ElementCallActivity @@ -68,6 +69,8 @@ import io.element.android.libraries.matrix.api.permalink.PermalinkData import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo import io.element.android.libraries.mediaviewer.api.local.MediaInfo import io.element.android.libraries.mediaviewer.api.viewer.MediaViewerNode +import io.element.android.services.analytics.api.AnalyticsService +import io.element.android.services.analyticsproviders.api.trackers.captureInteraction import kotlinx.collections.immutable.ImmutableList import kotlinx.parcelize.Parcelize @@ -80,6 +83,7 @@ class MessagesFlowNode @AssistedInject constructor( private val sendLocationEntryPoint: SendLocationEntryPoint, private val showLocationEntryPoint: ShowLocationEntryPoint, private val createPollEntryPoint: CreatePollEntryPoint, + private val analyticsService: AnalyticsService, ) : BaseFlowNode( backstack = BackStack( initialElement = NavTarget.Messages, @@ -188,6 +192,7 @@ class MessagesFlowNode @AssistedInject constructor( sessionId = matrixClient.sessionId, roomId = roomId, ) + analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton) ElementCallActivity.start(context, inputs) } } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt index 798a903274..3c9d3d0e37 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt @@ -28,6 +28,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push import dagger.assisted.Assisted import dagger.assisted.AssistedInject +import im.vector.app.features.analytics.plan.Interaction import io.element.android.anvilannotations.ContributesNode import io.element.android.features.call.CallType import io.element.android.features.call.ui.ElementCallActivity @@ -53,6 +54,8 @@ import io.element.android.libraries.matrix.api.media.MediaSource import io.element.android.libraries.matrix.api.room.MatrixRoom import io.element.android.libraries.mediaviewer.api.local.MediaInfo import io.element.android.libraries.mediaviewer.api.viewer.MediaViewerNode +import io.element.android.services.analytics.api.AnalyticsService +import io.element.android.services.analyticsproviders.api.trackers.captureInteraction import kotlinx.parcelize.Parcelize @ContributesNode(RoomScope::class) @@ -62,6 +65,7 @@ class RoomDetailsFlowNode @AssistedInject constructor( @ApplicationContext private val context: Context, private val pollHistoryEntryPoint: PollHistoryEntryPoint, private val room: MatrixRoom, + private val analyticsService: AnalyticsService, ) : BaseFlowNode( backstack = BackStack( initialElement = plugins.filterIsInstance().first().initialElement.toNavTarget(), @@ -142,6 +146,7 @@ class RoomDetailsFlowNode @AssistedInject constructor( sessionId = room.sessionId, roomId = room.roomId, ) + analyticsService.captureInteraction(Interaction.Name.MobileRoomCallButton) ElementCallActivity.start(context, inputs) } }