Skip to content

Commit c26abb0

Browse files
authored
Use Sentry breadcrumbs instead of logging new events (#4223)
1 parent 22795af commit c26abb0

File tree

1 file changed

+19
-3
lines changed
  • services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry

1 file changed

+19
-3
lines changed

services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryAnalyticsProvider.kt

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@ import io.element.android.libraries.di.AppScope
1919
import io.element.android.libraries.di.ApplicationContext
2020
import io.element.android.services.analyticsproviders.api.AnalyticsProvider
2121
import io.element.android.services.analyticsproviders.sentry.log.analyticsTag
22+
import io.sentry.Breadcrumb
2223
import io.sentry.Sentry
23-
import io.sentry.SentryLevel
2424
import io.sentry.SentryOptions
2525
import io.sentry.android.core.SentryAndroid
2626
import timber.log.Timber
2727
import javax.inject.Inject
28+
import kotlin.collections.component1
29+
import kotlin.collections.component2
30+
import kotlin.collections.iterator
31+
import kotlin.collections.orEmpty
2832

2933
@ContributesMultibinding(AppScope::class)
3034
class SentryAnalyticsProvider @Inject constructor(
@@ -59,11 +63,23 @@ class SentryAnalyticsProvider @Inject constructor(
5963
}
6064

6165
override fun capture(event: VectorAnalyticsEvent) {
62-
Sentry.captureMessage("Event: ${event.getName()}", SentryLevel.INFO)
66+
val breadcrumb = Breadcrumb(event.getName()).apply {
67+
category = "event"
68+
for ((key, value) in event.getProperties().orEmpty()) {
69+
setData(key, value.toString())
70+
}
71+
}
72+
Sentry.addBreadcrumb(breadcrumb)
6373
}
6474

6575
override fun screen(screen: VectorAnalyticsScreen) {
66-
Sentry.captureMessage("Screen: ${screen.getName()}", SentryLevel.INFO)
76+
val breadcrumb = Breadcrumb(screen.getName()).apply {
77+
category = "screen"
78+
for ((key, value) in screen.getProperties().orEmpty()) {
79+
setData(key, value.toString())
80+
}
81+
}
82+
Sentry.addBreadcrumb(breadcrumb)
6783
}
6884

6985
override fun updateUserProperties(userProperties: UserProperties) {

0 commit comments

Comments
 (0)