Updated on 2026-08-14

This commit is contained in:
Tangem 2024-03-28 10:57:56 +00:00
parent 5c5c04cfb8
commit 62a9dfc991
24 changed files with 98 additions and 54 deletions

View file

@ -2,7 +2,7 @@ package com.tangem.tap.domain.scanCard
import com.tangem.common.CompletionResult
import com.tangem.common.core.TangemError
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.domain.card.ScanCardProcessor
import com.tangem.domain.models.scan.ScanResponse
import com.tangem.tap.common.extensions.inject
@ -27,7 +27,7 @@ internal class DefaultScanCardProcessor : ScanCardProcessor {
@Suppress("LongParameterList")
override suspend fun scan(
analyticsEvent: AnalyticsEvent?,
analyticsSource: AnalyticsParam.ScreensSources,
cardId: String?,
onProgressStateChange: suspend (showProgress: Boolean) -> Unit,
onScanStateChange: suspend (scanInProgress: Boolean) -> Unit,
@ -38,7 +38,7 @@ internal class DefaultScanCardProcessor : ScanCardProcessor {
) {
if (isNewCardScanningEnabled) {
UseCaseScanProcessor.scan(
analyticsEvent,
analyticsSource,
cardId,
onProgressStateChange,
onScanStateChange,
@ -49,7 +49,7 @@ internal class DefaultScanCardProcessor : ScanCardProcessor {
)
} else {
LegacyScanProcessor.scan(
analyticsEvent,
analyticsSource,
cardId,
onProgressStateChange,
onScanStateChange,

View file

@ -7,6 +7,8 @@ import com.tangem.common.doOnFailure
import com.tangem.common.doOnSuccess
import com.tangem.core.analytics.Analytics
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.Basic
import com.tangem.core.navigation.AppScreen
import com.tangem.core.navigation.NavigationAction
import com.tangem.domain.common.TapWorkarounds.canSkipBackup
@ -45,7 +47,7 @@ internal object LegacyScanProcessor {
@Suppress("LongParameterList")
suspend fun scan(
analyticsEvent: AnalyticsEvent?,
analyticsSource: AnalyticsParam.ScreensSources,
cardId: String?,
onProgressStateChange: suspend (showProgress: Boolean) -> Unit,
onScanStateChange: suspend (scanInProgress: Boolean) -> Unit,
@ -61,7 +63,8 @@ internal object LegacyScanProcessor {
val result = tangemSdkManager.scanProduct(cardId)
store.dispatchOnMain(GlobalAction.ScanFailsCounter.ChooseBehavior(result))
val analyticsEvent = Basic.CardWasScanned(analyticsSource)
store.dispatchOnMain(GlobalAction.ScanFailsCounter.ChooseBehavior(result, analyticsSource))
result
.doOnFailure { error ->

View file

@ -3,7 +3,8 @@ package com.tangem.tap.domain.scanCard
import arrow.fx.coroutines.resourceScope
import com.tangem.common.CompletionResult
import com.tangem.common.core.TangemError
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.Basic
import com.tangem.core.navigation.AppScreen
import com.tangem.core.navigation.NavigationAction
import com.tangem.domain.card.ScanCardException
@ -34,7 +35,7 @@ internal object UseCaseScanProcessor {
@Suppress("LongParameterList")
suspend fun scan(
analyticsEvent: AnalyticsEvent?,
analyticsSource: AnalyticsParam.ScreensSources,
cardId: String?,
onProgressStateChange: suspend (showProgress: Boolean) -> Unit,
onScanStateChange: suspend (scanInProgress: Boolean) -> Unit,
@ -48,9 +49,7 @@ internal object UseCaseScanProcessor {
val scanCardUseCase = store.inject(DaggerGraphState::scanCardUseCase)
val chains = buildList {
add(ScanningFinishedChain { onScanStateChange(false) })
if (analyticsEvent != null) {
add(AnalyticsChain(analyticsEvent))
}
add(AnalyticsChain(Basic.CardWasScanned(analyticsSource)))
add(DisclaimerChain(store, disclaimerWillShow))
add(CheckForOnboardingChain(store, store.state.globalState.tapWalletManager))
}