Skip to content

Commit 92165d8

Browse files
feat: Add RoktConfig support
1 parent 7c19387 commit 92165d8

File tree

1 file changed

+32
-3
lines changed

1 file changed

+32
-3
lines changed

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

Lines changed: 32 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+
config: 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,43 @@ 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 = config?.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.takeIf { it != null }
195199
)
196200
}
197201

202+
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+
if (cacheConfig != null) {
223+
builder.cacheConfig(cacheConfig)
224+
}
225+
return builder.build()
226+
}
198227

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

0 commit comments

Comments
 (0)