Updated on 2026-08-14
This commit is contained in:
parent
3704607598
commit
21b514caa1
15 changed files with 133 additions and 5 deletions
|
|
@ -50,14 +50,15 @@ dependencies {
|
||||||
implementation(project(":libs:crypto"))
|
implementation(project(":libs:crypto"))
|
||||||
implementation(project(":libs:auth"))
|
implementation(project(":libs:auth"))
|
||||||
|
|
||||||
implementation(project(":data:source:preferences"))
|
implementation(projects.data.appCurrency)
|
||||||
|
implementation(projects.data.appTheme)
|
||||||
implementation(projects.data.card)
|
implementation(projects.data.card)
|
||||||
implementation(projects.data.common)
|
implementation(projects.data.common)
|
||||||
implementation(projects.data.settings)
|
implementation(projects.data.settings)
|
||||||
|
implementation(projects.data.source.preferences)
|
||||||
implementation(projects.data.tokens)
|
implementation(projects.data.tokens)
|
||||||
implementation(projects.data.txhistory)
|
implementation(projects.data.txhistory)
|
||||||
implementation(projects.data.appCurrency)
|
implementation(projects.data.wallets)
|
||||||
implementation(projects.data.appTheme)
|
|
||||||
|
|
||||||
/** Features */
|
/** Features */
|
||||||
implementation(project(":features:onboarding"))
|
implementation(project(":features:onboarding"))
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.tangem.tap.di.domain
|
||||||
|
|
||||||
import com.tangem.domain.walletmanager.WalletManagersFacade
|
import com.tangem.domain.walletmanager.WalletManagersFacade
|
||||||
import com.tangem.domain.wallets.legacy.WalletsStateHolder
|
import com.tangem.domain.wallets.legacy.WalletsStateHolder
|
||||||
|
import com.tangem.domain.wallets.repository.WalletsRepository
|
||||||
import com.tangem.domain.wallets.usecase.*
|
import com.tangem.domain.wallets.usecase.*
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
|
|
@ -60,4 +61,10 @@ internal object WalletsDomainModule {
|
||||||
fun providesDeleteWalletUseCase(walletsStateHolder: WalletsStateHolder): DeleteWalletUseCase {
|
fun providesDeleteWalletUseCase(walletsStateHolder: WalletsStateHolder): DeleteWalletUseCase {
|
||||||
return DeleteWalletUseCase(walletsStateHolder = walletsStateHolder)
|
return DeleteWalletUseCase(walletsStateHolder = walletsStateHolder)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@ViewModelScoped
|
||||||
|
fun providesShouldSaveUserWalletsUseCase(walletsRepository: WalletsRepository): ShouldSaveUserWalletsUseCase {
|
||||||
|
return ShouldSaveUserWalletsUseCase(walletsRepository = walletsRepository)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.tangem.tap.domain.settings
|
||||||
|
|
||||||
|
import com.tangem.domain.settings.repositories.LegacySettingsRepository
|
||||||
|
import com.tangem.tap.domain.TangemSdkManager
|
||||||
|
|
||||||
|
internal class DefaultLegacySettingsRepository(
|
||||||
|
private val tangemSdkManager: TangemSdkManager,
|
||||||
|
) : LegacySettingsRepository {
|
||||||
|
|
||||||
|
override fun canUseBiometry(): Boolean = tangemSdkManager.canUseBiometry
|
||||||
|
}
|
||||||
|
|
@ -15,4 +15,8 @@ internal class DefaultSettingsRepository(
|
||||||
preferencesDataSource.appRatingLaunchObserver.isReadyToShow()
|
preferencesDataSource.appRatingLaunchObserver.isReadyToShow()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun shouldShowSaveUserWalletScreen(): Boolean {
|
||||||
|
return withContext(dispatchers.io) { preferencesDataSource.shouldShowSaveUserWalletScreen }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
1
data/wallets/.gitignore
vendored
Normal file
1
data/wallets/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/build
|
||||||
21
data/wallets/build.gradle.kts
Normal file
21
data/wallets/build.gradle.kts
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
plugins {
|
||||||
|
alias(deps.plugins.android.library)
|
||||||
|
alias(deps.plugins.kotlin.android)
|
||||||
|
alias(deps.plugins.kotlin.kapt)
|
||||||
|
alias(deps.plugins.hilt.android)
|
||||||
|
id("configuration")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.tangem.data.wallet"
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(projects.core.utils)
|
||||||
|
implementation(projects.data.source.preferences)
|
||||||
|
implementation(projects.domain.wallets)
|
||||||
|
|
||||||
|
/** DI */
|
||||||
|
implementation(deps.hilt.android)
|
||||||
|
kapt(deps.hilt.kapt)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.tangem.data.wallets
|
||||||
|
|
||||||
|
import com.tangem.data.source.preferences.PreferencesDataSource
|
||||||
|
import com.tangem.domain.wallets.repository.WalletsRepository
|
||||||
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
|
internal class DefaultWalletsRepository(
|
||||||
|
private val preferencesDataSource: PreferencesDataSource,
|
||||||
|
private val dispatchers: CoroutineDispatcherProvider,
|
||||||
|
) : WalletsRepository {
|
||||||
|
|
||||||
|
override suspend fun shouldSaveUserWallets(): Boolean {
|
||||||
|
return withContext(dispatchers.io) { preferencesDataSource.shouldSaveUserWallets }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.tangem.data.wallets.di
|
||||||
|
|
||||||
|
import com.tangem.data.source.preferences.PreferencesDataSource
|
||||||
|
import com.tangem.data.wallets.DefaultWalletsRepository
|
||||||
|
import com.tangem.domain.wallets.repository.WalletsRepository
|
||||||
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
|
import dagger.Module
|
||||||
|
import dagger.Provides
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.components.SingletonComponent
|
||||||
|
import javax.inject.Singleton
|
||||||
|
|
||||||
|
@Module
|
||||||
|
@InstallIn(SingletonComponent::class)
|
||||||
|
object WalletsDataModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun providesWalletsRepository(
|
||||||
|
preferencesDataSource: PreferencesDataSource,
|
||||||
|
coroutineDispatcherProvider: CoroutineDispatcherProvider,
|
||||||
|
): WalletsRepository {
|
||||||
|
return DefaultWalletsRepository(
|
||||||
|
preferencesDataSource = preferencesDataSource,
|
||||||
|
dispatchers = coroutineDispatcherProvider,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.tangem.domain.settings
|
||||||
|
|
||||||
|
import com.tangem.domain.settings.repositories.LegacySettingsRepository
|
||||||
|
|
||||||
|
class CanUseBiometryUseCase(private val legacySettingsRepository: LegacySettingsRepository) {
|
||||||
|
|
||||||
|
operator fun invoke(): Boolean = legacySettingsRepository.canUseBiometry()
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.tangem.domain.settings
|
||||||
|
|
||||||
|
import com.tangem.domain.settings.repositories.SettingsRepository
|
||||||
|
|
||||||
|
class ShouldShowSaveWalletScreenUseCase(private val settingsRepository: SettingsRepository) {
|
||||||
|
|
||||||
|
suspend operator fun invoke(): Boolean = settingsRepository.shouldShowSaveUserWalletScreen()
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
package com.tangem.domain.settings.repositories
|
||||||
|
|
||||||
|
interface LegacySettingsRepository {
|
||||||
|
|
||||||
|
fun canUseBiometry(): Boolean
|
||||||
|
}
|
||||||
|
|
@ -3,4 +3,6 @@ package com.tangem.domain.settings.repositories
|
||||||
interface SettingsRepository {
|
interface SettingsRepository {
|
||||||
|
|
||||||
suspend fun isUserAlreadyRateApp(): Boolean
|
suspend fun isUserAlreadyRateApp(): Boolean
|
||||||
|
|
||||||
|
suspend fun shouldShowSaveUserWalletScreen(): Boolean
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
package com.tangem.domain.wallets.repository
|
||||||
|
|
||||||
|
interface WalletsRepository {
|
||||||
|
|
||||||
|
suspend fun shouldSaveUserWallets(): Boolean
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.tangem.domain.wallets.usecase
|
||||||
|
|
||||||
|
import com.tangem.domain.wallets.repository.WalletsRepository
|
||||||
|
|
||||||
|
class ShouldSaveUserWalletsUseCase(private val walletsRepository: WalletsRepository) {
|
||||||
|
|
||||||
|
suspend operator fun invoke(): Boolean = walletsRepository.shouldSaveUserWallets()
|
||||||
|
}
|
||||||
|
|
@ -115,12 +115,13 @@ include(":domain:app-theme:models")
|
||||||
// endregion Domain modules
|
// endregion Domain modules
|
||||||
|
|
||||||
// region Data modules
|
// region Data modules
|
||||||
|
include(":data:app-currency")
|
||||||
|
include(":data:app-theme")
|
||||||
include(":data:common")
|
include(":data:common")
|
||||||
include(":data:card")
|
include(":data:card")
|
||||||
include(":data:tokens")
|
include(":data:tokens")
|
||||||
include(":data:source:preferences")
|
include(":data:source:preferences")
|
||||||
include(":data:settings")
|
include(":data:settings")
|
||||||
include(":data:txhistory")
|
include(":data:txhistory")
|
||||||
include(":data:app-currency")
|
include(":data:wallets")
|
||||||
include(":data:app-theme")
|
|
||||||
// endregion Data modules
|
// endregion Data modules
|
||||||
Loading…
Add table
Add a link
Reference in a new issue