Merge pull request #5589 from element-hq/feature/bma/metro070

Remove `@Inject`, not necessary anymore when class is annotated with `@ContributesBinding`
This commit is contained in:
Benoit Marty 2025-10-23 12:03:45 +02:00 committed by GitHub
commit 0b9a4a6302
276 changed files with 21 additions and 547 deletions

View file

@ -8,13 +8,11 @@
package io.element.android.x.di package io.element.android.x.di
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appnav.di.RoomGraphFactory import io.element.android.appnav.di.RoomGraphFactory
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.libraries.matrix.api.room.JoinedRoom
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultRoomGraphFactory( class DefaultRoomGraphFactory(
private val sessionGraph: SessionGraph, private val sessionGraph: SessionGraph,
) : RoomGraphFactory { ) : RoomGraphFactory {

View file

@ -9,12 +9,10 @@ package io.element.android.x.di
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appnav.di.SessionGraphFactory import io.element.android.appnav.di.SessionGraphFactory
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultSessionGraphFactory( class DefaultSessionGraphFactory(
private val appGraph: AppGraph private val appGraph: AppGraph
) : SessionGraphFactory { ) : SessionGraphFactory {

View file

@ -12,7 +12,6 @@ import android.content.Intent
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.deeplink.api.DeepLinkCreator import io.element.android.libraries.deeplink.api.DeepLinkCreator
import io.element.android.libraries.di.annotations.ApplicationContext import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ -22,7 +21,6 @@ import io.element.android.libraries.push.impl.intent.IntentProvider
import io.element.android.x.MainActivity import io.element.android.x.MainActivity
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultIntentProvider( class DefaultIntentProvider(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val deepLinkCreator: DeepLinkCreator, private val deepLinkCreator: DeepLinkCreator,

View file

@ -9,13 +9,11 @@ package io.element.android.x.oidc
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.matrix.api.auth.OidcRedirectUrlProvider import io.element.android.libraries.matrix.api.auth.OidcRedirectUrlProvider
import io.element.android.services.toolbox.api.strings.StringProvider import io.element.android.services.toolbox.api.strings.StringProvider
import io.element.android.x.R import io.element.android.x.R
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultOidcRedirectUrlProvider( class DefaultOidcRedirectUrlProvider(
private val stringProvider: StringProvider, private val stringProvider: StringProvider,
) : OidcRedirectUrlProvider { ) : OidcRedirectUrlProvider {

View file

@ -12,7 +12,6 @@ import com.bumble.appyx.core.state.MutableSavedStateMap
import com.bumble.appyx.core.state.SavedStateMap import com.bumble.appyx.core.state.SavedStateMap
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.MatrixClientProvider import io.element.android.libraries.matrix.api.MatrixClientProvider
@ -33,7 +32,6 @@ private const val SAVE_INSTANCE_KEY = "io.element.android.x.di.MatrixClientsHold
*/ */
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class MatrixSessionCache( class MatrixSessionCache(
private val authenticationService: MatrixAuthenticationService, private val authenticationService: MatrixAuthenticationService,
private val syncOrchestratorFactory: SyncOrchestrator.Factory, private val syncOrchestratorFactory: SyncOrchestrator.Factory,

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.analytics.api.AnalyticsEntryPoint import io.element.android.features.analytics.api.AnalyticsEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultAnalyticsEntryPoint : AnalyticsEntryPoint { class DefaultAnalyticsEntryPoint : AnalyticsEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext): Node { override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<AnalyticsOptInNode>(buildContext) return parentNode.createNode<AnalyticsOptInNode>(buildContext)

View file

@ -16,7 +16,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.announcement.api.Announcement import io.element.android.features.announcement.api.Announcement
import io.element.android.features.announcement.api.AnnouncementService import io.element.android.features.announcement.api.AnnouncementService
import io.element.android.features.announcement.impl.spaces.SpaceAnnouncementState import io.element.android.features.announcement.impl.spaces.SpaceAnnouncementState
@ -29,7 +28,6 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultAnnouncementService( class DefaultAnnouncementService(
private val announcementStore: AnnouncementStore, private val announcementStore: AnnouncementStore,
private val announcementPresenter: Presenter<AnnouncementState>, private val announcementPresenter: Presenter<AnnouncementState>,

View file

@ -11,7 +11,6 @@ import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.intPreferencesKey
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.announcement.api.Announcement import io.element.android.features.announcement.api.Announcement
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -21,7 +20,6 @@ private val spaceAnnouncementKey = intPreferencesKey("spaceAnnouncement")
private val newNotificationSoundKey = intPreferencesKey("newNotificationSound") private val newNotificationSoundKey = intPreferencesKey("newNotificationSound")
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultAnnouncementStore( class DefaultAnnouncementStore(
preferenceDataStoreFactory: PreferenceDataStoreFactory, preferenceDataStoreFactory: PreferenceDataStoreFactory,
) : AnnouncementStore { ) : AnnouncementStore {

View file

@ -9,7 +9,6 @@ package io.element.android.features.cachecleaner.impl
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.cachecleaner.api.CacheCleaner import io.element.android.features.cachecleaner.api.CacheCleaner
import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.core.extensions.runCatchingExceptions import io.element.android.libraries.core.extensions.runCatchingExceptions
@ -24,7 +23,6 @@ import java.io.File
* Default implementation of [CacheCleaner]. * Default implementation of [CacheCleaner].
*/ */
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultCacheCleaner( class DefaultCacheCleaner(
@AppCoroutineScope @AppCoroutineScope
private val coroutineScope: CoroutineScope, private val coroutineScope: CoroutineScope,

View file

@ -10,7 +10,6 @@ package io.element.android.features.call.impl
import android.content.Context import android.content.Context
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.call.api.CallType import io.element.android.features.call.api.CallType
import io.element.android.features.call.api.ElementCallEntryPoint import io.element.android.features.call.api.ElementCallEntryPoint
import io.element.android.features.call.impl.notifications.CallNotificationData import io.element.android.features.call.impl.notifications.CallNotificationData
@ -21,7 +20,6 @@ import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.core.UserId
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultElementCallEntryPoint( class DefaultElementCallEntryPoint(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val activeCallManager: ActiveCallManager, private val activeCallManager: ActiveCallManager,

View file

@ -13,7 +13,6 @@ import android.os.Build
import androidx.annotation.ChecksSdkIntAtLeast import androidx.annotation.ChecksSdkIntAtLeast
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.di.annotations.ApplicationContext import io.element.android.libraries.di.annotations.ApplicationContext
@ -23,7 +22,6 @@ interface PipSupportProvider {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultPipSupportProvider( class DefaultPipSupportProvider(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
) : PipSupportProvider { ) : PipSupportProvider {

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalConfiguration
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
interface LanguageTagProvider { interface LanguageTagProvider {
@Composable @Composable
@ -19,7 +18,6 @@ interface LanguageTagProvider {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLanguageTagProvider : LanguageTagProvider { class DefaultLanguageTagProvider : LanguageTagProvider {
@Composable @Composable
override fun provideLanguageTag(): String? { override fun provideLanguageTag(): String? {

View file

@ -17,7 +17,6 @@ import coil3.SingletonImageLoader
import coil3.annotation.DelicateCoilApi import coil3.annotation.DelicateCoilApi
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.appconfig.ElementCallConfig import io.element.android.appconfig.ElementCallConfig
import io.element.android.features.call.api.CallType import io.element.android.features.call.api.CallType
@ -90,7 +89,6 @@ interface ActiveCallManager {
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultActiveCallManager( class DefaultActiveCallManager(
@ApplicationContext context: Context, @ApplicationContext context: Context,
@AppCoroutineScope @AppCoroutineScope

View file

@ -9,12 +9,10 @@ package io.element.android.features.call.impl.utils
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.call.impl.BuildConfig import io.element.android.features.call.impl.BuildConfig
import io.element.android.libraries.matrix.api.widget.CallAnalyticCredentialsProvider import io.element.android.libraries.matrix.api.widget.CallAnalyticCredentialsProvider
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultCallAnalyticCredentialsProvider : CallAnalyticCredentialsProvider { class DefaultCallAnalyticCredentialsProvider : CallAnalyticCredentialsProvider {
override val posthogUserId: String? = BuildConfig.POSTHOG_USER_ID.takeIf { it.isNotBlank() } override val posthogUserId: String? = BuildConfig.POSTHOG_USER_ID.takeIf { it.isNotBlank() }
override val posthogApiHost: String? = BuildConfig.POSTHOG_API_HOST.takeIf { it.isNotBlank() } override val posthogApiHost: String? = BuildConfig.POSTHOG_API_HOST.takeIf { it.isNotBlank() }

View file

@ -9,7 +9,6 @@ package io.element.android.features.call.impl.utils
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.extensions.runCatchingExceptions import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.MatrixClientProvider import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ -23,7 +22,6 @@ import kotlinx.coroutines.flow.firstOrNull
private const val EMBEDDED_CALL_WIDGET_BASE_URL = "https://appassets.androidplatform.net/element-call/index.html" private const val EMBEDDED_CALL_WIDGET_BASE_URL = "https://appassets.androidplatform.net/element-call/index.html"
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultCallWidgetProvider( class DefaultCallWidgetProvider(
private val matrixClientsProvider: MatrixClientProvider, private val matrixClientsProvider: MatrixClientProvider,
private val appPreferencesStore: AppPreferencesStore, private val appPreferencesStore: AppPreferencesStore,

View file

@ -9,7 +9,6 @@ package io.element.android.features.call.impl.utils
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.call.api.CurrentCall import io.element.android.features.call.api.CurrentCall
import io.element.android.features.call.api.CurrentCallService import io.element.android.features.call.api.CurrentCallService
@ -17,7 +16,6 @@ import kotlinx.coroutines.flow.MutableStateFlow
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultCurrentCallService : CurrentCallService { class DefaultCurrentCallService : CurrentCallService {
override val currentCall = MutableStateFlow<CurrentCall>(CurrentCall.None) override val currentCall = MutableStateFlow<CurrentCall>(CurrentCall.None)

View file

@ -10,7 +10,6 @@ package io.element.android.features.changeroommemberroles.impl
import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesEntryPoint import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesEntryPoint
import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesListType import io.element.android.features.changeroommemberroes.api.ChangeRoomMemberRolesListType
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ -18,7 +17,6 @@ import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.libraries.matrix.api.room.JoinedRoom
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultChangeRoomMemberRolesEntyPoint : ChangeRoomMemberRolesEntryPoint { class DefaultChangeRoomMemberRolesEntyPoint : ChangeRoomMemberRolesEntryPoint {
override fun builder(parentNode: Node, buildContext: BuildContext): ChangeRoomMemberRolesEntryPoint.Builder { override fun builder(parentNode: Node, buildContext: BuildContext): ChangeRoomMemberRolesEntryPoint.Builder {
return object : ChangeRoomMemberRolesEntryPoint.Builder { return object : ChangeRoomMemberRolesEntryPoint.Builder {

View file

@ -11,13 +11,11 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.createroom.api.CreateRoomEntryPoint import io.element.android.features.createroom.api.CreateRoomEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultCreateRoomEntryPoint : CreateRoomEntryPoint { class DefaultCreateRoomEntryPoint : CreateRoomEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): CreateRoomEntryPoint.NodeBuilder { override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): CreateRoomEntryPoint.NodeBuilder {
val plugins = ArrayList<Plugin>() val plugins = ArrayList<Plugin>()

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.deactivation.api.AccountDeactivationEntryPoint import io.element.android.features.deactivation.api.AccountDeactivationEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultAccountDeactivationEntryPoint : AccountDeactivationEntryPoint { class DefaultAccountDeactivationEntryPoint : AccountDeactivationEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext): Node { override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<AccountDeactivationNode>(buildContext) return parentNode.createNode<AccountDeactivationNode>(buildContext)

View file

@ -9,7 +9,6 @@ package io.element.android.features.enterprise.impl
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.compound.colors.SemanticColorsLightDark import io.element.android.compound.colors.SemanticColorsLightDark
import io.element.android.features.enterprise.api.BugReportUrl import io.element.android.features.enterprise.api.BugReportUrl
import io.element.android.features.enterprise.api.EnterpriseService import io.element.android.features.enterprise.api.EnterpriseService
@ -18,7 +17,6 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.flowOf
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultEnterpriseService : EnterpriseService { class DefaultEnterpriseService : EnterpriseService {
override val isEnterpriseBuild = false override val isEnterpriseBuild = false

View file

@ -8,12 +8,10 @@
package io.element.android.features.enterprise.impl package io.element.android.features.enterprise.impl
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.enterprise.api.SessionEnterpriseService import io.element.android.features.enterprise.api.SessionEnterpriseService
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultSessionEnterpriseService : SessionEnterpriseService { class DefaultSessionEnterpriseService : SessionEnterpriseService {
override suspend fun init() = Unit override suspend fun init() = Unit
override suspend fun isElementCallAvailable(): Boolean = true override suspend fun isElementCallAvailable(): Boolean = true

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.ftue.api.FtueEntryPoint import io.element.android.features.ftue.api.FtueEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultFtueEntryPoint : FtueEntryPoint { class DefaultFtueEntryPoint : FtueEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext): Node { override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<FtueFlowNode>(buildContext) return parentNode.createNode<FtueFlowNode>(buildContext)

View file

@ -10,7 +10,6 @@ package io.element.android.features.ftue.impl.state
import android.Manifest import android.Manifest
import android.os.Build import android.os.Build
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.ftue.api.state.FtueService import io.element.android.features.ftue.api.state.FtueService
import io.element.android.features.ftue.api.state.FtueState import io.element.android.features.ftue.api.state.FtueState
@ -35,7 +34,6 @@ import kotlinx.coroutines.launch
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@SingleIn(SessionScope::class) @SingleIn(SessionScope::class)
@Inject
class DefaultFtueService( class DefaultFtueService(
private val sdkVersionProvider: BuildVersionSdkIntProvider, private val sdkVersionProvider: BuildVersionSdkIntProvider,
@SessionCoroutineScope private val sessionCoroutineScope: CoroutineScope, @SessionCoroutineScope private val sessionCoroutineScope: CoroutineScope,

View file

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

View file

@ -8,13 +8,11 @@
package io.element.android.features.home.impl.filters.selection package io.element.android.features.home.impl.filters.selection
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.home.impl.filters.RoomListFilter import io.element.android.features.home.impl.filters.RoomListFilter
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultFilterSelectionStrategy : FilterSelectionStrategy { class DefaultFilterSelectionStrategy : FilterSelectionStrategy {
private val selectedFilters = LinkedHashSet<RoomListFilter>() private val selectedFilters = LinkedHashSet<RoomListFilter>()

View file

@ -8,7 +8,6 @@
package io.element.android.features.invite.impl package io.element.android.features.invite.impl
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import im.vector.app.features.analytics.plan.JoinedRoom import im.vector.app.features.analytics.plan.JoinedRoom
import io.element.android.features.invite.api.SeenInvitesStore import io.element.android.features.invite.api.SeenInvitesStore
import io.element.android.libraries.core.extensions.mapFailure import io.element.android.libraries.core.extensions.mapFailure
@ -30,7 +29,6 @@ interface AcceptInvite {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultAcceptInvite( class DefaultAcceptInvite(
private val client: MatrixClient, private val client: MatrixClient,
private val joinRoom: JoinRoom, private val joinRoom: JoinRoom,

View file

@ -8,7 +8,6 @@
package io.element.android.features.invite.impl package io.element.android.features.invite.impl
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.invite.api.SeenInvitesStore import io.element.android.features.invite.api.SeenInvitesStore
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
@ -32,7 +31,6 @@ interface DeclineInvite {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultDeclineInvite( class DefaultDeclineInvite(
private val client: MatrixClient, private val client: MatrixClient,
private val notificationCleaner: NotificationCleaner, private val notificationCleaner: NotificationCleaner,

View file

@ -10,7 +10,6 @@ package io.element.android.features.invite.impl
import android.content.Context import android.content.Context
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.invite.api.SeenInvitesStore import io.element.android.features.invite.api.SeenInvitesStore
import io.element.android.libraries.di.annotations.ApplicationContext import io.element.android.libraries.di.annotations.ApplicationContext
@ -21,7 +20,6 @@ import java.util.concurrent.ConcurrentHashMap
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultSeenInvitesStoreFactory( class DefaultSeenInvitesStoreFactory(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val sessionObserver: SessionObserver, private val sessionObserver: SessionObserver,

View file

@ -10,14 +10,12 @@ package io.element.android.features.invite.impl.acceptdecline
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteView import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteView
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultAcceptDeclineInviteView : AcceptDeclineInviteView { class DefaultAcceptDeclineInviteView : AcceptDeclineInviteView {
@Composable @Composable
override fun Render( override fun Render(

View file

@ -11,13 +11,11 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.invite.api.InviteData import io.element.android.features.invite.api.InviteData
import io.element.android.features.invite.api.declineandblock.DeclineInviteAndBlockEntryPoint import io.element.android.features.invite.api.declineandblock.DeclineInviteAndBlockEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultDeclineAndBlockEntryPoint : DeclineInviteAndBlockEntryPoint { class DefaultDeclineAndBlockEntryPoint : DeclineInviteAndBlockEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext, inviteData: InviteData): Node { override fun createNode(parentNode: Node, buildContext: BuildContext, inviteData: InviteData): Node {
val inputs = DeclineAndBlockNode.Inputs(inviteData) val inputs = DeclineAndBlockNode.Inputs(inviteData)

View file

@ -10,13 +10,11 @@ package io.element.android.features.invitepeople.impl
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.invitepeople.api.InvitePeopleRenderer import io.element.android.features.invitepeople.api.InvitePeopleRenderer
import io.element.android.features.invitepeople.api.InvitePeopleState import io.element.android.features.invitepeople.api.InvitePeopleState
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultInvitePeopleRenderer : InvitePeopleRenderer { class DefaultInvitePeopleRenderer : InvitePeopleRenderer {
@Composable @Composable
override fun Render(state: InvitePeopleState, modifier: Modifier) { override fun Render(state: InvitePeopleState, modifier: Modifier) {

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.joinroom.api.JoinRoomEntryPoint import io.element.android.features.joinroom.api.JoinRoomEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultJoinRoomEntryPoint : JoinRoomEntryPoint { class DefaultJoinRoomEntryPoint : JoinRoomEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: JoinRoomEntryPoint.Inputs): Node { override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: JoinRoomEntryPoint.Inputs): Node {
return parentNode.createNode<JoinRoomFlowNode>( return parentNode.createNode<JoinRoomFlowNode>(

View file

@ -8,7 +8,6 @@
package io.element.android.features.joinroom.impl.di package io.element.android.features.joinroom.impl.di
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ -18,7 +17,6 @@ interface CancelKnockRoom {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultCancelKnockRoom(private val client: MatrixClient) : CancelKnockRoom { class DefaultCancelKnockRoom(private val client: MatrixClient) : CancelKnockRoom {
override suspend fun invoke(roomId: RoomId): Result<Unit> { override suspend fun invoke(roomId: RoomId): Result<Unit> {
return client return client

View file

@ -8,7 +8,6 @@
package io.element.android.features.joinroom.impl.di package io.element.android.features.joinroom.impl.di
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ -18,7 +17,6 @@ interface ForgetRoom {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultForgetRoom(private val client: MatrixClient) : ForgetRoom { class DefaultForgetRoom(private val client: MatrixClient) : ForgetRoom {
override suspend fun invoke(roomId: RoomId): Result<Unit> { override suspend fun invoke(roomId: RoomId): Result<Unit> {
return client.getRoom(roomId)?.use { it.forget() } return client.getRoom(roomId)?.use { it.forget() }

View file

@ -8,7 +8,6 @@
package io.element.android.features.joinroom.impl.di package io.element.android.features.joinroom.impl.di
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
@ -22,7 +21,6 @@ interface KnockRoom {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultKnockRoom(private val client: MatrixClient) : KnockRoom { class DefaultKnockRoom(private val client: MatrixClient) : KnockRoom {
override suspend fun invoke( override suspend fun invoke(
roomIdOrAlias: RoomIdOrAlias, roomIdOrAlias: RoomIdOrAlias,

View file

@ -10,12 +10,10 @@ package io.element.android.features.knockrequests.impl.banner
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.knockrequests.api.banner.KnockRequestsBannerRenderer import io.element.android.features.knockrequests.api.banner.KnockRequestsBannerRenderer
import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.RoomScope
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultKnockRequestsBannerRenderer( class DefaultKnockRequestsBannerRenderer(
private val presenter: KnockRequestsBannerPresenter, private val presenter: KnockRequestsBannerPresenter,
) : KnockRequestsBannerRenderer { ) : KnockRequestsBannerRenderer {

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.knockrequests.api.list.KnockRequestsListEntryPoint import io.element.android.features.knockrequests.api.list.KnockRequestsListEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultKnockRequestsListEntryPoint : KnockRequestsListEntryPoint { class DefaultKnockRequestsListEntryPoint : KnockRequestsListEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext): Node { override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<KnockRequestsListNode>(buildContext) return parentNode.createNode<KnockRequestsListNode>(buildContext)

View file

@ -10,14 +10,12 @@ package io.element.android.features.leaveroom.impl
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.leaveroom.api.LeaveRoomRenderer import io.element.android.features.leaveroom.api.LeaveRoomRenderer
import io.element.android.features.leaveroom.api.LeaveRoomState import io.element.android.features.leaveroom.api.LeaveRoomState
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class InternalLeaveRoomRenderer : LeaveRoomRenderer { class InternalLeaveRoomRenderer : LeaveRoomRenderer {
@Composable @Composable
override fun Render(state: LeaveRoomState, onSelectNewOwners: (RoomId) -> Unit, modifier: Modifier) { override fun Render(state: LeaveRoomState, onSelectNewOwners: (RoomId) -> Unit, modifier: Modifier) {

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.licenses.api.OpenSourceLicensesEntryPoint import io.element.android.features.licenses.api.OpenSourceLicensesEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultOpenSourcesLicensesEntryPoint : OpenSourceLicensesEntryPoint { class DefaultOpenSourcesLicensesEntryPoint : OpenSourceLicensesEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext): Node { override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<DependenciesFlowNode>(buildContext) return parentNode.createNode<DependenciesFlowNode>(buildContext)

View file

@ -10,7 +10,6 @@ package io.element.android.features.licenses.impl
import android.content.Context import android.content.Context
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.licenses.impl.model.DependencyLicenseItem import io.element.android.features.licenses.impl.model.DependencyLicenseItem
import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.di.annotations.ApplicationContext import io.element.android.libraries.di.annotations.ApplicationContext
@ -24,7 +23,6 @@ interface LicensesProvider {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class AssetLicensesProvider( class AssetLicensesProvider(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val dispatchers: CoroutineDispatchers, private val dispatchers: CoroutineDispatchers,

View file

@ -9,12 +9,10 @@ package io.element.android.features.location.impl
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.location.api.BuildConfig import io.element.android.features.location.api.BuildConfig
import io.element.android.features.location.api.LocationService import io.element.android.features.location.api.LocationService
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLocationService : LocationService { class DefaultLocationService : LocationService {
override fun isServiceAvailable(): Boolean { override fun isServiceAvailable(): Boolean {
return BuildConfig.MAPTILER_API_KEY.isNotEmpty() return BuildConfig.MAPTILER_API_KEY.isNotEmpty()

View file

@ -14,7 +14,6 @@ import androidx.annotation.VisibleForTesting
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.location.api.Location import io.element.android.features.location.api.Location
import io.element.android.libraries.androidutils.system.openAppSettingsPage import io.element.android.libraries.androidutils.system.openAppSettingsPage
import io.element.android.libraries.core.extensions.runCatchingExceptions import io.element.android.libraries.core.extensions.runCatchingExceptions
@ -23,7 +22,6 @@ import timber.log.Timber
import java.util.Locale import java.util.Locale
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class AndroidLocationActions( class AndroidLocationActions(
@ApplicationContext private val context: Context @ApplicationContext private val context: Context
) : LocationActions { ) : LocationActions {

View file

@ -11,13 +11,11 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.location.api.SendLocationEntryPoint import io.element.android.features.location.api.SendLocationEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
import io.element.android.libraries.matrix.api.timeline.Timeline import io.element.android.libraries.matrix.api.timeline.Timeline
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultSendLocationEntryPoint : SendLocationEntryPoint { class DefaultSendLocationEntryPoint : SendLocationEntryPoint {
override fun builder(timelineMode: Timeline.Mode): SendLocationEntryPoint.Builder { override fun builder(timelineMode: Timeline.Mode): SendLocationEntryPoint.Builder {
return Builder(timelineMode) return Builder(timelineMode)

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.location.api.ShowLocationEntryPoint import io.element.android.features.location.api.ShowLocationEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultShowLocationEntryPoint : ShowLocationEntryPoint { class DefaultShowLocationEntryPoint : ShowLocationEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: ShowLocationEntryPoint.Inputs): Node { override fun createNode(parentNode: Node, buildContext: BuildContext, inputs: ShowLocationEntryPoint.Inputs): Node {
return parentNode.createNode<ShowLocationNode>(buildContext, listOf(inputs)) return parentNode.createNode<ShowLocationNode>(buildContext, listOf(inputs))

View file

@ -13,13 +13,11 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.lockscreen.api.LockScreenEntryPoint import io.element.android.features.lockscreen.api.LockScreenEntryPoint
import io.element.android.features.lockscreen.impl.unlock.activity.PinUnlockActivity import io.element.android.features.lockscreen.impl.unlock.activity.PinUnlockActivity
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLockScreenEntryPoint : LockScreenEntryPoint { class DefaultLockScreenEntryPoint : LockScreenEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext, navTarget: LockScreenEntryPoint.Target): LockScreenEntryPoint.NodeBuilder { override fun nodeBuilder(parentNode: Node, buildContext: BuildContext, navTarget: LockScreenEntryPoint.Target): LockScreenEntryPoint.NodeBuilder {
val callbacks = mutableListOf<LockScreenEntryPoint.Callback>() val callbacks = mutableListOf<LockScreenEntryPoint.Callback>()

View file

@ -9,7 +9,6 @@ package io.element.android.features.lockscreen.impl
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.lockscreen.api.LockScreenLockState import io.element.android.features.lockscreen.api.LockScreenLockState
import io.element.android.features.lockscreen.api.LockScreenService import io.element.android.features.lockscreen.api.LockScreenService
@ -35,7 +34,6 @@ import kotlin.time.Duration
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLockScreenService( class DefaultLockScreenService(
private val lockScreenConfig: LockScreenConfig, private val lockScreenConfig: LockScreenConfig,
private val lockScreenStore: LockScreenStore, private val lockScreenStore: LockScreenStore,

View file

@ -24,7 +24,6 @@ import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.compose.LocalLifecycleOwner
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.lockscreen.impl.LockScreenConfig import io.element.android.features.lockscreen.impl.LockScreenConfig
import io.element.android.features.lockscreen.impl.R import io.element.android.features.lockscreen.impl.R
@ -42,7 +41,6 @@ private const val SECRET_KEY_ALIAS = "elementx.SECRET_KEY_ALIAS_BIOMETRIC"
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@Inject
class DefaultBiometricAuthenticatorManager( class DefaultBiometricAuthenticatorManager(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val lockScreenStore: LockScreenStore, private val lockScreenStore: LockScreenStore,

View file

@ -9,7 +9,6 @@ package io.element.android.features.lockscreen.impl.pin
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.lockscreen.impl.storage.LockScreenStore import io.element.android.features.lockscreen.impl.storage.LockScreenStore
import io.element.android.libraries.cryptography.api.EncryptionDecryptionService import io.element.android.libraries.cryptography.api.EncryptionDecryptionService
@ -22,7 +21,6 @@ private const val SECRET_KEY_ALIAS = "elementx.SECRET_KEY_ALIAS_PIN_CODE"
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@Inject
class DefaultPinCodeManager( class DefaultPinCodeManager(
private val secretKeyRepository: SecretKeyRepository, private val secretKeyRepository: SecretKeyRepository,
private val encryptionDecryptionService: EncryptionDecryptionService, private val encryptionDecryptionService: EncryptionDecryptionService,

View file

@ -14,7 +14,6 @@ import androidx.datastore.preferences.core.intPreferencesKey
import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.lockscreen.impl.LockScreenConfig import io.element.android.features.lockscreen.impl.LockScreenConfig
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -22,7 +21,6 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class PreferencesLockScreenStore( class PreferencesLockScreenStore(
preferenceDataStoreFactory: PreferenceDataStoreFactory, preferenceDataStoreFactory: PreferenceDataStoreFactory,
private val lockScreenConfig: LockScreenConfig, private val lockScreenConfig: LockScreenConfig,

View file

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

View file

@ -10,12 +10,10 @@ package io.element.android.features.login.impl
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.login.api.LoginIntentResolver import io.element.android.features.login.api.LoginIntentResolver
import io.element.android.features.login.api.LoginParams import io.element.android.features.login.api.LoginParams
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLoginIntentResolver : LoginIntentResolver { class DefaultLoginIntentResolver : LoginIntentResolver {
override fun parse(uriString: String): LoginParams? { override fun parse(uriString: String): LoginParams? {
val uri = uriString.toUri() val uri = uriString.toUri()

View file

@ -9,7 +9,6 @@ package io.element.android.features.login.impl.accesscontrol
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.enterprise.api.EnterpriseService import io.element.android.features.enterprise.api.EnterpriseService
import io.element.android.features.login.api.accesscontrol.AccountProviderAccessControl import io.element.android.features.login.api.accesscontrol.AccountProviderAccessControl
import io.element.android.features.login.impl.changeserver.AccountProviderAccessException import io.element.android.features.login.impl.changeserver.AccountProviderAccessException
@ -17,7 +16,6 @@ import io.element.android.libraries.core.uri.ensureProtocol
import io.element.android.libraries.wellknown.api.WellknownRetriever import io.element.android.libraries.wellknown.api.WellknownRetriever
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultAccountProviderAccessControl( class DefaultAccountProviderAccessControl(
private val enterpriseService: EnterpriseService, private val enterpriseService: EnterpriseService,
private val wellknownRetriever: WellknownRetriever, private val wellknownRetriever: WellknownRetriever,

View file

@ -8,7 +8,6 @@
package io.element.android.features.login.impl.qrcode package io.element.android.features.login.impl.qrcode
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.login.impl.di.QrCodeLoginScope import io.element.android.features.login.impl.di.QrCodeLoginScope
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
@ -21,7 +20,6 @@ import kotlinx.coroutines.flow.StateFlow
@SingleIn(QrCodeLoginScope::class) @SingleIn(QrCodeLoginScope::class)
@ContributesBinding(QrCodeLoginScope::class) @ContributesBinding(QrCodeLoginScope::class)
@Inject
class DefaultQrCodeLoginManager( class DefaultQrCodeLoginManager(
private val authenticationService: MatrixAuthenticationService, private val authenticationService: MatrixAuthenticationService,
) : QrCodeLoginManager { ) : QrCodeLoginManager {

View file

@ -9,7 +9,6 @@ package io.element.android.features.login.impl.screens.createaccount
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource import io.element.android.features.login.impl.accountprovider.AccountProviderDataSource
import io.element.android.libraries.androidutils.json.JsonProvider import io.element.android.libraries.androidutils.json.JsonProvider
import io.element.android.libraries.matrix.api.auth.external.ExternalSession import io.element.android.libraries.matrix.api.auth.external.ExternalSession
@ -23,7 +22,6 @@ interface MessageParser {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultMessageParser( class DefaultMessageParser(
private val accountProviderDataSource: AccountProviderDataSource, private val accountProviderDataSource: AccountProviderDataSource,
private val json: JsonProvider, private val json: JsonProvider,

View file

@ -11,7 +11,6 @@ import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.annotations.ApplicationContext import io.element.android.libraries.di.annotations.ApplicationContext
fun interface OnBoardingLogoResIdProvider { fun interface OnBoardingLogoResIdProvider {
@ -19,7 +18,6 @@ fun interface OnBoardingLogoResIdProvider {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultOnBoardingLogoResIdProvider( class DefaultOnBoardingLogoResIdProvider(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
) : OnBoardingLogoResIdProvider { ) : OnBoardingLogoResIdProvider {

View file

@ -10,7 +10,6 @@ package io.element.android.features.login.impl.web
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.AuthenticationConfig import io.element.android.appconfig.AuthenticationConfig
import io.element.android.features.login.impl.screens.createaccount.AccountCreationNotSupported import io.element.android.features.login.impl.screens.createaccount.AccountCreationNotSupported
import io.element.android.libraries.wellknown.api.WellknownRetriever import io.element.android.libraries.wellknown.api.WellknownRetriever
@ -21,7 +20,6 @@ interface WebClientUrlForAuthenticationRetriever {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultWebClientUrlForAuthenticationRetriever( class DefaultWebClientUrlForAuthenticationRetriever(
private val wellknownRetriever: WellknownRetriever, private val wellknownRetriever: WellknownRetriever,
) : WebClientUrlForAuthenticationRetriever { ) : WebClientUrlForAuthenticationRetriever {

View file

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

View file

@ -9,7 +9,6 @@ package io.element.android.features.logout.impl
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.logout.api.LogoutUseCase import io.element.android.features.logout.api.LogoutUseCase
import io.element.android.libraries.matrix.api.MatrixClientProvider import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.api.core.SessionId
@ -17,7 +16,6 @@ import io.element.android.libraries.sessionstorage.api.SessionStore
import timber.log.Timber import timber.log.Timber
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLogoutUseCase( class DefaultLogoutUseCase(
private val sessionStore: SessionStore, private val sessionStore: SessionStore,
private val matrixClientProvider: MatrixClientProvider, private val matrixClientProvider: MatrixClientProvider,

View file

@ -10,7 +10,6 @@ package io.element.android.features.logout.impl.direct
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.logout.api.direct.DirectLogoutEvents import io.element.android.features.logout.api.direct.DirectLogoutEvents
import io.element.android.features.logout.api.direct.DirectLogoutState import io.element.android.features.logout.api.direct.DirectLogoutState
import io.element.android.features.logout.api.direct.DirectLogoutStateProvider import io.element.android.features.logout.api.direct.DirectLogoutStateProvider
@ -21,7 +20,6 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultDirectLogoutView : DirectLogoutView { class DefaultDirectLogoutView : DirectLogoutView {
@Composable @Composable
override fun Render(state: DirectLogoutState) { override fun Render(state: DirectLogoutState) {

View file

@ -11,14 +11,12 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.messages.api.MessagesEntryPoint import io.element.android.features.messages.api.MessagesEntryPoint
import io.element.android.libraries.architecture.NodeFactoriesBindings import io.element.android.libraries.architecture.NodeFactoriesBindings
import io.element.android.libraries.architecture.bindings import io.element.android.libraries.architecture.bindings
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultMessagesEntryPoint : MessagesEntryPoint { class DefaultMessagesEntryPoint : MessagesEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): MessagesEntryPoint.NodeBuilder { override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): MessagesEntryPoint.NodeBuilder {
val nodeFactories = parentNode.bindings<NodeFactoriesBindings>().nodeFactories() val nodeFactories = parentNode.bindings<NodeFactoriesBindings>().nodeFactories()

View file

@ -8,14 +8,12 @@
package io.element.android.features.messages.impl.draft package io.element.android.features.messages.impl.draft
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.ThreadId import io.element.android.libraries.matrix.api.core.ThreadId
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultComposerDraftService( class DefaultComposerDraftService(
private val volatileComposerDraftStore: VolatileComposerDraftStore, private val volatileComposerDraftStore: VolatileComposerDraftStore,
private val matrixComposerDraftStore: MatrixComposerDraftStore, private val matrixComposerDraftStore: MatrixComposerDraftStore,

View file

@ -9,7 +9,6 @@ package io.element.android.features.messages.impl.link
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.data.tryOrNull import io.element.android.libraries.core.data.tryOrNull
import io.element.android.libraries.core.extensions.containsRtLOverride import io.element.android.libraries.core.extensions.containsRtLOverride
import io.element.android.wysiwyg.link.Link import io.element.android.wysiwyg.link.Link
@ -20,7 +19,6 @@ interface LinkChecker {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLinkChecker : LinkChecker { class DefaultLinkChecker : LinkChecker {
override fun isSafe(link: Link): Boolean { override fun isSafe(link: Link): Boolean {
return if (link.url.containsRtLOverride()) { return if (link.url.containsRtLOverride()) {

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.messages.api.MessageComposerContext import io.element.android.features.messages.api.MessageComposerContext
import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.RoomScope
@ -19,7 +18,6 @@ import io.element.android.libraries.textcomposer.model.MessageComposerMode
@SingleIn(RoomScope::class) @SingleIn(RoomScope::class)
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultMessageComposerContext : MessageComposerContext { class DefaultMessageComposerContext : MessageComposerContext {
override var composerMode: MessageComposerMode by mutableStateOf(MessageComposerMode.Normal) override var composerMode: MessageComposerMode by mutableStateOf(MessageComposerMode.Normal)
internal set internal set

View file

@ -10,7 +10,6 @@ package io.element.android.features.messages.impl.messagecomposer
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.wysiwyg.compose.RichTextEditorState import io.element.android.wysiwyg.compose.RichTextEditorState
import io.element.android.wysiwyg.compose.rememberRichTextEditorState import io.element.android.wysiwyg.compose.rememberRichTextEditorState
@ -20,7 +19,6 @@ interface RichTextEditorStateFactory {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultRichTextEditorStateFactory : RichTextEditorStateFactory { class DefaultRichTextEditorStateFactory : RichTextEditorStateFactory {
@Composable @Composable
override fun remember(): RichTextEditorState { override fun remember(): RichTextEditorState {

View file

@ -8,7 +8,6 @@
package io.element.android.features.messages.impl.messagecomposer.suggestions package io.element.android.features.messages.impl.messagecomposer.suggestions
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ -28,7 +27,6 @@ interface RoomAliasSuggestionsDataSource {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultRoomAliasSuggestionsDataSource( class DefaultRoomAliasSuggestionsDataSource(
private val roomListService: RoomListService, private val roomListService: RoomListService,
) : RoomAliasSuggestionsDataSource { ) : RoomAliasSuggestionsDataSource {

View file

@ -14,7 +14,6 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalInspectionMode import androidx.compose.ui.platform.LocalInspectionMode
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.messages.api.timeline.HtmlConverterProvider import io.element.android.features.messages.api.timeline.HtmlConverterProvider
import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.core.bool.orFalse
@ -29,7 +28,6 @@ import uniffi.wysiwyg_composer.newMentionDetector
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@SingleIn(RoomScope::class) @SingleIn(RoomScope::class)
@Inject
class DefaultHtmlConverterProvider( class DefaultHtmlConverterProvider(
private val mentionSpanProvider: MentionSpanProvider, private val mentionSpanProvider: MentionSpanProvider,
) : HtmlConverterProvider { ) : HtmlConverterProvider {

View file

@ -8,7 +8,6 @@
package io.element.android.features.messages.impl.timeline package io.element.android.features.messages.impl.timeline
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ -21,7 +20,6 @@ interface MarkAsFullyRead {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultMarkAsFullyRead( class DefaultMarkAsFullyRead(
private val matrixClient: MatrixClient, private val matrixClient: MatrixClient,
) : MarkAsFullyRead { ) : MarkAsFullyRead {

View file

@ -8,7 +8,6 @@
package io.element.android.features.messages.impl.timeline package io.element.android.features.messages.impl.timeline
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import dev.zacsweers.metro.binding import dev.zacsweers.metro.binding
import io.element.android.features.messages.impl.timeline.di.LiveTimeline import io.element.android.features.messages.impl.timeline.di.LiveTimeline
@ -44,7 +43,6 @@ import java.util.Optional
*/ */
@SingleIn(RoomScope::class) @SingleIn(RoomScope::class)
@ContributesBinding(RoomScope::class, binding = binding<TimelineProvider>()) @ContributesBinding(RoomScope::class, binding = binding<TimelineProvider>())
@Inject
class TimelineController( class TimelineController(
private val room: JoinedRoom, private val room: JoinedRoom,
@LiveTimeline private val liveTimeline: Timeline, @LiveTimeline private val liveTimeline: Timeline,

View file

@ -14,7 +14,6 @@ import android.text.style.URLSpan
import android.util.Patterns import android.util.Patterns
import androidx.core.text.getSpans import androidx.core.text.getSpans
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.api.core.MatrixPatternType import io.element.android.libraries.matrix.api.core.MatrixPatternType
import io.element.android.libraries.matrix.api.core.MatrixPatterns import io.element.android.libraries.matrix.api.core.MatrixPatterns
@ -33,7 +32,6 @@ interface TextPillificationHelper {
} }
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultTextPillificationHelper( class DefaultTextPillificationHelper(
private val mentionSpanProvider: MentionSpanProvider, private val mentionSpanProvider: MentionSpanProvider,
private val permalinkParser: PermalinkParser, private val permalinkParser: PermalinkParser,

View file

@ -9,7 +9,6 @@ package io.element.android.features.messages.impl.utils.messagesummary
import android.content.Context import android.content.Context
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent
@ -33,7 +32,6 @@ import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultMessageSummaryFormatter( class DefaultMessageSummaryFormatter(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
) : MessageSummaryFormatter { ) : MessageSummaryFormatter {

View file

@ -8,7 +8,6 @@
package io.element.android.features.messages.impl.voicemessages.timeline package io.element.android.features.messages.impl.voicemessages.timeline
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.coroutine.CoroutineDispatchers
import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
@ -21,7 +20,6 @@ interface RedactedVoiceMessageManager {
} }
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultRedactedVoiceMessageManager( class DefaultRedactedVoiceMessageManager(
private val dispatchers: CoroutineDispatchers, private val dispatchers: CoroutineDispatchers,
private val mediaPlayer: MediaPlayer, private val mediaPlayer: MediaPlayer,

View file

@ -11,12 +11,10 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.api.MigrationEntryPoint import io.element.android.features.api.MigrationEntryPoint
import io.element.android.features.api.MigrationState import io.element.android.features.api.MigrationState
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultMigrationEntryPoint( class DefaultMigrationEntryPoint(
private val migrationPresenter: MigrationPresenter, private val migrationPresenter: MigrationPresenter,
) : MigrationEntryPoint { ) : MigrationEntryPoint {

View file

@ -11,7 +11,6 @@ import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.intPreferencesKey
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
@ -19,7 +18,6 @@ import kotlinx.coroutines.flow.map
private val applicationMigrationVersion = intPreferencesKey("applicationMigrationVersion") private val applicationMigrationVersion = intPreferencesKey("applicationMigrationVersion")
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultMigrationStore( class DefaultMigrationStore(
preferenceDataStoreFactory: PreferenceDataStoreFactory, preferenceDataStoreFactory: PreferenceDataStoreFactory,
) : MigrationStore { ) : MigrationStore {

View file

@ -15,7 +15,6 @@ import android.net.Network
import android.net.NetworkRequest import android.net.NetworkRequest
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.networkmonitor.api.NetworkMonitor import io.element.android.features.networkmonitor.api.NetworkMonitor
import io.element.android.features.networkmonitor.api.NetworkStatus import io.element.android.features.networkmonitor.api.NetworkStatus
@ -37,7 +36,6 @@ import java.util.concurrent.atomic.AtomicInteger
@ContributesBinding(scope = AppScope::class) @ContributesBinding(scope = AppScope::class)
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@Inject
class DefaultNetworkMonitor( class DefaultNetworkMonitor(
@ApplicationContext context: Context, @ApplicationContext context: Context,
@AppCoroutineScope @AppCoroutineScope

View file

@ -8,7 +8,6 @@
package io.element.android.features.poll.impl.actions package io.element.android.features.poll.impl.actions
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import im.vector.app.features.analytics.plan.PollEnd import im.vector.app.features.analytics.plan.PollEnd
import io.element.android.features.poll.api.actions.EndPollAction import io.element.android.features.poll.api.actions.EndPollAction
import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.RoomScope
@ -17,7 +16,6 @@ import io.element.android.libraries.matrix.api.timeline.Timeline
import io.element.android.services.analytics.api.AnalyticsService import io.element.android.services.analytics.api.AnalyticsService
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultEndPollAction( class DefaultEndPollAction(
private val analyticsService: AnalyticsService, private val analyticsService: AnalyticsService,
) : EndPollAction { ) : EndPollAction {

View file

@ -8,7 +8,6 @@
package io.element.android.features.poll.impl.actions package io.element.android.features.poll.impl.actions
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import im.vector.app.features.analytics.plan.PollVote import im.vector.app.features.analytics.plan.PollVote
import io.element.android.features.poll.api.actions.SendPollResponseAction import io.element.android.features.poll.api.actions.SendPollResponseAction
import io.element.android.libraries.di.RoomScope import io.element.android.libraries.di.RoomScope
@ -17,7 +16,6 @@ import io.element.android.libraries.matrix.api.timeline.Timeline
import io.element.android.services.analytics.api.AnalyticsService import io.element.android.services.analytics.api.AnalyticsService
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultSendPollResponseAction( class DefaultSendPollResponseAction(
private val analyticsService: AnalyticsService, private val analyticsService: AnalyticsService,
) : SendPollResponseAction { ) : SendPollResponseAction {

View file

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

View file

@ -11,12 +11,10 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.poll.api.history.PollHistoryEntryPoint import io.element.android.features.poll.api.history.PollHistoryEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultPollHistoryEntryPoint : PollHistoryEntryPoint { class DefaultPollHistoryEntryPoint : PollHistoryEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext): Node { override fun createNode(parentNode: Node, buildContext: BuildContext): Node {
return parentNode.createNode<PollHistoryFlowNode>(buildContext) return parentNode.createNode<PollHistoryFlowNode>(buildContext)

View file

@ -8,7 +8,6 @@
package io.element.android.features.poll.impl.model package io.element.android.features.poll.impl.model
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.poll.api.pollcontent.PollAnswerItem import io.element.android.features.poll.api.pollcontent.PollAnswerItem
import io.element.android.features.poll.api.pollcontent.PollContentState import io.element.android.features.poll.api.pollcontent.PollContentState
import io.element.android.features.poll.api.pollcontent.PollContentStateFactory import io.element.android.features.poll.api.pollcontent.PollContentStateFactory
@ -20,7 +19,6 @@ import io.element.android.libraries.matrix.api.timeline.item.event.PollContent
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
@ContributesBinding(RoomScope::class) @ContributesBinding(RoomScope::class)
@Inject
class DefaultPollContentStateFactory( class DefaultPollContentStateFactory(
private val matrixClient: MatrixClient, private val matrixClient: MatrixClient,
) : PollContentStateFactory { ) : PollContentStateFactory {

View file

@ -9,7 +9,6 @@ package io.element.android.features.preferences.impl
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.features.preferences.api.CacheService import io.element.android.features.preferences.api.CacheService
import io.element.android.libraries.matrix.api.core.SessionId import io.element.android.libraries.matrix.api.core.SessionId
@ -18,7 +17,6 @@ import kotlinx.coroutines.flow.MutableSharedFlow
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultCacheService : CacheService { class DefaultCacheService : CacheService {
private val _clearedCacheEventFlow = MutableSharedFlow<SessionId>(0) private val _clearedCacheEventFlow = MutableSharedFlow<SessionId>(0)
override val clearedCacheEventFlow: Flow<SessionId> = _clearedCacheEventFlow override val clearedCacheEventFlow: Flow<SessionId> = _clearedCacheEventFlow

View file

@ -12,12 +12,10 @@ import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.preferences.api.PreferencesEntryPoint import io.element.android.features.preferences.api.PreferencesEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultPreferencesEntryPoint : PreferencesEntryPoint { class DefaultPreferencesEntryPoint : PreferencesEntryPoint {
override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): PreferencesEntryPoint.NodeBuilder { override fun nodeBuilder(parentNode: Node, buildContext: BuildContext): PreferencesEntryPoint.NodeBuilder {
return object : PreferencesEntryPoint.NodeBuilder { return object : PreferencesEntryPoint.NodeBuilder {

View file

@ -10,7 +10,6 @@ package io.element.android.features.preferences.impl.advanced
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.architecture.runUpdatingState import io.element.android.libraries.architecture.runUpdatingState
@ -45,7 +44,6 @@ interface MediaPreviewConfigStateStore {
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@SingleIn(SessionScope::class) @SingleIn(SessionScope::class)
@Inject
class DefaultMediaPreviewConfigStateStore( class DefaultMediaPreviewConfigStateStore(
@SessionCoroutineScope @SessionCoroutineScope
private val sessionCoroutineScope: CoroutineScope, private val sessionCoroutineScope: CoroutineScope,

View file

@ -10,7 +10,6 @@ package io.element.android.features.preferences.impl.notifications
import androidx.core.app.NotificationManagerCompat import androidx.core.app.NotificationManagerCompat
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
interface SystemNotificationsEnabledProvider { interface SystemNotificationsEnabledProvider {
@ -19,7 +18,6 @@ interface SystemNotificationsEnabledProvider {
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultSystemNotificationsEnabledProvider( class DefaultSystemNotificationsEnabledProvider(
private val notificationManager: NotificationManagerCompat, private val notificationManager: NotificationManagerCompat,
) : SystemNotificationsEnabledProvider { ) : SystemNotificationsEnabledProvider {

View file

@ -9,7 +9,6 @@ package io.element.android.features.preferences.impl.root
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding 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.BuildMeta
import io.element.android.libraries.ui.strings.CommonStrings import io.element.android.libraries.ui.strings.CommonStrings
import io.element.android.services.toolbox.api.strings.StringProvider import io.element.android.services.toolbox.api.strings.StringProvider
@ -19,7 +18,6 @@ interface VersionFormatter {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultVersionFormatter( class DefaultVersionFormatter(
private val stringProvider: StringProvider, private val stringProvider: StringProvider,
private val buildMeta: BuildMeta, private val buildMeta: BuildMeta,

View file

@ -10,7 +10,6 @@ package io.element.android.features.preferences.impl.tasks
import android.content.Context import android.content.Context
import coil3.SingletonImageLoader import coil3.SingletonImageLoader
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.Provider import dev.zacsweers.metro.Provider
import io.element.android.features.invite.api.SeenInvitesStore import io.element.android.features.invite.api.SeenInvitesStore
import io.element.android.features.preferences.impl.DefaultCacheService import io.element.android.features.preferences.impl.DefaultCacheService
@ -28,7 +27,6 @@ interface ClearCacheUseCase {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultClearCacheUseCase( class DefaultClearCacheUseCase(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val matrixClient: MatrixClient, private val matrixClient: MatrixClient,

View file

@ -9,7 +9,6 @@ package io.element.android.features.preferences.impl.tasks
import android.content.Context import android.content.Context
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.androidutils.file.getSizeOfFiles import io.element.android.libraries.androidutils.file.getSizeOfFiles
import io.element.android.libraries.androidutils.filesize.FileSizeFormatter import io.element.android.libraries.androidutils.filesize.FileSizeFormatter
import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.core.coroutine.CoroutineDispatchers
@ -23,7 +22,6 @@ interface ComputeCacheSizeUseCase {
} }
@ContributesBinding(SessionScope::class) @ContributesBinding(SessionScope::class)
@Inject
class DefaultComputeCacheSizeUseCase( class DefaultComputeCacheSizeUseCase(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val matrixClient: MatrixClient, private val matrixClient: MatrixClient,

View file

@ -9,14 +9,12 @@ package io.element.android.features.rageshake.impl
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.rageshake.api.RageshakeFeatureAvailability import io.element.android.features.rageshake.api.RageshakeFeatureAvailability
import io.element.android.features.rageshake.impl.reporter.BugReporterUrlProvider import io.element.android.features.rageshake.impl.reporter.BugReporterUrlProvider
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultRageshakeFeatureAvailability( class DefaultRageshakeFeatureAvailability(
private val bugReporterUrlProvider: BugReporterUrlProvider, private val bugReporterUrlProvider: BugReporterUrlProvider,
) : RageshakeFeatureAvailability { ) : RageshakeFeatureAvailability {

View file

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

View file

@ -16,7 +16,6 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.rageshake.api.RageshakeFeatureAvailability import io.element.android.features.rageshake.api.RageshakeFeatureAvailability
import io.element.android.features.rageshake.api.crash.CrashDetectionEvents import io.element.android.features.rageshake.api.crash.CrashDetectionEvents
import io.element.android.features.rageshake.api.crash.CrashDetectionPresenter import io.element.android.features.rageshake.api.crash.CrashDetectionPresenter
@ -29,7 +28,6 @@ import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultCrashDetectionPresenter( class DefaultCrashDetectionPresenter(
private val buildMeta: BuildMeta, private val buildMeta: BuildMeta,
private val crashDataStore: CrashDataStore, private val crashDataStore: CrashDataStore,

View file

@ -12,7 +12,6 @@ import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -23,7 +22,6 @@ private val appHasCrashedKey = booleanPreferencesKey("appHasCrashed")
private val crashDataKey = stringPreferencesKey("crashData") private val crashDataKey = stringPreferencesKey("crashData")
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class PreferencesCrashDataStore( class PreferencesCrashDataStore(
preferenceDataStoreFactory: PreferenceDataStoreFactory, preferenceDataStoreFactory: PreferenceDataStoreFactory,
) : CrashDataStore { ) : CrashDataStore {

View file

@ -16,7 +16,6 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvents import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvents
import io.element.android.features.rageshake.api.detection.RageshakeDetectionPresenter import io.element.android.features.rageshake.api.detection.RageshakeDetectionPresenter
import io.element.android.features.rageshake.api.detection.RageshakeDetectionState import io.element.android.features.rageshake.api.detection.RageshakeDetectionState
@ -30,7 +29,6 @@ import kotlinx.coroutines.launch
import timber.log.Timber import timber.log.Timber
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultRageshakeDetectionPresenter( class DefaultRageshakeDetectionPresenter(
private val screenshotHolder: ScreenshotHolder, private val screenshotHolder: ScreenshotHolder,
private val rageShake: RageShake, private val rageShake: RageShake,

View file

@ -9,13 +9,11 @@ package io.element.android.features.rageshake.impl.logs
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.rageshake.api.logs.LogFilesRemover import io.element.android.features.rageshake.api.logs.LogFilesRemover
import io.element.android.features.rageshake.impl.reporter.DefaultBugReporter import io.element.android.features.rageshake.impl.reporter.DefaultBugReporter
import java.io.File import java.io.File
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultLogFilesRemover( class DefaultLogFilesRemover(
private val bugReporter: DefaultBugReporter, private val bugReporter: DefaultBugReporter,
) : LogFilesRemover { ) : LogFilesRemover {

View file

@ -17,7 +17,6 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.rageshake.api.RageshakeFeatureAvailability import io.element.android.features.rageshake.api.RageshakeFeatureAvailability
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvents import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvents
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesPresenter import io.element.android.features.rageshake.api.preferences.RageshakePreferencesPresenter
@ -28,7 +27,6 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultRageshakePreferencesPresenter( class DefaultRageshakePreferencesPresenter(
private val rageshake: RageShake, private val rageshake: RageShake,
private val rageshakeDataStore: RageshakeDataStore, private val rageshakeDataStore: RageshakeDataStore,

View file

@ -14,14 +14,12 @@ import androidx.core.content.getSystemService
import com.squareup.seismic.ShakeDetector import com.squareup.seismic.ShakeDetector
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import dev.zacsweers.metro.binding import dev.zacsweers.metro.binding
import io.element.android.libraries.di.annotations.ApplicationContext import io.element.android.libraries.di.annotations.ApplicationContext
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(scope = AppScope::class, binding = binding<RageShake>()) @ContributesBinding(scope = AppScope::class, binding = binding<RageShake>())
@Inject
class DefaultRageShake( class DefaultRageShake(
@ApplicationContext context: Context, @ApplicationContext context: Context,
) : ShakeDetector.Listener, RageShake { ) : ShakeDetector.Listener, RageShake {

View file

@ -12,7 +12,6 @@ import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.floatPreferencesKey import androidx.datastore.preferences.core.floatPreferencesKey
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.core.bool.orFalse
import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory import io.element.android.libraries.preferences.api.store.PreferenceDataStoreFactory
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -22,7 +21,6 @@ private val enabledKey = booleanPreferencesKey("enabled")
private val sensitivityKey = floatPreferencesKey("sensitivity") private val sensitivityKey = floatPreferencesKey("sensitivity")
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class PreferencesRageshakeDataStore( class PreferencesRageshakeDataStore(
preferenceDataStoreFactory: PreferenceDataStoreFactory, preferenceDataStoreFactory: PreferenceDataStoreFactory,
) : RageshakeDataStore { ) : RageshakeDataStore {

View file

@ -9,7 +9,6 @@ package io.element.android.features.rageshake.impl.reporter
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.RageshakeConfig import io.element.android.appconfig.RageshakeConfig
fun interface BugReportAppNameProvider { fun interface BugReportAppNameProvider {
@ -17,7 +16,6 @@ fun interface BugReportAppNameProvider {
} }
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultBugReportAppNameProvider : BugReportAppNameProvider { class DefaultBugReportAppNameProvider : BugReportAppNameProvider {
override fun provide(): String = RageshakeConfig.BUG_REPORT_APP_NAME override fun provide(): String = RageshakeConfig.BUG_REPORT_APP_NAME
} }

View file

@ -13,7 +13,6 @@ import androidx.core.net.toFile
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.Provider import dev.zacsweers.metro.Provider
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.appconfig.RageshakeConfig import io.element.android.appconfig.RageshakeConfig
@ -70,7 +69,6 @@ import java.util.Locale
*/ */
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultBugReporter( class DefaultBugReporter(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
@AppCoroutineScope @AppCoroutineScope

View file

@ -9,7 +9,6 @@ package io.element.android.features.rageshake.impl.reporter
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.appconfig.RageshakeConfig import io.element.android.appconfig.RageshakeConfig
import io.element.android.features.enterprise.api.BugReportUrl import io.element.android.features.enterprise.api.BugReportUrl
import io.element.android.features.enterprise.api.EnterpriseService import io.element.android.features.enterprise.api.EnterpriseService
@ -25,7 +24,6 @@ import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultBugReporterUrlProvider( class DefaultBugReporterUrlProvider(
private val bugReportAppNameProvider: BugReportAppNameProvider, private val bugReportAppNameProvider: BugReportAppNameProvider,
private val enterpriseService: EnterpriseService, private val enterpriseService: EnterpriseService,

View file

@ -12,7 +12,6 @@ import android.graphics.Bitmap
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.androidutils.bitmap.writeBitmap import io.element.android.libraries.androidutils.bitmap.writeBitmap
import io.element.android.libraries.androidutils.file.safeDelete import io.element.android.libraries.androidutils.file.safeDelete
@ -21,7 +20,6 @@ import java.io.File
@SingleIn(AppScope::class) @SingleIn(AppScope::class)
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultScreenshotHolder( class DefaultScreenshotHolder(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
) : ScreenshotHolder { ) : ScreenshotHolder {

View file

@ -11,13 +11,11 @@ import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.Inject
import io.element.android.features.reportroom.api.ReportRoomEntryPoint import io.element.android.features.reportroom.api.ReportRoomEntryPoint
import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.createNode
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
@ContributesBinding(AppScope::class) @ContributesBinding(AppScope::class)
@Inject
class DefaultReportRoomEntryPoint : ReportRoomEntryPoint { class DefaultReportRoomEntryPoint : ReportRoomEntryPoint {
override fun createNode(parentNode: Node, buildContext: BuildContext, roomId: RoomId): Node { override fun createNode(parentNode: Node, buildContext: BuildContext, roomId: RoomId): Node {
return parentNode.createNode<ReportRoomNode>(buildContext, plugins = listOf(ReportRoomNode.Inputs(roomId))) return parentNode.createNode<ReportRoomNode>(buildContext, plugins = listOf(ReportRoomNode.Inputs(roomId)))

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