Updated on 2026-08-14
This commit is contained in:
parent
85bb0d4214
commit
7c9f58f088
6 changed files with 22 additions and 32 deletions
|
|
@ -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,
|
||||
)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String, String>) {
|
||||
logger?.logEvent(event, params)
|
||||
client.logEvent(event, ParamsToJSONObjectConverter().convert(params))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String, String>) {
|
||||
logger.logEvent(event, params)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue