Analytics | Add support for SuperProperties

This commit is contained in:
Valere 2024-05-30 17:25:28 +02:00
parent e0c55ff4c8
commit 3c98a843e5
8 changed files with 187 additions and 15 deletions

View file

@ -23,11 +23,13 @@ import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import im.vector.app.features.analytics.plan.CryptoSessionStateChange
import im.vector.app.features.analytics.plan.SuperProperties
import im.vector.app.features.analytics.plan.UserProperties
import io.element.android.features.networkmonitor.api.NetworkMonitor
import io.element.android.features.networkmonitor.api.NetworkStatus
import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.SdkMetadata
import io.element.android.libraries.matrix.api.encryption.EncryptionService
import io.element.android.libraries.matrix.api.encryption.RecoveryState
import io.element.android.libraries.matrix.api.roomlist.RoomListService
@ -46,6 +48,7 @@ class LoggedInPresenter @Inject constructor(
private val sessionVerificationService: SessionVerificationService,
private val analyticsService: AnalyticsService,
private val encryptionService: EncryptionService,
private val sdkMetadata: SdkMetadata,
) : Presenter<LoggedInState> {
@Composable
override fun present(): LoggedInState {
@ -92,6 +95,16 @@ class LoggedInPresenter @Inject constructor(
reportCryptoStatusToAnalytics(verificationState, recoveryState)
}
LaunchedEffect(Unit) {
analyticsService.updateSuperProperties(
SuperProperties(
cryptoSDK = SuperProperties.CryptoSDK.Rust,
appPlatform = SuperProperties.AppPlatform.EXA,
cryptoSDKVersion = sdkMetadata.sdkGitSha,
)
)
}
return LoggedInState(
showSyncSpinner = showSyncSpinner,
)