Skip to content

Commit 28336cd

Browse files
feat: Add RoktConfig support
2 parents 7c19387 + 5a9441c commit 28336cd

File tree

1 file changed

+33
-3
lines changed

1 file changed

+33
-3
lines changed

src/main/kotlin/com/mparticle/kits/RoktKit.kt

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ import com.mparticle.internal.Logger
1515
import com.mparticle.kits.KitIntegration.CommerceListener
1616
import com.mparticle.kits.KitIntegration.IdentityListener
1717
import com.mparticle.kits.KitIntegration.RoktListener
18+
import com.mparticle.rokt.RoktConfig
1819
import com.mparticle.rokt.RoktEmbeddedView
20+
import com.rokt.roktsdk.CacheConfig
1921
import com.rokt.roktsdk.Rokt
2022
import com.rokt.roktsdk.RoktWidgetDimensionCallBack
2123
import com.rokt.roktsdk.Widget
@@ -139,7 +141,8 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
139141
mpRoktEventCallback: MParticle.MpRoktEventCallback?,
140142
placeHolders: MutableMap<String, WeakReference<RoktEmbeddedView>>?,
141143
fontTypefaces: MutableMap<String, WeakReference<Typeface>>?,
142-
filterUser: FilteredMParticleUser?
144+
filterUser: FilteredMParticleUser?,
145+
mpRoktConfig: RoktConfig?
143146
) {
144147
val placeholders: Map<String, WeakReference<Widget>>? = placeHolders?.mapNotNull { entry ->
145148
val widget = Widget(entry.value.get()?.context as Context)
@@ -184,17 +187,44 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
184187
attributes?.get(SANDBOX_MODE_ROKT)?.let { value ->
185188
finalAttributes.put(SANDBOX_MODE_ROKT, value)
186189
}
187-
190+
val roktConfig = mpRoktConfig?.let { mapToRoktConfig(it) }
188191
Rokt.execute(
189192
viewName,
190193
finalAttributes,
191194
this,
192195
// Pass placeholders and fontTypefaces only if they are not empty or null
193196
placeholders.takeIf { it?.isNotEmpty() == true },
194-
fontTypefaces.takeIf { it?.isNotEmpty() == true }
197+
fontTypefaces.takeIf { it?.isNotEmpty() == true },
198+
roktConfig
195199
)
196200
}
197201

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

199229
private fun addIdentityAttributes(attributes: MutableMap<String, String>?, filterUser: FilteredMParticleUser?): MutableMap<String, String> {
200230
val identityAttributes = mutableMapOf<String, String>()

0 commit comments

Comments
 (0)