From 7c9f58f088531b61d6244ea80328c716f8fb4072 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 20 Apr 2026 18:27:58 +0400 Subject: [PATCH] Updated on 2026-08-14 --- .../amplitude/AmplitudeAnalyticsHandler.kt | 18 ++++++++++-- .../handlers/amplitude/AmplitudeClient.kt | 5 ++++ .../handlers/amplitude/AmplitudeLogClient.kt | 28 ------------------- .../config/environment/EnvironmentConfig.kt | 1 + .../GeneratedEnvironmentConfigConverter.kt | 1 + .../com/tangem/domain/common/LogConfig.kt | 1 - 6 files changed, 22 insertions(+), 32 deletions(-) delete mode 100644 app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeLogClient.kt diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt index a9a25c5acc..72a24b1a69 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeAnalyticsHandler.kt @@ -3,7 +3,9 @@ package com.tangem.tap.common.analytics.handlers.amplitude import com.tangem.core.analytics.api.AnalyticsHandler import com.tangem.core.analytics.api.AnalyticsUserIdHandler import com.tangem.core.analytics.models.AnalyticsEvent +import com.tangem.tap.common.analytics.AnalyticsEventsLogger import com.tangem.tap.common.analytics.api.AnalyticsHandlerBuilder +import com.tangem.wallet.BuildConfig class AmplitudeAnalyticsHandler( private val client: AmplitudeAnalyticsClient, @@ -29,10 +31,20 @@ class AmplitudeAnalyticsHandler( class Builder : AnalyticsHandlerBuilder { override fun build(data: AnalyticsHandlerBuilder.Data): AnalyticsHandler { return AmplitudeAnalyticsHandler( - client = if (data.logConfig.isAmplitudeLogEnabled) { - AmplitudeLogClient(data.jsonConverter) + client = if (BuildConfig.TESTER_MENU_ENABLED) { + AmplitudeClient( + application = data.application, + key = requireNotNull(data.config.amplitudeApiKeyDev) { + "Amplitude api key not found in ${BuildConfig.BUILD_TYPE}" + }, + logger = AnalyticsEventsLogger(name = ID, jsonConverter = data.jsonConverter), + ) } else { - AmplitudeClient(data.application, data.config.amplitudeApiKey) + AmplitudeClient( + application = data.application, + key = data.config.amplitudeApiKey, + logger = null, + ) }, ) } diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeClient.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeClient.kt index a5ffec919c..26e69a96e6 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeClient.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeClient.kt @@ -5,7 +5,9 @@ import com.amplitude.api.Amplitude import com.amplitude.api.AmplitudeClient import com.tangem.core.analytics.api.EventLogger import com.tangem.core.analytics.api.UserIdHolder +import com.tangem.tap.common.analytics.AnalyticsEventsLogger import com.tangem.utils.converter.Converter +import com.tangem.wallet.BuildConfig import org.json.JSONObject /** @@ -16,6 +18,7 @@ interface AmplitudeAnalyticsClient : EventLogger, UserIdHolder internal class AmplitudeClient( application: Application, key: String, + private val logger: AnalyticsEventsLogger?, ) : AmplitudeAnalyticsClient { private val client: AmplitudeClient = Amplitude.getInstance() @@ -23,6 +26,7 @@ internal class AmplitudeClient( init { client.initialize(application, key) client.enableForegroundTracking(application) + client.enableLogging(BuildConfig.TESTER_MENU_ENABLED) } override fun setUserId(userId: String) { @@ -34,6 +38,7 @@ internal class AmplitudeClient( } override fun logEvent(event: String, params: Map) { + logger?.logEvent(event, params) client.logEvent(event, ParamsToJSONObjectConverter().convert(params)) } } diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeLogClient.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeLogClient.kt deleted file mode 100644 index f24a5925a3..0000000000 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/amplitude/AmplitudeLogClient.kt +++ /dev/null @@ -1,28 +0,0 @@ -package com.tangem.tap.common.analytics.handlers.amplitude - -import com.tangem.common.json.MoshiJsonConverter -import com.tangem.tap.common.analytics.AnalyticsEventsLogger - -/** -[REDACTED_AUTHOR] - */ -internal class AmplitudeLogClient( - jsonConverter: MoshiJsonConverter, -) : AmplitudeAnalyticsClient { - - private val logger: AnalyticsEventsLogger = AnalyticsEventsLogger(AmplitudeAnalyticsHandler.ID, jsonConverter) - - private var userId: String? = null - - override fun setUserId(userId: String) { - this.userId = userId - } - - override fun clearUserId() { - this.userId = null - } - - override fun logEvent(event: String, params: Map) { - logger.logEvent(event, params) - } -} \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt index 21e234d6f5..c148966eba 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/EnvironmentConfig.kt @@ -10,6 +10,7 @@ data class EnvironmentConfig( val mercuryoWidgetId: String = "", val mercuryoSecret: String = "", val amplitudeApiKey: String = "", + val amplitudeApiKeyDev: String? = null, val appsFlyerApiKey: String = "", val appsAppId: String = "", val blockchainSdkConfig: BlockchainSdkConfig = BlockchainSdkConfig(), diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/GeneratedEnvironmentConfigConverter.kt b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/GeneratedEnvironmentConfigConverter.kt index 28644f5c6b..f1f941c2b4 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/GeneratedEnvironmentConfigConverter.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/config/environment/converter/GeneratedEnvironmentConfigConverter.kt @@ -28,6 +28,7 @@ internal object GeneratedEnvironmentConfigConverter { mercuryoSecret = GeneratedEnvironmentConfig.mercuryoSecret, blockchainSdkConfig = createBlockchainSdkConfig(), amplitudeApiKey = GeneratedEnvironmentConfig.amplitudeApiKey, + amplitudeApiKeyDev = GeneratedEnvironmentConfig.amplitudeApiKeyDev, appsFlyerApiKey = AppsFlyer.appsFlyerDevKey, appsAppId = AppsFlyer.appsFlyerAppID, walletConnectProjectId = GeneratedEnvironmentConfig.walletConnectProjectId, diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt b/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt index 840894f1ad..fb5ca2619c 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/common/LogConfig.kt @@ -15,7 +15,6 @@ object NetworkLogConfig { object AnalyticsHandlersLogConfig { val isFirebaseLogEnabled: Boolean = BuildConfig.LOG_ENABLED - val isAmplitudeLogEnabled: Boolean = BuildConfig.LOG_ENABLED val isAppsflyerLogEnabled: Boolean = BuildConfig.LOG_ENABLED val isCustomerIoLogEnabled: Boolean = BuildConfig.LOG_ENABLED } \ No newline at end of file