From 92165d8cdbdc9271aefb27b3b325141365cb2520 Mon Sep 17 00:00:00 2001 From: Mansi Pandya Date: Tue, 10 Jun 2025 15:53:20 -0400 Subject: [PATCH 1/3] feat: Add RoktConfig support --- src/main/kotlin/com/mparticle/kits/RoktKit.kt | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/mparticle/kits/RoktKit.kt b/src/main/kotlin/com/mparticle/kits/RoktKit.kt index b2557cb..cda13bc 100644 --- a/src/main/kotlin/com/mparticle/kits/RoktKit.kt +++ b/src/main/kotlin/com/mparticle/kits/RoktKit.kt @@ -15,7 +15,9 @@ import com.mparticle.internal.Logger import com.mparticle.kits.KitIntegration.CommerceListener import com.mparticle.kits.KitIntegration.IdentityListener import com.mparticle.kits.KitIntegration.RoktListener +import com.mparticle.rokt.RoktConfig import com.mparticle.rokt.RoktEmbeddedView +import com.rokt.roktsdk.CacheConfig import com.rokt.roktsdk.Rokt import com.rokt.roktsdk.RoktWidgetDimensionCallBack import com.rokt.roktsdk.Widget @@ -139,7 +141,8 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen mpRoktEventCallback: MParticle.MpRoktEventCallback?, placeHolders: MutableMap>?, fontTypefaces: MutableMap>?, - filterUser: FilteredMParticleUser? + filterUser: FilteredMParticleUser?, + config: RoktConfig? ) { val placeholders: Map>? = placeHolders?.mapNotNull { entry -> val widget = Widget(entry.value.get()?.context as Context) @@ -184,17 +187,43 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen attributes?.get(SANDBOX_MODE_ROKT)?.let { value -> finalAttributes.put(SANDBOX_MODE_ROKT, value) } - + val roktConfig = config?.let { mapToRoktConfig(it) } Rokt.execute( viewName, finalAttributes, this, // Pass placeholders and fontTypefaces only if they are not empty or null placeholders.takeIf { it?.isNotEmpty() == true }, - fontTypefaces.takeIf { it?.isNotEmpty() == true } + fontTypefaces.takeIf { it?.isNotEmpty() == true }, + roktConfig.takeIf { it != null } ) } + fun mapToRoktConfig(config: RoktConfig): com.rokt.roktsdk.RoktConfig { + val colorMode = when (config.colorMode) { + RoktConfig.ColorMode.LIGHT -> com.rokt.roktsdk.RoktConfig.ColorMode.LIGHT + RoktConfig.ColorMode.DARK -> com.rokt.roktsdk.RoktConfig.ColorMode.DARK + RoktConfig.ColorMode.SYSTEM -> com.rokt.roktsdk.RoktConfig.ColorMode.SYSTEM + else -> com.rokt.roktsdk.RoktConfig.ColorMode.SYSTEM + } + + val cacheConfig = config.cacheConfig?.cacheDurationInSeconds?.let { + CacheConfig( + cacheDurationInSeconds = it, + cacheAttributes = config.cacheConfig?.cacheAttributes + ) + } + + val edgeToEdgeDisplay = config.edgeToEdgeDisplay + + val builder = com.rokt.roktsdk.RoktConfig.Builder() + .colorMode(colorMode) + .edgeToEdgeDisplay(edgeToEdgeDisplay) + if (cacheConfig != null) { + builder.cacheConfig(cacheConfig) + } + return builder.build() + } private fun addIdentityAttributes(attributes: MutableMap?, filterUser: FilteredMParticleUser?): MutableMap { val identityAttributes = mutableMapOf() From 25bf8a95154afec13db831c09176350c7c6b7ee6 Mon Sep 17 00:00:00 2001 From: Mansi Pandya Date: Tue, 10 Jun 2025 17:13:46 -0400 Subject: [PATCH 2/3] rename parameter name --- src/main/kotlin/com/mparticle/kits/RoktKit.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/mparticle/kits/RoktKit.kt b/src/main/kotlin/com/mparticle/kits/RoktKit.kt index cda13bc..98f82c6 100644 --- a/src/main/kotlin/com/mparticle/kits/RoktKit.kt +++ b/src/main/kotlin/com/mparticle/kits/RoktKit.kt @@ -142,7 +142,7 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen placeHolders: MutableMap>?, fontTypefaces: MutableMap>?, filterUser: FilteredMParticleUser?, - config: RoktConfig? + mpRoktConfig: RoktConfig? ) { val placeholders: Map>? = placeHolders?.mapNotNull { entry -> val widget = Widget(entry.value.get()?.context as Context) @@ -187,7 +187,7 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen attributes?.get(SANDBOX_MODE_ROKT)?.let { value -> finalAttributes.put(SANDBOX_MODE_ROKT, value) } - val roktConfig = config?.let { mapToRoktConfig(it) } + val roktConfig = mpRoktConfig?.let { mapToRoktConfig(it) } Rokt.execute( viewName, finalAttributes, From 5a9441c5d3c556500fe1d16df25c3ed6ead4eb8c Mon Sep 17 00:00:00 2001 From: Mansi Pandya Date: Wed, 11 Jun 2025 13:39:46 -0400 Subject: [PATCH 3/3] Address review comments --- src/main/kotlin/com/mparticle/kits/RoktKit.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/mparticle/kits/RoktKit.kt b/src/main/kotlin/com/mparticle/kits/RoktKit.kt index 98f82c6..89cbf17 100644 --- a/src/main/kotlin/com/mparticle/kits/RoktKit.kt +++ b/src/main/kotlin/com/mparticle/kits/RoktKit.kt @@ -195,11 +195,11 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen // Pass placeholders and fontTypefaces only if they are not empty or null placeholders.takeIf { it?.isNotEmpty() == true }, fontTypefaces.takeIf { it?.isNotEmpty() == true }, - roktConfig.takeIf { it != null } + roktConfig ) } - fun mapToRoktConfig(config: RoktConfig): com.rokt.roktsdk.RoktConfig { + public fun mapToRoktConfig(config: RoktConfig): com.rokt.roktsdk.RoktConfig { val colorMode = when (config.colorMode) { RoktConfig.ColorMode.LIGHT -> com.rokt.roktsdk.RoktConfig.ColorMode.LIGHT RoktConfig.ColorMode.DARK -> com.rokt.roktsdk.RoktConfig.ColorMode.DARK @@ -219,8 +219,9 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen val builder = com.rokt.roktsdk.RoktConfig.Builder() .colorMode(colorMode) .edgeToEdgeDisplay(edgeToEdgeDisplay) - if (cacheConfig != null) { - builder.cacheConfig(cacheConfig) + + cacheConfig?.let { + builder.cacheConfig(it) } return builder.build() }