Add analytics for voice messages (#1706)
This commit is contained in:
parent
4e7750b70a
commit
dab5e0d0ca
8 changed files with 76 additions and 10 deletions
|
|
@ -27,6 +27,8 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|||
import androidx.compose.runtime.setValue
|
||||
import androidx.core.net.toUri
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import im.vector.app.features.analytics.plan.Composer
|
||||
import io.element.android.features.messages.api.MessageComposerContext
|
||||
import io.element.android.features.messages.impl.voicemessages.VoiceMessageException
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
|
|
@ -56,6 +58,7 @@ class VoiceMessageComposerPresenter @Inject constructor(
|
|||
private val analyticsService: AnalyticsService,
|
||||
private val mediaSender: MediaSender,
|
||||
private val player: VoiceMessageComposerPlayer,
|
||||
private val messageComposerContext: MessageComposerContext,
|
||||
permissionsPresenterFactory: PermissionsPresenter.Factory
|
||||
) : Presenter<VoiceMessageComposerState> {
|
||||
private val permissionsPresenter = permissionsPresenterFactory.create(Manifest.permission.RECORD_AUDIO)
|
||||
|
|
@ -151,6 +154,7 @@ class VoiceMessageComposerPresenter @Inject constructor(
|
|||
}
|
||||
isSending = true
|
||||
player.pause()
|
||||
analyticsService.captureComposerEvent()
|
||||
appCoroutineScope.sendMessage(
|
||||
file = finishedState.file,
|
||||
mimeType = finishedState.mimeType,
|
||||
|
|
@ -236,6 +240,16 @@ class VoiceMessageComposerPresenter @Inject constructor(
|
|||
|
||||
voiceRecorder.deleteRecording()
|
||||
}
|
||||
|
||||
private fun AnalyticsService.captureComposerEvent() =
|
||||
analyticsService.capture(
|
||||
Composer(
|
||||
inThread = messageComposerContext.composerMode.inThread,
|
||||
isEditing = messageComposerContext.composerMode.isEditing,
|
||||
isReply = messageComposerContext.composerMode.isReply,
|
||||
messageType = Composer.MessageType.VoiceMessage,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private fun VoiceRecorderState.finishedWaveform(): ImmutableList<Float> =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue