Remove @Inject, not necessary anymore when class is annotated with @ContributesBinding

This commit is contained in:
Benoit Marty 2025-10-22 18:37:13 +02:00
parent 27a6e6aa82
commit 263e761907
273 changed files with 1 additions and 545 deletions

View file

@ -12,12 +12,10 @@ import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.accountselect.api.AccountSelectEntryPoint
import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class)
@Inject
class DefaultAccountSelectEntryPoint : AccountSelectEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): AccountSelectEntryPoint.NodeBuilder {
val plugins = ArrayList<Plugin>()

View file

@ -11,7 +11,6 @@ import android.util.Log
import android.webkit.ConsoleMessage
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import timber.log.Timber
interface ConsoleMessageLogger {
@ -22,7 +21,6 @@ interface ConsoleMessageLogger {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultConsoleMessageLogger : ConsoleMessageLogger {
override fun log(
tag: String,

View file

@ -13,13 +13,11 @@ import android.content.Context
import androidx.core.content.getSystemService
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.di.annotations.ApplicationContext
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class AndroidClipboardHelper(
@ApplicationContext private val context: Context,
) : ClipboardHelper {

View file

@ -11,7 +11,6 @@ import android.content.Context
import android.net.Uri
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import timber.log.Timber
@ -23,7 +22,6 @@ interface TemporaryUriDeleter {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultTemporaryUriDeleter(
@ApplicationContext private val context: Context,
) : TemporaryUriDeleter {

View file

@ -12,12 +12,10 @@ import android.os.Build
import android.text.format.Formatter
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.services.toolbox.api.sdk.BuildVersionSdkIntProvider
@ContributesBinding(AppScope::class)
@Inject
class AndroidFileSizeFormatter(
@ApplicationContext private val context: Context,
private val sdkIntProvider: BuildVersionSdkIntProvider,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.androidutils.json
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.Provider
import dev.zacsweers.metro.SingleIn
import kotlinx.serialization.json.Json
@ -21,7 +20,6 @@ interface JsonProvider : Provider<Json>
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class DefaultJsonProvider : JsonProvider {
private val json: Json by lazy { Json { ignoreUnknownKeys = true } }
override fun invoke() = json

View file

@ -13,7 +13,6 @@ import android.content.Intent
import android.content.IntentFilter
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.androidutils.system.DateTimeObserver.Event
import io.element.android.libraries.di.annotations.ApplicationContext
@ -32,7 +31,6 @@ interface DateTimeObserver {
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class DefaultDateTimeObserver(
@ApplicationContext context: Context
) : DateTimeObserver {

View file

@ -15,13 +15,11 @@ import android.os.Build
import androidx.core.content.getSystemService
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.audio.api.AudioFocus
import io.element.android.libraries.audio.api.AudioFocusRequester
import io.element.android.libraries.di.annotations.ApplicationContext
@ContributesBinding(AppScope::class)
@Inject
class DefaultAudioFocus(
@ApplicationContext private val context: Context,
) : AudioFocus {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.cryptography.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.cryptography.api.AESEncryptionSpecs
import io.element.android.libraries.cryptography.api.EncryptionDecryptionService
import io.element.android.libraries.cryptography.api.EncryptionResult
@ -21,7 +20,6 @@ import javax.crypto.spec.GCMParameterSpec
* Default implementation of [EncryptionDecryptionService] using AES encryption.
*/
@ContributesBinding(AppScope::class)
@Inject
class AESEncryptionDecryptionService : EncryptionDecryptionService {
override fun createEncryptionCipher(key: SecretKey): Cipher {
return Cipher.getInstance(AESEncryptionSpecs.CIPHER_TRANSFORMATION).apply {

View file

@ -12,7 +12,6 @@ import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyProperties
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.cryptography.api.AESEncryptionSpecs
import io.element.android.libraries.cryptography.api.SecretKeyRepository
import timber.log.Timber
@ -26,7 +25,6 @@ import javax.crypto.SecretKey
* The generated key uses AES algorithm, with a key size of 128 bits, and the GCM block mode.
*/
@ContributesBinding(AppScope::class)
@Inject
class KeyStoreSecretKeyRepository(
private val keyStore: KeyStore,
) : SecretKeyRepository {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.dateformatter.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.safeCapitalize
interface DateFormatterDay {
@ -20,7 +19,6 @@ interface DateFormatterDay {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultDateFormatterDay(
private val localDateTimeProvider: LocalDateTimeProvider,
private val dateFormatters: DateFormatters,

View file

@ -9,12 +9,10 @@ package io.element.android.libraries.dateformatter.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.dateformatter.api.DateFormatter
import io.element.android.libraries.dateformatter.api.DateFormatterMode
@ContributesBinding(AppScope::class)
@Inject
class DefaultDateFormatter(
private val dateFormatterFull: DateFormatterFull,
private val dateFormatterMonth: DateFormatterMonth,

View file

@ -14,7 +14,6 @@ import android.content.IntentFilter
import android.os.Build
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.di.annotations.ApplicationContext
@ -28,7 +27,6 @@ interface LocaleChangeListener {
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultLocaleChangeObserver(
@ApplicationContext private val context: Context,
) : LocaleChangeObserver {

View file

@ -9,14 +9,12 @@ package io.element.android.libraries.deeplink.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.deeplink.api.DeepLinkCreator
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.ThreadId
@ContributesBinding(AppScope::class)
@Inject
class DefaultDeepLinkCreator : DeepLinkCreator {
override fun create(sessionId: SessionId, roomId: RoomId?, threadId: ThreadId?): String {
return buildString {

View file

@ -11,7 +11,6 @@ import android.content.Intent
import android.net.Uri
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.deeplink.api.DeeplinkData
import io.element.android.libraries.deeplink.api.DeeplinkParser
import io.element.android.libraries.matrix.api.core.RoomId
@ -19,7 +18,6 @@ import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.ThreadId
@ContributesBinding(AppScope::class)
@Inject
class DefaultDeeplinkParser : DeeplinkParser {
override fun getFromIntent(intent: Intent): DeeplinkData? {
return intent

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.deeplink.impl.usecase
import android.app.Activity
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.androidutils.system.startSharePlainTextIntent
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.deeplink.api.usecase.InviteFriendsUseCase
@ -22,7 +21,6 @@ import timber.log.Timber
import io.element.android.libraries.androidutils.R as AndroidUtilsR
@ContributesBinding(SessionScope::class)
@Inject
class DefaultInviteFriendsUseCase(
private val stringProvider: StringProvider,
private val matrixClient: MatrixClient,

View file

@ -10,7 +10,6 @@ package io.element.android.libraries.eventformatter.impl
import androidx.annotation.StringRes
import androidx.compose.ui.text.AnnotatedString
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.eventformatter.api.PinnedMessagesBannerFormatter
import io.element.android.libraries.matrix.api.permalink.PermalinkParser
@ -38,7 +37,6 @@ import io.element.android.libraries.ui.strings.CommonStrings
import io.element.android.services.toolbox.api.strings.StringProvider
@ContributesBinding(SessionScope::class)
@Inject
class DefaultPinnedMessagesBannerFormatter(
private val sp: StringProvider,
private val permalinkParser: PermalinkParser,

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.eventformatter.impl
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import io.element.android.libraries.eventformatter.impl.mode.RenderingMode
@ -45,7 +44,6 @@ import io.element.android.libraries.ui.strings.CommonStrings
import io.element.android.services.toolbox.api.strings.StringProvider
@ContributesBinding(SessionScope::class)
@Inject
class DefaultRoomLastMessageFormatter(
private val sp: StringProvider,
private val roomMembershipContentFormatter: RoomMembershipContentFormatter,

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.eventformatter.impl
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.eventformatter.api.TimelineEventFormatter
@ -34,7 +33,6 @@ import io.element.android.libraries.ui.strings.CommonStrings
import io.element.android.services.toolbox.api.strings.StringProvider
@ContributesBinding(SessionScope::class)
@Inject
class DefaultTimelineEventFormatter(
private val sp: StringProvider,
private val buildMeta: BuildMeta,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.featureflag.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.featureflag.api.Feature
@ -19,7 +18,6 @@ import kotlinx.coroutines.flow.flowOf
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class DefaultFeatureFlagService(
private val providers: Set<@JvmSuppressWildcards FeatureFlagProvider>,
private val buildMeta: BuildMeta,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.featureflag.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.featureflag.api.Feature
import io.element.android.libraries.featureflag.api.FeatureFlags
@ -18,7 +17,6 @@ fun interface FeaturesProvider {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultFeaturesProvider : FeaturesProvider {
override fun provide(): List<Feature> = FeatureFlags.entries
}

View file

@ -14,7 +14,6 @@ import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.indicator.api.IndicatorService
import io.element.android.libraries.matrix.api.encryption.BackupState
@ -23,7 +22,6 @@ import io.element.android.libraries.matrix.api.encryption.RecoveryState
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
@ContributesBinding(SessionScope::class)
@Inject
class DefaultIndicatorService(
private val sessionVerificationService: SessionVerificationService,
private val encryptionService: EncryptionService,

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.matrix.api.recentemojis
import dev.zacsweers.metro.ContributesBinding
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.MatrixClient
@ -19,7 +18,6 @@ fun interface GetRecentEmojis {
}
@ContributesBinding(SessionScope::class)
@Inject
class DefaultGetRecentEmojis(
private val client: MatrixClient,
private val dispatchers: CoroutineDispatchers,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.matrix.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import org.matrix.rustcomponents.sdk.ClientBuilder
interface ClientBuilderProvider {
@ -17,7 +16,6 @@ interface ClientBuilderProvider {
}
@ContributesBinding(AppScope::class)
@Inject
class RustClientBuilderProvider : ClientBuilderProvider {
override fun provide(): ClientBuilder {
return ClientBuilder()

View file

@ -9,12 +9,10 @@ package io.element.android.libraries.matrix.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.SdkMetadata
import org.matrix.rustcomponents.sdk.sdkGitSha
@ContributesBinding(AppScope::class)
@Inject
class RustSdkMetadata : SdkMetadata {
override val sdkGitSha: String
get() = sdkGitSha()

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.matrix.impl.auth
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.core.extensions.mapFailure
@ -52,7 +51,6 @@ import uniffi.matrix_sdk.OAuthAuthorizationData
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class RustMatrixAuthenticationService(
private val sessionPathsFactory: SessionPathsFactory,
private val coroutineDispatchers: CoroutineDispatchers,

View file

@ -9,14 +9,12 @@ package io.element.android.libraries.matrix.impl.auth.qrlogin
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.auth.qrlogin.MatrixQrCodeLoginData
import io.element.android.libraries.matrix.api.auth.qrlogin.MatrixQrCodeLoginDataFactory
import org.matrix.rustcomponents.sdk.QrCodeData
@ContributesBinding(AppScope::class)
@Inject
class RustQrCodeLoginDataFactory : MatrixQrCodeLoginDataFactory {
override fun parseQrCodeData(data: ByteArray): Result<MatrixQrCodeLoginData> {
return runCatchingExceptions { SdkQrCodeLoginData(QrCodeData.fromBytes(data)) }

View file

@ -9,13 +9,11 @@ package io.element.android.libraries.matrix.impl.certificates
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import timber.log.Timber
import java.security.KeyStore
import java.security.KeyStoreException
@ContributesBinding(AppScope::class)
@Inject
class DefaultUserCertificatesProvider : UserCertificatesProvider {
/**
* Get additional user-installed certificates from the `AndroidCAStore` `Keystore`.

View file

@ -10,13 +10,11 @@ package io.element.android.libraries.matrix.impl.keys
import android.util.Base64
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import java.security.SecureRandom
private const val SECRET_SIZE = 256
@ContributesBinding(AppScope::class)
@Inject
class DefaultPassphraseGenerator : PassphraseGenerator {
override fun generatePassphrase(): String? {
val key = ByteArray(size = SECRET_SIZE)

View file

@ -11,7 +11,6 @@ import android.net.Uri
import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.MatrixConfiguration
import io.element.android.libraries.core.extensions.replacePrefix
import io.element.android.libraries.matrix.api.permalink.MatrixToConverter
@ -20,7 +19,6 @@ import io.element.android.libraries.matrix.api.permalink.MatrixToConverter
* Mapping of an input URI to a matrix.to compliant URI.
*/
@ContributesBinding(AppScope::class)
@Inject
class DefaultMatrixToConverter : MatrixToConverter {
/**
* Try to convert a URL from an element web instance or from a client permalink to a matrix.to url.

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.matrix.impl.permalink
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.core.MatrixPatterns
import io.element.android.libraries.matrix.api.core.RoomAlias
@ -20,7 +19,6 @@ import org.matrix.rustcomponents.sdk.matrixToRoomAliasPermalink
import org.matrix.rustcomponents.sdk.matrixToUserPermalink
@ContributesBinding(AppScope::class)
@Inject
class DefaultPermalinkBuilder : PermalinkBuilder {
override fun permalinkForUser(userId: UserId): Result<String> {
if (!MatrixPatterns.isUserId(userId.value)) {

View file

@ -10,7 +10,6 @@ package io.element.android.libraries.matrix.impl.permalink
import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomAlias
@ -32,7 +31,6 @@ import org.matrix.rustcomponents.sdk.parseMatrixEntityFrom
* or matrix: permalinks (e.g. matrix:u/chagai95:matrix.org)
*/
@ContributesBinding(AppScope::class)
@Inject
class DefaultPermalinkParser(
private val matrixToConverter: MatrixToConverter
) : PermalinkParser {

View file

@ -9,14 +9,12 @@ package io.element.android.libraries.matrix.impl.platform
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.platform.InitPlatformService
import io.element.android.libraries.matrix.api.tracing.TracingConfiguration
import io.element.android.libraries.matrix.impl.tracing.map
import org.matrix.rustcomponents.sdk.initPlatform
@ContributesBinding(AppScope::class)
@Inject
class RustInitPlatformService : InitPlatformService {
override fun init(tracingConfiguration: TracingConfiguration) {
initPlatform(

View file

@ -13,7 +13,6 @@ import android.provider.Settings
import androidx.core.content.getSystemService
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import timber.log.Timber
@ -29,7 +28,6 @@ import timber.log.Timber
* ```
*/
@ContributesBinding(AppScope::class)
@Inject
class DefaultProxyProvider(
@ApplicationContext
private val context: Context

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.matrix.impl.room
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.room.StateEventType
import org.matrix.rustcomponents.sdk.FilterTimelineEventType
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
@ -19,7 +18,6 @@ interface TimelineEventTypeFilterFactory {
}
@ContributesBinding(AppScope::class)
@Inject
class RustTimelineEventTypeFilterFactory : TimelineEventTypeFilterFactory {
override fun create(listStateEventType: List<StateEventType>): TimelineEventTypeFilter {
return TimelineEventTypeFilter.exclude(

View file

@ -9,12 +9,10 @@ package io.element.android.libraries.matrix.impl.room.alias
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.room.alias.RoomAliasHelper
@ContributesBinding(AppScope::class)
@Inject
class DefaultRoomAliasHelper : RoomAliasHelper {
override fun roomAliasNameFromRoomDisplayName(name: String): String {
return org.matrix.rustcomponents.sdk.roomAliasNameFromRoomDisplayName(name)

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.matrix.impl.room.join
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import im.vector.app.features.analytics.plan.JoinedRoom
import io.element.android.libraries.core.extensions.mapFailure
import io.element.android.libraries.di.SessionScope
@ -21,7 +20,6 @@ import io.element.android.libraries.matrix.impl.analytics.toAnalyticsJoinedRoom
import io.element.android.services.analytics.api.AnalyticsService
@ContributesBinding(SessionScope::class)
@Inject
class DefaultJoinRoom(
private val client: MatrixClient,
private val analyticsService: AnalyticsService,

View file

@ -8,13 +8,11 @@
package io.element.android.libraries.matrix.impl.server
import dev.zacsweers.metro.ContributesBinding
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.matrix.api.server.UserServerResolver
@ContributesBinding(SessionScope::class)
@Inject
class DefaultUserServerResolver(
private val matrixClient: MatrixClient,
) : UserServerResolver {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.matrix.impl.tracing
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.matrix.api.tracing.LogLevel
import io.element.android.libraries.matrix.api.tracing.TracingConfiguration
@ -20,7 +19,6 @@ import org.matrix.rustcomponents.sdk.reloadTracingFileWriter
import timber.log.Timber
@ContributesBinding(AppScope::class)
@Inject
class RustTracingService(private val buildMeta: BuildMeta) : TracingService {
override fun createTimberTree(target: String): Timber.Tree {
return RustTracingTree(target = target, retrieveFromStackTrace = buildMeta.isDebuggable)

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.matrix.impl.widget
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.core.meta.BuildType
import io.element.android.libraries.matrix.api.widget.CallAnalyticCredentialsProvider
@ -25,7 +24,6 @@ import uniffi.matrix_sdk.VirtualElementCallWidgetProperties
import uniffi.matrix_sdk.Intent as CallIntent
@ContributesBinding(AppScope::class)
@Inject
class DefaultCallWidgetSettingsProvider(
private val buildMeta: BuildMeta,
private val callAnalyticsCredentialsProvider: CallAnalyticCredentialsProvider,

View file

@ -26,7 +26,6 @@ interface LoggedInImageLoaderFactory {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultLoggedInImageLoaderFactory(
@ApplicationContext private val context: Context,
private val okHttpClient: Provider<OkHttpClient>,

View file

@ -10,7 +10,6 @@ package io.element.android.libraries.matrix.ui.media
import coil3.ImageLoader
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.SessionId
@ -24,7 +23,6 @@ interface ImageLoaderHolder {
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class DefaultImageLoaderHolder(
private val loggedInImageLoaderFactory: LoggedInImageLoaderFactory,
private val sessionObserver: SessionObserver,

View file

@ -17,7 +17,6 @@ import androidx.compose.ui.platform.LocalInspectionMode
import androidx.core.content.FileProvider
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.mediapickers.api.ComposePickerLauncher
import io.element.android.libraries.mediapickers.api.NoOpPickerLauncher
@ -27,7 +26,6 @@ import io.element.android.libraries.mediapickers.api.PickerType
import java.io.File
@ContributesBinding(AppScope::class)
@Inject
class DefaultPickerProvider(
@ApplicationContext private val context: Context,
) : PickerProvider {

View file

@ -11,7 +11,6 @@ import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.audio.api.AudioFocus
import io.element.android.libraries.audio.api.AudioFocusRequester
@ -36,7 +35,6 @@ import kotlin.time.Duration.Companion.seconds
*/
@ContributesBinding(RoomScope::class)
@SingleIn(RoomScope::class)
@Inject
class DefaultMediaPlayer(
private val player: SimplePlayer,
@SessionCoroutineScope

View file

@ -14,7 +14,6 @@ import android.net.Uri
import androidx.exifinterface.media.ExifInterface
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.androidutils.file.TemporaryUriDeleter
import io.element.android.libraries.androidutils.file.createTmpFile
import io.element.android.libraries.androidutils.file.getFileName
@ -50,7 +49,6 @@ import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
@ContributesBinding(AppScope::class)
@Inject
class AndroidMediaPreProcessor(
@ApplicationContext private val context: Context,
private val thumbnailFactory: ThumbnailFactory,

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.mediaupload.impl
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfig
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfigProvider
@ -16,7 +15,6 @@ import io.element.android.libraries.preferences.api.store.SessionPreferencesStor
import kotlinx.coroutines.flow.first
@ContributesBinding(SessionScope::class)
@Inject
class DefaultMediaOptimizationConfigProvider(
private val sessionPreferencesStore: SessionPreferencesStore,
) : MediaOptimizationConfigProvider {

View file

@ -12,13 +12,11 @@ import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.architecture.createNode
import io.element.android.libraries.mediaviewer.api.MediaGalleryEntryPoint
import io.element.android.libraries.mediaviewer.impl.gallery.root.MediaGalleryFlowNode
@ContributesBinding(AppScope::class)
@Inject
class DefaultMediaGalleryEntryPoint : MediaGalleryEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): MediaGalleryEntryPoint.NodeBuilder {
val plugins = ArrayList<Plugin>()

View file

@ -12,7 +12,6 @@ import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.architecture.createNode
import io.element.android.libraries.core.mimetype.MimeTypes
import io.element.android.libraries.matrix.api.core.UserId
@ -22,7 +21,6 @@ import io.element.android.libraries.mediaviewer.api.MediaViewerEntryPoint
import io.element.android.libraries.mediaviewer.impl.viewer.MediaViewerNode
@ContributesBinding(AppScope::class)
@Inject
class DefaultMediaViewerEntryPoint : MediaViewerEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): MediaViewerEntryPoint.NodeBuilder {
val plugins = ArrayList<Plugin>()

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.mediaviewer.impl.datasource
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.room.JoinedRoom
@ -23,7 +22,6 @@ fun interface FocusedTimelineMediaGalleryDataSourceFactory {
}
@ContributesBinding(RoomScope::class)
@Inject
class DefaultFocusedTimelineMediaGalleryDataSourceFactory(
private val room: JoinedRoom,
private val timelineMediaItemsFactory: TimelineMediaItemsFactory,

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.mediaviewer.impl.datasource
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.di.RoomScope
@ -39,7 +38,6 @@ interface MediaGalleryDataSource {
@SingleIn(RoomScope::class)
@ContributesBinding(RoomScope::class)
@Inject
class TimelineMediaGalleryDataSource(
private val room: BaseRoom,
private val mediaTimeline: MediaTimeline,

View file

@ -8,7 +8,6 @@
package io.element.android.libraries.mediaviewer.impl.datasource
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.api.core.EventId
@ -36,7 +35,6 @@ interface MediaTimeline {
*/
@SingleIn(RoomScope::class)
@ContributesBinding(RoomScope::class)
@Inject
class LiveMediaTimeline(
private val room: JoinedRoom,
) : MediaTimeline {

View file

@ -31,7 +31,6 @@ import androidx.core.content.PermissionChecker
import androidx.core.net.toFile
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.androidutils.system.startInstallFromSourceIntent
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.core.extensions.runCatchingExceptions
@ -47,7 +46,6 @@ import java.io.FileOutputStream
import java.io.InputStream
@ContributesBinding(AppScope::class)
@Inject
class AndroidLocalMediaActions(
@ApplicationContext private val context: Context,
private val coroutineDispatchers: CoroutineDispatchers,

View file

@ -12,7 +12,6 @@ import android.net.Uri
import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.androidutils.file.getFileName
import io.element.android.libraries.androidutils.file.getFileSize
import io.element.android.libraries.androidutils.file.getMimeType
@ -28,7 +27,6 @@ import io.element.android.libraries.mediaviewer.api.local.LocalMediaFactory
import io.element.android.libraries.mediaviewer.api.util.FileExtensionExtractor
@ContributesBinding(AppScope::class)
@Inject
class AndroidLocalMediaFactory(
@ApplicationContext private val context: Context,
private val fileSizeFormatter: FileSizeFormatter,

View file

@ -12,7 +12,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.viewfolder.api.TextFileViewer
import io.element.android.libraries.audio.api.AudioFocus
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
@ -22,7 +21,6 @@ import me.saket.telephoto.zoomable.ZoomSpec
import me.saket.telephoto.zoomable.rememberZoomableState
@ContributesBinding(AppScope::class)
@Inject
class DefaultLocalMediaRenderer(
private val textFileViewer: TextFileViewer,
private val audioFocus: AudioFocus,

View file

@ -10,11 +10,9 @@ package io.element.android.libraries.mediaviewer.impl.util
import android.webkit.MimeTypeMap
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.mediaviewer.api.util.FileExtensionExtractor
@ContributesBinding(AppScope::class)
@Inject
class FileExtensionExtractorWithValidation : FileExtensionExtractor {
override fun extractFromName(name: String): String {
val fileExtension = name.substringAfterLast('.', "")

View file

@ -10,14 +10,12 @@ package io.element.android.libraries.network.useragent
import android.os.Build
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.matrix.api.SdkMetadata
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultUserAgentProvider(
private val buildMeta: BuildMeta,
private val sdkMeta: SdkMetadata,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.oidc.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.oidc.api.OidcAction
import io.element.android.libraries.oidc.api.OidcActionFlow
@ -18,7 +17,6 @@ import kotlinx.coroutines.flow.MutableStateFlow
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class DefaultOidcActionFlow : OidcActionFlow {
private val mutableStateFlow = MutableStateFlow<OidcAction?>(null)

View file

@ -10,12 +10,10 @@ package io.element.android.libraries.oidc.impl
import android.content.Intent
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.oidc.api.OidcAction
import io.element.android.libraries.oidc.api.OidcIntentResolver
@ContributesBinding(AppScope::class)
@Inject
class DefaultOidcIntentResolver(
private val oidcUrlParser: OidcUrlParser,
) : OidcIntentResolver {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.oidc.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.auth.OidcRedirectUrlProvider
import io.element.android.libraries.oidc.api.OidcAction
@ -22,7 +21,6 @@ fun interface OidcUrlParser {
* TODO Find documentation about the format.
*/
@ContributesBinding(AppScope::class)
@Inject
class DefaultOidcUrlParser(
private val oidcRedirectUrlProvider: OidcRedirectUrlProvider,
) : OidcUrlParser {

View file

@ -15,7 +15,6 @@ import com.google.accompanist.permissions.PermissionState
import com.google.accompanist.permissions.rememberPermissionState
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
interface ComposablePermissionStateProvider {
@Composable
@ -23,7 +22,6 @@ interface ComposablePermissionStateProvider {
}
@ContributesBinding(AppScope::class)
@Inject
class AccompanistPermissionStateProvider : ComposablePermissionStateProvider {
@Composable
override fun provide(permission: String, onPermissionResult: (Boolean) -> Unit): PermissionState {

View file

@ -12,7 +12,6 @@ import android.content.pm.PackageManager
import androidx.core.content.ContextCompat
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.permissions.api.PermissionStateProvider
@ -21,7 +20,6 @@ import kotlinx.coroutines.flow.Flow
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultPermissionStateProvider(
@ApplicationContext private val context: Context,
private val permissionsStore: PermissionsStore,

View file

@ -11,7 +11,6 @@ import androidx.datastore.preferences.core.booleanPreferencesKey
import androidx.datastore.preferences.core.edit
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.permissions.api.PermissionsStore
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
@ -19,7 +18,6 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
@ContributesBinding(AppScope::class)
@Inject
class DefaultPermissionsStore(
preferenceDataStoreFactory: PreferenceDataStoreFactory,
) : PermissionsStore {

View file

@ -10,12 +10,10 @@ package io.element.android.libraries.permissions.impl.action
import android.content.Context
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.androidutils.system.startNotificationSettingsIntent
import io.element.android.libraries.di.annotations.ApplicationContext
@ContributesBinding(AppScope::class)
@Inject
class AndroidPermissionActions(
@ApplicationContext private val context: Context
) : PermissionActions {

View file

@ -12,7 +12,6 @@ import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.core.meta.BuildType
import io.element.android.libraries.matrix.api.media.MediaPreviewValue
@ -32,7 +31,6 @@ private val logLevelKey = stringPreferencesKey("logLevel")
private val traceLogPacksKey = stringPreferencesKey("traceLogPacks")
@ContributesBinding(AppScope::class)
@Inject
class DefaultAppPreferencesStore(
private val buildMeta: BuildMeta,
preferenceDataStoreFactory: PreferenceDataStoreFactory,

View file

@ -13,7 +13,6 @@ import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.preferencesDataStore
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.androidutils.preferences.DefaultPreferencesCorruptionHandlerFactory
import io.element.android.libraries.di.annotations.ApplicationContext
@ -22,7 +21,6 @@ import java.util.concurrent.ConcurrentHashMap
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultPreferencesDataStoreFactory(
@ApplicationContext private val context: Context,
) : PreferenceDataStoreFactory {

View file

@ -10,7 +10,6 @@ package io.element.android.libraries.preferences.impl.store
import android.content.Context
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.core.SessionId
@ -23,7 +22,6 @@ import java.util.concurrent.ConcurrentHashMap
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultSessionPreferencesStoreFactory(
@ApplicationContext private val context: Context,
sessionObserver: SessionObserver,

View file

@ -9,14 +9,12 @@ package io.element.android.libraries.push.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.push.api.GetCurrentPushProvider
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
import io.element.android.services.appnavstate.api.AppNavigationStateService
import io.element.android.services.appnavstate.api.currentSessionId
@ContributesBinding(AppScope::class)
@Inject
class DefaultGetCurrentPushProvider(
private val pushStoreFactory: UserPushStoreFactory,
private val appNavigationStateService: AppNavigationStateService,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import dev.zacsweers.metro.binding
import io.element.android.libraries.matrix.api.MatrixClient
@ -31,7 +30,6 @@ import timber.log.Timber
@ContributesBinding(AppScope::class, binding = binding<PushService>())
@SingleIn(AppScope::class)
@Inject
class DefaultPushService(
private val testPush: TestPush,
private val userPushStoreFactory: UserPushStoreFactory,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.PushConfig
import io.element.android.libraries.core.extensions.mapFailure
import io.element.android.libraries.core.log.logger.LoggerTag
@ -30,7 +29,6 @@ internal const val DEFAULT_PUSHER_FILE_TAG = "mobile"
private val loggerTag = LoggerTag("DefaultPusherSubscriber", LoggerTag.PushLoggerTag)
@ContributesBinding(AppScope::class)
@Inject
class DefaultPusherSubscriber(
private val buildMeta: BuildMeta,
private val pushClientSecret: PushClientSecret,

View file

@ -17,7 +17,6 @@ import androidx.core.content.getSystemService
import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.services.toolbox.api.intent.ExternalIntentLauncher
import timber.log.Timber
@ -45,7 +44,6 @@ interface BatteryOptimization {
}
@ContributesBinding(AppScope::class)
@Inject
class AndroidBatteryOptimization(
@ApplicationContext
private val context: Context,

View file

@ -13,7 +13,6 @@ import android.os.PowerManager
import androidx.core.content.getSystemService
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
@ -23,7 +22,6 @@ import io.element.android.libraries.push.impl.db.PushHistory
import io.element.android.services.toolbox.api.systemclock.SystemClock
@ContributesBinding(AppScope::class)
@Inject
class DefaultPushHistoryService(
private val pushDatabase: PushDatabase,
private val systemClock: SystemClock,

View file

@ -11,7 +11,6 @@ import android.service.notification.StatusBarNotification
import androidx.core.app.NotificationManagerCompat
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
@ -28,7 +27,6 @@ interface ActiveNotificationsProvider {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultActiveNotificationsProvider(
private val notificationManager: NotificationManagerCompat,
) : ActiveNotificationsProvider {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.notifications
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.SessionId
@ -47,7 +46,6 @@ interface CallNotificationEventResolver {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultCallNotificationEventResolver(
private val stringProvider: StringProvider,
private val appForegroundStateService: AppForegroundStateService,

View file

@ -12,7 +12,6 @@ import android.net.Uri
import androidx.core.content.FileProvider
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.core.extensions.flatMap
import io.element.android.libraries.core.extensions.runCatchingExceptions
@ -78,7 +77,6 @@ interface NotifiableEventResolver {
@ContributesBinding(AppScope::class)
@SingleIn(AppScope::class)
@Inject
class DefaultNotifiableEventResolver(
private val stringProvider: StringProvider,
private val matrixClientProvider: MatrixClientProvider,

View file

@ -18,7 +18,6 @@ import coil3.toBitmap
import coil3.transform.CircleCropTransformation
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.ui.media.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
@ -28,7 +27,6 @@ import io.element.android.services.toolbox.api.sdk.BuildVersionSdkIntProvider
import timber.log.Timber
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationBitmapLoader(
@ApplicationContext private val context: Context,
private val sdkIntProvider: BuildVersionSdkIntProvider,

View file

@ -11,7 +11,6 @@ import androidx.annotation.VisibleForTesting
import androidx.core.app.NotificationManagerCompat
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.core.data.tryOrNull
import io.element.android.libraries.core.log.logger.LoggerTag
@ -45,7 +44,6 @@ private val loggerTag = LoggerTag("DefaultNotificationDrawerManager", LoggerTag.
*/
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationDrawerManager(
private val notificationManager: NotificationManagerCompat,
private val notificationRenderer: NotificationRenderer,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.notifications
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
@ -17,7 +16,6 @@ import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.push.api.notifications.OnMissedCallNotificationHandler
@ContributesBinding(AppScope::class)
@Inject
class DefaultOnMissedCallNotificationHandler(
private val matrixClientProvider: MatrixClientProvider,
private val defaultNotificationDrawerManager: DefaultNotificationDrawerManager,

View file

@ -15,7 +15,6 @@ import androidx.core.text.inSpans
import coil3.ImageLoader
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.user.MatrixUser
@ -54,7 +53,6 @@ interface NotificationDataFactory {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationDataFactory(
private val notificationCreator: NotificationCreator,
private val roomGroupMessageCreator: RoomGroupMessageCreator,

View file

@ -15,7 +15,6 @@ import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationManagerCompat
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext
import timber.log.Timber
@ -27,7 +26,6 @@ interface NotificationDisplayer {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationDisplayer(
@ApplicationContext private val context: Context,
private val notificationManager: NotificationManagerCompat

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.notifications
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.androidutils.json.JsonProvider
import io.element.android.libraries.di.annotations.AppCoroutineScope
@ -43,7 +42,6 @@ interface NotificationResolverQueue {
@OptIn(ExperimentalCoroutinesApi::class)
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationResolverQueue(
private val notifiableEventResolver: NotifiableEventResolver,
@AppCoroutineScope

View file

@ -11,14 +11,12 @@ import android.content.Intent
import androidx.core.app.RemoteInput
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
interface ReplyMessageExtractor {
fun getReplyMessage(intent: Intent): String?
}
@ContributesBinding(AppScope::class)
@Inject
class AndroidReplyMessageExtractor : ReplyMessageExtractor {
override fun getReplyMessage(intent: Intent): String? {
return RemoteInput.getResultsFromIntent(intent)

View file

@ -12,7 +12,6 @@ import android.graphics.Bitmap
import coil3.ImageLoader
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.push.api.notifications.NotificationBitmapLoader
@ -33,7 +32,6 @@ interface RoomGroupMessageCreator {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultRoomGroupMessageCreator(
private val bitmapLoader: NotificationBitmapLoader,
private val stringProvider: StringProvider,

View file

@ -10,7 +10,6 @@ package io.element.android.libraries.push.impl.notifications
import android.app.Notification
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.push.impl.R
import io.element.android.libraries.push.impl.notifications.factories.NotificationCreator
@ -36,7 +35,6 @@ interface SummaryGroupMessageCreator {
* https://developer.android.com/training/notify-user/group
*/
@ContributesBinding(AppScope::class)
@Inject
class DefaultSummaryGroupMessageCreator(
private val stringProvider: StringProvider,
private val notificationCreator: NotificationCreator,

View file

@ -20,7 +20,6 @@ import androidx.core.app.NotificationChannelCompat
import androidx.core.app.NotificationManagerCompat
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.appconfig.NotificationConfig
import io.element.android.libraries.di.annotations.ApplicationContext
@ -62,7 +61,6 @@ private fun supportNotificationChannels() = Build.VERSION.SDK_INT >= Build.VERSI
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationChannels(
private val notificationManager: NotificationManagerCompat,
private val stringProvider: StringProvider,

View file

@ -16,7 +16,6 @@ import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.graphics.drawable.IconCompat
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.features.lockscreen.api.LockScreenService
import io.element.android.libraries.core.coroutine.withPreviousValue
@ -46,7 +45,6 @@ import timber.log.Timber
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationConversationService(
@ApplicationContext private val context: Context,
private val intentProvider: IntentProvider,

View file

@ -19,7 +19,6 @@ import androidx.core.content.res.ResourcesCompat
import coil3.ImageLoader
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.NotificationConfig
import io.element.android.libraries.core.meta.BuildMeta
import io.element.android.libraries.designsystem.utils.CommonDrawables
@ -86,7 +85,6 @@ interface NotificationCreator {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultNotificationCreator(
@ApplicationContext private val context: Context,
private val notificationChannels: NotificationChannels,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.push
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import io.element.android.features.call.api.CallType
import io.element.android.features.call.api.ElementCallEntryPoint
@ -51,7 +50,6 @@ private val loggerTag = LoggerTag("PushHandler", LoggerTag.PushLoggerTag)
@SingleIn(AppScope::class)
@ContributesBinding(AppScope::class)
@Inject
class DefaultPushHandler(
private val onNotifiableEventReceived: OnNotifiableEventReceived,
private val onRedactedEventReceived: OnRedactedEventReceived,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.push
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.featureflag.api.FeatureFlagService
import io.element.android.libraries.featureflag.api.FeatureFlags
@ -23,7 +22,6 @@ import timber.log.Timber
import kotlin.time.Duration.Companion.seconds
@ContributesBinding(AppScope::class)
@Inject
class DefaultSyncOnNotifiableEvent(
private val matrixClientProvider: MatrixClientProvider,
private val featureFlagService: FeatureFlagService,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.push
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.push.impl.store.DefaultPushDataStore
interface IncrementPushDataStore {
@ -17,7 +16,6 @@ interface IncrementPushDataStore {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultIncrementPushDataStore(
private val defaultPushDataStore: DefaultPushDataStore
) : IncrementPushDataStore {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.push
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.push.impl.store.DefaultPushDataStore
interface MutableBatteryOptimizationStore {
@ -19,7 +18,6 @@ interface MutableBatteryOptimizationStore {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultMutableBatteryOptimizationStore(
private val defaultPushDataStore: DefaultPushDataStore,
) : MutableBatteryOptimizationStore {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.push
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.AppCoroutineScope
import io.element.android.libraries.push.impl.notifications.DefaultNotificationDrawerManager
import io.element.android.libraries.push.impl.notifications.model.NotifiableEvent
@ -22,7 +21,6 @@ interface OnNotifiableEventReceived {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultOnNotifiableEventReceived(
private val defaultNotificationDrawerManager: DefaultNotificationDrawerManager,
@AppCoroutineScope

View file

@ -16,7 +16,6 @@ import androidx.core.text.buildSpannedString
import androidx.core.text.inSpans
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.AppCoroutineScope
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.push.impl.notifications.ActiveNotificationsProvider
@ -34,7 +33,6 @@ interface OnRedactedEventReceived {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultOnRedactedEventReceived(
private val activeNotificationsProvider: ActiveNotificationsProvider,
private val notificationDisplayer: NotificationDisplayer,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.pushgateway
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.network.RetrofitFactory
interface PushGatewayApiFactory {
@ -17,7 +16,6 @@ interface PushGatewayApiFactory {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultPushGatewayApiFactory(
private val retrofitFactory: RetrofitFactory,
) : PushGatewayApiFactory {

View file

@ -8,7 +8,6 @@ package io.element.android.libraries.push.impl.pushgateway
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.push.api.gateway.PushGatewayFailure
@ -26,7 +25,6 @@ interface PushGatewayNotifyRequest {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultPushGatewayNotifyRequest(
private val pushGatewayApiFactory: PushGatewayApiFactory,
) : PushGatewayNotifyRequest {

View file

@ -13,7 +13,6 @@ import app.cash.sqldelight.coroutines.asFlow
import app.cash.sqldelight.coroutines.mapToList
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.dateformatter.api.DateFormatter
import io.element.android.libraries.dateformatter.api.DateFormatterMode
@ -30,7 +29,6 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
@ContributesBinding(AppScope::class)
@Inject
class DefaultPushDataStore(
private val pushDatabase: PushDatabase,
private val dateFormatter: DateFormatter,

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.push.impl.test
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.PushConfig
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
@ -21,7 +20,6 @@ interface TestPush {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultTestPush(
private val pushGatewayNotifyRequest: PushGatewayNotifyRequest,
) : TestPush {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.pushproviders.firebase
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.enterprise.api.EnterpriseService
interface FirebaseGatewayProvider {
@ -17,7 +16,6 @@ interface FirebaseGatewayProvider {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultFirebaseGatewayProvider(
private val enterpriseService: EnterpriseService,
) : FirebaseGatewayProvider {

View file

@ -9,7 +9,6 @@ package io.element.android.libraries.pushproviders.firebase
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.flatMap
import io.element.android.libraries.core.log.logger.LoggerTag
import io.element.android.libraries.matrix.api.MatrixClientProvider
@ -30,7 +29,6 @@ interface FirebaseNewTokenHandler {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultFirebaseNewTokenHandler(
private val pusherSubscriber: PusherSubscriber,
private val sessionStore: SessionStore,

View file

@ -11,7 +11,6 @@ import android.content.SharedPreferences
import androidx.core.content.edit
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.onCompletion
@ -27,7 +26,6 @@ interface FirebaseStore {
}
@ContributesBinding(AppScope::class)
@Inject
class SharedPreferencesFirebaseStore(
private val sharedPreferences: SharedPreferences,
) : FirebaseStore {

View file

@ -10,7 +10,6 @@ package io.element.android.libraries.pushproviders.firebase
import com.google.firebase.messaging.FirebaseMessaging
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import timber.log.Timber
import kotlin.coroutines.resume
import kotlin.coroutines.resumeWithException
@ -24,7 +23,6 @@ interface FirebaseTokenDeleter {
}
@ContributesBinding(AppScope::class)
@Inject
class DefaultFirebaseTokenDeleter(
private val isPlayServiceAvailable: IsPlayServiceAvailable,
) : FirebaseTokenDeleter {

Some files were not shown because too many files have changed in this diff Show more