react-native-maps 1.21.0-alpha.12 → 1.21.0-alpha.121

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 (241) hide show
  1. package/android/build.gradle +77 -57
  2. package/android/gradlew +1 -2
  3. package/android/src/generated/RCTAppDependencyProvider.h +25 -0
  4. package/android/src/generated/RCTAppDependencyProvider.mm +55 -0
  5. package/android/src/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  6. package/android/src/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  7. package/android/src/generated/RCTThirdPartyComponentsProvider.h +16 -0
  8. package/android/src/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  9. package/android/src/generated/ReactAppDependencyProvider.podspec +34 -0
  10. package/android/src/generated/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  11. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  12. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  13. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  14. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  15. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  16. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  17. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +206 -0
  18. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +73 -0
  19. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  20. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  21. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
  22. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +23 -0
  23. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  24. package/android/src/generated/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  25. package/android/src/generated/jni/CMakeLists.txt +36 -0
  26. package/android/src/generated/jni/RNMapsSpecs-generated.cpp +68 -0
  27. package/android/src/generated/jni/RNMapsSpecs.h +31 -0
  28. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  29. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +31 -0
  30. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +977 -0
  31. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +846 -0
  32. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.cpp +193 -0
  33. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/Props.h +1223 -0
  34. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  35. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  36. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +24 -0
  37. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +109 -0
  38. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  39. package/android/src/generated/jni/react/renderer/components/RNMapsSpecs/States.h +113 -0
  40. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  41. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  42. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  43. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +619 -0
  44. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  45. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  46. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  47. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  48. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  66. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  67. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  68. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  69. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  70. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  71. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  72. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  73. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  74. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  75. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +39 -3
  76. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  77. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  78. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  79. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
  80. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  81. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  82. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  83. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  84. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  85. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  86. package/android/src/main/java/com/rnmaps/maps/MapView.java +1650 -1337
  87. package/ios/AirGoogleMaps/AIRGoogleMap.h +9 -10
  88. package/ios/AirGoogleMaps/AIRGoogleMap.m +109 -71
  89. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  90. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +10 -9
  91. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +14 -6
  92. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  93. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +2 -1
  94. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +30 -0
  95. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  96. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  97. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  98. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  99. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  100. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +2 -0
  101. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +126 -61
  102. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  103. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  104. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  105. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  106. package/ios/AirMaps/AIRMap.h +7 -7
  107. package/ios/AirMaps/AIRMap.m +227 -236
  108. package/ios/AirMaps/AIRMapManager.m +13 -7
  109. package/ios/AirMaps/AIRMapMarker.h +1 -0
  110. package/ios/AirMaps/AIRMapMarker.m +165 -103
  111. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  112. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
  113. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
  114. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  115. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
  116. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  117. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  118. package/ios/AirMaps/RNMapsAirModuleDelegate.h +2 -2
  119. package/ios/AirMaps/RNMapsDefines.h +0 -0
  120. package/ios/AirMaps/RNMapsMapView.mm +336 -299
  121. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  122. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  123. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  124. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  125. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  126. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  127. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  128. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  129. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  130. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  131. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  132. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  133. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  134. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  135. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  136. package/ios/generated/RNMapsSpecs/Props.cpp +193 -0
  137. package/ios/generated/RNMapsSpecs/Props.h +1223 -0
  138. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  139. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  140. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  141. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  142. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  143. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  144. package/ios/generated/RNMapsSpecs/States.h +113 -0
  145. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  146. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  147. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  148. package/package.json +24 -18
  149. package/react-native-google-maps.podspec +26 -0
  150. package/react-native-maps-generated.podspec +31 -0
  151. package/react-native-maps.podspec +44 -15
  152. package/src/AnimatedRegion.ts +169 -0
  153. package/src/Geojson.tsx +541 -0
  154. package/src/MapCallout.tsx +77 -0
  155. package/src/MapCalloutSubview.tsx +64 -0
  156. package/src/MapCircle.tsx +162 -0
  157. package/src/MapHeatmap.tsx +125 -0
  158. package/src/MapLocalTile.tsx +60 -0
  159. package/src/MapMarker.tsx +531 -0
  160. package/src/MapMarkerNativeComponent.ts +51 -0
  161. package/src/MapOverlay.tsx +156 -0
  162. package/src/MapPolygon.tsx +188 -0
  163. package/src/MapPolygon.types.ts +25 -0
  164. package/src/MapPolyline.tsx +215 -0
  165. package/src/MapUrlTile.tsx +169 -0
  166. package/src/MapView.tsx +1223 -0
  167. package/src/MapView.types.ts +212 -0
  168. package/src/MapView.web.ts +2 -0
  169. package/src/MapViewNativeComponent.ts +86 -0
  170. package/src/MapWMSTile.tsx +148 -0
  171. package/src/ProviderConstants.ts +2 -0
  172. package/src/createFabricMap.tsx +253 -0
  173. package/src/decorateMapComponent.ts +219 -0
  174. package/src/fixImageProp.ts +17 -0
  175. package/src/index.ts +52 -0
  176. package/src/sharedTypes.ts +101 -0
  177. package/src/specs/NativeAirMapsModule.ts +36 -0
  178. package/src/specs/NativeComponentCallout.ts +63 -0
  179. package/src/specs/NativeComponentCircle.ts +93 -0
  180. package/src/specs/NativeComponentGoogleMapView.ts +913 -0
  181. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  182. package/src/specs/NativeComponentMapView.ts +1091 -0
  183. package/src/specs/NativeComponentMarker.ts +326 -0
  184. package/src/specs/NativeComponentOverlay.ts +89 -0
  185. package/src/specs/NativeComponentPolyline.ts +124 -0
  186. package/lib/AnimatedRegion.d.ts +0 -19
  187. package/lib/AnimatedRegion.js +0 -134
  188. package/lib/Geojson.d.ts +0 -204
  189. package/lib/Geojson.js +0 -166
  190. package/lib/MapCallout.d.ts +0 -40
  191. package/lib/MapCallout.js +0 -51
  192. package/lib/MapCalloutSubview.d.ts +0 -34
  193. package/lib/MapCalloutSubview.js +0 -48
  194. package/lib/MapCircle.d.ts +0 -117
  195. package/lib/MapCircle.js +0 -53
  196. package/lib/MapHeatmap.d.ts +0 -78
  197. package/lib/MapHeatmap.js +0 -59
  198. package/lib/MapLocalTile.d.ts +0 -35
  199. package/lib/MapLocalTile.js +0 -44
  200. package/lib/MapMarker.d.ts +0 -309
  201. package/lib/MapMarker.js +0 -116
  202. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  203. package/lib/MapMarkerNativeComponent.js +0 -17
  204. package/lib/MapOverlay.d.ts +0 -87
  205. package/lib/MapOverlay.js +0 -63
  206. package/lib/MapPolygon.d.ts +0 -140
  207. package/lib/MapPolygon.js +0 -53
  208. package/lib/MapPolygon.types.d.ts +0 -18
  209. package/lib/MapPolygon.types.js +0 -2
  210. package/lib/MapPolyline.d.ts +0 -156
  211. package/lib/MapPolyline.js +0 -53
  212. package/lib/MapUrlTile.d.ts +0 -134
  213. package/lib/MapUrlTile.js +0 -44
  214. package/lib/MapView.d.ts +0 -715
  215. package/lib/MapView.js +0 -447
  216. package/lib/MapView.types.d.ts +0 -161
  217. package/lib/MapView.types.js +0 -2
  218. package/lib/MapView.web.d.ts +0 -1
  219. package/lib/MapView.web.js +0 -9
  220. package/lib/MapViewNativeComponent.d.ts +0 -18
  221. package/lib/MapViewNativeComponent.js +0 -19
  222. package/lib/MapWMSTile.d.ts +0 -116
  223. package/lib/MapWMSTile.js +0 -44
  224. package/lib/ProviderConstants.d.ts +0 -2
  225. package/lib/ProviderConstants.js +0 -5
  226. package/lib/createFabricMap.d.ts +0 -23
  227. package/lib/createFabricMap.js +0 -175
  228. package/lib/decorateMapComponent.d.ts +0 -36
  229. package/lib/decorateMapComponent.js +0 -80
  230. package/lib/index.d.ts +0 -38
  231. package/lib/index.js +0 -81
  232. package/lib/sharedTypes.d.ts +0 -81
  233. package/lib/sharedTypes.js +0 -2
  234. package/lib/sharedTypesInternal.js +0 -2
  235. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  236. package/lib/specs/NativeAirMapsModule.js +0 -4
  237. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  238. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  239. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  240. package/lib/specs/NativeComponentMapView.js +0 -21
  241. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
