From 5006ccd343e14d749bd1c5afb42164410ba37a7b Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Oct 2024 17:49:35 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../CardContextInterceptor.kt | 40 ++++++++++++------- .../wallet/ui/OnboardingWalletFragment.kt | 1 + .../data/wallets/DefaultWalletsRepository.kt | 6 +++ .../wallets/repository/WalletsRepository.kt | 2 + 4 files changed, 35 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt b/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt index e7c6feee04..edc221250e 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt @@ -10,7 +10,11 @@ import com.tangem.tap.common.analytics.converters.ParamCardCurrencyConverter import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.IntroductionProcess import com.tangem.tap.common.analytics.events.MainScreen +import com.tangem.tap.common.extensions.inject import com.tangem.tap.features.demo.DemoHelper +import com.tangem.tap.proxy.redux.DaggerGraphState +import com.tangem.tap.store +import kotlinx.coroutines.runBlocking /** [REDACTED_AUTHOR] @@ -19,6 +23,8 @@ class CardContextInterceptor( private val scanResponse: ScanResponse, ) : ParamsInterceptor { + private val walletsRepository = store.inject(DaggerGraphState::walletsRepository) + private val userWalletId = UserWalletIdBuilder.scanResponse(scanResponse).build() override fun id(): String = CardContextInterceptor.id() @@ -33,7 +39,7 @@ class CardContextInterceptor( override fun intercept(params: MutableMap) { val card = scanResponse.card params[AnalyticsParam.BATCH] = card.batchId - params[AnalyticsParam.PRODUCT_TYPE] = getProductType(scanResponse) + params[AnalyticsParam.PRODUCT_TYPE] = getProductType() params[AnalyticsParam.FIRMWARE] = card.firmwareVersion.stringValue if (userWalletId != null) { params[AnalyticsParam.USER_WALLET_ID] = userWalletId.stringValue @@ -44,7 +50,13 @@ class CardContextInterceptor( } } - private fun getProductType(scanResponse: ScanResponse): String { + private fun getProductType(): String { + if (scanResponse.productType != ProductType.Ring && userWalletId != null) { + val isWalletWithRing = runBlocking { walletsRepository.isWalletWithRing(userWalletId) } + + if (isWalletWithRing) return "Ring" + } + return when (scanResponse.productType) { ProductType.Note -> "Note" ProductType.Twins -> "Twin" @@ -53,18 +65,18 @@ class CardContextInterceptor( ProductType.Ring -> "Ring" ProductType.Start2Coin -> "Start2Coin" ProductType.Visa -> "VISA" - else -> if (DemoHelper.isDemoCard(scanResponse)) { - if (DemoHelper.isTestDemoCard(scanResponse)) { - "Demo Test" - } else { - when (scanResponse.card.cardId.substring(0..1)) { - "AC" -> "Demo Wallet" - "AB" -> "Demo Note" - else -> "Demo Other" - } - } - } else { - "Other" + else -> if (DemoHelper.isDemoCard(scanResponse)) getDemoCardProductType() else "Other" + } + } + + private fun getDemoCardProductType(): String { + return if (DemoHelper.isTestDemoCard(scanResponse)) { + "Demo Test" + } else { + when (scanResponse.card.cardId.substring(0..1)) { + "AC" -> "Demo Wallet" + "AB" -> "Demo Note" + else -> "Demo Other" } } } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index fb9acfefd5..b08e95d228 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -187,6 +187,7 @@ class OnboardingWalletFragment : when { state.wallet2State != null -> { seedPhraseStateHandler.newState(this, state, seedPhraseViewModel) + seedPhraseViewModel.setCardArtworkUri(cardArtworkUri = state.walletImages.primaryCardImage.toString()) updateWalletImagesState(state.walletImages) } else -> { diff --git a/data/wallets/src/main/java/com/tangem/data/wallets/DefaultWalletsRepository.kt b/data/wallets/src/main/java/com/tangem/data/wallets/DefaultWalletsRepository.kt index 62dcafbe9c..b7102a6b52 100644 --- a/data/wallets/src/main/java/com/tangem/data/wallets/DefaultWalletsRepository.kt +++ b/data/wallets/src/main/java/com/tangem/data/wallets/DefaultWalletsRepository.kt @@ -25,6 +25,12 @@ internal class DefaultWalletsRepository( appPreferencesStore.store(key = PreferencesKeys.SAVE_USER_WALLETS_KEY, value = item) } + override suspend fun isWalletWithRing(userWalletId: UserWalletId): Boolean { + return appPreferencesStore + .getSyncOrDefault(key = PreferencesKeys.ADDED_WALLETS_WITH_RING_KEY, default = emptySet()) + .contains(element = userWalletId.stringValue) + } + override suspend fun setHasWalletsWithRing(userWalletId: UserWalletId) { appPreferencesStore.editData { val added = it[PreferencesKeys.ADDED_WALLETS_WITH_RING_KEY].orEmpty() diff --git a/domain/wallets/src/main/java/com/tangem/domain/wallets/repository/WalletsRepository.kt b/domain/wallets/src/main/java/com/tangem/domain/wallets/repository/WalletsRepository.kt index 2239d356b5..ff8f854078 100644 --- a/domain/wallets/src/main/java/com/tangem/domain/wallets/repository/WalletsRepository.kt +++ b/domain/wallets/src/main/java/com/tangem/domain/wallets/repository/WalletsRepository.kt @@ -11,5 +11,7 @@ interface WalletsRepository { suspend fun saveShouldSaveUserWallets(item: Boolean) + suspend fun isWalletWithRing(userWalletId: UserWalletId): Boolean + suspend fun setHasWalletsWithRing(userWalletId: UserWalletId) } \ No newline at end of file