From cecadddbc250864a9b016e58b1ef7a883516b50d Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 25 Oct 2022 21:50:58 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../common/analytics/GlobalAnalyticsHandler.kt | 17 +++++++++++++++-- .../common/analytics/events/AnalyticsParam.kt | 4 ++++ .../tap/features/home/redux/HomeMiddleware.kt | 3 +++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt index e51030526f..d1bef7d01b 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/GlobalAnalyticsHandler.kt @@ -19,13 +19,14 @@ interface GlobalAnalyticsEventHandler : AnalyticsEventHandler, SdkErrorEventHandler, ShopifyOrderEventHandler { + fun attachToAllEvents(key: String, value: String) + companion object { fun stub(): GlobalAnalyticsEventHandler { return object : GlobalAnalyticsEventHandler { + override fun attachToAllEvents(key: String, value: String) {} override fun handleEvent(event: String, params: Map) {} - override fun handleErrorEvent(error: Throwable, params: Map) {} - override fun handleCardSdkErrorEvent( error: TangemSdkError, action: AnalyticsAnOld.ActionToLog, @@ -52,6 +53,12 @@ class GlobalAnalyticsHandler( private val analyticsHandlers: List, ) : GlobalAnalyticsEventHandler { + private val attachToAllEventsParams: MutableMap = mutableMapOf() + + override fun attachToAllEvents(key: String, value: String) { + attachToAllEventsParams[key] = value + } + override fun handleEvent(event: String, params: Map) { analyticsHandlers.forEach { it.handleEvent(event, params) } } @@ -106,6 +113,12 @@ class GlobalAnalyticsHandler( it.handleShopifyOrderEvent(order) } } + + override fun prepareParams(card: Card?, blockchain: String?, params: Map): Map { + return super.prepareParams(card, blockchain, params).toMutableMap().apply { + putAll(attachToAllEventsParams) + } + } } fun GlobalAnalyticsEventHandler.logWcEvent(event: AnalyticsAnOld.WcAnalyticsEvent) { diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt index aa8d8439f4..9d971d8f01 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt @@ -49,4 +49,8 @@ sealed class AnalyticsParam { object LinkedIn : SocialNetwork("LinkedIn") object GitHub : SocialNetwork("GitHub") } + + companion object Key { + const val BatchId = "batch_id" + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt index 569c2c4a77..ef916d18c7 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt @@ -9,6 +9,7 @@ import com.tangem.tap.DELAY_SDK_DIALOG_CLOSE import com.tangem.tap.common.analytics.AnalyticsEventAnOld import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.analytics.GetCardSourceParamsAnOld +import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.entities.IndeterminateProgressButton import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.extensions.dispatchOpenUrl @@ -121,6 +122,8 @@ private fun onScanSuccess(scanResponse: ScanResponse) { val tapWalletManager = globalState.tapWalletManager tapWalletManager.updateConfigManager(scanResponse) + globalState.analyticsHandler.attachToAllEvents(AnalyticsParam.BatchId, scanResponse.card.batchId) + store.dispatch(TwinCardsAction.IfTwinsPrepareState(scanResponse)) if (scanResponse.isSaltPay()) {