Metro 0.10.0: Classes annotated with ContributesIntoSet do not need to be annotated with Inject.

This commit is contained in:
Benoit Marty
2026-01-20 10:13:39 +01:00
parent 635d94ec72
commit 657a610f53
24 changed files with 25 additions and 46 deletions

View File

@@ -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 {

View File

@@ -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,

View File

@@ -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 {

View File

@@ -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) {

View File

@@ -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,

View File

@@ -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,

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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,