Replace AnalyticsSdkSpanFactory with AnalyticsSdkManager.

`AnalyticsSdkManager` also enables and disables Sentry logging in the SDK based on analytics user content.
This commit is contained in:
Jorge Martín 2025-12-04 10:27:04 +01:00 committed by Jorge Martin Espinosa
parent 942eae94ad
commit 342ee0c10b
7 changed files with 88 additions and 52 deletions

View file

@ -9,12 +9,17 @@ package io.element.android.libraries.matrix.impl.analytics
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.services.analytics.api.AnalyticsSdkManager
import io.element.android.services.analytics.api.AnalyticsSdkSpan
import io.element.android.services.analytics.api.AnalyticsSdkSpanFactory
import org.matrix.rustcomponents.sdk.enableSentryLogging
@ContributesBinding(AppScope::class)
class DefaultAnalyticsSdkFactory : AnalyticsSdkSpanFactory {
override fun create(name: String, parentTraceId: String?): AnalyticsSdkSpan {
class RustAnalyticsSdkManager : AnalyticsSdkManager {
override fun enableSdkAnalytics(enabled: Boolean) {
enableSentryLogging(enabled)
}
override fun startSpan(name: String, parentTraceId: String?): AnalyticsSdkSpan {
return RustAnalyticsSdkSpan(name = name, parentTraceId = parentTraceId)
}