@@ -2,10 +2,12 @@ package com.sourcepoint.reactnativecmp
22
33import android.view.View
44import com.facebook.react.bridge.Arguments.createMap
5+ import com.facebook.react.bridge.Callback
56import com.facebook.react.bridge.Promise
67import com.facebook.react.bridge.ReactApplicationContext
78import com.facebook.react.bridge.ReactMethod
89import com.facebook.react.bridge.ReadableMap
10+ import com.facebook.react.bridge.ReadableArray
911import com.facebook.react.module.annotations.ReactModule
1012import com.sourcepoint.cmplibrary.NativeMessageController
1113import com.sourcepoint.cmplibrary.SpClient
@@ -20,7 +22,9 @@ import com.sourcepoint.cmplibrary.model.exposed.SPConsents
2022import com.sourcepoint.cmplibrary.util.clearAllData
2123import com.sourcepoint.cmplibrary.util.userConsents
2224import com.sourcepoint.reactnativecmp.arguments.BuildOptions
25+ import com.sourcepoint.reactnativecmp.arguments.toList
2326import com.sourcepoint.reactnativecmp.consents.RNSPUserData
27+ import com.sourcepoint.reactnativecmp.consents.RNSPGDPRConsent
2428import org.json.JSONObject
2529
2630data class SPLoadMessageParams (val authId : String? ) {
@@ -48,7 +52,7 @@ class ReactNativeCmpModule(reactContext: ReactApplicationContext) : NativeReactN
4852 addAccountId(accountId.toInt())
4953 addPropertyName(propertyName)
5054 addPropertyId(propertyId.toInt())
51- addMessageTimeout(parsedOptions.messageTimeoutInSeconds )
55+ addMessageTimeout(parsedOptions.messageTimeoutInMilliseconds )
5256 addMessageLanguage(parsedOptions.language)
5357 convertedCampaigns.gdpr?.let {
5458 addCampaign(campaignType = GDPR , params = it.targetingParams, groupPmId = it.groupPmId)
@@ -84,10 +88,9 @@ class ReactNativeCmpModule(reactContext: ReactApplicationContext) : NativeReactN
8488 override fun loadMessage (params : ReadableMap ? ) {
8589 val parsedParams = SPLoadMessageParams (fromReadableMap = params)
8690
87- runOnMainThread { spConsentLib?.loadMessage(
88- authId = parsedParams.authId,
89- cmpViewId = View .generateViewId()
90- ) }
91+ runOnMainThread {
92+ spConsentLib?.loadMessage(authId = parsedParams.authId, cmpViewId = View .generateViewId())
93+ }
9194 }
9295
9396 @ReactMethod
@@ -122,6 +125,40 @@ class ReactNativeCmpModule(reactContext: ReactApplicationContext) : NativeReactN
122125 runOnMainThread { spConsentLib?.dismissMessage() }
123126 }
124127
128+ override fun postCustomConsentGDPR (vendors : ReadableArray , categories : ReadableArray , legIntCategories : ReadableArray , callback : Callback ) {
129+ runOnMainThread {
130+ spConsentLib?.customConsentGDPR(
131+ vendors.toList(),
132+ categories.toList(),
133+ legIntCategories.toList(),
134+ success = { consents ->
135+ if (consents?.gdpr != null ) {
136+ callback.invoke(RNSPGDPRConsent (consents.gdpr!! .consent).toRN())
137+ } else {
138+ callback.invoke(RNSPGDPRConsent (applies = true ).toRN())
139+ }
140+ }
141+ )
142+ }
143+ }
144+
145+ override fun postDeleteCustomConsentGDPR (vendors : ReadableArray , categories : ReadableArray , legIntCategories : ReadableArray , callback : Callback ) {
146+ runOnMainThread {
147+ spConsentLib?.deleteCustomConsentTo(
148+ vendors.toList(),
149+ categories.toList(),
150+ legIntCategories.toList(),
151+ success = { consents ->
152+ if (consents?.gdpr != null ) {
153+ callback.invoke(RNSPGDPRConsent (consents.gdpr!! .consent).toRN())
154+ } else {
155+ callback.invoke(RNSPGDPRConsent (applies = true ).toRN())
156+ }
157+ }
158+ )
159+ }
160+ }
161+
125162 companion object {
126163 const val NAME = " ReactNativeCmp"
127164 }
0 commit comments