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}
/>
+