Start migrating Anvil KSP to Metro
This commit is contained in:
parent
d4d57b1e21
commit
b76a71ebf5
703 changed files with 3523 additions and 2820 deletions
|
|
@ -7,17 +7,18 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.features.enterprise.api.EnterpriseService
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface DefaultPushGatewayHttpUrlProvider {
|
||||
fun provide(): String
|
||||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultDefaultPushGatewayHttpUrlProvider @Inject constructor(
|
||||
@Inject
|
||||
class DefaultDefaultPushGatewayHttpUrlProvider(
|
||||
private val enterpriseService: EnterpriseService,
|
||||
) : DefaultPushGatewayHttpUrlProvider {
|
||||
override fun provide(): String {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface GuardServiceStarter {
|
||||
fun start() {}
|
||||
|
|
@ -17,4 +17,5 @@ interface GuardServiceStarter {
|
|||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class NoopGuardServiceStarter @Inject constructor() : GuardServiceStarter
|
||||
@Inject
|
||||
class NoopGuardServiceStarter() : GuardServiceStarter
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import android.content.Context
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.di.ApplicationContext
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||
import io.element.android.libraries.pushproviders.api.Distributor
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.registration.EndpointRegistrationHandler
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.withTimeout
|
||||
import org.unifiedpush.android.connector.UnifiedPush
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
interface RegisterUnifiedPushUseCase {
|
||||
|
|
@ -25,7 +25,8 @@ interface RegisterUnifiedPushUseCase {
|
|||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultRegisterUnifiedPushUseCase @Inject constructor(
|
||||
@Inject
|
||||
class DefaultRegisterUnifiedPushUseCase(
|
||||
@ApplicationContext private val context: Context,
|
||||
private val endpointRegistrationHandler: EndpointRegistrationHandler,
|
||||
) : RegisterUnifiedPushUseCase {
|
||||
|
|
|
|||
|
|
@ -7,18 +7,19 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.network.RetrofitFactory
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.network.UnifiedPushApi
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface UnifiedPushApiFactory {
|
||||
fun create(baseUrl: String): UnifiedPushApi
|
||||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultUnifiedPushApiFactory @Inject constructor(
|
||||
@Inject
|
||||
class DefaultUnifiedPushApiFactory(
|
||||
private val retrofitFactory: RetrofitFactory,
|
||||
) : UnifiedPushApiFactory {
|
||||
override fun create(baseUrl: String): UnifiedPushApi {
|
||||
|
|
|
|||
|
|
@ -7,20 +7,21 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.pushproviders.api.CurrentUserPushConfig
|
||||
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
|
||||
import io.element.android.services.appnavstate.api.AppNavigationStateService
|
||||
import io.element.android.services.appnavstate.api.currentSessionId
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface UnifiedPushCurrentUserPushConfigProvider {
|
||||
suspend fun provide(): CurrentUserPushConfig?
|
||||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultUnifiedPushCurrentUserPushConfigProvider @Inject constructor(
|
||||
@Inject
|
||||
class DefaultUnifiedPushCurrentUserPushConfigProvider(
|
||||
private val pushClientSecret: PushClientSecret,
|
||||
private val unifiedPushStore: UnifiedPushStore,
|
||||
private val appNavigationStateService: AppNavigationStateService,
|
||||
|
|
|
|||
|
|
@ -8,20 +8,21 @@
|
|||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import android.content.Context
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.androidutils.system.getApplicationLabel
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.di.ApplicationContext
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||
import io.element.android.libraries.pushproviders.api.Distributor
|
||||
import org.unifiedpush.android.connector.UnifiedPush
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface UnifiedPushDistributorProvider {
|
||||
fun getDistributors(): List<Distributor>
|
||||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultUnifiedPushDistributorProvider @Inject constructor(
|
||||
@Inject
|
||||
class DefaultUnifiedPushDistributorProvider(
|
||||
@ApplicationContext private val context: Context,
|
||||
) : UnifiedPushDistributorProvider {
|
||||
override fun getDistributors(): List<Distributor> {
|
||||
|
|
|
|||
|
|
@ -7,17 +7,17 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.core.data.tryOrNull
|
||||
import io.element.android.libraries.core.log.logger.LoggerTag
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import kotlinx.coroutines.withContext
|
||||
import retrofit2.HttpException
|
||||
import timber.log.Timber
|
||||
import java.net.HttpURLConnection
|
||||
import java.net.URL
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
sealed interface UnifiedPushGatewayResolverResult {
|
||||
data class Success(val gateway: String) : UnifiedPushGatewayResolverResult
|
||||
|
|
@ -33,7 +33,8 @@ interface UnifiedPushGatewayResolver {
|
|||
private val loggerTag = LoggerTag("DefaultUnifiedPushGatewayResolver")
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultUnifiedPushGatewayResolver @Inject constructor(
|
||||
@Inject
|
||||
class DefaultUnifiedPushGatewayResolver(
|
||||
private val unifiedPushApiFactory: UnifiedPushApiFactory,
|
||||
private val coroutineDispatchers: CoroutineDispatchers,
|
||||
) : UnifiedPushGatewayResolver {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface UnifiedPushGatewayUrlResolver {
|
||||
fun resolve(
|
||||
|
|
@ -19,7 +19,8 @@ interface UnifiedPushGatewayUrlResolver {
|
|||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultUnifiedPushGatewayUrlResolver @Inject constructor(
|
||||
@Inject
|
||||
class DefaultUnifiedPushGatewayUrlResolver(
|
||||
private val unifiedPushStore: UnifiedPushStore,
|
||||
private val defaultPushGatewayHttpUrlProvider: DefaultPushGatewayHttpUrlProvider,
|
||||
) : UnifiedPushGatewayUrlResolver {
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.core.extensions.flatMap
|
||||
import io.element.android.libraries.core.log.logger.LoggerTag
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.matrix.api.MatrixClientProvider
|
||||
import io.element.android.libraries.pushproviders.api.PusherSubscriber
|
||||
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
|
||||
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
private val loggerTag = LoggerTag("DefaultUnifiedPushNewGatewayHandler", LoggerTag.PushLoggerTag)
|
||||
|
||||
|
|
@ -28,7 +28,8 @@ interface UnifiedPushNewGatewayHandler {
|
|||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultUnifiedPushNewGatewayHandler @Inject constructor(
|
||||
@Inject
|
||||
class DefaultUnifiedPushNewGatewayHandler(
|
||||
private val pusherSubscriber: PusherSubscriber,
|
||||
private val userPushStoreFactory: UserPushStoreFactory,
|
||||
private val pushClientSecret: PushClientSecret,
|
||||
|
|
|
|||
|
|
@ -10,9 +10,10 @@ package io.element.android.libraries.pushproviders.unifiedpush
|
|||
import io.element.android.libraries.core.data.tryOrNull
|
||||
import io.element.android.libraries.pushproviders.api.PushData
|
||||
import kotlinx.serialization.json.Json
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
class UnifiedPushParser @Inject constructor() {
|
||||
@Inject
|
||||
class UnifiedPushParser() {
|
||||
private val json by lazy { Json { ignoreUnknownKeys = true } }
|
||||
|
||||
fun parse(message: ByteArray, clientSecret: String): PushData? {
|
||||
|
|
|
|||
|
|
@ -7,18 +7,19 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesMultibinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.ContributesIntoSet
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.pushproviders.api.CurrentUserPushConfig
|
||||
import io.element.android.libraries.pushproviders.api.Distributor
|
||||
import io.element.android.libraries.pushproviders.api.PushProvider
|
||||
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecret
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
@ContributesMultibinding(AppScope::class)
|
||||
class UnifiedPushProvider @Inject constructor(
|
||||
@ContributesIntoSet(AppScope::class)
|
||||
@Inject
|
||||
class UnifiedPushProvider(
|
||||
private val unifiedPushDistributorProvider: UnifiedPushDistributorProvider,
|
||||
private val registerUnifiedPushUseCase: RegisterUnifiedPushUseCase,
|
||||
private val unRegisterUnifiedPushUseCase: UnregisterUnifiedPushUseCase,
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@ package io.element.android.libraries.pushproviders.unifiedpush
|
|||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import androidx.core.content.edit
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.di.ApplicationContext
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface UnifiedPushStore {
|
||||
fun getEndpoint(clientSecret: String): String?
|
||||
|
|
@ -26,7 +26,8 @@ interface UnifiedPushStore {
|
|||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class SharedPreferencesUnifiedPushStore @Inject constructor(
|
||||
@Inject
|
||||
class SharedPreferencesUnifiedPushStore(
|
||||
@ApplicationContext val context: Context,
|
||||
private val sharedPreferences: SharedPreferences,
|
||||
) : UnifiedPushStore {
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@
|
|||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import android.content.Context
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.di.ApplicationContext
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.pushproviders.api.PusherSubscriber
|
||||
import org.unifiedpush.android.connector.UnifiedPush
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface UnregisterUnifiedPushUseCase {
|
||||
/**
|
||||
|
|
@ -30,7 +30,8 @@ interface UnregisterUnifiedPushUseCase {
|
|||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultUnregisterUnifiedPushUseCase @Inject constructor(
|
||||
@Inject
|
||||
class DefaultUnregisterUnifiedPushUseCase(
|
||||
@ApplicationContext private val context: Context,
|
||||
private val unifiedPushStore: UnifiedPushStore,
|
||||
private val pusherSubscriber: PusherSubscriber,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ import org.unifiedpush.android.connector.MessagingReceiver
|
|||
import org.unifiedpush.android.connector.data.PushEndpoint
|
||||
import org.unifiedpush.android.connector.data.PushMessage
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.di.DaggerComponentOwner
|
||||
|
||||
private val loggerTag = LoggerTag("VectorUnifiedPushMessagingReceiver", LoggerTag.PushLoggerTag)
|
||||
|
||||
|
|
@ -39,7 +40,7 @@ class VectorUnifiedPushMessagingReceiver : MessagingReceiver() {
|
|||
@Inject lateinit var coroutineScope: CoroutineScope
|
||||
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
context.applicationContext.bindings<VectorUnifiedPushMessagingReceiverBindings>().inject(this)
|
||||
((context.applicationContext as DaggerComponentOwner).daggerComponent as VectorUnifiedPushMessagingReceiverBindings).inject(this)
|
||||
super.onReceive(context, intent)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesTo
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.GraphExtension
|
||||
import dev.zacsweers.metro.AppScope
|
||||
|
||||
@ContributesTo(AppScope::class)
|
||||
@GraphExtension(AppScope::class)
|
||||
interface VectorUnifiedPushMessagingReceiverBindings {
|
||||
fun inject(receiver: VectorUnifiedPushMessagingReceiver)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush.registration
|
||||
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.di.SingleIn
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.flow.SharedFlow
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
data class RegistrationResult(
|
||||
val clientSecret: String,
|
||||
|
|
@ -19,7 +19,8 @@ data class RegistrationResult(
|
|||
)
|
||||
|
||||
@SingleIn(AppScope::class)
|
||||
class EndpointRegistrationHandler @Inject constructor() {
|
||||
@Inject
|
||||
class EndpointRegistrationHandler() {
|
||||
private val _state = MutableSharedFlow<RegistrationResult>()
|
||||
val state: SharedFlow<RegistrationResult> = _state
|
||||
|
||||
|
|
|
|||
|
|
@ -8,19 +8,20 @@
|
|||
package io.element.android.libraries.pushproviders.unifiedpush.troubleshoot
|
||||
|
||||
import android.content.Context
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.androidutils.system.openUrlInExternalApp
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.di.ApplicationContext
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushConfig
|
||||
import javax.inject.Inject
|
||||
import dev.zacsweers.metro.Inject
|
||||
|
||||
interface OpenDistributorWebPageAction {
|
||||
fun execute()
|
||||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultOpenDistributorWebPageAction @Inject constructor(
|
||||
@Inject
|
||||
class DefaultOpenDistributorWebPageAction(
|
||||
@ApplicationContext private val context: Context,
|
||||
) : OpenDistributorWebPageAction {
|
||||
override fun execute() {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,10 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush.troubleshoot
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesMultibinding
|
||||
import dev.zacsweers.metro.ContributesIntoSet
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushApiFactory
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushConfig
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushCurrentUserPushConfigProvider
|
||||
|
|
@ -20,10 +21,10 @@ import io.element.android.libraries.troubleshoot.api.test.TestFilterData
|
|||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@ContributesMultibinding(AppScope::class)
|
||||
class UnifiedPushMatrixGatewayTest @Inject constructor(
|
||||
@ContributesIntoSet(AppScope::class)
|
||||
@Inject
|
||||
class UnifiedPushMatrixGatewayTest(
|
||||
private val unifiedPushApiFactory: UnifiedPushApiFactory,
|
||||
private val coroutineDispatchers: CoroutineDispatchers,
|
||||
private val unifiedPushCurrentUserPushConfigProvider: UnifiedPushCurrentUserPushConfigProvider,
|
||||
|
|
|
|||
|
|
@ -7,8 +7,9 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.unifiedpush.troubleshoot
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesMultibinding
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import dev.zacsweers.metro.ContributesIntoSet
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.R
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushConfig
|
||||
import io.element.android.libraries.pushproviders.unifiedpush.UnifiedPushDistributorProvider
|
||||
|
|
@ -19,10 +20,10 @@ import io.element.android.libraries.troubleshoot.api.test.TestFilterData
|
|||
import io.element.android.services.toolbox.api.strings.StringProvider
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import javax.inject.Inject
|
||||
|
||||
@ContributesMultibinding(AppScope::class)
|
||||
class UnifiedPushTest @Inject constructor(
|
||||
@ContributesIntoSet(AppScope::class)
|
||||
@Inject
|
||||
class UnifiedPushTest(
|
||||
private val unifiedPushDistributorProvider: UnifiedPushDistributorProvider,
|
||||
private val openDistributorWebPageAction: OpenDistributorWebPageAction,
|
||||
private val stringProvider: StringProvider,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue