react-native-maps 1.21.0-alpha.6 → 1.21.0-alpha.60

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.
Files changed (132) hide show
  1. package/android/build.gradle +32 -8
  2. package/android/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  3. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +199 -0
  4. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +71 -0
  5. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +103 -0
  6. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  7. package/android/generated/jni/CMakeLists.txt +36 -0
  8. package/android/generated/jni/RNMapsSpecs-generated.cpp +68 -0
  9. package/android/generated/jni/RNMapsSpecs.h +31 -0
  10. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +25 -0
  11. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +27 -0
  12. package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +896 -0
  13. package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +765 -0
  14. package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +146 -0
  15. package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1047 -0
  16. package/android/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  17. package/android/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +264 -0
  18. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +20 -0
  19. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +65 -0
  20. package/android/generated/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  21. package/android/generated/jni/react/renderer/components/RNMapsSpecs/States.h +65 -0
  22. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  23. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +577 -0
  24. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +176 -0
  25. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +25 -2
  26. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  27. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  28. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  29. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  30. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  31. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  32. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  33. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  34. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  35. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  36. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  37. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  38. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  39. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  40. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  41. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  42. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  43. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  44. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +18 -2
  45. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  46. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +53 -1
  47. package/android/src/main/java/com/rnmaps/maps/MapView.java +1613 -1346
  48. package/ios/AirGoogleMaps/AIRGoogleMap.h +8 -2
  49. package/ios/AirGoogleMaps/AIRGoogleMap.m +243 -55
  50. package/ios/AirGoogleMaps/AIRGoogleMapCircle.h +0 -1
  51. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  52. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.h +13 -0
  53. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.m +10 -0
  54. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +7 -0
  55. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +30 -119
  56. package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +2 -0
  57. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +347 -243
  58. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +0 -1
  59. package/ios/AirGoogleMaps/AIRGoogleMapOverlay.h +0 -1
  60. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +5 -4
  61. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +32 -2
  62. package/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m +3 -3
  63. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +3 -2
  64. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +2 -3
  65. package/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m +2 -2
  66. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  67. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +2 -2
  68. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h +3 -0
  69. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +18 -0
  70. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +26 -0
  71. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +629 -0
  72. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +25 -0
  73. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  74. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  75. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +25 -0
  76. package/ios/AirMaps/AIRMap.h +8 -5
  77. package/ios/AirMaps/AIRMap.m +292 -141
  78. package/ios/AirMaps/AIRMapManager.m +12 -21
  79. package/ios/AirMaps/AIRMapMarker.h +1 -0
  80. package/ios/AirMaps/AIRMapMarker.m +165 -103
  81. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  82. package/ios/AirMaps/RCTConvert+AirMap.h +4 -0
  83. package/ios/AirMaps/RCTConvert+AirMap.m +2 -0
  84. package/ios/AirMaps/RNMapsAirModule.h +4 -1
  85. package/ios/AirMaps/RNMapsAirModule.mm +42 -172
  86. package/ios/AirMaps/RNMapsAirModuleDelegate.h +24 -0
  87. package/ios/AirMaps/RNMapsHostVewDelegate.h +17 -0
  88. package/ios/AirMaps/RNMapsMapView.h +6 -3
  89. package/ios/AirMaps/RNMapsMapView.mm +346 -332
  90. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  91. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  92. package/ios/AirMaps/RNMapsMarkerViewManager.mm +21 -0
  93. package/ios/AirMaps/UIView +AirMap.m +20 -0
  94. package/ios/AirMaps/UIView+AirMap.h +11 -0
  95. package/ios/AirMaps.xcodeproj/project.pbxproj +60 -0
  96. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +25 -0
  97. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +27 -0
  98. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +896 -0
  99. package/ios/generated/RNMapsSpecs/EventEmitters.h +765 -0
  100. package/ios/generated/RNMapsSpecs/Props.cpp +146 -0
  101. package/ios/generated/RNMapsSpecs/Props.h +1047 -0
  102. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +549 -0
  103. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  104. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +134 -0
  105. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +20 -0
  106. package/ios/generated/RNMapsSpecs/ShadowNodes.h +65 -0
  107. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  108. package/ios/generated/RNMapsSpecs/States.h +65 -0
  109. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  110. package/ios/generated/RNMapsSpecsJSI.h +264 -0
  111. package/lib/MapMarker.d.ts +15 -2
  112. package/lib/MapMarker.js +53 -9
  113. package/lib/MapMarkerNativeComponent.js +0 -2
  114. package/lib/MapOverlay.d.ts +1 -1
  115. package/lib/MapOverlay.js +2 -8
  116. package/lib/MapView.d.ts +5 -22
  117. package/lib/MapView.js +61 -80
  118. package/lib/{FabricMapView.d.ts → createFabricMap.d.ts} +7 -6
  119. package/lib/createFabricMap.js +175 -0
  120. package/lib/decorateMapComponent.js +17 -0
  121. package/lib/specs/NativeAirMapsModule.d.ts +2 -2
  122. package/lib/specs/NativeComponentGoogleMapView.d.ts +713 -0
  123. package/lib/specs/NativeComponentGoogleMapView.js +21 -0
  124. package/lib/specs/NativeComponentGooglePolygon.d.ts +75 -0
  125. package/lib/specs/NativeComponentGooglePolygon.js +9 -0
  126. package/lib/specs/NativeComponentMapView.d.ts +21 -45
  127. package/lib/specs/NativeComponentMapView.js +1 -3
  128. package/lib/specs/NativeComponentMarker.d.ts +258 -0
  129. package/lib/specs/NativeComponentMarker.js +19 -0
  130. package/package.json +13 -7
  131. package/react-native-maps.podspec +2 -1
  132. package/lib/FabricMapView.js +0 -175
