Большая реструктуризация проекта
This commit is contained in:
@@ -10,7 +10,7 @@ import androidx.activity.enableEdgeToEdge
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.github.nullptroma.wallenc.app.auth.YandexSignInService
|
||||
import com.github.nullptroma.wallenc.presentation.WallencUi
|
||||
import com.github.nullptroma.wallenc.ui.WallencUi
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -3,10 +3,10 @@ package com.github.nullptroma.wallenc.app.auth
|
||||
import android.content.Context
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import com.github.nullptroma.wallenc.data.vaults.yandex.YandexRegistration
|
||||
import com.github.nullptroma.wallenc.vaultapi.CloudBrand
|
||||
import com.github.nullptroma.wallenc.vaultapi.RemoteVaultAuthenticator
|
||||
import com.github.nullptroma.wallenc.vaultapi.VaultLinkOutcome
|
||||
import com.github.nullptroma.wallenc.infrastructure.vaults.yandex.YandexRegistration
|
||||
import com.github.nullptroma.wallenc.vault.contract.CloudBrand
|
||||
import com.github.nullptroma.wallenc.vault.contract.RemoteVaultAuthenticator
|
||||
import com.github.nullptroma.wallenc.vault.contract.VaultLinkOutcome
|
||||
import com.yandex.authsdk.YandexAuthLoginOptions
|
||||
import com.yandex.authsdk.YandexAuthOptions
|
||||
import com.yandex.authsdk.YandexAuthResult
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.github.nullptroma.wallenc.app.di.modules.auth
|
||||
|
||||
import com.github.nullptroma.wallenc.app.auth.YandexSignInService
|
||||
import com.github.nullptroma.wallenc.vaultapi.RemoteVaultAuthenticator
|
||||
import com.github.nullptroma.wallenc.vault.contract.RemoteVaultAuthenticator
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
import dagger.hilt.InstallIn
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.github.nullptroma.wallenc.app.di.modules.data
|
||||
|
||||
import android.content.Context
|
||||
import com.github.nullptroma.wallenc.data.db.RoomFactory
|
||||
import com.github.nullptroma.wallenc.data.db.app.IAppDb
|
||||
import com.github.nullptroma.wallenc.data.db.app.dao.StorageKeyMapDao
|
||||
import com.github.nullptroma.wallenc.data.db.app.dao.StorageMetaInfoDao
|
||||
import com.github.nullptroma.wallenc.data.db.app.dao.YandexAccountDao
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.RoomFactory
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.IAppDb
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.dao.StorageKeyMapDao
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.dao.StorageMetaInfoDao
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.dao.YandexAccountDao
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
|
||||
@@ -2,23 +2,28 @@ package com.github.nullptroma.wallenc.app.di.modules.data
|
||||
|
||||
import android.content.Context
|
||||
import com.github.nullptroma.wallenc.app.di.modules.app.IoDispatcher
|
||||
import com.github.nullptroma.wallenc.data.db.app.dao.StorageKeyMapDao
|
||||
import com.github.nullptroma.wallenc.data.db.app.dao.StorageMetaInfoDao
|
||||
import com.github.nullptroma.wallenc.data.db.app.dao.YandexAccountDao
|
||||
import com.github.nullptroma.wallenc.data.db.app.repository.StorageKeyMapRepository
|
||||
import com.github.nullptroma.wallenc.data.db.app.repository.StorageMetaInfoRepository
|
||||
import com.github.nullptroma.wallenc.data.db.app.repository.YandexAccountRepository
|
||||
import com.github.nullptroma.wallenc.data.network.yandexdisk.YandexDiskApiFactory
|
||||
import com.github.nullptroma.wallenc.data.network.yandexdisk.repository.YandexDiskRepositoryFactory
|
||||
import com.github.nullptroma.wallenc.data.network.yandexuserinfo.YandexUserInfoApi
|
||||
import com.github.nullptroma.wallenc.data.network.yandexuserinfo.YandexUserInfoApiFactory
|
||||
import com.github.nullptroma.wallenc.data.network.yandexuserinfo.repository.YandexUserInfoRepository
|
||||
import com.github.nullptroma.wallenc.data.tasks.TaskOrchestrator
|
||||
import com.github.nullptroma.wallenc.data.vaults.VaultsManager
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.dao.StorageKeyMapDao
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.dao.StorageMetaInfoDao
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.dao.YandexAccountDao
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.repository.StorageKeyMapRepository
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.repository.StorageMetaInfoRepository
|
||||
import com.github.nullptroma.wallenc.infrastructure.db.app.repository.YandexAccountRepository
|
||||
import com.github.nullptroma.wallenc.infrastructure.network.yandexdisk.YandexDiskApiFactory
|
||||
import com.github.nullptroma.wallenc.infrastructure.network.yandexdisk.repository.YandexDiskRepositoryFactory
|
||||
import com.github.nullptroma.wallenc.infrastructure.network.yandexuserinfo.YandexUserInfoApi
|
||||
import com.github.nullptroma.wallenc.infrastructure.network.yandexuserinfo.YandexUserInfoApiFactory
|
||||
import com.github.nullptroma.wallenc.infrastructure.network.yandexuserinfo.repository.YandexUserInfoRepository
|
||||
import com.github.nullptroma.wallenc.infrastructure.ports.StorageKeyMapStore
|
||||
import com.github.nullptroma.wallenc.infrastructure.ports.YandexAccountStore
|
||||
import com.github.nullptroma.wallenc.task.runtime.TaskOrchestrator
|
||||
import com.github.nullptroma.wallenc.infrastructure.vaults.VaultsManager
|
||||
import com.github.nullptroma.wallenc.infrastructure.vaults.local.LocalVault
|
||||
import com.github.nullptroma.wallenc.infrastructure.vaults.local.LocalVaultIdStore
|
||||
import com.github.nullptroma.wallenc.domain.interfaces.IUnlockManager
|
||||
import com.github.nullptroma.wallenc.domain.interfaces.IVault
|
||||
import com.github.nullptroma.wallenc.domain.interfaces.IVaultsManager
|
||||
import com.github.nullptroma.wallenc.domain.tasks.ITaskOrchestrator
|
||||
import com.github.nullptroma.wallenc.vaultapi.VaultRegistrar
|
||||
import com.github.nullptroma.wallenc.vault.contract.VaultRegistrar
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
@@ -43,10 +48,10 @@ class SingletonModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideYandexDiskApiFactory(
|
||||
yandexAccountRepository: YandexAccountRepository,
|
||||
yandexAccountStore: YandexAccountStore,
|
||||
@IoDispatcher ioDispatcher: CoroutineDispatcher,
|
||||
): YandexDiskApiFactory = YandexDiskApiFactory(
|
||||
accountRepository = yandexAccountRepository,
|
||||
accountRepository = yandexAccountStore,
|
||||
ioDispatcher = ioDispatcher,
|
||||
)
|
||||
|
||||
@@ -64,22 +69,33 @@ class SingletonModule {
|
||||
@Singleton
|
||||
fun provideVaultsManager(
|
||||
@IoDispatcher ioDispatcher: CoroutineDispatcher,
|
||||
@ApplicationContext context: Context,
|
||||
keyRepo: StorageKeyMapRepository,
|
||||
yandexAccountRepository: YandexAccountRepository,
|
||||
localVault: IVault,
|
||||
keyRepo: StorageKeyMapStore,
|
||||
yandexAccountStore: YandexAccountStore,
|
||||
yandexUserInfoRepository: YandexUserInfoRepository,
|
||||
yandexDiskRepositoryFactory: YandexDiskRepositoryFactory,
|
||||
): VaultsManager {
|
||||
return VaultsManager(
|
||||
ioDispatcher = ioDispatcher,
|
||||
context = context,
|
||||
localVault = localVault,
|
||||
keyRepo = keyRepo,
|
||||
yandexAccountRepository = yandexAccountRepository,
|
||||
yandexAccountStore = yandexAccountStore,
|
||||
yandexUserInfoRepository = yandexUserInfoRepository,
|
||||
yandexDiskRepositoryFactory = yandexDiskRepositoryFactory,
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideLocalVault(
|
||||
@IoDispatcher ioDispatcher: CoroutineDispatcher,
|
||||
@ApplicationContext context: Context,
|
||||
): IVault = LocalVault(
|
||||
ioDispatcher = ioDispatcher,
|
||||
context = context,
|
||||
idStore = LocalVaultIdStore(context),
|
||||
)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideIVaultsManager(impl: VaultsManager): IVaultsManager = impl
|
||||
@@ -104,6 +120,12 @@ class SingletonModule {
|
||||
return StorageKeyMapRepository(dao, ioDispatcher)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideStorageKeyMapStore(
|
||||
impl: StorageKeyMapRepository,
|
||||
): StorageKeyMapStore = impl
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideStorageMetaInfoRepository(
|
||||
@@ -122,6 +144,12 @@ class SingletonModule {
|
||||
return YandexAccountRepository(dao, ioDispatcher)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideYandexAccountStore(
|
||||
impl: YandexAccountRepository,
|
||||
): YandexAccountStore = impl
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideYandexUserInfoRepository(
|
||||
|
||||
@@ -2,12 +2,12 @@ package com.github.nullptroma.wallenc.app.di.modules.domain
|
||||
|
||||
import com.github.nullptroma.wallenc.domain.interfaces.IUnlockManager
|
||||
import com.github.nullptroma.wallenc.domain.interfaces.IVaultsManager
|
||||
import com.github.nullptroma.wallenc.domain.usecases.GetOpenedStoragesUseCase
|
||||
import com.github.nullptroma.wallenc.domain.usecases.ManageStoragesEncryptionUseCase
|
||||
import com.github.nullptroma.wallenc.domain.usecases.ManageVaultUseCase
|
||||
import com.github.nullptroma.wallenc.domain.usecases.RemoveStorageUseCase
|
||||
import com.github.nullptroma.wallenc.domain.usecases.RenameStorageUseCase
|
||||
import com.github.nullptroma.wallenc.domain.usecases.StorageFileManagementUseCase
|
||||
import com.github.nullptroma.wallenc.usecases.GetOpenedStoragesUseCase
|
||||
import com.github.nullptroma.wallenc.usecases.ManageStoragesEncryptionUseCase
|
||||
import com.github.nullptroma.wallenc.usecases.ManageVaultUseCase
|
||||
import com.github.nullptroma.wallenc.usecases.RemoveStorageUseCase
|
||||
import com.github.nullptroma.wallenc.usecases.RenameStorageUseCase
|
||||
import com.github.nullptroma.wallenc.usecases.StorageFileManagementUseCase
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
|
||||
Reference in New Issue
Block a user