react-native-maps 1.21.0-alpha.7 → 1.21.0-alpha.70

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 +38 -13
  2. package/android/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  3. package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +200 -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 +104 -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 +26 -0
  11. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +28 -0
  12. package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +918 -0
  13. package/android/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +787 -0
  14. package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +154 -0
  15. package/android/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1058 -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 +268 -0
  18. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +21 -0
  19. package/android/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +76 -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 +77 -0
  22. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  23. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  24. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  25. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +593 -0
  26. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +259 -0
  27. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +137 -4
  28. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  29. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  30. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  31. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  32. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  33. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  34. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  35. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  36. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  37. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  38. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  39. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  40. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  41. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  42. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  43. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +22 -2
  50. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  51. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  52. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +79 -3
  53. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  54. package/android/src/main/java/com/rnmaps/maps/MapView.java +1588 -1346
  55. package/ios/AirGoogleMaps/AIRGoogleMap.h +3 -2
  56. package/ios/AirGoogleMaps/AIRGoogleMap.m +153 -48
  57. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  58. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +17 -28
  59. package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +2 -0
  60. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +347 -243
  61. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +2 -1
  62. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +30 -0
  63. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  64. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  65. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  66. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +2 -2
  67. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h +3 -0
  68. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
  69. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +3 -3
  70. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +161 -61
  71. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  72. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  73. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +25 -0
  74. package/ios/AirMaps/AIRMap.h +6 -3
  75. package/ios/AirMaps/AIRMap.m +289 -145
  76. package/ios/AirMaps/AIRMapManager.m +8 -17
  77. package/ios/AirMaps/AIRMapMarker.h +1 -0
  78. package/ios/AirMaps/AIRMapMarker.m +165 -103
  79. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  80. package/ios/AirMaps/RCTConvert+AirMap.h +4 -0
  81. package/ios/AirMaps/RCTConvert+AirMap.m +2 -0
  82. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  83. package/ios/AirMaps/RNMapsAirModule.mm +42 -172
  84. package/ios/AirMaps/RNMapsAirModuleDelegate.h +24 -0
  85. package/ios/AirMaps/RNMapsHostVewDelegate.h +17 -0
  86. package/ios/AirMaps/RNMapsMapView.h +3 -3
  87. package/ios/AirMaps/RNMapsMapView.mm +344 -307
  88. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  89. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  90. package/ios/AirMaps/RNMapsMarkerViewManager.mm +21 -0
  91. package/ios/AirMaps/UIView +AirMap.m +20 -0
  92. package/ios/AirMaps/UIView+AirMap.h +11 -0
  93. package/ios/AirMaps.xcodeproj/project.pbxproj +60 -0
  94. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +26 -0
  95. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +28 -0
  96. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +918 -0
  97. package/ios/generated/RNMapsSpecs/EventEmitters.h +787 -0
  98. package/ios/generated/RNMapsSpecs/Props.cpp +154 -0
  99. package/ios/generated/RNMapsSpecs/Props.h +1058 -0
  100. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +549 -0
  101. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  102. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  103. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +21 -0
  104. package/ios/generated/RNMapsSpecs/ShadowNodes.h +76 -0
  105. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  106. package/ios/generated/RNMapsSpecs/States.h +77 -0
  107. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  108. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  109. package/lib/MapCallout.js +1 -0
  110. package/lib/MapMarker.d.ts +15 -2
  111. package/lib/MapMarker.js +53 -9
  112. package/lib/MapMarkerNativeComponent.js +0 -2
  113. package/lib/MapOverlay.js +2 -8
  114. package/lib/MapPolyline.d.ts +1 -1
  115. package/lib/MapView.d.ts +7 -22
  116. package/lib/MapView.js +80 -89
  117. package/lib/{FabricMapView.d.ts → createFabricMap.d.ts} +7 -11
  118. package/lib/createFabricMap.js +175 -0
  119. package/lib/decorateMapComponent.js +22 -0
  120. package/lib/specs/NativeAirMapsModule.d.ts +2 -2
  121. package/lib/specs/NativeComponentCallout.d.ts +46 -0
  122. package/lib/specs/NativeComponentCallout.js +9 -0
  123. package/lib/specs/NativeComponentGoogleMapView.d.ts +12 -12
  124. package/lib/specs/NativeComponentGooglePolygon.d.ts +75 -0
  125. package/lib/specs/NativeComponentGooglePolygon.js +9 -0
  126. package/lib/specs/NativeComponentMapView.d.ts +19 -36
  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 +15 -10
  131. package/react-native-maps.podspec +2 -1
  132. package/lib/FabricMapView.js +0 -181