@@ -0,0 +1,48 @@
1
+ package com.rnmaps.fabric.event;
2
+
3
+ import androidx.annotation.NonNull;
4
+
5
+ import com.facebook.react.bridge.ReadableMap;
6
+ import com.facebook.react.bridge.WritableMap;
7
+ import com.facebook.react.bridge.WritableNativeMap;
8
+ import com.facebook.react.uimanager.events.Event;
9
+ import com.google.android.gms.maps.model.LatLng;
10
+ import com.google.android.gms.maps.model.LatLngBounds;
11
+
12
+ public class OnRegionChangeEvent extends Event<OnRegionChangeEvent> {
13
+ public static final String EVENT_NAME = "topRegionChange";
14
+
15
+ private final WritableMap payload;
16
+
17
+ public OnRegionChangeEvent(int surfaceId, int viewId, WritableMap payload) {
18
+ super(surfaceId, viewId);
19
+ this.payload = payload;
20
+ }
21
+ public static WritableMap payLoadFor(LatLngBounds bounds, boolean continuous, boolean isGesture){
22
+
23
+ WritableMap event = new WritableNativeMap();
24
+ event.putBoolean("continuous", continuous);
25
+ WritableMap region = new WritableNativeMap();
26
+ LatLng center = bounds.getCenter();
27
+ region.putDouble("latitude", center.latitude);
28
+ region.putDouble("longitude", center.longitude);
29
+ region.putDouble("latitudeDelta", bounds.northeast.latitude - bounds.southwest.latitude);
30
+ region.putDouble("longitudeDelta", bounds.northeast.longitude - bounds.southwest.longitude);
31
+ event.putMap("region", region);
32
+ event.putBoolean("isGesture", isGesture);
33
+ return event;
34
+ }
35
+
36
+ @NonNull
37
+ @Override
38
+ public String getEventName() {
39
+ return EVENT_NAME;
40
+ }
41
+
42
+
43
+ @Override
44
+ protected WritableMap getEventData() {
45
+ return payload;
46
+ }
47
+
48
+ }
@@ -0,0 +1,28 @@
1
+ package com.rnmaps.fabric.event;
2
+
3
+ import androidx.annotation.NonNull;
4
+
5
+ import com.facebook.react.bridge.WritableMap;
6
+ import com.facebook.react.uimanager.events.Event;
7
+
8
+ public class OnSelectEvent extends Event<OnSelectEvent> {
9
+ public static final String EVENT_NAME = "topSelect";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnSelectEvent(int surfaceId, int viewId, WritableMap payload) {
14
+ super(surfaceId, viewId);
15
+ this.payload = payload;
16
+ }
17
+
18
+ @NonNull
19
+ @Override
20
+ public String getEventName() {
21
+ return EVENT_NAME;
22
+ }
23
+
24
+ @Override
25
+ public WritableMap getEventData() {
26
+ return payload;
27
+ }
28
+ }
@@ -0,0 +1,28 @@
1
+ package com.rnmaps.fabric.event;
2
+
3
+ import androidx.annotation.NonNull;
4
+
5
+ import com.facebook.react.bridge.WritableMap;
6
+ import com.facebook.react.uimanager.events.Event;
7
+
8
+ public class OnUserLocationChangeEvent extends Event<OnUserLocationChangeEvent> {
9
+ public static final String EVENT_NAME = "topUserLocationChange";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnUserLocationChangeEvent(int surfaceId, int viewId, WritableMap payload) {
14
+ super(surfaceId, viewId);
15
+ this.payload = payload;
16
+ }
17
+
18
+ @NonNull
19
+ @Override
20
+ public String getEventName() {
21
+ return EVENT_NAME;
22
+ }
23
+
24
+ @Override
25
+ public WritableMap getEventData() {
26
+ return payload;
27
+ }
28
+ }
@@ -7,17 +7,33 @@ import com.facebook.react.bridge.NativeModule;
7
7
  import com.facebook.react.bridge.ReactApplicationContext;
