package com.contentsquare.rn.csq import com.contentsquare.rn.ContentsquareModuleImpl import com.contentsquare.rn.eventEmitter.CSEventEmitterModuleImpl import com.contentsquare.rn.utils.ReactNativeUiThreadUtil import com.contentsquare.rn.webview.WebViewInjector import com.facebook.react.bridge.Callback import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReadableArray import com.facebook.react.bridge.ReadableMap /** * Wrapper class for ContentsquareModuleImpl to provide legacy functionality. * This class is included when enableCsqSdk=false. */ class LegacyTransitionWrapper( reactContext: ReactApplicationContext, webViewInjector: WebViewInjector, csEventEmitterModuleImpl: CSEventEmitterModuleImpl, reactNativeUiThreadUtil: ReactNativeUiThreadUtil ) : TransitionWrapperInterface { private val contentsquareLegacy = ContentsquareModuleImpl( reactContext, webViewInjector, csEventEmitterModuleImpl, reactNativeUiThreadUtil ) override fun getName(): String { return ContentsquareModuleImpl.NAME } override fun getConstants(): Map { return ContentsquareModuleImpl.getConstants() } override fun stopTracking() { contentsquareLegacy.stopTracking() } override fun resumeTracking() { contentsquareLegacy.resumeTracking() } override fun start() { // Use the legacy implementation contentsquareLegacy.start() } override fun getUserId(cb: Callback) { contentsquareLegacy.getUserId(cb) } override fun optIn() { contentsquareLegacy.optIn() } override fun optOut() { contentsquareLegacy.optOut() } override fun setDefaultMasking(isMasked: Boolean) { contentsquareLegacy.setDefaultMasking(isMasked) } override fun initComponents(params: ReadableMap) { contentsquareLegacy.initComponents(params) } override fun send(screenView: String, customVars: ReadableArray?) { contentsquareLegacy.send(screenView, customVars) } override fun sendTransaction(id: String?, value: Float, currency: Int) { contentsquareLegacy.sendTransaction(id, value, currency) } override fun sendTransactionWithStringCurrency(id: String?, value: Float, currency: String) { contentsquareLegacy.sendTransactionWithStringCurrency(id, value, currency) } override fun sendDynamicStringVar(key: String, value: String) { contentsquareLegacy.sendDynamicStringVar(key, value) } override fun sendDynamicIntVar(key: String, value: Int) { contentsquareLegacy.sendDynamicIntVar(key, value) } override fun sendUserIdentifier(userIdentifier: String) { contentsquareLegacy.sendUserIdentifier(userIdentifier) } override fun setOnSessionReplayLinkChange() { contentsquareLegacy.setOnSessionReplayLinkChange() } override fun injectWebView(webViewTag: Int) { contentsquareLegacy.injectWebView(webViewTag) } override fun removeWebViewInjection(webViewTag: Int) { contentsquareLegacy.removeWebViewInjection(webViewTag) } override fun monitorWarn(params: ReadableMap) { contentsquareLegacy.monitorWarn(params) } override fun monitorError(params: ReadableMap) { contentsquareLegacy.monitorError(params) } // CSQ new methods not implemented in legacy mode override fun configureProductAnalytics(envId: String, productAnalyticsOptions: ReadableMap?) { //no-op } override fun stop() { //no-op } override fun pauseTracking() { //no-op } override fun addDynamicVar(key: String, value: Double) { //no-op } override fun addDynamicVar(key: String, value: String) { //no-op } override fun identify(identity: String) { //no-op } override fun resetIdentity() { //no-op } override fun trackScreenView(name: String, customVars: ReadableArray?, sourceInfo: ReadableMap?) { //no-op } override fun trackTransaction(id: String?, value: Float, currency: Int) { //no-op } override fun trackTransaction(id: String?, value: Float, currency: String) { //no-op } override fun trackEvent(event: String, properties: ReadableMap?, sourceInfo: ReadableMap?) { //no-op } override fun registerWebView(webViewTag: Int) { //no-op } override fun unregisterWebView(webViewTag: Int) { //no-op } override fun addEventProperties(properties: ReadableMap) { //no-op } override fun removeEventProperty(name: String) { //no-op } override fun clearEventProperties() { //no-op } override fun addUserProperties(properties: ReadableMap) { //no-op } override fun setUrlMaskingPatterns(patterns: ReadableArray) { //no-op } override fun triggerNativeCrash() { //no-op } override fun setOnMetadataChange() { //no-op } }