VaultModule.kt

1.1 KB · raw

1package com.peachpasswords.di23import com.peachpasswords.sync.PairedDeviceRegistry4import com.peachpasswords.sync.PairedDeviceStore5import com.peachpasswords.sync.SyncGenerationPort6import com.peachpasswords.sync.SyncGenerationStore7import com.peachpasswords.vault.VaultRepository8import com.peachpasswords.vault.VaultStorage9import com.peachpasswords.vault.VaultStore10import dagger.Binds11import dagger.Module12import dagger.hilt.EntryPoint13import dagger.hilt.InstallIn14import dagger.hilt.components.SingletonComponent15import javax.inject.Singleton1617@Module18@InstallIn(SingletonComponent::class)19abstract class VaultModule {20    @Binds21    @Singleton22    abstract fun bindVaultStorage(impl: VaultStore): VaultStorage2324    @Binds25    @Singleton26    abstract fun bindPairedDeviceRegistry(impl: PairedDeviceStore): PairedDeviceRegistry2728    @Binds29    @Singleton30    abstract fun bindSyncGenerationPort(impl: SyncGenerationStore): SyncGenerationPort31}3233/** QA seam: lets instrumented tests reach the vault without any UI. */34@EntryPoint35@InstallIn(SingletonComponent::class)36internal interface VaultRepositoryEntryPoint {37    fun vaultRepository(): VaultRepository38}