From 3e71ba89acc8f5ffa819f78ac50e558d321570dd Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 24 Jul 2023 19:42:06 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/data/RuntimeUserWalletsStore.kt | 21 +++++++++++++++++++ .../tap/di/data/UserWalletsStoreModule.kt | 21 +++++++++++++++++++ core/datasource/build.gradle.kts | 1 + .../local/userwallet/UserWalletsStore.kt | 9 ++++++++ 4 files changed, 52 insertions(+) create mode 100644 app/src/main/java/com/tangem/tap/data/RuntimeUserWalletsStore.kt create mode 100644 app/src/main/java/com/tangem/tap/di/data/UserWalletsStoreModule.kt create mode 100644 core/datasource/src/main/java/com/tangem/datasource/local/userwallet/UserWalletsStore.kt diff --git a/app/src/main/java/com/tangem/tap/data/RuntimeUserWalletsStore.kt b/app/src/main/java/com/tangem/tap/data/RuntimeUserWalletsStore.kt new file mode 100644 index 0000000000..7542283107 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/data/RuntimeUserWalletsStore.kt @@ -0,0 +1,21 @@ +package com.tangem.tap.data + +import com.tangem.datasource.local.userwallet.UserWalletsStore +import com.tangem.domain.wallets.legacy.WalletsStateHolder +import com.tangem.domain.wallets.models.UserWallet +import com.tangem.domain.wallets.models.UserWalletId +import kotlinx.coroutines.flow.firstOrNull + +// FIXME: Workaround, remove it once the normal UserWalletsStore has been implemented +// [REDACTED_JIRA] +internal class RuntimeUserWalletsStore( + private val walletsStateHolder: WalletsStateHolder, +) : UserWalletsStore { + + override suspend fun getSync(userWalletId: UserWalletId): UserWallet? { + return walletsStateHolder.userWalletsListManager + ?.userWallets + ?.firstOrNull() + ?.firstOrNull { it.walletId == userWalletId } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/di/data/UserWalletsStoreModule.kt b/app/src/main/java/com/tangem/tap/di/data/UserWalletsStoreModule.kt new file mode 100644 index 0000000000..6aeaad1dcf --- /dev/null +++ b/app/src/main/java/com/tangem/tap/di/data/UserWalletsStoreModule.kt @@ -0,0 +1,21 @@ +package com.tangem.tap.di.data + +import com.tangem.datasource.local.userwallet.UserWalletsStore +import com.tangem.domain.wallets.legacy.WalletsStateHolder +import com.tangem.tap.data.RuntimeUserWalletsStore +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal object UserWalletsStoreModule { + + @Provides + @Singleton + fun provideUserWalletsStore(walletsStateHolder: WalletsStateHolder): UserWalletsStore { + return RuntimeUserWalletsStore(walletsStateHolder) + } +} \ No newline at end of file diff --git a/core/datasource/build.gradle.kts b/core/datasource/build.gradle.kts index 34d4fa91a8..7f08451e5b 100644 --- a/core/datasource/build.gradle.kts +++ b/core/datasource/build.gradle.kts @@ -12,6 +12,7 @@ dependencies { implementation(projects.core.utils) implementation(projects.libs.auth) implementation(projects.domain.core) + implementation(projects.domain.wallets.models) /** Tangem libraries */ implementation(deps.tangem.blockchain) diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/userwallet/UserWalletsStore.kt b/core/datasource/src/main/java/com/tangem/datasource/local/userwallet/UserWalletsStore.kt new file mode 100644 index 0000000000..9b4e2693b7 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/local/userwallet/UserWalletsStore.kt @@ -0,0 +1,9 @@ +package com.tangem.datasource.local.userwallet + +import com.tangem.domain.wallets.models.UserWallet +import com.tangem.domain.wallets.models.UserWalletId + +interface UserWalletsStore { + + suspend fun getSync(userWalletId: UserWalletId): UserWallet? +} \ No newline at end of file