From 1d2115f16e0bde744d64ccfdece7e4daa8043a50 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Jan 2026 01:31:48 +0000 Subject: [PATCH 1/3] fix(deps): update metro to v0.10.0 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0e76d36add..49c4a0eab5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -52,7 +52,7 @@ haze = "1.7.1" dependencyAnalysis = "3.5.1" # DI -metro = "0.9.4" +metro = "0.10.0" # Auto service autoservice = "1.1.1" From 635d94ec72dcdcf9490d90fa12b4c833a00a9e0e Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 20 Jan 2026 10:08:23 +0100 Subject: [PATCH 2/3] Metro 0.10.0: `contributesAsInject` is now enabled by default. --- .../src/main/kotlin/extension/DependencyInjectionExtensions.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/src/main/kotlin/extension/DependencyInjectionExtensions.kt b/plugins/src/main/kotlin/extension/DependencyInjectionExtensions.kt index b9cf87e233..6530a9f635 100644 --- a/plugins/src/main/kotlin/extension/DependencyInjectionExtensions.kt +++ b/plugins/src/main/kotlin/extension/DependencyInjectionExtensions.kt @@ -31,9 +31,6 @@ fun Project.setupDependencyInjection( // Apply Metro plugin and configure it applyPluginIfNeeded(libs.plugins.metro) - val metroExtension = extensions.getByName("metro") as MetroPluginExtension - metroExtension.contributesAsInject.value(true) - if (generateNodeFactories) { applyPluginIfNeeded(libs.plugins.ksp) From 657a610f53c31295d4170f9483d3667a9ae731f5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 20 Jan 2026 10:13:39 +0100 Subject: [PATCH 3/3] Metro 0.10.0: Classes annotated with `ContributesIntoSet` do not need to be annotated with `Inject`. --- .../impl/migrations/AppMigration01.kt | 2 -- .../impl/migrations/AppMigration02.kt | 2 -- .../impl/migrations/AppMigration03.kt | 2 -- .../impl/migrations/AppMigration04.kt | 3 +-- .../impl/migrations/AppMigration05.kt | 2 -- .../impl/migrations/AppMigration06.kt | 2 -- .../impl/migrations/AppMigration07.kt | 2 -- .../impl/migrations/AppMigration08.kt | 2 -- .../impl/migrations/AppMigration09.kt | 2 -- ...ficationTroubleshootCheckPermissionTest.kt | 2 -- .../troubleshoot/CurrentPushProviderTest.kt | 2 -- .../impl/troubleshoot/IgnoredUsersTest.kt | 2 -- .../impl/troubleshoot/NotificationTest.kt | 2 -- .../impl/troubleshoot/PushLoopbackTest.kt | 2 -- .../impl/troubleshoot/PushProvidersTest.kt | 2 -- .../firebase/FirebasePushProvider.kt | 2 -- .../troubleshoot/FirebaseAvailabilityTest.kt | 2 -- .../troubleshoot/FirebaseTokenTest.kt | 2 -- .../unifiedpush/UnifiedPushProvider.kt | 2 -- .../UnifiedPushMatrixGatewayTest.kt | 2 -- .../troubleshoot/UnifiedPushTest.kt | 2 -- .../posthog/PosthogAnalyticsProvider.kt | 2 -- .../sentry/SentryAnalyticsProvider.kt | 2 -- .../android/tests/konsist/KonsistDiTest.kt | 24 +++++++++++++++++++ 24 files changed, 25 insertions(+), 46 deletions(-) diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration01.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration01.kt index 60969dcb1d..338c3e900f 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration01.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration01.kt @@ -10,14 +10,12 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.features.rageshake.api.logs.LogFilesRemover /** * Remove existing logs from the device to remove any leaks of sensitive data. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration01( private val logFilesRemover: LogFilesRemover, ) : AppMigration { diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration02.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration02.kt index 64682749d8..d89c29c787 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration02.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration02.kt @@ -10,7 +10,6 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.preferences.api.store.SessionPreferencesStoreFactory import io.element.android.libraries.sessionstorage.api.SessionStore @@ -21,7 +20,6 @@ import kotlinx.coroutines.coroutineScope * This way we don't force existing users to verify their session again. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration02( private val sessionStore: SessionStore, private val sessionPreferenceStoreFactory: SessionPreferencesStoreFactory, diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration03.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration03.kt index 62674cf583..ac773a36f8 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration03.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration03.kt @@ -10,13 +10,11 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject /** * This performs the same operation as [AppMigration01], since we need to clear the local logs again. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration03( private val migration01: AppMigration01, ) : AppMigration { diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration04.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration04.kt index 8ac4146640..36b85e49a2 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration04.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration04.kt @@ -11,7 +11,6 @@ package io.element.android.features.migration.impl.migrations import android.content.Context import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.core.extensions.runCatchingExceptions import io.element.android.libraries.di.annotations.ApplicationContext @@ -19,13 +18,13 @@ import io.element.android.libraries.di.annotations.ApplicationContext * Remove notifications.bin file, used to store notification data locally. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration04( @ApplicationContext private val context: Context, ) : AppMigration { companion object { internal const val NOTIFICATION_FILE_NAME = "notifications.bin" } + override val order: Int = 4 override suspend fun migrate(isFreshInstall: Boolean) { diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration05.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration05.kt index 094248f5a0..c831a3e494 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration05.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration05.kt @@ -10,13 +10,11 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.di.BaseDirectory import io.element.android.libraries.sessionstorage.api.SessionStore import java.io.File @ContributesIntoSet(AppScope::class) -@Inject class AppMigration05( private val sessionStore: SessionStore, @BaseDirectory private val baseDirectory: File, diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration06.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration06.kt index 0fbda43207..ebd6e46af3 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration06.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration06.kt @@ -10,7 +10,6 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.di.CacheDirectory import io.element.android.libraries.sessionstorage.api.SessionStore import java.io.File @@ -19,7 +18,6 @@ import java.io.File * Create the cache directory for the existing sessions. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration06( private val sessionStore: SessionStore, @CacheDirectory private val cacheDirectory: File, diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration07.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration07.kt index d562be793b..2a632e3934 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration07.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration07.kt @@ -10,14 +10,12 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.features.rageshake.api.logs.LogFilesRemover /** * Delete the previous log files. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration07( private val logFilesRemover: LogFilesRemover, ) : AppMigration { diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration08.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration08.kt index 0f3b33a66d..9669d6f7cb 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration08.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration08.kt @@ -10,7 +10,6 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.features.announcement.api.Announcement import io.element.android.features.announcement.api.AnnouncementService @@ -18,7 +17,6 @@ import io.element.android.features.announcement.api.AnnouncementService * Ensure the new notification sound banner is displayed, but only on application upgrade. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration08( private val announcementService: AnnouncementService, ) : AppMigration { diff --git a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration09.kt b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration09.kt index a420ac8e8f..16fc7007d0 100644 --- a/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration09.kt +++ b/features/migration/impl/src/main/kotlin/io/element/android/features/migration/impl/migrations/AppMigration09.kt @@ -9,7 +9,6 @@ package io.element.android.features.migration.impl.migrations import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.matrix.api.MatrixClientProvider import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.sessionstorage.api.SessionStore @@ -18,7 +17,6 @@ import io.element.android.libraries.sessionstorage.api.SessionStore * Ensure we clear the well-known cached config, since it could be invalid due to an SDK issue. */ @ContributesIntoSet(AppScope::class) -@Inject class AppMigration09( private val sessionStore: SessionStore, private val matrixClientProvider: MatrixClientProvider, diff --git a/libraries/permissions/impl/src/main/kotlin/io/element/android/libraries/permissions/impl/troubleshoot/NotificationTroubleshootCheckPermissionTest.kt b/libraries/permissions/impl/src/main/kotlin/io/element/android/libraries/permissions/impl/troubleshoot/NotificationTroubleshootCheckPermissionTest.kt index eff20fabec..6f29415968 100644 --- a/libraries/permissions/impl/src/main/kotlin/io/element/android/libraries/permissions/impl/troubleshoot/NotificationTroubleshootCheckPermissionTest.kt +++ b/libraries/permissions/impl/src/main/kotlin/io/element/android/libraries/permissions/impl/troubleshoot/NotificationTroubleshootCheckPermissionTest.kt @@ -12,7 +12,6 @@ import android.Manifest import android.os.Build import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.permissions.api.PermissionStateProvider import io.element.android.libraries.permissions.impl.R import io.element.android.libraries.permissions.impl.action.PermissionActions @@ -26,7 +25,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.StateFlow @ContributesIntoSet(AppScope::class) -@Inject class NotificationTroubleshootCheckPermissionTest( private val permissionStateProvider: PermissionStateProvider, private val sdkVersionProvider: BuildVersionSdkIntProvider, diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/CurrentPushProviderTest.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/CurrentPushProviderTest.kt index 347ee3bee4..1d34315105 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/CurrentPushProviderTest.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/CurrentPushProviderTest.kt @@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.troubleshoot import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.di.SessionScope import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.push.api.PushService @@ -22,7 +21,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.StateFlow @ContributesIntoSet(SessionScope::class) -@Inject class CurrentPushProviderTest( private val pushService: PushService, private val sessionId: SessionId, diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/IgnoredUsersTest.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/IgnoredUsersTest.kt index 59ba1eba0e..b2aa489f47 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/IgnoredUsersTest.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/IgnoredUsersTest.kt @@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.troubleshoot import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.di.SessionScope import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.push.impl.R @@ -22,7 +21,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.StateFlow @ContributesIntoSet(SessionScope::class) -@Inject class IgnoredUsersTest( private val matrixClient: MatrixClient, private val stringProvider: StringProvider, diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/NotificationTest.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/NotificationTest.kt index 96860bf3e0..e845f803d9 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/NotificationTest.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/NotificationTest.kt @@ -10,7 +10,6 @@ package io.element.android.libraries.push.impl.troubleshoot import androidx.compose.ui.graphics.toArgb import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.appconfig.NotificationConfig import io.element.android.features.enterprise.api.EnterpriseService import io.element.android.libraries.di.SessionScope @@ -31,7 +30,6 @@ import timber.log.Timber import kotlin.time.Duration.Companion.seconds @ContributesIntoSet(SessionScope::class) -@Inject class NotificationTest( private val sessionId: SessionId, private val notificationCreator: NotificationCreator, diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushLoopbackTest.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushLoopbackTest.kt index 91ac1ca0ee..bc89d031a8 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushLoopbackTest.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushLoopbackTest.kt @@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.troubleshoot import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.di.SessionScope import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.push.api.PushService @@ -31,7 +30,6 @@ import timber.log.Timber import kotlin.time.Duration.Companion.seconds @ContributesIntoSet(SessionScope::class) -@Inject class PushLoopbackTest( private val sessionId: SessionId, private val pushService: PushService, diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushProvidersTest.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushProvidersTest.kt index 1a6368b75f..dbd2c4a16b 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushProvidersTest.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/troubleshoot/PushProvidersTest.kt @@ -10,7 +10,6 @@ package io.element.android.libraries.push.impl.troubleshoot import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.push.impl.R import io.element.android.libraries.pushproviders.api.PushProvider import io.element.android.libraries.troubleshoot.api.test.NotificationTroubleshootTest @@ -21,7 +20,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.StateFlow @ContributesIntoSet(AppScope::class) -@Inject class PushProvidersTest( pushProviders: Set<@JvmSuppressWildcards PushProvider>, private val stringProvider: StringProvider, diff --git a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/FirebasePushProvider.kt b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/FirebasePushProvider.kt index 0aa345769f..fdb886bd90 100644 --- a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/FirebasePushProvider.kt +++ b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/FirebasePushProvider.kt @@ -10,7 +10,6 @@ package io.element.android.libraries.pushproviders.firebase import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.core.log.logger.LoggerTag import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.core.SessionId @@ -23,7 +22,6 @@ import timber.log.Timber private val loggerTag = LoggerTag("FirebasePushProvider", LoggerTag.PushLoggerTag) @ContributesIntoSet(AppScope::class) -@Inject class FirebasePushProvider( private val firebaseStore: FirebaseStore, private val pusherSubscriber: PusherSubscriber, diff --git a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseAvailabilityTest.kt b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseAvailabilityTest.kt index 69ffd504fd..3f4eeca305 100644 --- a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseAvailabilityTest.kt +++ b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseAvailabilityTest.kt @@ -10,7 +10,6 @@ package io.element.android.libraries.pushproviders.firebase.troubleshoot import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.pushproviders.firebase.FirebaseConfig import io.element.android.libraries.pushproviders.firebase.IsPlayServiceAvailable import io.element.android.libraries.pushproviders.firebase.R @@ -23,7 +22,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.StateFlow @ContributesIntoSet(AppScope::class) -@Inject class FirebaseAvailabilityTest( private val isPlayServiceAvailable: IsPlayServiceAvailable, private val stringProvider: StringProvider, diff --git a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseTokenTest.kt b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseTokenTest.kt index 8bcd44911e..22fa999d08 100644 --- a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseTokenTest.kt +++ b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/pushproviders/firebase/troubleshoot/FirebaseTokenTest.kt @@ -10,7 +10,6 @@ package io.element.android.libraries.pushproviders.firebase.troubleshoot import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.pushproviders.firebase.FirebaseConfig import io.element.android.libraries.pushproviders.firebase.FirebaseStore import io.element.android.libraries.pushproviders.firebase.FirebaseTroubleshooter @@ -28,7 +27,6 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @ContributesIntoSet(AppScope::class) -@Inject class FirebaseTokenTest( private val firebaseStore: FirebaseStore, private val firebaseTroubleshooter: FirebaseTroubleshooter, diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt index 7c65e8e2e4..7288fccab2 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt @@ -10,7 +10,6 @@ package io.element.android.libraries.pushproviders.unifiedpush import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.pushproviders.api.Config @@ -19,7 +18,6 @@ import io.element.android.libraries.pushproviders.api.PushProvider import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret @ContributesIntoSet(AppScope::class) -@Inject class UnifiedPushProvider( private val unifiedPushDistributorProvider: UnifiedPushDistributorProvider, private val registerUnifiedPushUseCase: RegisterUnifiedPushUseCase, diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushMatrixGatewayTest.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushMatrixGatewayTest.kt index 7a50077915..82c43ab581 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushMatrixGatewayTest.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushMatrixGatewayTest.kt @@ -9,7 +9,6 @@ package io.element.android.libraries.pushproviders.unifiedpush.troubleshoot import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.di.SessionScope import io.element.android.libraries.matrix.api.core.SessionId @@ -25,7 +24,6 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @ContributesIntoSet(SessionScope::class) -@Inject class UnifiedPushMatrixGatewayTest( private val sessionId: SessionId, private val unifiedPushApiFactory: UnifiedPushApiFactory, diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushTest.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushTest.kt index 6d6d3b68af..328b5d8ac2 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushTest.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/troubleshoot/UnifiedPushTest.kt @@ -10,7 +10,6 @@ package io.element.android.libraries.pushproviders.unifiedpush.troubleshoot import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import io.element.android.libraries.pushproviders.unifiedpush.R import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushConfig import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushDistributorProvider @@ -24,7 +23,6 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.StateFlow @ContributesIntoSet(AppScope::class) -@Inject class UnifiedPushTest( private val unifiedPushDistributorProvider: UnifiedPushDistributorProvider, private val openDistributorWebPageAction: OpenDistributorWebPageAction, diff --git a/services/analyticsproviders/posthog/src/main/kotlin/io/element/android/services/analyticsproviders/posthog/PosthogAnalyticsProvider.kt b/services/analyticsproviders/posthog/src/main/kotlin/io/element/android/services/analyticsproviders/posthog/PosthogAnalyticsProvider.kt index 49edc9b1a0..7297f02940 100644 --- a/services/analyticsproviders/posthog/src/main/kotlin/io/element/android/services/analyticsproviders/posthog/PosthogAnalyticsProvider.kt +++ b/services/analyticsproviders/posthog/src/main/kotlin/io/element/android/services/analyticsproviders/posthog/PosthogAnalyticsProvider.kt @@ -11,7 +11,6 @@ package io.element.android.services.analyticsproviders.posthog import com.posthog.PostHogInterface import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import im.vector.app.features.analytics.itf.VectorAnalyticsEvent import im.vector.app.features.analytics.itf.VectorAnalyticsScreen import im.vector.app.features.analytics.plan.SuperProperties @@ -25,7 +24,6 @@ import timber.log.Timber // private val IGNORED_OPTIONS: Options? = null @ContributesIntoSet(AppScope::class) -@Inject class PosthogAnalyticsProvider( private val postHogFactory: PostHogFactory, ) : AnalyticsProvider { diff --git a/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryAnalyticsProvider.kt b/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryAnalyticsProvider.kt index ef2d4e21d9..a24d9bd08f 100644 --- a/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryAnalyticsProvider.kt +++ b/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryAnalyticsProvider.kt @@ -12,7 +12,6 @@ import android.content.Context import androidx.annotation.VisibleForTesting import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.ContributesIntoSet -import dev.zacsweers.metro.Inject import im.vector.app.features.analytics.itf.VectorAnalyticsEvent import im.vector.app.features.analytics.itf.VectorAnalyticsScreen import im.vector.app.features.analytics.plan.SuperProperties @@ -38,7 +37,6 @@ import kotlinx.coroutines.runBlocking import timber.log.Timber @ContributesIntoSet(AppScope::class) -@Inject class SentryAnalyticsProvider( @ApplicationContext private val context: Context, private val sentryDsn: SentryDsn?, diff --git a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistDiTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistDiTest.kt index a5b2f1572c..ef6273580c 100644 --- a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistDiTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistDiTest.kt @@ -15,6 +15,8 @@ import com.lemonappdev.konsist.api.verify.assertFalse import com.lemonappdev.konsist.api.verify.assertTrue import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.ContributesIntoMap +import dev.zacsweers.metro.ContributesIntoSet import dev.zacsweers.metro.Inject import org.junit.Test @@ -46,4 +48,26 @@ class KonsistDiTest { classDeclaration.hasAnnotationOf(Inject::class) } } + + @Test + fun `class annotated with @ContributesIntoSet does not need to be annotated with @Inject anymore`() { + Konsist + .scopeFromProject() + .classes() + .withAnnotationOf(ContributesIntoSet::class) + .assertFalse { classDeclaration -> + classDeclaration.hasAnnotationOf(Inject::class) + } + } + + @Test + fun `class annotated with @ContributesIntoMap does not need to be annotated with @Inject anymore`() { + Konsist + .scopeFromProject() + .classes() + .withAnnotationOf(ContributesIntoMap::class) + .assertFalse { classDeclaration -> + classDeclaration.hasAnnotationOf(Inject::class) + } + } }