diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 323d254426..037d6c2a83 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -221,8 +221,9 @@ dependencies { implementation(projects.features.usedesk.impl) implementation(projects.features.hotWallet.api) implementation(projects.features.hotWallet.impl) - implementation(projects.features.kyc.api) - implementation(projects.features.kyc.impl) + //TODO disable for release because of the permissions + // implementation(projects.features.kyc.api) + // implementation(projects.features.kyc.impl) implementation(projects.features.welcome.api) implementation(projects.features.welcome.impl) implementation(projects.features.createWalletSelection.api) diff --git a/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt b/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt index 28f8fdf2a6..3026ce560a 100644 --- a/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt +++ b/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt @@ -21,6 +21,7 @@ internal class DefaultVisaAuthTokenStorage @Inject constructor( private val secureStorage by lazy { AndroidSecureStorageV2( appContext = applicationContext, + useStrongBox = false, name = "visa_auth_storage", ) } diff --git a/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt b/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt index e6ad08f73d..56acf9f399 100644 --- a/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt +++ b/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt @@ -21,6 +21,7 @@ class DefaultVisaOTPStorage @Inject constructor( private val secureStorage by lazy { AndroidSecureStorageV2( appContext = applicationContext, + useStrongBox = false, name = "visa_otp_storage", ) } diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt index f2e8fb0312..86be1e5223 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt @@ -49,8 +49,9 @@ internal object UserWalletsListManagerModule { return GeneralUserWalletsListManager( runtimeUserWalletsListManager = RuntimeUserWalletsListManager(), biometricUserWalletsListManager = createBiometricUserWalletsListManager( - applicationContext, - analyticsEventHandler, + applicationContext = applicationContext, + analyticsEventHandler = analyticsEventHandler, + dispatchers = dispatchers, ), appPreferencesStore = appPreferencesStore, dispatchers = dispatchers, @@ -60,6 +61,7 @@ internal object UserWalletsListManagerModule { private fun createBiometricUserWalletsListManager( applicationContext: Context, analyticsEventHandler: AnalyticsEventHandler, + dispatchers: CoroutineDispatcherProvider, ): UserWalletsListManager { val moshi = Moshi.Builder() .add(WalletDerivedKeysMapAdapter()) @@ -83,8 +85,14 @@ internal object UserWalletsListManagerModule { ), androidSecureStorageV2 = AndroidSecureStorageV2( appContext = applicationContext, + useStrongBox = true, name = "user_wallets_storage2", ), + androidSecureStorageV3 = AndroidSecureStorageV2( + appContext = applicationContext, + useStrongBox = false, + name = "user_wallets_storage3", + ), ) val authenticatedStorage = AuthenticatedStorage( @@ -114,7 +122,10 @@ internal object UserWalletsListManagerModule { secureStorage = secureStorage, ) - val selectedUserWalletRepository = DefaultSelectedUserWalletRepository(secureStorage = secureStorage) + val selectedUserWalletRepository = DefaultSelectedUserWalletRepository( + secureStorage = secureStorage, + dispatchers = dispatchers, + ) return BiometricUserWalletsListManager( keysRepository = keysRepository, diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt index 2d88e2fc2f..956ce71605 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt @@ -325,7 +325,7 @@ internal class BiometricUserWalletsListManager( } } - private fun findOrSetSelectedWallet( + private suspend fun findOrSetSelectedWallet( prevSelectedWalletId: UserWalletId?, prevSelectedWalletIndex: Int, userWallets: List, diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt index d26064ed09..c9f84cfcea 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt @@ -3,6 +3,6 @@ package com.tangem.tap.domain.userWalletList.repository import com.tangem.domain.models.wallet.UserWalletId internal interface SelectedUserWalletRepository { - fun get(): UserWalletId? - fun set(walletId: UserWalletId?) + suspend fun get(): UserWalletId? + suspend fun set(walletId: UserWalletId?) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt index 56b89b39d6..8398b7726d 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt @@ -3,17 +3,20 @@ package com.tangem.tap.domain.userWalletList.repository.implementation import com.tangem.common.services.secure.SecureStorage import com.tangem.domain.models.wallet.UserWalletId import com.tangem.tap.domain.userWalletList.repository.SelectedUserWalletRepository +import com.tangem.utils.coroutines.CoroutineDispatcherProvider +import kotlinx.coroutines.withContext internal class DefaultSelectedUserWalletRepository( private val secureStorage: SecureStorage, + private val dispatchers: CoroutineDispatcherProvider, ) : SelectedUserWalletRepository { - override fun get(): UserWalletId? { - return secureStorage.get(StorageKey.SelectedWalletId.name) + override suspend fun get(): UserWalletId? = withContext(dispatchers.io) { + secureStorage.get(StorageKey.SelectedWalletId.name) ?.decodeToString(throwOnInvalidSequence = true) ?.let { UserWalletId(it) } } - override fun set(walletId: UserWalletId?) { + override suspend fun set(walletId: UserWalletId?) = withContext(dispatchers.io) { if (walletId == null) { secureStorage.delete(StorageKey.SelectedWalletId.name) } else { diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index 6b99bc3c7e..d33f1e1360 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -25,7 +25,7 @@ }, { "name": "PUSH_NOTIFICATIONS_ENABLED", - "version": "undefined" + "version": "5.26.2" }, { "name": "USEDESK_ENABLED", diff --git a/features/kyc/impl/build.gradle.kts b/features/kyc/impl/build.gradle.kts index 1bf8fc66f2..3e07cc6bd5 100644 --- a/features/kyc/impl/build.gradle.kts +++ b/features/kyc/impl/build.gradle.kts @@ -13,7 +13,8 @@ android { dependencies { /** Api */ - implementation(projects.features.kyc.api) + //TODO disable for release because of the permissions + // implementation(projects.features.kyc.api) /** Domain */ implementation(projects.domain.visa) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index a128712775..7ddc21bb14 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,9 +5,9 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "develop-1121" +tangemBlockchainSdk = "develop-1124" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "develop-501" +tangemCardSdk = "develop-505" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem12" #tangemVico = "0.0.1" # Keep it! - used for local builds ^ diff --git a/settings.gradle.kts b/settings.gradle.kts index f8a60bd046..a2fe4ee7b6 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -257,8 +257,9 @@ include(":features:walletconnect:impl") include(":features:hot-wallet:api") include(":features:hot-wallet:impl") -include(":features:kyc:api") -include(":features:kyc:impl") +//TODO disable for release because of the permissions +// include(":features:kyc:api") +// include(":features:kyc:impl") include(":features:create-wallet-selection:api") include(":features:create-wallet-selection:impl")