chore(injection): Modules should be public to allow @TestInstallIn to replace them and avoid hilt to generate a wrapper.

Modules with bindings can be interfaces.
This commit is contained in:
Nicolas Mouchel 2024-03-25 15:12:47 +01:00 committed by MargeBot
parent fdece5fb59
commit ba124b184b
8 changed files with 34 additions and 27 deletions

View File

@ -1,4 +1,4 @@
public class hilt_aggregated_deps/_me_proton_core_crypto_validator_dagger_HiltWrapper_CoreCryptoValidatorBindsModule {
public class hilt_aggregated_deps/_me_proton_core_crypto_validator_dagger_CoreCryptoValidatorBindsModule {
public fun <init> ()V
}
@ -9,7 +9,7 @@ public final class me/proton/core/crypto/validator/dagger/BuildConfig {
public fun <init> ()V
}
public final class me/proton/core/crypto/validator/dagger/HiltWrapper_CoreCryptoValidatorBindsModule {
public fun <init> ()V
public abstract interface class me/proton/core/crypto/validator/dagger/CoreCryptoValidatorBindsModule {
public abstract fun bindCryptoPrefs (Lme/proton/core/crypto/validator/data/prefs/CryptoPrefsImpl;)Lme/proton/core/crypto/validator/domain/prefs/CryptoPrefs;
}

View File

@ -27,7 +27,7 @@ import me.proton.core.crypto.validator.domain.prefs.CryptoPrefs
@Module
@InstallIn(SingletonComponent::class)
internal abstract class CoreCryptoValidatorBindsModule {
public interface CoreCryptoValidatorBindsModule {
@Binds
abstract fun bindCryptoPrefs(cryptoPrefsImpl: CryptoPrefsImpl): CryptoPrefs
public fun bindCryptoPrefs(cryptoPrefsImpl: CryptoPrefsImpl): CryptoPrefs
}

View File

@ -1,4 +1,4 @@
public class hilt_aggregated_deps/_me_proton_core_featureflag_dagger_HiltWrapper_CoreFeatureFlagModule {
public class hilt_aggregated_deps/_me_proton_core_featureflag_dagger_CoreFeatureFlagModule {
public fun <init> ()V
}
@ -9,7 +9,11 @@ public final class me/proton/core/featureflag/dagger/BuildConfig {
public fun <init> ()V
}
public final class me/proton/core/featureflag/dagger/HiltWrapper_CoreFeatureFlagModule {
public fun <init> ()V
public abstract interface class me/proton/core/featureflag/dagger/CoreFeatureFlagModule {
public abstract fun bindFeatureFlagLocalDataSource (Lme/proton/core/featureflag/data/local/FeatureFlagLocalDataSourceImpl;)Lme/proton/core/featureflag/domain/repository/FeatureFlagLocalDataSource;
public abstract fun bindFeatureFlagRemoteDataSource (Lme/proton/core/featureflag/data/remote/FeatureFlagRemoteDataSourceImpl;)Lme/proton/core/featureflag/domain/repository/FeatureFlagRemoteDataSource;
public abstract fun bindManager (Lme/proton/core/featureflag/data/FeatureFlagManagerImpl;)Lme/proton/core/featureflag/domain/FeatureFlagManager;
public abstract fun bindRepository (Lme/proton/core/featureflag/data/repository/FeatureFlagRepositoryImpl;)Lme/proton/core/featureflag/domain/repository/FeatureFlagRepository;
public abstract fun optionalFeatureFlagContextProvider ()Lme/proton/core/featureflag/domain/repository/FeatureFlagContextProvider;
}

View File

@ -36,24 +36,24 @@ import javax.inject.Singleton
@Module
@InstallIn(SingletonComponent::class)
internal abstract class CoreFeatureFlagModule {
public interface CoreFeatureFlagModule {
@Binds
@Singleton
abstract fun bindFeatureFlagLocalDataSource(impl: FeatureFlagLocalDataSourceImpl): FeatureFlagLocalDataSource
public fun bindFeatureFlagLocalDataSource(impl: FeatureFlagLocalDataSourceImpl): FeatureFlagLocalDataSource
@Binds
@Singleton
abstract fun bindFeatureFlagRemoteDataSource(impl: FeatureFlagRemoteDataSourceImpl): FeatureFlagRemoteDataSource
public fun bindFeatureFlagRemoteDataSource(impl: FeatureFlagRemoteDataSourceImpl): FeatureFlagRemoteDataSource
@Binds
@Singleton
abstract fun bindRepository(featureFlagRepositoryImpl: FeatureFlagRepositoryImpl): FeatureFlagRepository
public fun bindRepository(featureFlagRepositoryImpl: FeatureFlagRepositoryImpl): FeatureFlagRepository
@Binds
@Singleton
abstract fun bindManager(featureFlagManagerImpl: FeatureFlagManagerImpl): FeatureFlagManager
public fun bindManager(featureFlagManagerImpl: FeatureFlagManagerImpl): FeatureFlagManager
@BindsOptionalOf
abstract fun optionalFeatureFlagContextProvider(): FeatureFlagContextProvider
public fun optionalFeatureFlagContextProvider(): FeatureFlagContextProvider
}

View File

@ -1,4 +1,4 @@
public class hilt_aggregated_deps/_me_proton_core_metrics_dagger_HiltWrapper_CoreMetricsModule {
public class hilt_aggregated_deps/_me_proton_core_metrics_dagger_CoreMetricsModule {
public fun <init> ()V
}
@ -9,7 +9,8 @@ public final class me/proton/core/metrics/dagger/BuildConfig {
public fun <init> ()V
}
public final class me/proton/core/metrics/dagger/HiltWrapper_CoreMetricsModule {
public fun <init> ()V
public abstract interface class me/proton/core/metrics/dagger/CoreMetricsModule {
public abstract fun provideMetricsManager (Lme/proton/core/metrics/data/MetricsManagerImpl;)Lme/proton/core/metrics/domain/MetricsManager;
public abstract fun provideMetricsRepository (Lme/proton/core/metrics/data/repository/MetricsRepositoryImpl;)Lme/proton/core/metrics/domain/repository/MetricsRepository;
}

View File

@ -29,10 +29,10 @@ import me.proton.core.metrics.domain.repository.MetricsRepository
@Module
@InstallIn(SingletonComponent::class)
internal abstract class CoreMetricsModule {
public interface CoreMetricsModule {
@Binds
abstract fun provideMetricsRepository(impl: MetricsRepositoryImpl): MetricsRepository
public fun provideMetricsRepository(impl: MetricsRepositoryImpl): MetricsRepository
@Binds
abstract fun provideMetricsManager(impl: MetricsManagerImpl): MetricsManager
public fun provideMetricsManager(impl: MetricsManagerImpl): MetricsManager
}

View File

@ -1,4 +1,4 @@
public class hilt_aggregated_deps/_me_proton_core_push_hilt_HiltWrapper_PushModule {
public class hilt_aggregated_deps/_me_proton_core_push_hilt_PushModule {
public fun <init> ()V
}
@ -9,7 +9,9 @@ public final class me/proton/core/push/dagger/BuildConfig {
public fun <init> ()V
}
public final class me/proton/core/push/hilt/HiltWrapper_PushModule {
public fun <init> ()V
public abstract interface class me/proton/core/push/hilt/PushModule {
public abstract fun bindPushLocalDataSource (Lme/proton/core/push/data/local/PushLocalDataSourceImpl;)Lme/proton/core/push/domain/local/PushLocalDataSource;
public abstract fun bindPushRemoteDataSource (Lme/proton/core/push/data/remote/PushRemoteDataSourceImpl;)Lme/proton/core/push/domain/remote/PushRemoteDataSource;
public abstract fun bindPushRepository (Lme/proton/core/push/data/repository/PushRepositoryImpl;)Lme/proton/core/push/domain/repository/PushRepository;
}

View File

@ -31,13 +31,13 @@ import me.proton.core.push.domain.repository.PushRepository
@Module
@InstallIn(SingletonComponent::class)
internal abstract class PushModule {
public interface PushModule {
@Binds
abstract fun bindPushRepository(impl: PushRepositoryImpl): PushRepository
public fun bindPushRepository(impl: PushRepositoryImpl): PushRepository
@Binds
abstract fun bindPushRemoteDataSource(impl: PushRemoteDataSourceImpl): PushRemoteDataSource
public fun bindPushRemoteDataSource(impl: PushRemoteDataSourceImpl): PushRemoteDataSource
@Binds
abstract fun bindPushLocalDataSource(impl: PushLocalDataSourceImpl): PushLocalDataSource
public fun bindPushLocalDataSource(impl: PushLocalDataSourceImpl): PushLocalDataSource
}