Use Sentry breadcrumbs instead of logging new events (#4223)
This commit is contained in:
parent
be22163785
commit
620457705c
1 changed files with 19 additions and 3 deletions
|
|
@ -19,12 +19,16 @@ import io.element.android.libraries.di.AppScope
|
||||||
import io.element.android.libraries.di.ApplicationContext
|
import io.element.android.libraries.di.ApplicationContext
|
||||||
import io.element.android.services.analyticsproviders.api.AnalyticsProvider
|
import io.element.android.services.analyticsproviders.api.AnalyticsProvider
|
||||||
import io.element.android.services.analyticsproviders.sentry.log.analyticsTag
|
import io.element.android.services.analyticsproviders.sentry.log.analyticsTag
|
||||||
|
import io.sentry.Breadcrumb
|
||||||
import io.sentry.Sentry
|
import io.sentry.Sentry
|
||||||
import io.sentry.SentryLevel
|
|
||||||
import io.sentry.SentryOptions
|
import io.sentry.SentryOptions
|
||||||
import io.sentry.android.core.SentryAndroid
|
import io.sentry.android.core.SentryAndroid
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlin.collections.component1
|
||||||
|
import kotlin.collections.component2
|
||||||
|
import kotlin.collections.iterator
|
||||||
|
import kotlin.collections.orEmpty
|
||||||
|
|
||||||
@ContributesMultibinding(AppScope::class)
|
@ContributesMultibinding(AppScope::class)
|
||||||
class SentryAnalyticsProvider @Inject constructor(
|
class SentryAnalyticsProvider @Inject constructor(
|
||||||
|
|
@ -59,11 +63,23 @@ class SentryAnalyticsProvider @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun capture(event: VectorAnalyticsEvent) {
|
override fun capture(event: VectorAnalyticsEvent) {
|
||||||
Sentry.captureMessage("Event: ${event.getName()}", SentryLevel.INFO)
|
val breadcrumb = Breadcrumb(event.getName()).apply {
|
||||||
|
category = "event"
|
||||||
|
for ((key, value) in event.getProperties().orEmpty()) {
|
||||||
|
setData(key, value.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Sentry.addBreadcrumb(breadcrumb)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun screen(screen: VectorAnalyticsScreen) {
|
override fun screen(screen: VectorAnalyticsScreen) {
|
||||||
Sentry.captureMessage("Screen: ${screen.getName()}", SentryLevel.INFO)
|
val breadcrumb = Breadcrumb(screen.getName()).apply {
|
||||||
|
category = "screen"
|
||||||
|
for ((key, value) in screen.getProperties().orEmpty()) {
|
||||||
|
setData(key, value.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Sentry.addBreadcrumb(breadcrumb)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updateUserProperties(userProperties: UserProperties) {
|
override fun updateUserProperties(userProperties: UserProperties) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue