package com.contentsquare.rn.csq import com.contentsquare.CSQ import com.contentsquare.android.api.model.CustomVar import com.contentsquare.api.model.Transaction import com.contentsquare.rn.externalbridge.XpfInterfaceBridge import com.contentsquare.rn.utils.ReactNativeUiThreadUtil import io.heap.core.Heap import io.heap.core.api.plugin.model.SourceInfo import java.util.Date class CSQEventTracking( private val reactNativeUiThreadUtil: ReactNativeUiThreadUtil, private val xpfInterfaceBridge: XpfInterfaceBridge = XpfInterfaceBridge.Factory.defaultInstance() ) { fun trackScreenView(name: String, customVars: List = emptyList(), sourceInfo: SourceInfo?) { reactNativeUiThreadUtil.runOnUiThread { xpfInterfaceBridge.trackScreenView( name, customVars, sourceInfo?.name, sourceInfo?.version, sourceInfo?.platform ) } } fun trackTransaction(transaction: Transaction) { reactNativeUiThreadUtil.runOnUiThread { CSQ.trackTransaction(transaction) } } fun trackEvent( event: String, properties: Map, sourceInfo: SourceInfo? ) { reactNativeUiThreadUtil.runOnUiThread { Heap.track( event = event, properties = properties, timestamp = Date(), sourceInfo = sourceInfo, pageview = null ) } } }