@@ -84,6 +84,18 @@ extension LocationOptions {
8484 if let showAccuracyRing = settings. showAccuracyRing {
8585 configuration. showsAccuracyRing = showAccuracyRing. boolValue
8686 }
87+ if settings. pulsingEnabled? . boolValue ?? false {
88+ var pulsing = Puck2DConfiguration . Pulsing ( )
89+
90+ if let radius = settings. pulsingMaxRadius? . intValue {
91+ // -1 indicates "accuracy" mode(from Android)
92+ pulsing. radius = radius == - 1 ? . accuracy : . constant( Double ( radius) )
93+ }
94+ if let color = settings. pulsingColor? . intValue {
95+ pulsing. color = uiColorFromHex ( rgbValue: color)
96+ }
97+ configuration. pulsing = pulsing
98+ }
8799
88100 options. puckType = . puck2D( configuration)
89101 }
@@ -102,6 +114,9 @@ extension LocationOptions {
102114 var accuracyRingColor : NSNumber ?
103115 var accuracyRingBorderColor : NSNumber ?
104116 var showAccuracyRing : NSNumber ?
117+ var pulsingEnabled : NSNumber ?
118+ var pulsingRadius : NSNumber ?
119+ var pulsingColor : NSNumber ?
105120 let locationPuck2D = FLT_SETTINGSLocationPuck2D . init ( )
106121 let locationPuck3D = FLT_SETTINGSLocationPuck3D . init ( )
107122 let locationPuck = FLT_SETTINGSLocationPuck . make ( with: locationPuck2D, locationPuck3D: locationPuck3D)
@@ -123,6 +138,16 @@ extension LocationOptions {
123138 let encoded = try ! JSONEncoder ( ) . encode ( scaleData)
124139 locationPuck2D. scaleExpression = String ( data: encoded, encoding: . utf8)
125140 }
141+ if let pulsing = oldConfiguration. pulsing {
142+ pulsingEnabled = NSNumber ( value: true )
143+ switch pulsing. radius {
144+ case . accuracy:
145+ pulsingRadius = NSNumber ( value: - 1 )
146+ case . constant( let radius) :
147+ pulsingRadius = NSNumber ( value: radius)
148+ }
149+ pulsingColor = NSNumber ( value: pulsing. color. rgb ( ) )
150+ }
126151 }
127152 if case . puck3D( let oldConfiguration) = self . puckType {
128153 locationPuck3D. modelUri = oldConfiguration. model. uri? . absoluteString
@@ -144,9 +169,9 @@ extension LocationOptions {
144169
145170 return FLT_SETTINGSLocationComponentSettings . make (
146171 withEnabled: enabled,
147- pulsingEnabled: nil ,
148- pulsingColor: nil ,
149- pulsingMaxRadius: nil ,
172+ pulsingEnabled: pulsingEnabled ,
173+ pulsingColor: pulsingColor ,
174+ pulsingMaxRadius: pulsingRadius ,
150175 showAccuracyRing: showAccuracyRing,
151176 accuracyRingColor: accuracyRingColor,
152177 accuracyRingBorderColor: accuracyRingBorderColor,
0 commit comments