package com.smartechbasereactnative import com.facebook.react.bridge.* import com.facebook.react.bridge.ReactContext import com.netcore.android.Smartech import com.smartechbasereactnative.SmartechBaseReactNativeImpl.Companion.SMARTECH_WIDGET class SmartechBaseReactNativeModule(reactContext: ReactApplicationContext) : NativeSmartechBaseReactNativeSpec(reactContext) { val smartechBaseReactNativeImpl = SmartechBaseReactNativeImpl(reactContext) override fun getName(): String = SmartechBaseReactNativeImpl.NAME override fun getTypedExportedConstants(): Map { return smartechBaseReactNativeImpl.getConstants() } override fun trackAppUpdate() { smartechBaseReactNativeImpl.trackAppUpdate() } override fun trackAppInstall() { smartechBaseReactNativeImpl.trackAppInstall() } override fun trackAppInstallUpdateBySmartech() { smartechBaseReactNativeImpl.trackAppInstallUpdateBySmartech() } override fun trackEvent(eventName: String, payload: ReadableMap) { smartechBaseReactNativeImpl.trackEvent(eventName, payload) } // User identity methods override fun login(identity: String) { smartechBaseReactNativeImpl.login(identity) } override fun logoutAndClearUserIdentity(isLogout: Boolean) { smartechBaseReactNativeImpl.logoutAndClearUserIdentity(isLogout) } override fun setUserIdentity(identity: String, callback: Callback) { smartechBaseReactNativeImpl.setUserIdentity(identity, callback) } override fun getUserIdentity(callback: Callback) { smartechBaseReactNativeImpl.getUserIdentity(callback) } override fun clearUserIdentity() { smartechBaseReactNativeImpl.clearUserIdentity() } // User profile methods override fun updateUserProfile(profileData: ReadableMap) { smartechBaseReactNativeImpl.updateUserProfile(profileData) } // GDPR methods override fun optTracking(value: Boolean) { smartechBaseReactNativeImpl.optTracking(value) } override fun hasOptedTracking(callback: Callback) { smartechBaseReactNativeImpl.hasOptedTracking(callback) } override fun optInAppMessage(value: Boolean) { smartechBaseReactNativeImpl.optInAppMessage(value) } override fun hasOptedInAppMessage(callback: Callback) { smartechBaseReactNativeImpl.hasOptedInAppMessage(callback) } // Location methods override fun setUserLocation(latitude: Double, longitude: Double) { smartechBaseReactNativeImpl.setUserLocation(latitude, longitude) } // Helper methods override fun getAppId(callback: Callback) { smartechBaseReactNativeImpl.getAppId(callback) } override fun getDeviceGuid(callback: Callback) { smartechBaseReactNativeImpl.getDeviceGuid(callback) } override fun getNetcoreUnbxdIdentity(callback: Callback) { smartechBaseReactNativeImpl.getNetcoreUnbxdIdentity(callback) } override fun getPartnerParametersString(callback: Callback) { smartechBaseReactNativeImpl.getPartnerParametersString(callback) } override fun getSDKVersion(callback: Callback) { smartechBaseReactNativeImpl.getSDKVersion(callback) } override fun setDeeplinkInit() { smartechBaseReactNativeImpl.setDeeplinkInit() } override fun getWidgetByName(name: String) { smartechBaseReactNativeImpl.getWidgetByName(name) } override fun getWidgetByNames(names: ReadableArray) { smartechBaseReactNativeImpl.getWidgetByNames(names) } override fun getAllWidgets() { smartechBaseReactNativeImpl.getAllWidgets() } override fun trackWidgetAsViewed(widget: ReadableMap?) { try { smartechBaseReactNativeImpl.trackWidgetAsViewed(widget) } catch (e: Exception) { e.printStackTrace() } } override fun trackWidgetAsClicked(widget: ReadableMap?) { try { smartechBaseReactNativeImpl.trackWidgetAsClicked(widget) } catch (e: Exception) { e.printStackTrace() } } override fun getAllWidgetNames(callback: Callback) { smartechBaseReactNativeImpl.getAllWidgetNames(callback) } override fun addListener(eventName: String) { } override fun removeListeners(count: Double) { } }