@@ -16,6 +16,7 @@ import com.mparticle.kits.KitIntegration.IdentityListener
16
16
import com.mparticle.kits.KitIntegration.RoktListener
17
17
import com.mparticle.rokt.RoktEmbeddedView
18
18
import com.rokt.roktsdk.Rokt
19
+ import com.rokt.roktsdk.RoktWidgetDimensionCallBack
19
20
import com.rokt.roktsdk.Widget
20
21
import java.lang.ref.WeakReference
21
22
import java.math.BigDecimal
@@ -127,12 +128,30 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
127
128
fontTypefaces : MutableMap <String , WeakReference <Typeface >>? ,
128
129
filterUser : FilteredMParticleUser ?
129
130
) {
130
- // Converting the placeholders to a Map<String, WeakReference<Widget>> by filtering and casting each entry
131
131
val placeholders: Map <String , WeakReference <Widget >>? = placeHolders?.mapNotNull { entry ->
132
- val weakRef = entry.value
133
- val widget = weakRef.get() as ? Widget // Safe cast to Widget
134
- widget?.let { entry.key to weakRef as WeakReference <Widget > } // Only include if it's a Widget
132
+ val widget = Widget (entry.value.get()?.context as Context )
133
+ entry.value.get()?.removeAllViews()
134
+ entry.value.get()?.addView(widget)
135
+ entry.value.get()?.dimensionCallBack?.let {
136
+ widget.registerDimensionListener(object : RoktWidgetDimensionCallBack {
137
+ override fun onHeightChanged (height : Int ) {
138
+ it.onHeightChanged(height)
139
+ }
140
+
141
+ override fun onMarginChanged (
142
+ start : Int ,
143
+ top : Int ,
144
+ end : Int ,
145
+ bottom : Int
146
+ ) {
147
+ it.onMarginChanged(start, top, end, bottom)
148
+ }
149
+
150
+ })
151
+ }
152
+ entry.key to WeakReference (widget)
135
153
}?.toMap()
154
+
136
155
this .mpRoktEventCallback = mpRoktEventCallback
137
156
val finalAttributes: HashMap <String , String > = HashMap <String , String >()
138
157
filterUser?.userAttributes?.let { userAttrs ->
@@ -141,11 +160,10 @@ class RoktKit : KitIntegration(), CommerceListener, IdentityListener, RoktListen
141
160
}
142
161
}
143
162
144
- filterUser?.id?.let { mpid ->
145
- finalAttributes.put(MPID , mpid.toString())
146
- } ? : run {
147
- Logger .warning(" RoktKit: No user ID available for placement" )
148
- }
163
+ filterUser?.id?.toString()?.let { mpid ->
164
+ finalAttributes[MPID ] = mpid
165
+ } ? : Logger .warning(" RoktKit: No user ID available for placement" )
166
+
149
167
addIdentityAttributes(finalAttributes, filterUser)
150
168
151
169
Rokt .execute(
0 commit comments