From f136a308b28b3e90c8fe8809fc4ce97b3eba4b6f Mon Sep 17 00:00:00 2001 From: Marco Romano Date: Wed, 13 Sep 2023 07:59:57 +0200 Subject: [PATCH] Send composer analytics when sending a message (#1288) Composer event are not sent to posthog when sending messages. After investigation I've found that in `MessageComposerPresenter` the `analyticsService.capture()` call is invoked in the `SetMode` event handler rather than in the `SendMessage` event handler. This change should result in the desired behavior. --- .../messagecomposer/MessageComposerPresenter.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt index 215826dade..a7728c2a00 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt @@ -148,14 +148,6 @@ class MessageComposerPresenter @Inject constructor( ) is MessageComposerEvents.SetMode -> { messageComposerContext.composerMode = event.composerMode - analyticsService.capture( - Composer( - inThread = messageComposerContext.composerMode.inThread, - isEditing = messageComposerContext.composerMode.isEditing, - isReply = messageComposerContext.composerMode.isReply, - messageType = Composer.MessageType.Text, - ) - ) } MessageComposerEvents.AddAttachment -> localCoroutineScope.launch { showAttachmentSourcePicker = true @@ -238,6 +230,14 @@ class MessageComposerPresenter @Inject constructor( message.html, ) } + analyticsService.capture( + Composer( + inThread = capturedMode.inThread, + isEditing = capturedMode.isEditing, + isReply = capturedMode.isReply, + messageType = Composer.MessageType.Text, // Set proper type when we'll be sending other types of messages. + ) + ) } private fun CoroutineScope.sendAttachment(