@usercentrics/react-native-sdk 2.7.10 → 2.7.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/android/build.gradle +1 -1
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/RNUsercentricsModuleTest.kt +81 -32
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/mock/ReactContextProviderMock.kt +20 -0
- package/android/src/androidTest/res/drawable-hdpi/some_local_image.png +0 -0
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsModule.kt +16 -23
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsPackage.kt +5 -6
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/ReactContextProvider.kt +10 -0
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/ReactContextProviderImpl.kt +18 -0
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/BannerFontExtensions.kt +9 -9
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/BannerSettingsExtensions.kt +42 -41
- package/package.json +2 -5
- package/android/wrapper/gradle-wrapper.properties +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
1
1
|
[Release Notes](https://docs.usercentrics.com/cmp_in_app_sdk/latest/about/history/)
|
|
2
|
+
### 2.7.13
|
|
3
|
+
|
|
4
|
+
## Features
|
|
5
|
+
|
|
6
|
+
* Enabling PUR customisation properties
|
|
7
|
+
|
|
8
|
+
## Improvements
|
|
9
|
+
|
|
10
|
+
* Improvements to stability and exception handling to solve edge cases.
|
|
11
|
+
|
|
12
|
+
## Resolved Issues
|
|
13
|
+
|
|
14
|
+
* Solve issue with third party SDKs being included in POM file.
|
|
15
|
+
* UI improvements to CCPA Banner solution
|
|
16
|
+
|
|
17
|
+
### 2.7.12
|
|
18
|
+
|
|
19
|
+
## Improvements
|
|
20
|
+
|
|
21
|
+
* Several improvements on Consent Mediation
|
|
22
|
+
* Add support for Adjust and Crashlytics.
|
|
23
|
+
* Add support for Custom DPSs.
|
|
24
|
+
|
|
25
|
+
## Resolved Issues
|
|
26
|
+
|
|
27
|
+
* Stability improvements and bug fixes.
|
|
28
|
+
|
|
2
29
|
### 2.7.10
|
|
3
30
|
|
|
4
31
|
## Improvements
|
package/android/build.gradle
CHANGED
package/android/src/androidTest/java/com/usercentrics/reactnativemodule/RNUsercentricsModuleTest.kt
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
package com.usercentrics.reactnativemodule
|
|
2
2
|
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.content.Context
|
|
3
5
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
|
4
6
|
import androidx.test.platform.app.InstrumentationRegistry
|
|
5
7
|
import com.facebook.react.bridge.*
|
|
@@ -8,6 +10,7 @@ import com.usercentrics.reactnativemodule.api.FakeUsercentricsProxy
|
|
|
8
10
|
import com.usercentrics.reactnativemodule.fake.FakePromise
|
|
9
11
|
import com.usercentrics.reactnativemodule.mock.*
|
|
10
12
|
import com.usercentrics.reactnativeusercentrics.RNUsercentricsModule
|
|
13
|
+
import com.usercentrics.reactnativeusercentrics.ReactContextProvider
|
|
11
14
|
import com.usercentrics.reactnativeusercentrics.extensions.serialize
|
|
12
15
|
import com.usercentrics.reactnativeusercentrics.extensions.toWritableMap
|
|
13
16
|
import com.usercentrics.sdk.*
|
|
@@ -30,6 +33,7 @@ import org.junit.runner.RunWith
|
|
|
30
33
|
class RNUsercentricsModuleTest {
|
|
31
34
|
|
|
32
35
|
companion object {
|
|
36
|
+
|
|
33
37
|
private val usercentricsOptions = JavaOnlyMap().apply {
|
|
34
38
|
putString("settingsId", "AAAAA")
|
|
35
39
|
putString("ruleSetId", "BBBBB")
|
|
@@ -95,7 +99,7 @@ class RNUsercentricsModuleTest {
|
|
|
95
99
|
fun testModuleName() {
|
|
96
100
|
assertEquals(
|
|
97
101
|
"RNUsercentricsModule",
|
|
98
|
-
RNUsercentricsModule(mockk(relaxed = true), mockk()).name
|
|
102
|
+
RNUsercentricsModule(mockk(relaxed = true), mockk(), ReactContextProviderMock()).name
|
|
99
103
|
)
|
|
100
104
|
}
|
|
101
105
|
|
|
@@ -103,17 +107,14 @@ class RNUsercentricsModuleTest {
|
|
|
103
107
|
fun testConfigure() {
|
|
104
108
|
val usercentricsProxy = FakeUsercentricsProxy()
|
|
105
109
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
106
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
110
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
107
111
|
|
|
108
112
|
module.configure(usercentricsOptions)
|
|
109
113
|
|
|
110
114
|
assertEquals(1, usercentricsProxy.initializeCount)
|
|
111
115
|
assertEquals("AAAAA", usercentricsProxy.initializeOptionsArgument?.settingsId)
|
|
112
116
|
assertEquals("BBBBB", usercentricsProxy.initializeOptionsArgument?.ruleSetId)
|
|
113
|
-
assertEquals(
|
|
114
|
-
UsercentricsLoggerLevel.NONE,
|
|
115
|
-
usercentricsProxy.initializeOptionsArgument?.loggerLevel
|
|
116
|
-
)
|
|
117
|
+
assertEquals(UsercentricsLoggerLevel.NONE, usercentricsProxy.initializeOptionsArgument?.loggerLevel)
|
|
117
118
|
assertEquals(1000L, usercentricsProxy.initializeOptionsArgument?.timeoutMillis)
|
|
118
119
|
assertEquals("1.2.3", usercentricsProxy.initializeOptionsArgument?.version)
|
|
119
120
|
assertEquals(NetworkMode.EU, usercentricsProxy.initializeOptionsArgument?.networkMode)
|
|
@@ -123,7 +124,7 @@ class RNUsercentricsModuleTest {
|
|
|
123
124
|
fun testConfigureWithWrongValues() {
|
|
124
125
|
val usercentricsProxy = FakeUsercentricsProxy()
|
|
125
126
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
126
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
127
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
127
128
|
|
|
128
129
|
module.configure(JavaOnlyMap())
|
|
129
130
|
assertEquals(UsercentricsOptions(), usercentricsProxy.initializeOptionsArgument)
|
|
@@ -133,7 +134,7 @@ class RNUsercentricsModuleTest {
|
|
|
133
134
|
fun testIsReady() {
|
|
134
135
|
val usercentricsProxy = FakeUsercentricsProxy(isReadyAnswer = usercentricsReadyStatus)
|
|
135
136
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
136
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
137
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
137
138
|
|
|
138
139
|
val promise = FakePromise()
|
|
139
140
|
module.isReady(promise)
|
|
@@ -156,7 +157,7 @@ class RNUsercentricsModuleTest {
|
|
|
156
157
|
|
|
157
158
|
val usercentricsProxy = FakeUsercentricsProxy(isReadyAnswer = error)
|
|
158
159
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
159
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
160
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
160
161
|
|
|
161
162
|
val promise = FakePromise()
|
|
162
163
|
module.isReady(promise)
|
|
@@ -175,7 +176,7 @@ class RNUsercentricsModuleTest {
|
|
|
175
176
|
|
|
176
177
|
val usercentricsProxy = FakeUsercentricsProxy(instanceAnswer = usercentricsSDK)
|
|
177
178
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
178
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
179
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
179
180
|
|
|
180
181
|
val promise = FakePromise()
|
|
181
182
|
module.restoreUserSession("abc", promise)
|
|
@@ -203,7 +204,7 @@ class RNUsercentricsModuleTest {
|
|
|
203
204
|
}
|
|
204
205
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
205
206
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
206
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
207
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
207
208
|
|
|
208
209
|
val promise = FakePromise()
|
|
209
210
|
module.restoreUserSession("abc", promise)
|
|
@@ -218,7 +219,7 @@ class RNUsercentricsModuleTest {
|
|
|
218
219
|
every { usercentricsSDK.getControllerId() }.returns("abc")
|
|
219
220
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
220
221
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
221
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
222
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
222
223
|
val promise = FakePromise()
|
|
223
224
|
|
|
224
225
|
module.getControllerId(promise)
|
|
@@ -233,7 +234,7 @@ class RNUsercentricsModuleTest {
|
|
|
233
234
|
every { usercentricsSDK.getABTestingVariant() }.returns("variantA")
|
|
234
235
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
235
236
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
236
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
237
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
237
238
|
val promise = FakePromise()
|
|
238
239
|
|
|
239
240
|
module.getABTestingVariant(promise)
|
|
@@ -249,7 +250,7 @@ class RNUsercentricsModuleTest {
|
|
|
249
250
|
|
|
250
251
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
251
252
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
252
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
253
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
253
254
|
|
|
254
255
|
val promise = FakePromise()
|
|
255
256
|
|
|
@@ -281,7 +282,7 @@ class RNUsercentricsModuleTest {
|
|
|
281
282
|
|
|
282
283
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
283
284
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
284
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
285
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
285
286
|
|
|
286
287
|
val promise = FakePromise()
|
|
287
288
|
|
|
@@ -319,7 +320,7 @@ class RNUsercentricsModuleTest {
|
|
|
319
320
|
|
|
320
321
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
321
322
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
322
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
323
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
323
324
|
|
|
324
325
|
module.setCMPId(123)
|
|
325
326
|
|
|
@@ -333,7 +334,7 @@ class RNUsercentricsModuleTest {
|
|
|
333
334
|
|
|
334
335
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
335
336
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
336
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
337
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
337
338
|
|
|
338
339
|
module.setABTestingVariant("variantA")
|
|
339
340
|
|
|
@@ -349,7 +350,7 @@ class RNUsercentricsModuleTest {
|
|
|
349
350
|
|
|
350
351
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
351
352
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
352
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
353
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
353
354
|
val promise = FakePromise()
|
|
354
355
|
|
|
355
356
|
module.getTCFData(promise)
|
|
@@ -366,7 +367,7 @@ class RNUsercentricsModuleTest {
|
|
|
366
367
|
every { usercentricsSDK.getUserSessionData() }.returns(GetUserSessionDataMock.fake)
|
|
367
368
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
368
369
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
369
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
370
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
370
371
|
val promise = FakePromise()
|
|
371
372
|
|
|
372
373
|
module.getUserSessionData(promise)
|
|
@@ -381,7 +382,7 @@ class RNUsercentricsModuleTest {
|
|
|
381
382
|
|
|
382
383
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
383
384
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
384
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
385
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
385
386
|
val promise = FakePromise()
|
|
386
387
|
|
|
387
388
|
module.getUSPData(promise)
|
|
@@ -400,7 +401,7 @@ class RNUsercentricsModuleTest {
|
|
|
400
401
|
}
|
|
401
402
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
402
403
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
403
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
404
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
404
405
|
val promise = FakePromise()
|
|
405
406
|
|
|
406
407
|
module.changeLanguage("abc", promise)
|
|
@@ -427,7 +428,7 @@ class RNUsercentricsModuleTest {
|
|
|
427
428
|
|
|
428
429
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
429
430
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
430
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
431
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
431
432
|
val promise = FakePromise()
|
|
432
433
|
|
|
433
434
|
module.changeLanguage("abc", promise)
|
|
@@ -455,7 +456,7 @@ class RNUsercentricsModuleTest {
|
|
|
455
456
|
|
|
456
457
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
457
458
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
458
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
459
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
459
460
|
|
|
460
461
|
val promise = FakePromise()
|
|
461
462
|
module.acceptAllForTCF(0, 0, promise)
|
|
@@ -483,7 +484,7 @@ class RNUsercentricsModuleTest {
|
|
|
483
484
|
|
|
484
485
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
485
486
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
486
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
487
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
487
488
|
|
|
488
489
|
val promise = FakePromise()
|
|
489
490
|
module.denyAllForTCF(0, 0, promise)
|
|
@@ -510,7 +511,7 @@ class RNUsercentricsModuleTest {
|
|
|
510
511
|
|
|
511
512
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
512
513
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
513
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
514
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
514
515
|
|
|
515
516
|
val promise = FakePromise()
|
|
516
517
|
module.acceptAll(0, promise)
|
|
@@ -531,7 +532,7 @@ class RNUsercentricsModuleTest {
|
|
|
531
532
|
|
|
532
533
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
533
534
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
534
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
535
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
535
536
|
|
|
536
537
|
val promise = FakePromise()
|
|
537
538
|
module.denyAll(0, promise)
|
|
@@ -553,7 +554,7 @@ class RNUsercentricsModuleTest {
|
|
|
553
554
|
|
|
554
555
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
555
556
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
556
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
557
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
557
558
|
|
|
558
559
|
val promise = FakePromise()
|
|
559
560
|
module.saveDecisions(SaveDecisionsMock.callDecisions.serialize(), 0, promise)
|
|
@@ -577,7 +578,7 @@ class RNUsercentricsModuleTest {
|
|
|
577
578
|
|
|
578
579
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
579
580
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
580
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
581
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
581
582
|
|
|
582
583
|
val promise = FakePromise()
|
|
583
584
|
module.saveDecisionsForTCF(
|
|
@@ -604,7 +605,7 @@ class RNUsercentricsModuleTest {
|
|
|
604
605
|
|
|
605
606
|
val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
|
|
606
607
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
607
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
608
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
608
609
|
|
|
609
610
|
val promise = FakePromise()
|
|
610
611
|
module.saveOptOutForCCPA(
|
|
@@ -622,7 +623,7 @@ class RNUsercentricsModuleTest {
|
|
|
622
623
|
fun testResetMethod() {
|
|
623
624
|
val usercentricsProxy = FakeUsercentricsProxy()
|
|
624
625
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
625
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
626
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
626
627
|
|
|
627
628
|
module.reset()
|
|
628
629
|
|
|
@@ -633,7 +634,7 @@ class RNUsercentricsModuleTest {
|
|
|
633
634
|
fun testShowFirstLayer() {
|
|
634
635
|
val usercentricsProxy = FakeUsercentricsProxy()
|
|
635
636
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
636
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
637
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
637
638
|
val promise = FakePromise()
|
|
638
639
|
module.showFirstLayer(bannerSettingsMap.toWritableMap(), promise)
|
|
639
640
|
promise.await()
|
|
@@ -644,10 +645,58 @@ class RNUsercentricsModuleTest {
|
|
|
644
645
|
fun testShowSecondLayer() {
|
|
645
646
|
val usercentricsProxy = FakeUsercentricsProxy()
|
|
646
647
|
val contextMock = mockk<ReactApplicationContext>(relaxed = true)
|
|
647
|
-
val module = RNUsercentricsModule(contextMock, usercentricsProxy)
|
|
648
|
+
val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
|
|
648
649
|
val promise = FakePromise()
|
|
649
650
|
module.showSecondLayer(bannerSettingsMap.toWritableMap(), promise)
|
|
650
651
|
promise.await()
|
|
651
652
|
assertEquals(expectedBannerSettings, usercentricsProxy.showSecondLayerBannerSettings)
|
|
652
653
|
}
|
|
654
|
+
|
|
655
|
+
@Test
|
|
656
|
+
fun testShowFirstLayerWithCustomLocalLogo() {
|
|
657
|
+
val context = InstrumentationRegistry.getInstrumentation().context
|
|
658
|
+
val reactContextProviderMock = object: ReactContextProviderMock() {
|
|
659
|
+
|
|
660
|
+
override fun context(): Context {
|
|
661
|
+
return context
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
val usercentricsProxy = FakeUsercentricsProxy()
|
|
666
|
+
val reactApplicationContext = mockk<ReactApplicationContext>(relaxed = true)
|
|
667
|
+
val module = RNUsercentricsModule(reactApplicationContext, usercentricsProxy, reactContextProviderMock)
|
|
668
|
+
|
|
669
|
+
val bannerSettingsMap = mapOf(
|
|
670
|
+
"variant" to null,
|
|
671
|
+
"firstLayerStyleSettings" to mapOf(
|
|
672
|
+
"layout" to "POPUP_CENTER",
|
|
673
|
+
),
|
|
674
|
+
"secondLayerStyleSettings" to mapOf(
|
|
675
|
+
"showCloseButton" to true,
|
|
676
|
+
),
|
|
677
|
+
"generalStyleSettings" to mapOf(
|
|
678
|
+
"logo" to mapOf(
|
|
679
|
+
"logoPath" to "some_local_image"
|
|
680
|
+
)
|
|
681
|
+
)
|
|
682
|
+
)
|
|
683
|
+
|
|
684
|
+
val promise = FakePromise()
|
|
685
|
+
module.showFirstLayer(bannerSettingsMap.toWritableMap(), promise)
|
|
686
|
+
promise.await()
|
|
687
|
+
|
|
688
|
+
val someLocalImageDrawableId = context.resources.getIdentifier("some_local_image", "drawable", context.packageName)
|
|
689
|
+
val expectedBannerSettings = BannerSettings(
|
|
690
|
+
firstLayerStyleSettings = FirstLayerStyleSettings(
|
|
691
|
+
layout = UsercentricsLayout.Popup(
|
|
692
|
+
PopupPosition.CENTER
|
|
693
|
+
)
|
|
694
|
+
),
|
|
695
|
+
secondLayerStyleSettings = SecondLayerStyleSettings(showCloseButton = true),
|
|
696
|
+
generalStyleSettings = GeneralStyleSettings(
|
|
697
|
+
logo = UsercentricsImage.ImageDrawableId(someLocalImageDrawableId)
|
|
698
|
+
)
|
|
699
|
+
)
|
|
700
|
+
assertEquals(expectedBannerSettings, usercentricsProxy.showFirstLayerBannerSettings)
|
|
701
|
+
}
|
|
653
702
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
package com.usercentrics.reactnativemodule.mock
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.content.Context
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.usercentrics.reactnativeusercentrics.ReactContextProvider
|
|
7
|
+
import io.mockk.mockk
|
|
8
|
+
|
|
9
|
+
internal open class ReactContextProviderMock : ReactContextProvider {
|
|
10
|
+
|
|
11
|
+
private val reactApplicationContext = mockk<ReactApplicationContext>(relaxed = true)
|
|
12
|
+
|
|
13
|
+
override fun context(): Context {
|
|
14
|
+
return reactApplicationContext
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
override fun activity(): Activity? {
|
|
18
|
+
return reactApplicationContext.currentActivity
|
|
19
|
+
}
|
|
20
|
+
}
|
|
Binary file
|
package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsModule.kt
CHANGED
|
@@ -8,9 +8,9 @@ import com.usercentrics.sdk.services.tcf.TCFDecisionUILayer
|
|
|
8
8
|
|
|
9
9
|
internal class RNUsercentricsModule(
|
|
10
10
|
reactContext: ReactApplicationContext,
|
|
11
|
-
private val usercentricsProxy: UsercentricsProxy
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
private val usercentricsProxy: UsercentricsProxy,
|
|
12
|
+
private val reactContextProvider: ReactContextProvider,
|
|
13
|
+
) : ReactContextBaseJavaModule(reactContext) {
|
|
14
14
|
|
|
15
15
|
override fun getName() = "RNUsercentricsModule"
|
|
16
16
|
|
|
@@ -33,11 +33,11 @@ internal class RNUsercentricsModule(
|
|
|
33
33
|
fun showFirstLayer(options: ReadableMap, promise: Promise) {
|
|
34
34
|
runOnUiThread {
|
|
35
35
|
try {
|
|
36
|
-
val
|
|
37
|
-
|
|
38
|
-
val bannerSettings = options.bannerSettingsFromMap(assetManager)
|
|
39
|
-
usercentricsProxy.showFirstLayer(currentActivity!!, bannerSettings, promise)
|
|
36
|
+
val context = reactContextProvider.context()
|
|
37
|
+
val bannerSettings = options.bannerSettingsFromMap(context)
|
|
40
38
|
|
|
39
|
+
val activity = reactContextProvider.activity()!!
|
|
40
|
+
usercentricsProxy.showFirstLayer(activity, bannerSettings, promise)
|
|
41
41
|
} catch (e: Exception) {
|
|
42
42
|
promise.reject(e)
|
|
43
43
|
}
|
|
@@ -48,10 +48,11 @@ internal class RNUsercentricsModule(
|
|
|
48
48
|
fun showSecondLayer(options: ReadableMap, promise: Promise) {
|
|
49
49
|
runOnUiThread {
|
|
50
50
|
try {
|
|
51
|
-
val
|
|
51
|
+
val context = reactContextProvider.context()
|
|
52
|
+
val bannerSettings = options.bannerSettingsFromMap(context)
|
|
52
53
|
|
|
53
|
-
val
|
|
54
|
-
usercentricsProxy.showSecondLayer(
|
|
54
|
+
val activity = reactContextProvider.activity()!!
|
|
55
|
+
usercentricsProxy.showSecondLayer(activity, bannerSettings, promise)
|
|
55
56
|
} catch (e: Exception) {
|
|
56
57
|
promise.reject(e)
|
|
57
58
|
}
|
|
@@ -127,8 +128,7 @@ internal class RNUsercentricsModule(
|
|
|
127
128
|
fun acceptAllForTCF(fromLayer: Int, consentType: Int, promise: Promise) {
|
|
128
129
|
promise.resolve(
|
|
129
130
|
usercentricsProxy.instance.acceptAllForTCF(
|
|
130
|
-
TCFDecisionUILayer.values()[fromLayer],
|
|
131
|
-
UsercentricsConsentType.values()[consentType]
|
|
131
|
+
TCFDecisionUILayer.values()[fromLayer], UsercentricsConsentType.values()[consentType]
|
|
132
132
|
).toWritableArray()
|
|
133
133
|
)
|
|
134
134
|
}
|
|
@@ -146,8 +146,7 @@ internal class RNUsercentricsModule(
|
|
|
146
146
|
fun denyAllForTCF(fromLayer: Int, consentType: Int, promise: Promise) {
|
|
147
147
|
promise.resolve(
|
|
148
148
|
usercentricsProxy.instance.denyAllForTCF(
|
|
149
|
-
TCFDecisionUILayer.values()[fromLayer],
|
|
150
|
-
UsercentricsConsentType.values()[consentType]
|
|
149
|
+
TCFDecisionUILayer.values()[fromLayer], UsercentricsConsentType.values()[consentType]
|
|
151
150
|
).toWritableArray()
|
|
152
151
|
)
|
|
153
152
|
}
|
|
@@ -163,11 +162,7 @@ internal class RNUsercentricsModule(
|
|
|
163
162
|
|
|
164
163
|
@ReactMethod
|
|
165
164
|
fun saveDecisionsForTCF(
|
|
166
|
-
tcfDecisions: ReadableMap,
|
|
167
|
-
fromLayer: Int,
|
|
168
|
-
saveDecisions: ReadableArray,
|
|
169
|
-
consentType: Int,
|
|
170
|
-
promise: Promise
|
|
165
|
+
tcfDecisions: ReadableMap, fromLayer: Int, saveDecisions: ReadableArray, consentType: Int, promise: Promise
|
|
171
166
|
) {
|
|
172
167
|
promise.resolve(
|
|
173
168
|
usercentricsProxy.instance.saveDecisionsForTCF(
|
|
@@ -183,8 +178,7 @@ internal class RNUsercentricsModule(
|
|
|
183
178
|
fun saveDecisions(decisions: ReadableArray, consentType: Int, promise: Promise) {
|
|
184
179
|
promise.resolve(
|
|
185
180
|
usercentricsProxy.instance.saveDecisions(
|
|
186
|
-
decisions.deserializeUserDecision(),
|
|
187
|
-
UsercentricsConsentType.values()[consentType]
|
|
181
|
+
decisions.deserializeUserDecision(), UsercentricsConsentType.values()[consentType]
|
|
188
182
|
).toWritableArray()
|
|
189
183
|
)
|
|
190
184
|
}
|
|
@@ -193,8 +187,7 @@ internal class RNUsercentricsModule(
|
|
|
193
187
|
fun saveOptOutForCCPA(isOptedOut: Boolean, consentType: Int, promise: Promise) {
|
|
194
188
|
promise.resolve(
|
|
195
189
|
usercentricsProxy.instance.saveOptOutForCCPA(
|
|
196
|
-
isOptedOut,
|
|
197
|
-
UsercentricsConsentType.values()[consentType]
|
|
190
|
+
isOptedOut, UsercentricsConsentType.values()[consentType]
|
|
198
191
|
).toWritableArray()
|
|
199
192
|
)
|
|
200
193
|
}
|
package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsPackage.kt
CHANGED
|
@@ -8,15 +8,14 @@ import com.usercentrics.reactnativeusercentrics.api.UsercentricsProxyImpl
|
|
|
8
8
|
|
|
9
9
|
class RNUsercentricsPackage : ReactPackage {
|
|
10
10
|
|
|
11
|
-
private
|
|
11
|
+
private val usercentricsProxy = UsercentricsProxyImpl()
|
|
12
12
|
|
|
13
|
-
override fun createViewManagers(reactContext: ReactApplicationContext):
|
|
14
|
-
MutableList<ViewManager<*, *>> {
|
|
13
|
+
override fun createViewManagers(reactContext: ReactApplicationContext): MutableList<ViewManager<*, *>> {
|
|
15
14
|
return mutableListOf()
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
override fun createNativeModules(reactContext: ReactApplicationContext):
|
|
19
|
-
|
|
20
|
-
return mutableListOf(RNUsercentricsModule(reactContext, usercentricsProxy))
|
|
17
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): MutableList<NativeModule> {
|
|
18
|
+
val reactContextProvider = ReactContextProviderImpl(reactContext)
|
|
19
|
+
return mutableListOf(RNUsercentricsModule(reactContext, usercentricsProxy, reactContextProvider))
|
|
21
20
|
}
|
|
22
21
|
}
|
package/android/src/main/java/com/usercentrics/reactnativeusercentrics/ReactContextProviderImpl.kt
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
package com.usercentrics.reactnativeusercentrics
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.content.Context
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
|
|
7
|
+
internal class ReactContextProviderImpl(
|
|
8
|
+
private val reactContext: ReactApplicationContext
|
|
9
|
+
) : ReactContextProvider {
|
|
10
|
+
|
|
11
|
+
override fun context(): Context {
|
|
12
|
+
return reactContext
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
override fun activity(): Activity? {
|
|
16
|
+
return reactContext.currentActivity
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
package com.usercentrics.reactnativeusercentrics.extensions
|
|
2
2
|
|
|
3
|
+
import android.content.Context
|
|
3
4
|
import android.content.res.AssetManager
|
|
4
5
|
import android.graphics.Typeface
|
|
5
6
|
import com.facebook.react.bridge.ReadableMap
|
|
6
7
|
import com.usercentrics.sdk.BannerFont
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
internal fun ReadableMap.bannerFontFromMap(assetManager: AssetManager): BannerFont? {
|
|
9
|
+
internal fun ReadableMap.bannerFontFromMap(context: Context): BannerFont? {
|
|
10
10
|
val size = getDoubleOrNull("fontSize") ?: return null
|
|
11
|
+
val assetManager = context.assets
|
|
12
|
+
|
|
11
13
|
val regularTypeface = assetManager.createFontFromName(getString("regularFont")) ?: return null
|
|
12
14
|
val boldTypeface = assetManager.createFontFromName(getString("boldFont")) ?: return null
|
|
13
15
|
|
|
14
|
-
return BannerFont(
|
|
15
|
-
regularTypeface,
|
|
16
|
-
boldTypeface,
|
|
17
|
-
size.toFloat()
|
|
18
|
-
)
|
|
16
|
+
return BannerFont(regularFont = regularTypeface, boldFont = boldTypeface, sizeInSp = size.toFloat())
|
|
19
17
|
}
|
|
20
18
|
|
|
21
19
|
internal fun AssetManager.createFontFromName(fontName: String?): Typeface? {
|
|
22
|
-
if (fontName == null) {
|
|
20
|
+
if (fontName == null) {
|
|
21
|
+
return null
|
|
22
|
+
}
|
|
23
23
|
val fontsFolder = this.list("fonts")
|
|
24
24
|
val regularFontName = fontsFolder?.firstOrNull { it.startsWith(fontName) } ?: return null
|
|
25
25
|
return Typeface.createFromAsset(this, "fonts/$regularFontName")
|
|
26
|
-
}
|
|
26
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package com.usercentrics.reactnativeusercentrics.extensions
|
|
2
2
|
|
|
3
|
-
import android.content.
|
|
3
|
+
import android.content.Context
|
|
4
4
|
import android.graphics.Color
|
|
5
5
|
import androidx.annotation.ColorInt
|
|
6
6
|
import com.facebook.react.bridge.ReadableMap
|
|
@@ -16,48 +16,51 @@ internal fun String.usercentricsLayoutFromEnumString(): UsercentricsLayout? {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
internal fun ReadableMap.bannerSettingsFromMap(
|
|
19
|
+
internal fun ReadableMap.bannerSettingsFromMap(context: Context): BannerSettings {
|
|
20
20
|
val rawFirstLayerStyleSettings = getMap("firstLayerStyleSettings")
|
|
21
21
|
val rawSecondLayerStyleSettings = getMap("secondLayerStyleSettings")
|
|
22
22
|
val rawGeneralStyleSettings = getMap("generalStyleSettings")
|
|
23
23
|
|
|
24
24
|
return BannerSettings(
|
|
25
|
-
firstLayerStyleSettings =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
rawSecondLayerStyleSettings?.secondLayerStyleSettingsFromMap(assetManager),
|
|
29
|
-
generalStyleSettings = rawGeneralStyleSettings?.generalStyleSettingsFromMap(assetManager),
|
|
25
|
+
firstLayerStyleSettings = rawFirstLayerStyleSettings?.firstLayerStyleSettingsFromMap(context),
|
|
26
|
+
secondLayerStyleSettings = rawSecondLayerStyleSettings?.secondLayerStyleSettingsFromMap(context),
|
|
27
|
+
generalStyleSettings = rawGeneralStyleSettings?.generalStyleSettingsFromMap(context),
|
|
30
28
|
variantName = getString("variantName"),
|
|
31
29
|
)
|
|
32
30
|
}
|
|
33
31
|
|
|
34
|
-
internal fun ReadableMap.bannerLogoFromMap(): UsercentricsImage? {
|
|
32
|
+
internal fun ReadableMap.bannerLogoFromMap(context: Context): UsercentricsImage? {
|
|
35
33
|
val logoPath = getString("logoPath") ?: return null
|
|
34
|
+
|
|
35
|
+
val drawableResId = context.resources.getIdentifier(logoPath, "drawable", context.packageName)
|
|
36
|
+
if (drawableResId != 0) {
|
|
37
|
+
return UsercentricsImage.ImageDrawableId(drawableResId)
|
|
38
|
+
}
|
|
36
39
|
return UsercentricsImage.ImageUrl(logoPath)
|
|
37
40
|
}
|
|
38
41
|
|
|
39
|
-
internal fun ReadableMap.firstLayerStyleSettingsFromMap(
|
|
42
|
+
internal fun ReadableMap.firstLayerStyleSettingsFromMap(context: Context): FirstLayerStyleSettings {
|
|
40
43
|
return FirstLayerStyleSettings(
|
|
41
44
|
layout = getString("layout")?.usercentricsLayoutFromEnumString(),
|
|
42
|
-
headerImage = getMap("headerImage")?.headerImageFromMap(),
|
|
43
|
-
title = getMap("title")?.titleFromMap(
|
|
44
|
-
message = getMap("message")?.messageFromMap(
|
|
45
|
-
buttonLayout = getMap("buttonLayout")?.buttonLayoutFromMap(
|
|
45
|
+
headerImage = getMap("headerImage")?.headerImageFromMap(context),
|
|
46
|
+
title = getMap("title")?.titleFromMap(context),
|
|
47
|
+
message = getMap("message")?.messageFromMap(context),
|
|
48
|
+
buttonLayout = getMap("buttonLayout")?.buttonLayoutFromMap(context),
|
|
46
49
|
backgroundColor = getString("backgroundColorHex")?.deserializeColor(),
|
|
47
50
|
overlayColor = getString("overlayColorHex")?.deserializeColor(),
|
|
48
51
|
cornerRadius = getIntOrNull("cornerRadius")
|
|
49
52
|
)
|
|
50
53
|
}
|
|
51
54
|
|
|
52
|
-
internal fun ReadableMap.headerImageFromMap(): HeaderImageSettings? {
|
|
55
|
+
internal fun ReadableMap.headerImageFromMap(context: Context): HeaderImageSettings? {
|
|
53
56
|
val isHidden = getBooleanOrNull("isHidden") ?: false
|
|
54
57
|
if (isHidden) {
|
|
55
58
|
return HeaderImageSettings.Hidden
|
|
56
59
|
}
|
|
57
60
|
|
|
58
|
-
val image = getMap("image")?.bannerLogoFromMap() ?: return null
|
|
59
|
-
|
|
61
|
+
val image = getMap("image")?.bannerLogoFromMap(context) ?: return null
|
|
60
62
|
val isExtended = getBooleanOrNull("isExtended") ?: false
|
|
63
|
+
|
|
61
64
|
return if (isExtended) {
|
|
62
65
|
HeaderImageSettings.ExtendedLogoSettings(image)
|
|
63
66
|
} else {
|
|
@@ -69,7 +72,9 @@ internal fun ReadableMap.headerImageFromMap(): HeaderImageSettings? {
|
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
|
|
72
|
-
internal fun ReadableMap.titleFromMap(
|
|
75
|
+
internal fun ReadableMap.titleFromMap(context: Context): TitleSettings {
|
|
76
|
+
val assetManager = context.assets
|
|
77
|
+
|
|
73
78
|
return TitleSettings(
|
|
74
79
|
alignment = getString("alignment")?.sectionAlignmentFromMap(),
|
|
75
80
|
textColor = getString("textColorHex")?.deserializeColor(),
|
|
@@ -78,7 +83,9 @@ internal fun ReadableMap.titleFromMap(assetManager: AssetManager): TitleSettings
|
|
|
78
83
|
)
|
|
79
84
|
}
|
|
80
85
|
|
|
81
|
-
internal fun ReadableMap.messageFromMap(
|
|
86
|
+
internal fun ReadableMap.messageFromMap(context: Context): MessageSettings {
|
|
87
|
+
val assetManager = context.assets
|
|
88
|
+
|
|
82
89
|
return MessageSettings(
|
|
83
90
|
font = assetManager.createFontFromName(getString("fontName")),
|
|
84
91
|
textSizeInSp = getDoubleOrNull("textSize")?.toFloat(),
|
|
@@ -93,19 +100,19 @@ internal fun String.sectionAlignmentFromMap(): SectionAlignment {
|
|
|
93
100
|
return SectionAlignment.valueOf(this)
|
|
94
101
|
}
|
|
95
102
|
|
|
96
|
-
internal fun ReadableMap.buttonLayoutFromMap(
|
|
97
|
-
assetManager: AssetManager
|
|
98
|
-
): ButtonLayout? {
|
|
103
|
+
internal fun ReadableMap.buttonLayoutFromMap(context: Context): ButtonLayout? {
|
|
99
104
|
val layout = getString("layout")
|
|
105
|
+
|
|
100
106
|
val buttons: List<List<ButtonSettings>> = getArray("buttons")?.let { buttonsArray ->
|
|
101
|
-
val buttonsList
|
|
107
|
+
val buttonsList = mutableListOf<List<ButtonSettings>>()
|
|
102
108
|
|
|
103
109
|
for (rowIndex in 0 until buttonsArray.size()) {
|
|
104
110
|
val listRow = mutableListOf<ButtonSettings>()
|
|
105
111
|
val row = buttonsArray.getArray(rowIndex)
|
|
112
|
+
|
|
106
113
|
for (rowElement in 0 until row.size()) {
|
|
107
114
|
val element = row.getMap(rowElement)
|
|
108
|
-
listRow.add(element.buttonSettingsFromMap(
|
|
115
|
+
listRow.add(element.buttonSettingsFromMap(context))
|
|
109
116
|
}
|
|
110
117
|
buttonsList.add(listRow)
|
|
111
118
|
}
|
|
@@ -115,28 +122,21 @@ internal fun ReadableMap.buttonLayoutFromMap(
|
|
|
115
122
|
|
|
116
123
|
when (layout) {
|
|
117
124
|
"ROW" -> {
|
|
118
|
-
return ButtonLayout.Row(
|
|
119
|
-
buttons.flatten()
|
|
120
|
-
)
|
|
125
|
+
return ButtonLayout.Row(buttons.flatten())
|
|
121
126
|
}
|
|
122
127
|
"COLUMN" -> {
|
|
123
|
-
return ButtonLayout.Column(
|
|
124
|
-
buttons.flatten()
|
|
125
|
-
)
|
|
128
|
+
return ButtonLayout.Column(buttons.flatten())
|
|
126
129
|
}
|
|
127
130
|
"GRID" -> {
|
|
128
|
-
return ButtonLayout.Grid(
|
|
129
|
-
buttons
|
|
130
|
-
)
|
|
131
|
+
return ButtonLayout.Grid(buttons)
|
|
131
132
|
}
|
|
132
133
|
}
|
|
133
|
-
|
|
134
134
|
return null
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
internal fun ReadableMap.buttonSettingsFromMap(
|
|
138
|
-
assetManager
|
|
139
|
-
|
|
137
|
+
internal fun ReadableMap.buttonSettingsFromMap(context: Context): ButtonSettings {
|
|
138
|
+
val assetManager = context.assets
|
|
139
|
+
|
|
140
140
|
return ButtonSettings(
|
|
141
141
|
type = getString("buttonType")!!.deserializeButtonType(),
|
|
142
142
|
isAllCaps = getBooleanOrNull("isAllCaps"),
|
|
@@ -152,15 +152,16 @@ internal fun String.deserializeButtonType(): ButtonType {
|
|
|
152
152
|
return ButtonType.valueOf(this)
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
internal fun ReadableMap.secondLayerStyleSettingsFromMap(
|
|
155
|
+
internal fun ReadableMap.secondLayerStyleSettingsFromMap(context: Context): SecondLayerStyleSettings {
|
|
156
156
|
return SecondLayerStyleSettings(
|
|
157
|
-
buttonLayout = getMap("buttonLayout")?.buttonLayoutFromMap(
|
|
157
|
+
buttonLayout = getMap("buttonLayout")?.buttonLayoutFromMap(context),
|
|
158
158
|
showCloseButton = getBoolean("showCloseButton"),
|
|
159
159
|
)
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
internal fun ReadableMap.generalStyleSettingsFromMap(
|
|
162
|
+
internal fun ReadableMap.generalStyleSettingsFromMap(context: Context): GeneralStyleSettings {
|
|
163
163
|
val rawToggleStyleSettings = getMap("toggleStyleSettings")
|
|
164
|
+
|
|
164
165
|
return GeneralStyleSettings(
|
|
165
166
|
textColor = getString("textColorHex")?.deserializeColor(),
|
|
166
167
|
layerBackgroundColor = getString("layerBackgroundColorHex")?.deserializeColor(),
|
|
@@ -169,8 +170,8 @@ internal fun ReadableMap.generalStyleSettingsFromMap(assetManager: AssetManager)
|
|
|
169
170
|
tabColor = getString("tabColorHex")?.deserializeColor(),
|
|
170
171
|
bordersColor = getString("bordersColorHex")?.deserializeColor(),
|
|
171
172
|
toggleStyleSettings = rawToggleStyleSettings?.toggleStyleSettingsFromMap(),
|
|
172
|
-
font = getMap("font")?.bannerFontFromMap(
|
|
173
|
-
logo = getMap("logo")?.bannerLogoFromMap(),
|
|
173
|
+
font = getMap("font")?.bannerFontFromMap(context = context),
|
|
174
|
+
logo = getMap("logo")?.bannerLogoFromMap(context = context),
|
|
174
175
|
links = getString("links")?.legalLinksFromEnumString(),
|
|
175
176
|
disableSystemBackButton = getBooleanOrNull("disableSystemBackButton")
|
|
176
177
|
)
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usercentrics/react-native-sdk",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.13",
|
|
4
4
|
"description": "Usercentrics SDK",
|
|
5
5
|
"homepage": "https://usercentrics.com",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
8
8
|
"author": "Usercentrics <developer@usercentrics.com>",
|
|
9
9
|
"iosPackageName": "react-native-usercentrics",
|
|
10
|
-
"iosPackageVersion": "2.7.
|
|
10
|
+
"iosPackageVersion": "2.7.13",
|
|
11
11
|
"license": "SEE LICENSE IN LICENSE",
|
|
12
12
|
"files": [
|
|
13
13
|
"android",
|
|
@@ -77,8 +77,5 @@
|
|
|
77
77
|
},
|
|
78
78
|
"bugs": {
|
|
79
79
|
"url": "https://github.com/Usercentrics/react-native-sdk/issues"
|
|
80
|
-
},
|
|
81
|
-
"dependencies": {
|
|
82
|
-
"@usercentrics/react-native-sdk": "^2.7.8"
|
|
83
80
|
}
|
|
84
81
|
}
|