From ff1c933a7bf0655d9b5760869c9f5fe2a88d7946 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 25 Oct 2022 21:36:29 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../analytics/GlobalAnalyticsHandler.kt | 40 ++++++++++++++++++- .../tap/common/redux/global/GlobalState.kt | 2 +- 2 files changed, 40 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 f80aacdc29..e51030526f 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 @@ -11,12 +11,42 @@ import com.tangem.tap.common.analytics.api.ErrorEventHandler import com.tangem.tap.common.analytics.api.ErrorEventLogger import com.tangem.tap.common.analytics.api.SdkErrorEventHandler import com.tangem.tap.common.analytics.api.ShopifyOrderEventHandler +import com.tangem.tap.common.analytics.events.AnalyticsEvent import com.tangem.tap.common.extensions.filterNotNull interface GlobalAnalyticsEventHandler : AnalyticsEventHandler, ErrorEventHandler, SdkErrorEventHandler, - ShopifyOrderEventHandler + ShopifyOrderEventHandler { + + companion object { + fun stub(): GlobalAnalyticsEventHandler { + return object : GlobalAnalyticsEventHandler { + override fun handleEvent(event: String, params: Map) {} + + override fun handleErrorEvent(error: Throwable, params: Map) {} + + override fun handleCardSdkErrorEvent( + error: TangemSdkError, + action: AnalyticsAnOld.ActionToLog, + params: Map, + card: Card?, + ) { + } + + override fun handleBlockchainSdkErrorEvent( + error: BlockchainError, + action: AnalyticsAnOld.ActionToLog, + params: Map, + card: Card?, + ) { + } + + override fun handleShopifyOrderEvent(order: Storefront.Order) {} + } + } + } +} class GlobalAnalyticsHandler( private val analyticsHandlers: List, @@ -26,6 +56,14 @@ class GlobalAnalyticsHandler( analyticsHandlers.forEach { it.handleEvent(event, params) } } + override fun handleAnalyticsEvent( + event: AnalyticsEvent, + card: Card?, + blockchain: String?, + ) { + analyticsHandlers.forEach { it.handleAnalyticsEvent(event, card, blockchain) } + } + override fun handleAnalyticsEvent( event: AnalyticsEventAnOld, params: Map, diff --git a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt index 55b8d535b3..a02172db23 100644 --- a/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt +++ b/app/src/main/java/com/tangem/tap/common/redux/global/GlobalState.kt @@ -27,7 +27,7 @@ data class GlobalState( val dialog: StateDialog? = null, val exchangeManager: CurrencyExchangeManager = CurrencyExchangeManager.dummy(), val resources: AndroidResources = AndroidResources(), - val analyticsHandler: GlobalAnalyticsEventHandler? = null, + val analyticsHandler: GlobalAnalyticsEventHandler = GlobalAnalyticsEventHandler.stub(), val userCountryCode: String? = null, ) : StateType