diff --git a/android/src/main/kotlin/com/usercentrics/sdk/flutter/bridge/DenyAllForTCFBridge.kt b/android/src/main/kotlin/com/usercentrics/sdk/flutter/bridge/DenyAllForTCFBridge.kt index a4dfcef..3c9fbf3 100644 --- a/android/src/main/kotlin/com/usercentrics/sdk/flutter/bridge/DenyAllForTCFBridge.kt +++ b/android/src/main/kotlin/com/usercentrics/sdk/flutter/bridge/DenyAllForTCFBridge.kt @@ -20,10 +20,12 @@ internal class DenyAllForTCFBridge( assert(name == call.method) val argsMap = call.arguments as Map<*, *> val unsavedPurposeLIDecisions = (argsMap["unsavedPurposeLIDecisions"] as? Map) + val unsavedVendorLIDecisions = (argsMap["unsavedVendorLIDecisions"] as? Map) val consents = usercentrics.instance.denyAllForTCF( fromLayer = TCFDecisionUILayer.valueOf(argsMap["fromLayer"] as String), consentType = UsercentricsConsentType.valueOf(argsMap["consentType"] as String), - unsavedPurposeLIDecisions = unsavedPurposeLIDecisions + unsavedPurposeLIDecisions = unsavedPurposeLIDecisions, + unsavedVendorLIDecisions = unsavedVendorLIDecisions ) result.success(consents.map { it.serialize() }) } diff --git a/example/test/fake_usercentrics.dart b/example/test/fake_usercentrics.dart index a6fdfcb..5d63e84 100644 --- a/example/test/fake_usercentrics.dart +++ b/example/test/fake_usercentrics.dart @@ -81,6 +81,7 @@ class FakeUsercentrics extends UsercentricsPlatform { required UsercentricsConsentType consentType, required TCFDecisionUILayer fromLayer, Map? unsavedPurposeLIDecisions, + Map? unsavedVendorLIDecisions, }) { throw UnimplementedError(); } diff --git a/ios/Classes/Bridge/DenyAllForTCFBridge.swift b/ios/Classes/Bridge/DenyAllForTCFBridge.swift index 47f6162..8110b7b 100644 --- a/ios/Classes/Bridge/DenyAllForTCFBridge.swift +++ b/ios/Classes/Bridge/DenyAllForTCFBridge.swift @@ -11,7 +11,8 @@ struct DenyAllForTCFBridge : MethodBridge { let fromLayer = TCFDecisionUILayer.initialize(from: argsDict["fromLayer"])! let consentType = UsercentricsConsentType.initialize(from: argsDict["consentType"])! let unsavedPurposeLIDecisions = (argsDict["unsavedPurposeLIDecisions"] as? [Int: Bool])?.asKotlinIntBooleanDict() - let consents = usercentrics.shared.denyAllForTCF(fromLayer: fromLayer, consentType: consentType, unsavedPurposeLIDecisions: unsavedPurposeLIDecisions) + let unsavedVendorLIDecisions = (argsDict["unsavedVendorLIDecisions"] as? [Int: Bool])?.asKotlinIntBooleanDict() + let consents = usercentrics.shared.denyAllForTCF(fromLayer: fromLayer, consentType: consentType, unsavedPurposeLIDecisions: unsavedPurposeLIDecisions, unsavedVendorLIDecisions: unsavedVendorLIDecisions) result(consents.map { $0.serialize() }) } } diff --git a/lib/src/internal/bridge/deny_all_for_tcf_bridge.dart b/lib/src/internal/bridge/deny_all_for_tcf_bridge.dart index b09554c..fc61ed9 100644 --- a/lib/src/internal/bridge/deny_all_for_tcf_bridge.dart +++ b/lib/src/internal/bridge/deny_all_for_tcf_bridge.dart @@ -12,6 +12,7 @@ abstract class DenyAllForTCFBridge { required TCFDecisionUILayer fromLayer, required UsercentricsConsentType consentType, Map? unsavedPurposeLIDecisions, + Map? unsavedVendorLIDecisions, }); } @@ -26,6 +27,7 @@ class MethodChannelDenyAllForTCF extends DenyAllForTCFBridge { required TCFDecisionUILayer fromLayer, required UsercentricsConsentType consentType, Map? unsavedPurposeLIDecisions, + Map? unsavedVendorLIDecisions, }) async { final result = await channel.invokeMethod( _name, @@ -34,6 +36,8 @@ class MethodChannelDenyAllForTCF extends DenyAllForTCFBridge { 'consentType': ConsentTypeSerializer.serialize(consentType), if (unsavedPurposeLIDecisions != null) 'unsavedPurposeLIDecisions': unsavedPurposeLIDecisions, + if (unsavedVendorLIDecisions != null) + 'unsavedVendorLIDecisions': unsavedVendorLIDecisions, }, ); return (result as List) diff --git a/lib/src/internal/platform/method_channel_usercentrics.dart b/lib/src/internal/platform/method_channel_usercentrics.dart index 01d8568..507141c 100644 --- a/lib/src/internal/platform/method_channel_usercentrics.dart +++ b/lib/src/internal/platform/method_channel_usercentrics.dart @@ -222,6 +222,7 @@ class MethodChannelUsercentrics extends UsercentricsPlatform { required UsercentricsConsentType consentType, required TCFDecisionUILayer fromLayer, Map? unsavedPurposeLIDecisions, + Map? unsavedVendorLIDecisions, }) async { await _ensureIsReady(); return await denyAllForTCFBridge.invoke( @@ -229,6 +230,7 @@ class MethodChannelUsercentrics extends UsercentricsPlatform { fromLayer: fromLayer, consentType: consentType, unsavedPurposeLIDecisions: unsavedPurposeLIDecisions, + unsavedVendorLIDecisions: unsavedVendorLIDecisions, ); } diff --git a/lib/src/platform/usercentrics_platform.dart b/lib/src/platform/usercentrics_platform.dart index 07edc6b..9117b5a 100644 --- a/lib/src/platform/usercentrics_platform.dart +++ b/lib/src/platform/usercentrics_platform.dart @@ -71,6 +71,7 @@ abstract class UsercentricsPlatform { required UsercentricsConsentType consentType, required TCFDecisionUILayer fromLayer, Map? unsavedPurposeLIDecisions, + Map? unsavedVendorLIDecisions, }); Future> saveDecisions({ diff --git a/lib/src/usercentrics.dart b/lib/src/usercentrics.dart index 8e840d8..216b383 100644 --- a/lib/src/usercentrics.dart +++ b/lib/src/usercentrics.dart @@ -164,15 +164,18 @@ class Usercentrics { /// Deny all services and TCF. /// - The [unsavedPurposeLIDecisions] is an optional map of purpose IDs to their legitimate interest decisions that have not yet been saved. + /// - The [unsavedVendorLIDecisions] is an optional map of vendor IDs to their legitimate interest decisions that have not yet been saved. static Future> denyAllForTCF({ required TCFDecisionUILayer fromLayer, required UsercentricsConsentType consentType, Map? unsavedPurposeLIDecisions, + Map? unsavedVendorLIDecisions, }) => _delegate.denyAllForTCF( consentType: consentType, fromLayer: fromLayer, unsavedPurposeLIDecisions: unsavedPurposeLIDecisions, + unsavedVendorLIDecisions: unsavedVendorLIDecisions, ); /// Save service decisions. diff --git a/test/platform/fake_usercentrics_platform.dart b/test/platform/fake_usercentrics_platform.dart index b70a311..d9fdcf4 100644 --- a/test/platform/fake_usercentrics_platform.dart +++ b/test/platform/fake_usercentrics_platform.dart @@ -201,6 +201,7 @@ class FakeUsercentricsPlatform extends UsercentricsPlatform { required UsercentricsConsentType consentType, required TCFDecisionUILayer fromLayer, Map? unsavedPurposeLIDecisions, + Map? unsavedVendorLIDecisions, }) { denyAllForTCFFromLayerArgument = fromLayer; denyAllForTCFConsentTypeArgument = consentType;