@@ -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 OnMarkerDragEndEvent extends Event<OnMarkerDragEndEvent> {
9
+ public static final String EVENT_NAME = "topMarkerDragEnd";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnMarkerDragEndEvent(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 OnMarkerDragEvent extends Event<OnMarkerDragEvent> {
9
+ public static final String EVENT_NAME = "topMarkerDrag";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnMarkerDragEvent(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 OnMarkerDragStartEvent extends Event<OnMarkerDragStartEvent> {
9
+ public static final String EVENT_NAME = "topMarkerDragStart";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnMarkerDragStartEvent(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 OnMarkerPressEvent extends Event<OnMarkerPressEvent> {
9
+ public static final String EVENT_NAME = "topMarkerPress";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnMarkerPressEvent(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 OnMarkerSelectEvent extends Event<OnMarkerSelectEvent> {
9
+ public static final String EVENT_NAME = "topMarkerSelect";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnMarkerSelectEvent(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,27 @@
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 OnPoiClickEvent extends Event<OnPoiClickEvent> {
9
+ public static final String EVENT_NAME = "topPoiClick";
10
+ private final WritableMap payload;
11
+
12
+ public OnPoiClickEvent(int surfaceId, int viewId, WritableMap payload) {
13
+ super(surfaceId, viewId);
14
+ this.payload = payload;
15
+ }
16
+
17
+ @NonNull
18
+ @Override
19
+ public String getEventName() {
20
+ return EVENT_NAME;
21
+ }
22
+
23
+ @Override
24
+ public WritableMap getEventData() {
25
+ return payload;
26
+ }
27
+ }
@@ -0,0 +1,27 @@
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 OnPressEvent extends Event<OnPressEvent> {
9
+ public static final String EVENT_NAME = "topPress";
10
+ private final WritableMap payload;
11
+
12
+ public OnPressEvent(int surfaceId, int viewId, WritableMap payload) {
13
+ super(surfaceId, viewId);
14
+ this.payload = payload;
15
+ }
16
+
17
+ @NonNull
18
+ @Override
19
+ public String getEventName() {
20
+ return EVENT_NAME;
21
+ }
22
+
23
+ @Override
24
+ public WritableMap getEventData() {
25
+ return payload;
26
+ }
27
+ }
@@ -0,0 +1,30 @@
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 OnRegionChangeCompleteEvent extends Event<OnRegionChangeCompleteEvent> {
9
+ public static final String EVENT_NAME = "topRegionChangeComplete";
10
+
11
+ private final WritableMap payload;
12
+
13
+ public OnRegionChangeCompleteEvent(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
+
25
+ @Override
26
+ protected WritableMap getEventData() {
27
+ return payload;
28
+ }
29
+
30
+ }
@@ -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,33 @@
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.bridge.WritableNativeMap;
7
+ import com.facebook.react.uimanager.events.Event;
8
+ import com.google.android.gms.maps.model.LatLng;
9
+ import com.google.android.gms.maps.model.LatLngBounds;
10
+
11
+ public class OnRegionChangeStartEvent extends Event<OnRegionChangeStartEvent> {
12
+ public static final String EVENT_NAME = "topRegionChangeStart";
13
+
14
+ private final WritableMap payload;
15
+
16
+ public OnRegionChangeStartEvent(int surfaceId, int viewId, WritableMap payload) {
17
+ super(surfaceId, viewId);
18
+ this.payload = payload;
19
+ }
20
+
21
+ @NonNull
22
+ @Override
23
+ public String getEventName() {
24
+ return EVENT_NAME;
25
+ }
26
+
27
+
28
+ @Override
29
+ protected WritableMap getEventData() {
30
+ return payload;
31
+ }
32
+
33
+ }
@@ -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,37 @@ 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.CalloutManager;
12
+ import com.rnmaps.fabric.MapViewManager;
13
+ import com.rnmaps.fabric.MarkerManager;
10
14
  import com.rnmaps.fabric.NativeAirMapsModule;
11
- import com.rnmaps.fabric.NativeAirMapsModuleSpec;
15
+ import com.facebook.fbreact.specs.NativeAirMapsModuleSpec;
12
16
 
13
17
  import java.util.HashMap;
18
+ import java.util.List;
14
19
  import java.util.Map;
15
20
 
16
21
  public class MapAirModulePackage extends TurboReactPackage {
17
22
 
23
+ @Override
24
+ public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
25
+ return List.of(new MapViewManager(reactContext), new MarkerManager(reactContext), new CalloutManager(reactContext));
26
+ }
27
+
28
+
18
29
  @Override
19
30
  public NativeModule getModule(String name, ReactApplicationContext reactContext) {
20
- if (name.equals(NativeAirMapsModuleSpec.NAME)) {
31
+ if (CalloutManager.REACT_CLASS.equals(name)) {
32
+ return new CalloutManager(reactContext);
33
+ }
34
+ if (MarkerManager.REACT_CLASS.equals(name)) {
35
+ return new MarkerManager(reactContext);
36
+ }
37
+ if (MapViewManager.REACT_CLASS.equals(name)) {
38
+ return new MapViewManager(reactContext);
39
+ }
40
+ if (NativeAirMapsModuleSpec.NAME.equals(name)) {
21
41
  return new NativeAirMapsModule(reactContext);
22
42
  } else {
23
43
  return null;
@@ -2,7 +2,11 @@ package com.rnmaps.maps;
2
2
 
3
3
  import android.content.Context;
4
4
 
5
+ import com.facebook.react.common.MapBuilder;
5
6
  import com.facebook.react.views.view.ReactViewGroup;
7
+ import com.rnmaps.fabric.event.OnPressEvent;
8
+
9
+ import java.util.Map;
6
10
 
7
11
  public class MapCallout extends ReactViewGroup {
8
12
  private boolean tooltip = false;
@@ -20,4 +24,18 @@ public class MapCallout extends ReactViewGroup {
20
24
  public boolean getTooltip() {
21
25
  return this.tooltip;
22
26
  }
27
+
28
+ @Override
29
+ protected void onLayout(boolean changed,
30
+ int left, int top, int right, int bottom){
31
+ width = right - left;
32
+ height = bottom - top;
33
+ }
34
+
35
+
36
+ public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
37
+ MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
38
+ builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
39
+ return builder.build();
40
+ }
23
41
  }
@@ -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,28 @@ 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;
42
+ import com.google.android.gms.common.images.ImageManager;
36
43
  import com.google.android.gms.maps.model.BitmapDescriptor;
37
44
  import com.google.android.gms.maps.model.BitmapDescriptorFactory;
38
45
  import com.google.android.gms.maps.model.LatLng;
39
46
  import com.google.android.gms.maps.model.Marker;
40
47
  import com.google.android.gms.maps.model.MarkerOptions;
41
48
  import com.google.maps.android.collections.MarkerManager;
49
+ import com.rnmaps.fabric.event.OnDeselectEvent;
50
+ import com.rnmaps.fabric.event.OnDragEndEvent;
51
+ import com.rnmaps.fabric.event.OnDragEvent;
52
+ import com.rnmaps.fabric.event.OnDragStartEvent;
53
+ import com.rnmaps.fabric.event.OnPressEvent;
54
+ import com.rnmaps.fabric.event.OnSelectEvent;
55
+
56
+ import java.util.Map;
42
57
 
43
58
  public class MapMarker extends MapFeature {
44
59
 
@@ -80,11 +95,17 @@ public class MapMarker extends MapFeature {
80
95
  private boolean hasCustomMarkerView = false;
81
96
  private final MapMarkerManager markerManager;
82
97
  private String imageUri;
98
+ private boolean loadingImage;
83
99
 
84
100
  private final DraweeHolder<?> logoHolder;
101
+ private ImageManager.OnImageLoadedListener imageLoadedListener;
85
102
  private DataSource<CloseableReference<CloseableImage>> dataSource;
86
103
  private final ControllerListener<ImageInfo> mLogoControllerListener =
87
104
  new BaseControllerListener<ImageInfo>() {
105
+ @Override
106
+ public void onSubmit(String id, Object callerContext){
107
+ loadingImage = true;
108
+ }
88
109
  @Override
89
110
  public void onFinalImageSet(
90
111
  String id,
@@ -116,6 +137,12 @@ public class MapMarker extends MapFeature {
116
137
  .updateIcon(iconBitmapDescriptor, iconBitmap);
117
138
  }
118
139
  update(true);
140
+ loadingImage = false;
141
+ if (imageLoadedListener != null){
142
+ imageLoadedListener.onImageLoaded(null, null, false);
143
+ // fire and forget
144
+ imageLoadedListener = null;
145
+ }
119
146
  }
120
147
  };
121
148
 
@@ -143,7 +170,7 @@ public class MapMarker extends MapFeature {
143
170
  setFlat(options.isFlat());
144
171
  setDraggable(options.isDraggable());
145
172
  setZIndex(Math.round(options.getZIndex()));
146
- setAlpha(options.getAlpha());
173
+ setOpacity(options.getAlpha());
147
174
  iconBitmapDescriptor = options.getIcon();
148
175
  }
149
176
 
@@ -155,7 +182,10 @@ public class MapMarker extends MapFeature {
155
182
  }
156
183
 
157
184
  public void setCoordinate(ReadableMap coordinate) {
158
- position = new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude"));
185
+ setCoordinate(new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude")));
186
+ }
187
+ public void setCoordinate(LatLng position){
188
+ this.position = position;
159
189
  if (marker != null) {
160
190
  marker.setPosition(position);
161
191
  }
@@ -421,7 +451,6 @@ public class MapMarker extends MapFeature {
421
451
  updateTracksViewChanges();
422
452
  update(true);
423
453
  }
424
-
425
454
  }
426
455
  }
427
456
 
@@ -618,8 +647,55 @@ public class MapMarker extends MapFeature {
618
647
  getContext().getPackageName());
619
648
  }
620
649
 
650
+ public boolean isLoadingImage() {
651
+ return loadingImage;
652
+ }
653
+
654
+ public ImageManager.OnImageLoadedListener getImageLoadedListener() {
655
+ return imageLoadedListener;
656
+ }
657
+
658
+ public void setImageLoadedListener(ImageManager.OnImageLoadedListener imageLoadedListener) {
659
+ this.imageLoadedListener = imageLoadedListener;
660
+ }
661
+
662
+ @FunctionalInterface
663
+ public interface EventCreator<T extends Event> {
664
+ T create(int surfaceId, int viewId, WritableMap payload);
665
+ }
666
+ public <T extends Event> void dispatchEvent(WritableMap payload, MapView.EventCreator<T> creator) {
667
+ // Cast context to ReactContext
668
+ ReactContext reactContext = (ReactContext) context;
669
+
670
+ // Get the event dispatcher
671
+ EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());
672
+
673
+ // If there is a dispatcher, create and dispatch the event
674
+ if (eventDispatcher != null) {
675
+ int surfaceId = UIManagerHelper.getSurfaceId(reactContext);
676
+ T event = creator.create(surfaceId, getId(), payload);
677
+ eventDispatcher.dispatchEvent(event);
678
+ }
679
+ }
680
+
621
681
  private BitmapDescriptor getBitmapDescriptorByName(String name) {
622
682
  return BitmapDescriptorFactory.fromResource(getDrawableResourceByName(name));
623
683
  }
624
684
 
685
+ public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
686
+ MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
687
+ builder.put(OnSelectEvent.EVENT_NAME, MapBuilder.of("registrationName", OnSelectEvent.EVENT_NAME));
688
+ builder.put(OnDeselectEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDeselectEvent.EVENT_NAME));
689
+ builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
690
+ return builder.build();
691
+ }
692
+
693
+ public static Map<String, Object> getExportedCustomDirectEventTypeConstants() {
694
+ return MapBuilder.of(
695
+ OnDragEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDragEvent.EVENT_NAME),
696
+ OnDragStartEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDragStartEvent.EVENT_NAME),
697
+ OnDragEndEvent.EVENT_NAME, MapBuilder.of("registrationName", OnDragEndEvent.EVENT_NAME)
698
+ );
699
+ }
700
+
625
701
  }