@@ -0,0 +1,94 @@
1
+ package com.rnmaps.fabric;
2
+
3
+
4
+ import androidx.annotation.Nullable;
5
+
6
+ import com.facebook.react.bridge.ReactApplicationContext;
7
+ import com.facebook.react.bridge.ReadableMap;
8
+ import com.facebook.react.module.annotations.ReactModule;
9
+ import com.facebook.react.uimanager.ThemedReactContext;
10
+ import com.facebook.react.uimanager.ViewGroupManager;
11
+ import com.facebook.react.uimanager.ViewManagerDelegate;
12
+ import com.facebook.react.viewmanagers.RNMapsCircleManagerDelegate;
13
+ import com.facebook.react.viewmanagers.RNMapsCircleManagerInterface;
14
+ import com.rnmaps.maps.MapCircle;
15
+
16
+ import java.util.HashMap;
17
+ import java.util.Map;
18
+
19
+ @ReactModule(name = CircleManager.REACT_CLASS)
20
+ public class CircleManager extends ViewGroupManager<MapCircle> implements RNMapsCircleManagerInterface<MapCircle> {
21
+ public CircleManager(ReactApplicationContext context) {
22
+ super(context);
23
+ }
24
+
25
+ private final RNMapsCircleManagerDelegate<MapCircle, CircleManager> delegate =
26
+ new RNMapsCircleManagerDelegate<>(this);
27
+
28
+ @Override
29
+ public ViewManagerDelegate<MapCircle> getDelegate() {
30
+ return delegate;
31
+ }
32
+
33
+ @Override
34
+ public String getName() {
35
+ return REACT_CLASS;
36
+ }
37
+
38
+ @Override
39
+ public MapCircle createViewInstance(ThemedReactContext context) {
40
+ return new MapCircle(context);
41
+ }
42
+
43
+
44
+ public static final String REACT_CLASS = "RNMapsCircle";
45
+
46
+ @Nullable
47
+ @Override
48
+ public Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
49
+ return MapCircle.getExportedCustomBubblingEventTypeConstants();
50
+ }
51
+
52
+ @Nullable
53
+ @Override
54
+ public Map<String, Object> getExportedCustomDirectEventTypeConstants() {
55
+ return new HashMap<>();
56
+ }
57
+
58
+
59
+
60
+ @Override
61
+ public void setZIndex(MapCircle view, float value) {
62
+ view.setZIndex(value);
63
+ }
64
+
65
+ @Override
66
+ public void setCenter(MapCircle view, @Nullable ReadableMap value) {
67
+ view.setCenter(value);
68
+ }
69
+
70
+ @Override
71
+ public void setFillColor(MapCircle view, @Nullable Integer value) {
72
+ view.setFillColor(value);
73
+ }
74
+
75
+ @Override
76
+ public void setRadius(MapCircle view, double value) {
77
+ view.setRadius(value);
78
+ }
79
+
80
+ @Override
81
+ public void setStrokeColor(MapCircle view, @Nullable Integer value) {
82
+ view.setStrokeColor(value);
83
+ }
84
+
85
+ @Override
86
+ public void setStrokeWidth(MapCircle view, float value) {
87
+ view.setStrokeWidth(value);
88
+ }
89
+
90
+ @Override
91
+ public void setTappable(MapCircle view, boolean value) {
92
+ view.setTappable(value);
93
+ }
94
+ }
@@ -0,0 +1,86 @@
1
+ package com.rnmaps.fabric;
2
+
3
+ import com.facebook.react.bridge.Arguments;
4
+ import com.facebook.react.bridge.WritableArray;
5
+ import com.facebook.react.bridge.WritableMap;
6
+
7
+ import org.json.JSONArray;
8
+ import org.json.JSONException;
9
+ import org.json.JSONObject;
10
+
11
+ import java.util.Iterator;
12
+
13
+ public class JSONUtil {
14
+ public static WritableMap convertJsonToWritable(JSONObject jsonObject) throws JSONException {
15
+ WritableMap map = Arguments.createMap();
16
+ Iterator<String> iterator = jsonObject.keys();
17
+
18
+ while (iterator.hasNext()) {
19
+ String key = iterator.next();
20
+ Object value = jsonObject.get(key);
21
+
22
+ if (value == JSONObject.NULL) {
23
+ map.putNull(key);
24
+ }
25
+ // Check primitive types first
26
+ else if (value instanceof Integer) {
27
+ map.putInt(key, jsonObject.getInt(key));
28
+ }
29
+ else if (value instanceof Long) {
30
+ map.putDouble(key, ((Long) value).doubleValue());
31
+ }
32
+ else if (value instanceof Double) {
33
+ map.putDouble(key, jsonObject.getDouble(key));
34
+ }
35
+ else if (value instanceof Boolean) {
36
+ map.putBoolean(key, jsonObject.getBoolean(key));
37
+ }
38
+ else if (value instanceof String) {
39
+ map.putString(key, jsonObject.getString(key));
40
+ }
41
+ // Check complex types
42
+ else if (value instanceof JSONObject) {
43
+ map.putMap(key, convertJsonToWritable(jsonObject.getJSONObject(key)));
44
+ }
45
+ else if (value instanceof JSONArray) {
46
+ map.putArray(key, convertJsonArrayToWritable(jsonObject.getJSONArray(key)));
47
+ }
48
+ }
49
+
50
+ return map;
51
+ }
52
+ public static WritableArray convertJsonArrayToWritable(JSONArray jsonArray) throws JSONException {
53
+ WritableArray array = Arguments.createArray();
54
+
55
+ for (int i = 0; i < jsonArray.length(); i++) {
56
+ Object value = jsonArray.get(i);
57
+
58
+ if (value == JSONObject.NULL) {
59
+ array.pushNull();
60
+ }
61
+ else if (value instanceof Integer) {
62
+ array.pushInt((Integer) value);
63
+ }
64
+ else if (value instanceof Long) {
65
+ array.pushDouble(((Long) value).doubleValue());
66
+ }
67
+ else if (value instanceof Double) {
68
+ array.pushDouble((Double) value);
69
+ }
70
+ else if (value instanceof Boolean) {
71
+ array.pushBoolean((Boolean) value);
72
+ }
73
+ else if (value instanceof String) {
74
+ array.pushString((String) value);
75
+ }
76
+ else if (value instanceof JSONObject) {
77
+ array.pushMap(convertJsonToWritable((JSONObject) value));
78
+ }
79
+ else if (value instanceof JSONArray) {
80
+ array.pushArray(convertJsonArrayToWritable((JSONArray) value));
81
+ }
82
+ }
83
+
84
+ return array;
85
+ }
86
+ }