react-native-maps 1.23.10 → 1.23.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -134,6 +134,7 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
134
134
  double x = map != null && map.hasKey("x") ? map.getDouble("x") : 0.5;
135
135
  double y = map != null && map.hasKey("y") ? map.getDouble("y") : 1.0;
136
136
  view.setAnchor(x, y);
137
+ view.setUpdated(true);
137
138
  }
138
139
 
139
140
  @Override
@@ -144,6 +145,7 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
144
145
  @Override
145
146
  public void setImage(MapMarker view, @Nullable ReadableMap value) {
146
147
  view.setImage(value.getString("uri"));
148
+ view.setUpdated(true);
147
149
  }
148
150
 
149
151
  @Override
@@ -159,26 +161,31 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
159
161
  @Override
160
162
  public void setCoordinate(MapMarker view, @Nullable ReadableMap value) {
161
163
  view.setCoordinate(value);
164
+ view.setUpdated(true);
162
165
  }
163
166
 
164
167
  @Override
165
168
  public void setDescription(MapMarker view, @Nullable String value) {
166
169
  view.setSnippet(value);
170
+ view.setUpdated(true);
167
171
  }
168
172
 
169
173
  @Override
170
174
  public void setDraggable(MapMarker view, boolean value) {
171
175
  view.setDraggable(value);
176
+ view.setUpdated(true);
172
177
  }
173
178
 
174
179
  @Override
175
180
  public void setTitle(MapMarker view, @Nullable String value) {
176
181
  view.setTitle(value);
182
+ view.setUpdated(true);
177
183
  }
178
184
 
179
185
  @Override
180
186
  public void setIdentifier(MapMarker view, @Nullable String value) {
181
187
  view.setIdentifier(value);
188
+ view.setUpdated(true);
182
189
  }
183
190
 
184
191
  @Override
@@ -189,6 +196,7 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
189
196
  @Override
190
197
  public void setOpacity(MapMarker view, double value) {
191
198
  view.setOpacity((float) value);
199
+ view.setUpdated(true);
192
200
  }
193
201
 
194
202
  @Override
@@ -197,6 +205,7 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
197
205
  Color.colorToHSV(value, hsv);
198
206
  // NOTE: android only supports a hue
199
207
  view.setMarkerHue(hsv[0]);
208
+ view.setUpdated(true);
200
209
  }
201
210
 
202
211
  @Override
@@ -221,18 +230,20 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
221
230
 
222
231
  @Override
223
232
  public void setCoordinates(MapMarker view, double latitude, double longitude) {
224
- view.setCoordinate(new LatLng(latitude, longitude));
233
+ view.setCoordinate(new LatLng(latitude, longitude));
234
+ view.setUpdated(true);
225
235
  }
226
236
 
227
237
  @Override
228
238
  public void showCallout(MapMarker view) {
229
239
  ((Marker) view.getFeature()).showInfoWindow();
230
-
240
+ view.setUpdated(true);
231
241
  }
232
242
 
233
243
  @Override
234
244
  public void hideCallout(MapMarker view) {
235
245
  ((Marker) view.getFeature()).hideInfoWindow();
246
+ view.setUpdated(true);
236
247
  }
237
248
 
238
249
  @Override
@@ -242,7 +253,7 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
242
253
 
243
254
  @Override
244
255
  public void redraw(MapMarker view) {
245
-
256
+ view.setUpdated(true);
246
257
  }
247
258
  @Override
248
259
  public void addView(MapMarker parent, View child, int index) {
@@ -252,7 +263,18 @@ public class MarkerManager extends ViewGroupManager<MapMarker> implements RNMaps
252
263
  parent.setCalloutView((MapCallout) child);
253
264
  } else {
254
265
  super.addView(parent, child, index);
266
+ if (index == 0) {
267
+ child.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
268
+ @Override
269
+ public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
270
+ int newWidth = right - left;
271
+ int newHeight = bottom - top;
272
+ MapMarker marker = (MapMarker) v.getParent();
273
+ marker.update(newWidth, newHeight);
274
+ }
275
+ });
276
+ }
255
277
  parent.update(true);
256
278
  }
257
279
  }
258
- }
280
+ }
@@ -89,6 +89,8 @@ public class MapMarker extends MapFeature {
89
89
  private float calloutAnchorY;
90
90
  private boolean calloutAnchorIsSet;
91
91
 
92
+ private int updated = 0;
93
+
92
94
  private boolean tracksViewChanges = true;
93
95
  private boolean tracksViewChangesActive = false;
94
96
 
@@ -313,11 +315,15 @@ public class MapMarker extends MapFeature {
313
315
  }
314
316
 
315
317
  public boolean updateCustomForTracking() {
316
- if (!tracksViewChangesActive)
318
+ if (!tracksViewChangesActive || updated == 0) {
319
+ tracksViewChangesActive = false;
317
320
  return false;
321
+ }
318
322
 
319
323
  updateMarkerIcon();
320
-
324
+ if (updated > 0){
325
+ updated--;
326
+ }
321
327
  return true;
322
328
  }
323
329
 
@@ -455,6 +461,14 @@ public class MapMarker extends MapFeature {
455
461
  updateTracksViewChanges();
456
462
  update(true);
457
463
  }
464
+ } else {
465
+ // custom subview
466
+ if (!(getChildAt(0) instanceof MapCallout)) {
467
+ if (updated == 0) {
468
+ updated = 1;
469
+ updateTracksViewChanges();
470
+ }
471
+ }
458
472
  }
459
473
  }
460
474
 
@@ -539,12 +553,15 @@ public class MapMarker extends MapFeature {
539
553
  } else {
540
554
  marker.setInfoWindowAnchor(0.5f, 0);
541
555
  }
556
+ updated +=1;
542
557
  }
543
558
 
544
559
  public void update(int width, int height) {
545
560
  this.width = width;
546
561
  this.height = height;
547
-
562
+ updated +=1;
563
+ updateTracksViewChanges();
564
+ clearDrawableCache();
548
565
  update(true);
549
566
  }
550
567
 
@@ -663,6 +680,14 @@ public class MapMarker extends MapFeature {
663
680
  this.imageLoadedListener = imageLoadedListener;
664
681
  }
665
682
 
683
+ public void setUpdated(boolean updated) {
684
+ if (updated) {
685
+ this.updated += 1;
686
+ } else {
687
+ this.updated = 0;
688
+ }
689
+ }
690
+
666
691
  @FunctionalInterface
667
692
  public interface EventCreator<T extends Event> {
668
693
  T create(int surfaceId, int viewId, WritableMap payload);
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "main": "src/index.ts",
6
6
  "author": "Leland Richardson <leland.m.richardson@gmail.com>",
7
7
  "homepage": "https://github.com/react-native-maps/react-native-maps#readme",
8
- "version": "1.23.10",
8
+ "version": "1.23.11",
9
9
  "license": "MIT",
10
10
  "scripts": {
11
11
  "lint": "eslint . --max-warnings 0",