@@ -15,7 +15,9 @@ import com.mparticle.internal.Logger
15
15
import com.mparticle.kits.KitIntegration.CommerceListener
16
16
import com.mparticle.kits.KitIntegration.IdentityListener
17
17
import com.mparticle.kits.KitIntegration.RoktListener
18
+ import com.mparticle.rokt.RoktConfig
18
19
import com.mparticle.rokt.RoktEmbeddedView
20
+ import com.rokt.roktsdk.CacheConfig
19
21
import com.rokt.roktsdk.Rokt
20
22
import com.rokt.roktsdk.RoktWidgetDimensionCallBack
21
23
import com.rokt.roktsdk.Widget
@@ -139,7 +141,8 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
139
141
mpRoktEventCallback : MParticle .MpRoktEventCallback ? ,
140
142
placeHolders : MutableMap <String , WeakReference <RoktEmbeddedView >>? ,
141
143
fontTypefaces : MutableMap <String , WeakReference <Typeface >>? ,
142
- filterUser : FilteredMParticleUser ?
144
+ filterUser : FilteredMParticleUser ? ,
145
+ mpRoktConfig : RoktConfig ?
143
146
) {
144
147
val placeholders: Map <String , WeakReference <Widget >>? = placeHolders?.mapNotNull { entry ->
145
148
val widget = Widget (entry.value.get()?.context as Context )
@@ -184,17 +187,44 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
184
187
attributes?.get(SANDBOX_MODE_ROKT )?.let { value ->
185
188
finalAttributes.put(SANDBOX_MODE_ROKT , value)
186
189
}
187
-
190
+ val roktConfig = mpRoktConfig?. let { mapToRoktConfig(it) }
188
191
Rokt .execute(
189
192
viewName,
190
193
finalAttributes,
191
194
this ,
192
195
// Pass placeholders and fontTypefaces only if they are not empty or null
193
196
placeholders.takeIf { it?.isNotEmpty() == true },
194
- fontTypefaces.takeIf { it?.isNotEmpty() == true }
197
+ fontTypefaces.takeIf { it?.isNotEmpty() == true },
198
+ roktConfig
195
199
)
196
200
}
197
201
202
+ public fun mapToRoktConfig (config : RoktConfig ): com.rokt.roktsdk.RoktConfig {
203
+ val colorMode = when (config.colorMode) {
204
+ RoktConfig .ColorMode .LIGHT -> com.rokt.roktsdk.RoktConfig .ColorMode .LIGHT
205
+ RoktConfig .ColorMode .DARK -> com.rokt.roktsdk.RoktConfig .ColorMode .DARK
206
+ RoktConfig .ColorMode .SYSTEM -> com.rokt.roktsdk.RoktConfig .ColorMode .SYSTEM
207
+ else -> com.rokt.roktsdk.RoktConfig .ColorMode .SYSTEM
208
+ }
209
+
210
+ val cacheConfig = config.cacheConfig?.cacheDurationInSeconds?.let {
211
+ CacheConfig (
212
+ cacheDurationInSeconds = it,
213
+ cacheAttributes = config.cacheConfig?.cacheAttributes
214
+ )
215
+ }
216
+
217
+ val edgeToEdgeDisplay = config.edgeToEdgeDisplay
218
+
219
+ val builder = com.rokt.roktsdk.RoktConfig .Builder ()
220
+ .colorMode(colorMode)
221
+ .edgeToEdgeDisplay(edgeToEdgeDisplay)
222
+
223
+ cacheConfig?.let {
224
+ builder.cacheConfig(it)
225
+ }
226
+ return builder.build()
227
+ }
198
228
199
229
private fun addIdentityAttributes (attributes : MutableMap <String , String >? , filterUser : FilteredMParticleUser ? ): MutableMap <String , String > {
200
230
val identityAttributes = mutableMapOf<String , String >()
0 commit comments