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