@@ -208,6 +208,7 @@ class MparticleFlutterSdkPlugin: FlutterPlugin, MethodCallHandler {
208208 }
209209 result.success(true )
210210 }
211+ " roktSelectPlacements" -> this .roktSelectPlacements(call, result)
211212 else -> {
212213 result.notImplemented()
213214 }
@@ -673,6 +674,33 @@ class MparticleFlutterSdkPlugin: FlutterPlugin, MethodCallHandler {
673674 } ? : result.error(TAG , " No mParticle instance exists" , null )
674675 }
675676
677+ private fun roktSelectPlacements (call : MethodCall , result : Result ) {
678+ try {
679+ val placementId: String? = call.argument(" placementId" )
680+ val attributes: Map <String , Any ?>? = call.argument(" attributes" )
681+ Log .d(TAG , " roktSelectPlacements - placementId: $placementId " )
682+ Log .d(TAG , " roktSelectPlacements - attributes: $attributes " )
683+
684+ if (placementId == null ) {
685+ result.error(TAG , " Missing placementId" , null )
686+ return
687+ }
688+
689+ val stringAttributes: MutableMap <String , String > = mutableMapOf ()
690+ attributes?.forEach { (key, value) ->
691+ stringAttributes[key] = value?.toString() ? : " "
692+ }
693+
694+ Log .d(TAG , " roktSelectPlacements - stringAttributes: $stringAttributes " )
695+ MParticle .getInstance()?.let { instance ->
696+ instance.Rokt ()?.selectPlacements(placementId, stringAttributes)
697+ result.success(true )
698+ } ? : result.error(TAG , " No mParticle instance exists" , null )
699+ } catch (e: Exception ) {
700+ result.error(TAG , e.localizedMessage, null )
701+ }
702+ }
703+
676704 private fun ConvertIdentityHttpResponseToString (response : IdentityHttpResponse ? ): String {
677705 val map = mutableMapOf<String , Any ?>()
678706
0 commit comments