Skip to content

Commit c0adda3

Browse files
committed
Release: 2.24.2
1 parent 8323d0e commit c0adda3

File tree

14 files changed

+35
-17
lines changed

14 files changed

+35
-17
lines changed

android/src/main/java/com/usercentrics/reactnative/RNUsercentricsModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,10 @@ internal class RNUsercentricsModule(
149149
}
150150

151151
@ReactMethod
152-
override fun denyAllForTCF(fromLayer: Int, consentType: Int, promise: Promise) {
152+
override fun denyAllForTCF(fromLayer: Int, consentType: Int, unsavedPurposeLIDecisions: ReadableArray, promise: Promise) {
153153
promise.resolve(
154154
usercentricsProxy.instance.denyAllForTCF(
155-
TCFDecisionUILayer.values()[fromLayer], UsercentricsConsentType.values()[consentType], emptyList()
155+
TCFDecisionUILayer.values()[fromLayer], UsercentricsConsentType.values()[consentType], unsavedPurposeLIDecisions.deserializeTCFUserDecisionOnPurposeList()
156156
).toWritableArray()
157157
)
158158
}

android/src/main/java/com/usercentrics/reactnative/RNUsercentricsModuleSpec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ abstract class RNUsercentricsModuleSpec internal constructor(context: ReactAppli
7373
abstract fun denyAll(consentType: Int, promise: Promise)
7474

7575
@ReactMethod
76-
abstract fun denyAllForTCF(fromLayer: Int, consentType: Int, promise: Promise)
76+
abstract fun denyAllForTCF(fromLayer: Int, consentType: Int, unsavedPurposeLIDecisions: ReadableArray, promise: Promise)
7777

7878
@ReactMethod
7979
abstract fun saveDecisions(decisions: ReadableArray, consentType: Int, promise: Promise)

android/src/main/java/com/usercentrics/reactnative/extensions/UserDecisionExtensions.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ internal fun ReadableArray.deserializeUserDecision(): List<UserDecision> {
2525
return decisionList
2626
}
2727

28+
internal fun ReadableArray.deserializeTCFUserDecisionOnPurposeList(): List<TCFUserDecisionOnPurpose> {
29+
val list = mutableListOf<TCFUserDecisionOnPurpose>()
30+
for (i in 0 until size()) {
31+
getMap(i)?.let { map -> list.add(map.deserializeTCFUserDecisionOnPurpose()) }
32+
}
33+
return list
34+
}
35+
2836
internal fun ReadableMap.deserializeTCFUserDecisions(): TCFUserDecisions {
2937
val purposes = getArray("purposes")?.let { purpose ->
3038
val list = mutableListOf<TCFUserDecisionOnPurpose>()

example/ios/exampleTests/Fake/FakeUsercentricsManager.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,12 @@ final class FakeUsercentricsManager: UsercentricsManager {
133133

134134
var denyAllForTCFConsentType: UsercentricsConsentType?
135135
var denyAllForTCFFromLayer: TCFDecisionUILayer?
136+
var denyAllForTCFUnsavedPurposeLIDecisions: [TCFUserDecisionOnPurpose]?
136137
var denyAllForTCFResponse: [UsercentricsServiceConsent]?
137-
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent] {
138+
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType, unsavedPurposeLIDecisions: [TCFUserDecisionOnPurpose]) -> [UsercentricsServiceConsent] {
138139
self.denyAllForTCFConsentType = consentType
139140
self.denyAllForTCFFromLayer = fromLayer
141+
self.denyAllForTCFUnsavedPurposeLIDecisions = unsavedPurposeLIDecisions
140142
return denyAllForTCFResponse!
141143
}
142144

example/ios/exampleTests/RNUsercentricsModuleTests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ class RNUsercentricsModuleTests: XCTestCase {
319319
func testDenyAllForTCF() {
320320
fakeUsercentrics.denyAllForTCFResponse = [.mock()]
321321

322-
module.denyAllForTCF(0, consentType: 0) { [unowned self] result in
322+
module.denyAllForTCF(0, consentType: 0, unsavedPurposeLIDecisions: []) { [unowned self] result in
323323
guard
324324
let result = result as? [NSDictionary],
325325
let consent = result.first
@@ -343,7 +343,7 @@ class RNUsercentricsModuleTests: XCTestCase {
343343

344344
func testDenyAllForTCFSecondLayer() {
345345
fakeUsercentrics.denyAllForTCFResponse = [.mock()]
346-
module.denyAllForTCF(1, consentType: 1) { [unowned self] _ in
346+
module.denyAllForTCF(1, consentType: 1, unsavedPurposeLIDecisions: []) { [unowned self] _ in
347347
XCTAssertEqual(.implicit, self.fakeUsercentrics.denyAllForTCFConsentType!)
348348
XCTAssertEqual(.secondLayer, self.fakeUsercentrics.denyAllForTCFFromLayer!)
349349
} reject: { _, _, _ in

ios/Manager/UsercentricsManager.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public protocol UsercentricsManager {
2828
func acceptAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent]
2929
func acceptAll(consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent]
3030

31-
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent]
31+
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType, unsavedPurposeLIDecisions: [TCFUserDecisionOnPurpose]) -> [UsercentricsServiceConsent]
3232
func denyAll(consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent]
3333

3434
func saveDecisionsForTCF(tcfDecisions: TCFUserDecisions,
@@ -112,8 +112,8 @@ final class UsercentricsManagerImplementation: UsercentricsManager {
112112
return UsercentricsCore.shared.acceptAll(consentType: consentType)
113113
}
114114

115-
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent] {
116-
return UsercentricsCore.shared.denyAllForTCF(fromLayer: fromLayer, consentType: consentType, unsavedPurposeLIDecisions: [])
115+
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType, unsavedPurposeLIDecisions: [TCFUserDecisionOnPurpose]) -> [UsercentricsServiceConsent] {
116+
return UsercentricsCore.shared.denyAllForTCF(fromLayer: fromLayer, consentType: consentType, unsavedPurposeLIDecisions: unsavedPurposeLIDecisions)
117117
}
118118

119119
func denyAll(consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent] {

ios/RNUsercentricsModule.mm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ @interface RCT_EXTERN_MODULE(RNUsercentricsModule, NSObject)
7171

7272
RCT_EXTERN_METHOD(denyAllForTCF:(NSInteger *)fromLayer
7373
consentType:(NSInteger)consentType
74+
unsavedPurposeLIDecisions:(NSArray)unsavedPurposeLIDecisions
7475
resolve:(RCTPromiseResolveBlock)resolve
7576
reject:(RCTPromiseRejectBlock)reject)
7677

ios/RNUsercentricsModule.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,11 @@ class RNUsercentricsModule: NSObject {
157157

158158
@objc func denyAllForTCF(_ fromLayer: Int,
159159
consentType: Int,
160+
unsavedPurposeLIDecisions: [NSDictionary],
160161
resolve: @escaping RCTPromiseResolveBlock,
161162
reject: @escaping RCTPromiseRejectBlock) -> Void {
162-
let services = usercentricsManager.denyAllForTCF(fromLayer: .initialize(from: fromLayer), consentType: .initialize(from: consentType))
163+
let decisions = unsavedPurposeLIDecisions.compactMap { TCFUserDecisionOnPurpose(from: $0) }
164+
let services = usercentricsManager.denyAllForTCF(fromLayer: .initialize(from: fromLayer), consentType: .initialize(from: consentType), unsavedPurposeLIDecisions: decisions)
163165
resolve(services.toListOfDictionary())
164166
}
165167

ios/RNUsercentricsModuleSpec.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ NS_ASSUME_NONNULL_BEGIN
7474

7575
- (void)denyAllForTCF:(NSInteger)fromLayer
7676
consentType:(NSInteger)consentType
77+
unsavedPurposeLIDecisions:(NSArray<NSDictionary *> *)unsavedPurposeLIDecisions
7778
resolve:(RCTPromiseResolveBlock)resolve
7879
reject:(RCTPromiseRejectBlock)reject;
7980

sample/ios/sampleTests/Fake/FakeUsercentricsManager.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,12 @@ final class FakeUsercentricsManager: UsercentricsManager {
134134

135135
var denyAllForTCFConsentType: UsercentricsConsentType?
136136
var denyAllForTCFFromLayer: TCFDecisionUILayer?
137+
var denyAllForTCFUnsavedPurposeLIDecisions: [TCFUserDecisionOnPurpose]?
137138
var denyAllForTCFResponse: [UsercentricsServiceConsent]?
138-
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType) -> [UsercentricsServiceConsent] {
139+
func denyAllForTCF(fromLayer: TCFDecisionUILayer, consentType: UsercentricsConsentType, unsavedPurposeLIDecisions: [TCFUserDecisionOnPurpose]) -> [UsercentricsServiceConsent] {
139140
self.denyAllForTCFConsentType = consentType
140141
self.denyAllForTCFFromLayer = fromLayer
142+
self.denyAllForTCFUnsavedPurposeLIDecisions = unsavedPurposeLIDecisions
141143
return denyAllForTCFResponse!
142144
}
143145

0 commit comments

Comments
 (0)