diff --git a/android/src/main/java/com/sourcepoint/reactnativecmp/RNSourcepointCmpTypes.kt b/android/src/main/java/com/sourcepoint/reactnativecmp/RNSourcepointCmpTypes.kt index b0cf086..0608e9c 100644 --- a/android/src/main/java/com/sourcepoint/reactnativecmp/RNSourcepointCmpTypes.kt +++ b/android/src/main/java/com/sourcepoint/reactnativecmp/RNSourcepointCmpTypes.kt @@ -6,6 +6,8 @@ import com.sourcepoint.cmplibrary.model.CampaignsEnv.* import com.sourcepoint.cmplibrary.model.exposed.ActionType import com.sourcepoint.cmplibrary.model.exposed.ActionType.* import com.sourcepoint.cmplibrary.model.exposed.TargetingParam +import com.sourcepoint.cmplibrary.data.network.util.CampaignType +import com.sourcepoint.cmplibrary.data.network.util.CampaignType.* fun campaignsEnvFrom(rawValue: String?): CampaignsEnv? = when (rawValue) { @@ -14,6 +16,15 @@ fun campaignsEnvFrom(rawValue: String?): CampaignsEnv? = else -> { null } } +fun campaignTypeFrom(rawValue: String?): CampaignType = + when (rawValue) { + "gdpr" -> GDPR + "usnat" -> USNAT + "globalcmp" -> GLOBALCMP + "preferences" -> PREFERENCES + else -> { CampaignType.UNKNOWN } +} + data class SPCampaign( val rawTargetingParam: ReadableMap?, val supportLegacyUSPString: Boolean, diff --git a/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt b/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt index c64ba41..0a256a6 100644 --- a/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt +++ b/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt @@ -158,6 +158,12 @@ class ReactNativeCmpModule(reactContext: ReactApplicationContext) : NativeReactN } } + override fun rejectAll(campaignType: String) { + runOnMainThread { + spConsentLib?.rejectAll(campaignTypeFrom(campaignType)) + } + } + companion object { const val NAME = "ReactNativeCmp" } diff --git a/example/src/App.tsx b/example/src/App.tsx index d266d5c..63f340a 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -11,6 +11,7 @@ import { LaunchArguments } from 'react-native-launch-arguments'; import SPConsentManager, { SPCampaignEnvironment, + SPCampaignType, SPMessageLanguage, } from '@sourcepoint/react-native-cmp'; import type { GDPRConsent, SPCampaigns, SPUserData } from '@sourcepoint/react-native-cmp'; @@ -122,6 +123,11 @@ export default function App() { consentManager.current?.loadGDPRPrivacyManager(config.gdprPMId); }, []); + const onRejectAllGDPRPMPress = useCallback(() => { + setSDKStatus(SDKStatus.Networking); + consentManager.current?.rejectAll(SPCampaignType.Gdpr); + }, []); + const onUSNATPMPress = useCallback(() => { setSDKStatus(SDKStatus.Networking); consentManager.current?.loadUSNatPrivacyManager(config.usnatPMId); @@ -202,6 +208,11 @@ export default function App() { onPress={onGDPRPMPress} disabled={disable || config.campaigns.gdpr === undefined} /> +