From b31267d7c7dbcfa798099f7833f6d33608f6ee41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Thu, 4 Dec 2025 10:22:47 +0100 Subject: [PATCH] Make `SentrySdkDsn` a value class instead of a qualifier --- .../io/element/android/x/di/AppBindings.kt | 3 +-- .../x/initializer/PlatformInitializer.kt | 2 +- .../libraries/di/annotations/SentrySdkDsn.kt | 20 ++----------------- .../analytics/noop/di/NoopAnalyticsModule.kt | 3 +-- .../sentry/di/SentryModule.kt | 3 +-- 5 files changed, 6 insertions(+), 25 deletions(-) diff --git a/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt b/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt index f506e15688..d7bfda93a6 100644 --- a/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt +++ b/app/src/main/kotlin/io/element/android/x/di/AppBindings.kt @@ -50,6 +50,5 @@ interface AppBindings { fun buildMeta(): BuildMeta - @SentrySdkDsn - fun sentrySdkDsn(): String? + fun sentrySdkDsn(): SentrySdkDsn? } diff --git a/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt b/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt index 206024d70b..2a844b1331 100644 --- a/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt +++ b/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt @@ -38,7 +38,7 @@ class PlatformInitializer : Initializer { logLevel = logLevel, extraTargets = listOf(ELEMENT_X_TARGET), traceLogPacks = runBlocking { preferencesStore.getTracingLogPacksFlow().first() }, - sdkSentryDsn = appBindings.sentrySdkDsn()?.takeIf { it.isNotBlank() }, + sdkSentryDsn = appBindings.sentrySdkDsn()?.value?.takeIf { it.isNotBlank() }, ) bugReporter.setCurrentTracingLogLevel(logLevel.name) platformService.init(tracingConfiguration) diff --git a/libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/SentrySdkDsn.kt b/libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/SentrySdkDsn.kt index da3fd2945a..19a0eac017 100644 --- a/libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/SentrySdkDsn.kt +++ b/libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/SentrySdkDsn.kt @@ -7,21 +7,5 @@ package io.element.android.libraries.di.annotations -import dev.zacsweers.metro.Qualifier - -/** - * Qualifies the Sentry SDK DSN in the DI graph. - */ -@Retention(AnnotationRetention.RUNTIME) -@MustBeDocumented -@Qualifier -@Target( - AnnotationTarget.CLASS, - AnnotationTarget.FIELD, - AnnotationTarget.FUNCTION, - AnnotationTarget.PROPERTY, - AnnotationTarget.PROPERTY_GETTER, - AnnotationTarget.VALUE_PARAMETER, - AnnotationTarget.TYPE, -) -annotation class SentrySdkDsn +@JvmInline +value class SentrySdkDsn(val value: String) diff --git a/services/analytics/noop/src/main/kotlin/io/element/android/services/analytics/noop/di/NoopAnalyticsModule.kt b/services/analytics/noop/src/main/kotlin/io/element/android/services/analytics/noop/di/NoopAnalyticsModule.kt index f7d6646b8d..26e4f16b37 100644 --- a/services/analytics/noop/src/main/kotlin/io/element/android/services/analytics/noop/di/NoopAnalyticsModule.kt +++ b/services/analytics/noop/src/main/kotlin/io/element/android/services/analytics/noop/di/NoopAnalyticsModule.kt @@ -16,7 +16,6 @@ import io.element.android.libraries.di.annotations.SentrySdkDsn @BindingContainer @ContributesTo(AppScope::class) object NoopAnalyticsModule { - @SentrySdkDsn @Provides - fun provideSentrySdkDsn(): String? = null + fun provideSentrySdkDsn(): SentrySdkDsn? = null } diff --git a/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/di/SentryModule.kt b/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/di/SentryModule.kt index 5ddfce4ce7..1887ed829b 100644 --- a/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/di/SentryModule.kt +++ b/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/di/SentryModule.kt @@ -18,6 +18,5 @@ import io.element.android.services.analyticsproviders.sentry.SentryConfig @ContributesTo(AppScope::class) object SentryModule { @Provides - @SentrySdkDsn - fun provideSentrySdkDsn(): String? = SentryConfig.SDK_DSN + fun provideSentrySdkDsn(): SentrySdkDsn? = SentrySdkDsn(SentryConfig.SDK_DSN) }