8
8
  import com.facebook.react.module.model.ReactModuleInfo;
9
9
  import com.facebook.react.module.model.ReactModuleInfoProvider;
10
+ import com.facebook.react.uimanager.ViewManager;
11
+ import com.rnmaps.fabric.MapViewManager;
12
+ import com.rnmaps.fabric.MarkerManager;
10
13
  import com.rnmaps.fabric.NativeAirMapsModule;
11
- import com.rnmaps.fabric.NativeAirMapsModuleSpec;
14
+ import com.facebook.fbreact.specs.NativeAirMapsModuleSpec;
12
15
 
13
16
  import java.util.HashMap;
17
+ import java.util.List;
14
18
  import java.util.Map;
15
19
 
16
20
  public class MapAirModulePackage extends TurboReactPackage {
17
21
 
22
+ @Override
23
+ public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
24
+ return List.of(new MapViewManager(reactContext), new MarkerManager(reactContext));
25
+ }
26
+
27
+
18
28
  @Override
19
29
  public NativeModule getModule(String name, ReactApplicationContext reactContext) {
20
- if (name.equals(NativeAirMapsModuleSpec.NAME)) {
30
+ if (MarkerManager.REACT_CLASS.equals(name)) {
31
+ return new MarkerManager(reactContext);
32
+ }
33
+ if (MapViewManager.REACT_CLASS.equals(name)) {
34
+ return new MapViewManager(reactContext);
35
+ }
36
+ if (NativeAirMapsModuleSpec.NAME.equals(name)) {
21
37
  return new NativeAirMapsModule(reactContext);
22
38
  } else {
23
39
  return null;
@@ -42,7 +42,7 @@ public class MapManager extends ViewGroupManager<MapView> {
42
42
  "none", GoogleMap.MAP_TYPE_NONE
43
43
  );
44
44
 
45
- private final Map<String, Integer> MY_LOCATION_PRIORITY = MapBuilder.of(
45
+ public static final Map<String, Integer> MY_LOCATION_PRIORITY = MapBuilder.of(
46
46
  "balanced", Priority.PRIORITY_BALANCED_POWER_ACCURACY,
47
47
  "high", Priority.PRIORITY_HIGH_ACCURACY,
48
48
  "low", Priority.PRIORITY_LOW_POWER,
@@ -240,47 +240,47 @@ public class MapManager extends ViewGroupManager<MapView> {
240
240
 
241
241
  @ReactProp(name = "showsBuildings", defaultBoolean = false)
242
242
  public void setShowBuildings(MapView view, boolean showBuildings) {
243
- view.map.setBuildingsEnabled(showBuildings);
243
+ view.setShowBuildings(showBuildings);
244
244
  }
245
245
 
246
246
  @ReactProp(name = "showsIndoors", defaultBoolean = false)
247
247
  public void setShowIndoors(MapView view, boolean showIndoors) {
248
- view.map.setIndoorEnabled(showIndoors);
248
+ view.setShowIndoors(showIndoors);
249
249
  }
250
250
 
251
251
  @ReactProp(name = "showsIndoorLevelPicker", defaultBoolean = false)
252
252
  public void setShowsIndoorLevelPicker(MapView view, boolean showsIndoorLevelPicker) {
253
- view.map.getUiSettings().setIndoorLevelPickerEnabled(showsIndoorLevelPicker);
253
+ view.setShowsIndoorLevelPicker(showsIndoorLevelPicker);
254
254
  }
255
255
 
256
256
  @ReactProp(name = "showsCompass", defaultBoolean = false)
257
257
  public void setShowsCompass(MapView view, boolean showsCompass) {
258
- view.map.getUiSettings().setCompassEnabled(showsCompass);
258
+ view.setShowsCompass(showsCompass);
259
259
  }
260
260
 
261
261
  @ReactProp(name = "scrollEnabled", defaultBoolean = false)
262
262
  public void setScrollEnabled(MapView view, boolean scrollEnabled) {
263
- view.map.getUiSettings().setScrollGesturesEnabled(scrollEnabled);
263
+ view.setScrollEnabled(scrollEnabled);
264
264
  }
265
265
 
266
266
  @ReactProp(name = "zoomEnabled", defaultBoolean = false)
267
267
  public void setZoomEnabled(MapView view, boolean zoomEnabled) {
268
- view.map.getUiSettings().setZoomGesturesEnabled(zoomEnabled);
268
+ view.setZoomEnabled(zoomEnabled);
269
269
  }
270
270
 
271
271
  @ReactProp(name = "zoomControlEnabled", defaultBoolean = true)
272
272
  public void setZoomControlEnabled(MapView view, boolean zoomControlEnabled) {
273
- view.map.getUiSettings().setZoomControlsEnabled(zoomControlEnabled);
273
+ view.setZoomControlEnabled(zoomControlEnabled);
274
274
  }
275
275
 
276
276
  @ReactProp(name = "rotateEnabled", defaultBoolean = false)
277
277
  public void setRotateEnabled(MapView view, boolean rotateEnabled) {
278
- view.map.getUiSettings().setRotateGesturesEnabled(rotateEnabled);
278
+ view.setRotateEnabled(rotateEnabled);
279
279
  }
280
280
 
281
281
  @ReactProp(name = "scrollDuringRotateOrZoomEnabled", defaultBoolean = true)
282
282
  public void setScrollDuringRotateOrZoomEnabled(MapView view, boolean scrollDuringRotateOrZoomEnabled) {
283
- view.map.getUiSettings().setScrollGesturesEnabledDuringRotateOrZoom(scrollDuringRotateOrZoomEnabled);
283
+ view.setScrollDuringRotateOrZoomEnabled(scrollDuringRotateOrZoomEnabled);
284
284
  }
285
285
 
286
286
  @ReactProp(name = "cacheEnabled", defaultBoolean = false)
@@ -295,7 +295,7 @@ public class MapManager extends ViewGroupManager<MapView> {
295
295
 
296
296
  @ReactProp(name = "loadingEnabled", defaultBoolean = false)
297
297
  public void setLoadingEnabled(MapView view, boolean loadingEnabled) {
298
- view.enableMapLoading(loadingEnabled);
298
+ view.setLoadingEnabled(loadingEnabled);
299
299
  }
300
300
 
301
301
  @ReactProp(name = "moveOnMarkerPress", defaultBoolean = true)
@@ -315,17 +315,17 @@ public class MapManager extends ViewGroupManager<MapView> {
315
315
 
316
316
  @ReactProp(name = "pitchEnabled", defaultBoolean = false)
317
317
  public void setPitchEnabled(MapView view, boolean pitchEnabled) {
318
- view.map.getUiSettings().setTiltGesturesEnabled(pitchEnabled);
318
+ view.setPitchEnabled(pitchEnabled);
319
319
  }
320
320
 
321
321
  @ReactProp(name = "minZoomLevel")
322
322
  public void setMinZoomLevel(MapView view, float minZoomLevel) {
323
- view.map.setMinZoomPreference(minZoomLevel);
323
+ view.setMinZoomLevel(minZoomLevel);
324
324
  }
325
325
 
326
326
  @ReactProp(name = "maxZoomLevel")
327
327
  public void setMaxZoomLevel(MapView view, float maxZoomLevel) {
328
- view.map.setMaxZoomPreference(maxZoomLevel);
328
+ view.setMaxZoomLevel(maxZoomLevel);
329
329
  }
330
330
 
331
331
  @ReactProp(name = "kmlSrc")
@@ -32,13 +32,27 @@ import com.facebook.imagepipeline.image.CloseableStaticBitmap;
32
32
  import com.facebook.imagepipeline.image.ImageInfo;
33
33
  import com.facebook.imagepipeline.request.ImageRequest;
34
34
  import com.facebook.imagepipeline.request.ImageRequestBuilder;
35
+ import com.facebook.react.bridge.ReactContext;
35
36
  import com.facebook.react.bridge.ReadableMap;
37
+ import com.facebook.react.bridge.WritableMap;
38
+ import com.facebook.react.common.MapBuilder;
39
+ import com.facebook.react.uimanager.UIManagerHelper;
40
+ import com.facebook.react.uimanager.events.Event;
41
+ import com.facebook.react.uimanager.events.EventDispatcher;
36
42
  import com.google.android.gms.maps.model.BitmapDescriptor;
37
43
  import com.google.android.gms.maps.model.BitmapDescriptorFactory;
38
44
  import com.google.android.gms.maps.model.LatLng;
39
45
  import com.google.android.gms.maps.model.Marker;
40
46
  import com.google.android.gms.maps.model.MarkerOptions;
41
47
  import com.google.maps.android.collections.MarkerManager;
48
+ import com.rnmaps.fabric.event.OnDeselectEvent;
49
+ import com.rnmaps.fabric.event.OnDragEndEvent;
50
+ import com.rnmaps.fabric.event.OnDragEvent;
51
+ import com.rnmaps.fabric.event.OnDragStartEvent;
52
+ import com.rnmaps.fabric.event.OnPressEvent;
53
+ import com.rnmaps.fabric.event.OnSelectEvent;
54
+
55
+ import java.util.Map;
42
56
 
43
57
  public class MapMarker extends MapFeature {
44
58
 
@@ -155,7 +169,10 @@ public class MapMarker extends MapFeature {
155
169
  }
156
170
 
157
171
  public void setCoordinate(ReadableMap coordinate) {
158
- position = new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude"));
172
+ setCoordinate(new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude")));
173
+ }
174
+ public void setCoordinate(LatLng position){
175
+ this.position = position;
159
176
  if (marker != null) {
160
177
  marker.setPosition(position);
161
178
  }
@@ -618,8 +635,43 @@ public class MapMarker extends MapFeature {
618
635
  getContext().getPackageName());
619
636
  }
620
637
 
638
+ @FunctionalInterface
639
+ public interface EventCreator<T extends Event> {
640
+ T create(int surfaceId, int viewId, WritableMap payload);
641
+ }
642
+ private <T extends Event> void dispatchEvent(WritableMap payload, MapView.EventCreator<T> creator) {
643
+ // Cast context to ReactContext
644
+ ReactContext reactContext = (ReactContext) context;
645
+
646
+ // Get the event dispatcher
647
+ EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());
648
+
649
+ // If there is a dispatcher, create and dispatch the event
650
+ if (eventDispatcher != null) {
651
+ int surfaceId = UIManagerHelper.getSurfaceId(reactContext);
652
+ T event = creator.create(surfaceId, getId(), payload);
653
+ eventDispatcher.dispatchEvent(event);
654
+ }
655
+ }
656
+
621
657
  private BitmapDescriptor getBitmapDescriptorByName(String name) {
622
658
  return BitmapDescriptorFactory.fromResource(getDrawableResourceByName(name));
623
659
  }
624
660
 
661
+ public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
662
+ MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
663
+ builder.put(OnSelectEvent.EVENT_NAME, MapBuilder.of("registrationName", OnSelectEvent.EVENT_NAME));
664
+ builder.put(OnDeselectEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDeselectEvent.EVENT_NAME));
665
+ builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
666
+ return builder.build();
667
+ }
668
+
669
+ public static Map<String, Object> getExportedCustomDirectEventTypeConstants() {
670
+ return MapBuilder.of(
671
+ OnDragEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDragEvent.EVENT_NAME),
672
+ OnDragStartEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDragStartEvent.EVENT_NAME),
673
+ OnDragEndEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDragEndEvent.EVENT_NAME)
674
+ );
675
+ }
676
+
625
677
  }