react-native-maps 0.31.1 → 1.0.0-alpha.1

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 (301) hide show
  1. package/android/build.gradle +89 -33
  2. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  3. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  4. package/android/gradlew +251 -0
  5. package/android/gradlew.bat +94 -0
  6. package/android/src/main/AndroidManifest.xml +1 -5
  7. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  8. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  9. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  10. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  11. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  12. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  13. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  14. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  25. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +45 -0
  26. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +22 -0
  27. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  28. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  29. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
  30. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
  31. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
  32. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
  33. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  34. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  35. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  36. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +623 -0
  37. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  38. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +284 -0
  39. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +101 -0
  40. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  41. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  42. package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
  43. package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  66. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  67. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  68. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  69. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  70. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FileUtil.java +3 -6
  71. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FusedLocationSource.java +5 -2
  72. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReadable.java +1 -1
  73. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReader.java +5 -7
  74. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageUtil.java +1 -2
  75. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/LatLngBoundsUtils.java +1 -1
  76. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +98 -0
  77. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +41 -0
  78. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCalloutManager.java → rnmaps/maps/MapCalloutManager.java} +6 -6
  79. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircle.java → rnmaps/maps/MapCircle.java} +34 -8
  80. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircleManager.java → rnmaps/maps/MapCircleManager.java} +15 -20
  81. package/android/src/main/java/com/rnmaps/maps/MapFeature.java +17 -0
  82. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolyline.java → rnmaps/maps/MapGradientPolyline.java} +9 -12
  83. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolylineManager.java → rnmaps/maps/MapGradientPolylineManager.java} +13 -18
  84. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmap.java → rnmaps/maps/MapHeatmap.java} +8 -9
  85. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmapManager.java → rnmaps/maps/MapHeatmapManager.java} +8 -8
  86. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapLocalTile.java → rnmaps/maps/MapLocalTile.java} +19 -16
  87. package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +54 -0
  88. package/android/src/main/java/com/rnmaps/maps/MapManager.java +504 -0
  89. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +706 -0
  90. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +368 -0
  91. package/android/src/main/java/com/rnmaps/maps/MapModule.java +283 -0
  92. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +262 -0
  93. package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +97 -0
  94. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygon.java → rnmaps/maps/MapPolygon.java} +73 -9
  95. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygonManager.java → rnmaps/maps/MapPolygonManager.java} +22 -22
  96. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +230 -0
  97. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolylineManager.java → rnmaps/maps/MapPolylineManager.java} +18 -38
  98. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileProvider.java → rnmaps/maps/MapTileProvider.java} +55 -76
  99. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileWorker.java → rnmaps/maps/MapTileWorker.java} +7 -14
  100. package/android/src/main/java/com/rnmaps/maps/MapUIBlock.java +64 -0
  101. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapUrlTile.java → rnmaps/maps/MapUrlTile.java} +29 -29
  102. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +87 -0
  103. package/android/src/main/java/com/rnmaps/maps/MapView.java +1844 -0
  104. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapWMSTile.java → rnmaps/maps/MapWMSTile.java} +11 -17
  105. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +81 -0
  106. package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +45 -0
  107. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/RegionChangeEvent.java +1 -1
  108. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/SizeReportingShadowNode.java +1 -1
  109. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewAttacherGroup.java +2 -7
  110. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewChangesTracker.java +12 -11
  111. package/android/src/main/jni/CMakeLists.txt +36 -0
  112. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  113. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  114. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
  115. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
  116. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
  117. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
  118. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
  119. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1297 -0
  120. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  121. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  122. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
  123. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
  124. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  125. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
  126. package/app.plugin.js +1 -0
  127. package/ios/AirGoogleMaps/AIRGMSMarker.h +2 -0
  128. package/ios/AirGoogleMaps/AIRGoogleMap.h +22 -12
  129. package/ios/AirGoogleMaps/{AIRGoogleMap.m → AIRGoogleMap.mm} +407 -130
  130. package/ios/AirGoogleMaps/AIRGoogleMapCircle.h +2 -3
  131. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +42 -3
  132. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.h +13 -0
  133. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.m +10 -0
  134. package/ios/AirGoogleMaps/AIRGoogleMapHeatmap.h +1 -1
  135. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +11 -0
  136. package/ios/AirGoogleMaps/AIRGoogleMapManager.mm +543 -0
  137. package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +4 -0
  138. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +369 -237
  139. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +3 -2
  140. package/ios/AirGoogleMaps/AIRGoogleMapOverlay.h +0 -1
  141. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +7 -6
  142. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +62 -5
  143. package/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m +3 -3
  144. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +4 -3
  145. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +9 -9
  146. package/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m +2 -2
  147. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  148. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  149. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  150. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h +3 -0
  151. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +18 -0
  152. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +29 -0
  153. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +678 -0
  154. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +40 -0
  155. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  156. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +226 -0
  157. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  158. package/ios/AirGoogleMaps/Resources/GoogleMapsPrivacy.bundle/PrivacyInfo.xcprivacy +110 -0
  159. package/ios/AirMaps/AIRMap.h +19 -14
  160. package/ios/AirMaps/{AIRMap.m → AIRMap.mm} +333 -120
  161. package/ios/AirMaps/AIRMapCircle.m +1 -53
  162. package/ios/AirMaps/AIRMapCoordinate.m +2 -4
  163. package/ios/AirMaps/AIRMapManager.m +64 -218
  164. package/ios/AirMaps/AIRMapMarker.h +5 -0
  165. package/ios/AirMaps/AIRMapMarker.m +180 -69
  166. package/ios/AirMaps/AIRMapMarkerManager.m +3 -0
  167. package/ios/AirMaps/AIRMapOverlay.m +2 -2
  168. package/ios/AirMaps/AIRMapPolygon.m +0 -52
  169. package/ios/AirMaps/AIRMapPolyline.m +3 -2
  170. package/ios/AirMaps/AIRMapWMSTile.m +8 -8
  171. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  172. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +25 -0
  173. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +77 -0
  174. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  175. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +52 -0
  176. package/ios/AirMaps/RCTComponentData+Maps.h +13 -0
  177. package/ios/AirMaps/RCTComponentData+Maps.m +55 -0
  178. package/ios/AirMaps/RCTConvert+AirMap.h +6 -1
  179. package/ios/AirMaps/RCTConvert+AirMap.m +18 -0
  180. package/ios/AirMaps/RNMapsAirModule.h +15 -0
  181. package/ios/AirMaps/RNMapsAirModule.mm +164 -0
  182. package/ios/AirMaps/RNMapsDefines.h +1 -0
  183. package/ios/AirMaps/RNMapsMapView.h +27 -0
  184. package/ios/AirMaps/RNMapsMapView.mm +577 -0
  185. package/ios/AirMaps/RNMapsMapViewManager.mm +42 -0
  186. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  187. package/ios/AirMaps/RNMapsMarkerView.mm +439 -0
  188. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  189. package/ios/AirMaps/UIView+AirMap.h +11 -0
  190. package/ios/AirMaps/UIView+AirMap.m +20 -0
  191. package/ios/AirMaps/module.modulemap +6 -0
  192. package/ios/AirMaps.xcodeproj/project.pbxproj +44 -4
  193. package/ios/PrivacyInfo.xcprivacy +37 -0
  194. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  195. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  196. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  197. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  198. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  199. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  200. package/ios/generated/RNMapsAirModuleDelegate.h +24 -0
  201. package/ios/generated/RNMapsHostVewDelegate.h +17 -0
  202. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  203. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  204. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  205. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  206. package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
  207. package/ios/generated/RNMapsSpecs/Props.h +1224 -0
  208. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  209. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  210. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  211. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  212. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  213. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  214. package/ios/generated/RNMapsSpecs/States.h +113 -0
  215. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  216. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  217. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  218. package/ios/generated/module.modulemap +15 -0
  219. package/package.json +57 -34
  220. package/plugin/build/android.js +58 -0
  221. package/plugin/build/index.js +10 -0
  222. package/plugin/build/ios.js +176 -0
  223. package/plugin/build/types.js +2 -0
  224. package/react-native-maps.podspec +114 -11
  225. package/react-native.config.js +15 -0
  226. package/src/{AnimatedRegion.js → AnimatedRegion.ts} +26 -21
  227. package/src/Geojson.tsx +541 -0
  228. package/src/MapCallout.tsx +77 -0
  229. package/src/MapCalloutSubview.tsx +64 -0
  230. package/src/MapCircle.tsx +162 -0
  231. package/src/MapHeatmap.tsx +125 -0
  232. package/src/MapLocalTile.tsx +60 -0
  233. package/src/MapMarker.tsx +531 -0
  234. package/src/MapMarkerNativeComponent.ts +51 -0
  235. package/src/MapOverlay.tsx +178 -0
  236. package/src/MapPolygon.tsx +188 -0
  237. package/src/MapPolygon.types.ts +25 -0
  238. package/src/MapPolyline.tsx +215 -0
  239. package/src/MapUrlTile.tsx +169 -0
  240. package/src/MapView.tsx +1235 -0
  241. package/src/MapView.types.ts +212 -0
  242. package/src/MapView.web.ts +2 -0
  243. package/src/MapViewNativeComponent.ts +86 -0
  244. package/src/MapWMSTile.tsx +148 -0
  245. package/src/ProviderConstants.ts +2 -0
  246. package/src/createFabricMap.tsx +253 -0
  247. package/src/decorateMapComponent.ts +230 -0
  248. package/src/fixImageProp.ts +17 -0
  249. package/src/index.ts +52 -0
  250. package/src/sharedTypes.ts +101 -0
  251. package/src/sharedTypesInternal.ts +1 -0
  252. package/src/specs/NativeAirMapsModule.ts +36 -0
  253. package/src/specs/NativeComponentCallout.ts +63 -0
  254. package/src/specs/NativeComponentCircle.ts +93 -0
  255. package/src/specs/NativeComponentGoogleMapView.ts +922 -0
  256. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  257. package/src/specs/NativeComponentMapView.ts +1100 -0
  258. package/src/specs/NativeComponentMarker.ts +326 -0
  259. package/src/specs/NativeComponentOverlay.ts +98 -0
  260. package/src/specs/NativeComponentPolyline.ts +124 -0
  261. package/src/specs/NativeComponentUrlTile.ts +128 -0
  262. package/src/specs/NativeComponentWMSTile.ts +107 -0
  263. package/LICENSE +0 -21
  264. package/README.md +0 -652
  265. package/android/src/main/assets/ula.kml +0 -1214
  266. package/android/src/main/java/com/airbnb/android/react/maps/AirMapCallout.java +0 -23
  267. package/android/src/main/java/com/airbnb/android/react/maps/AirMapFeature.java +0 -18
  268. package/android/src/main/java/com/airbnb/android/react/maps/AirMapLiteManager.java +0 -20
  269. package/android/src/main/java/com/airbnb/android/react/maps/AirMapLocalTileManager.java +0 -56
  270. package/android/src/main/java/com/airbnb/android/react/maps/AirMapManager.java +0 -500
  271. package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarker.java +0 -630
  272. package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarkerManager.java +0 -370
  273. package/android/src/main/java/com/airbnb/android/react/maps/AirMapModule.java +0 -380
  274. package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlay.java +0 -169
  275. package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlayManager.java +0 -81
  276. package/android/src/main/java/com/airbnb/android/react/maps/AirMapPolyline.java +0 -162
  277. package/android/src/main/java/com/airbnb/android/react/maps/AirMapUrlTileManager.java +0 -97
  278. package/android/src/main/java/com/airbnb/android/react/maps/AirMapView.java +0 -1384
  279. package/android/src/main/java/com/airbnb/android/react/maps/AirMapWMSTileManager.java +0 -87
  280. package/android/src/main/java/com/airbnb/android/react/maps/MapsPackage.java +0 -65
  281. package/index.d.ts +0 -637
  282. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -690
  283. package/ios/User.xcconfig +0 -0
  284. package/react-native-google-maps.podspec +0 -22
  285. package/src/Geojson.js +0 -334
  286. package/src/MapCallout.js +0 -51
  287. package/src/MapCalloutSubview.js +0 -44
  288. package/src/MapCircle.js +0 -150
  289. package/src/MapHeatmap.js +0 -99
  290. package/src/MapLocalTile.js +0 -52
  291. package/src/MapMarker.js +0 -377
  292. package/src/MapOverlay.js +0 -86
  293. package/src/MapPolygon.js +0 -202
  294. package/src/MapPolyline.js +0 -168
  295. package/src/MapUrlTile.js +0 -131
  296. package/src/MapView.js +0 -1160
  297. package/src/MapView.web.js +0 -1
  298. package/src/MapWMSTile.js +0 -122
  299. package/src/ProviderConstants.js +0 -2
  300. package/src/decorateMapComponent.js +0 -112
  301. package/src/index.js +0 -31
@@ -0,0 +1,230 @@
1
+ package com.rnmaps.maps;
2
+
3
+ import android.content.Context;
4
+
5
+ import com.facebook.react.bridge.ReadableArray;
6
+ import com.facebook.react.bridge.ReadableMap;
7
+ import com.facebook.react.common.MapBuilder;
8
+ import com.google.android.gms.maps.model.ButtCap;
9
+ import com.google.android.gms.maps.model.Cap;
10
+ import com.google.android.gms.maps.model.Dash;
11
+ import com.google.android.gms.maps.model.Dot;
12
+ import com.google.android.gms.maps.model.Gap;
13
+ import com.google.android.gms.maps.model.JointType;
14
+ import com.google.android.gms.maps.model.LatLng;
15
+ import com.google.android.gms.maps.model.PatternItem;
16
+ import com.google.android.gms.maps.model.Polyline;
17
+ import com.google.android.gms.maps.model.PolylineOptions;
18
+ import com.google.android.gms.maps.model.RoundCap;
19
+ import com.google.android.gms.maps.model.SquareCap;
20
+ import com.google.android.gms.maps.model.StrokeStyle;
21
+ import com.google.android.gms.maps.model.StyleSpan;
22
+ import com.google.maps.android.collections.PolylineManager;
23
+ import com.rnmaps.fabric.event.OnPressEvent;
24
+
25
+ import java.util.ArrayList;
26
+ import java.util.List;
27
+ import java.util.Map;
28
+
29
+ public class MapPolyline extends MapFeature {
30
+
31
+ private PolylineOptions polylineOptions;
32
+ private Polyline polyline;
33
+
34
+ private List<LatLng> coordinates;
35
+ private int color;
36
+ private float width;
37
+ private boolean tappable;
38
+ private boolean geodesic;
39
+ private float zIndex;
40
+ private Cap lineCap = new RoundCap();
41
+ private ReadableArray patternValues;
42
+ private List<PatternItem> pattern;
43
+
44
+ public MapPolyline(Context context) {
45
+ super(context);
46
+ }
47
+
48
+ public void setCoordinates(ReadableArray coordinates) {
49
+ this.coordinates = new ArrayList<>(coordinates.size());
50
+ for (int i = 0; i < coordinates.size(); i++) {
51
+ ReadableMap coordinate = coordinates.getMap(i);
52
+ this.coordinates.add(i,
53
+ new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude")));
54
+ }
55
+ if (polyline != null) {
56
+ polyline.setPoints(this.coordinates);
57
+ }
58
+ }
59
+
60
+ public void setColor(int color) {
61
+ this.color = color;
62
+ if (polyline != null) {
63
+ polyline.setColor(color);
64
+ }
65
+ }
66
+
67
+ public void setStrokeColors(ReadableArray strokeColors) {
68
+ List<StyleSpan> spans = new ArrayList<>();
69
+ for (int i = 0; i < strokeColors.size(); i++) {
70
+ StrokeStyle stroke;
71
+
72
+ if (i == 0) {
73
+ stroke = StrokeStyle.colorBuilder(strokeColors.getInt(i)).build();
74
+ } else {
75
+ stroke = StrokeStyle.gradientBuilder(strokeColors.getInt(i - 1), strokeColors.getInt(i)).build();
76
+ }
77
+ spans.add(new StyleSpan(stroke));
78
+ }
79
+
80
+ polyline.setSpans(spans);
81
+ }
82
+
83
+ public void setWidth(float width) {
84
+ this.width = width;
85
+ if (polyline != null) {
86
+ polyline.setWidth(width);
87
+ }
88
+ }
89
+
90
+ public void setZIndex(float zIndex) {
91
+ this.zIndex = zIndex;
92
+ if (polyline != null) {
93
+ polyline.setZIndex(zIndex);
94
+ }
95
+ }
96
+
97
+ public void setTappable(boolean tapabble) {
98
+ this.tappable = tapabble;
99
+ if (polyline != null) {
100
+ polyline.setClickable(tappable);
101
+ }
102
+ }
103
+
104
+ public void setGeodesic(boolean geodesic) {
105
+ this.geodesic = geodesic;
106
+ if (polyline != null) {
107
+ polyline.setGeodesic(geodesic);
108
+ }
109
+ }
110
+
111
+ public void setLineCap(Cap cap) {
112
+ this.lineCap = cap;
113
+ if (polyline != null) {
114
+ polyline.setStartCap(cap);
115
+ polyline.setEndCap(cap);
116
+ }
117
+ this.applyPattern();
118
+ }
119
+
120
+ public void setLineDashPattern(ReadableArray patternValues) {
121
+ this.patternValues = patternValues;
122
+ this.applyPattern();
123
+ }
124
+
125
+ private void applyPattern() {
126
+ if (patternValues == null) {
127
+ return;
128
+ }
129
+ this.pattern = new ArrayList<>(patternValues.size());
130
+ for (int i = 0; i < patternValues.size(); i++) {
131
+ float patternValue = (float) patternValues.getDouble(i);
132
+ boolean isGap = i % 2 != 0;
133
+ if (isGap) {
134
+ this.pattern.add(new Gap(patternValue));
135
+ } else {
136
+ PatternItem patternItem;
137
+ boolean isLineCapRound = this.lineCap instanceof RoundCap;
138
+ if (isLineCapRound) {
139
+ patternItem = new Dot();
140
+ } else {
141
+ patternItem = new Dash(patternValue);
142
+ }
143
+ this.pattern.add(patternItem);
144
+ }
145
+ }
146
+ if (polyline != null) {
147
+ polyline.setPattern(this.pattern);
148
+ }
149
+ }
150
+
151
+ public PolylineOptions getPolylineOptions() {
152
+ if (polylineOptions == null) {
153
+ polylineOptions = createPolylineOptions();
154
+ }
155
+ return polylineOptions;
156
+ }
157
+
158
+ private PolylineOptions createPolylineOptions() {
159
+ PolylineOptions options = new PolylineOptions();
160
+ options.addAll(coordinates);
161
+ options.color(color);
162
+ options.width(width);
163
+ options.geodesic(geodesic);
164
+ options.zIndex(zIndex);
165
+ options.startCap(lineCap);
166
+ options.endCap(lineCap);
167
+ options.pattern(this.pattern);
168
+ return options;
169
+ }
170
+
171
+ @Override
172
+ public Object getFeature() {
173
+ return polyline;
174
+ }
175
+
176
+ @Override
177
+ public void addToMap(Object collection) {
178
+ PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
179
+ polyline = polylineCollection.addPolyline(getPolylineOptions());
180
+ polyline.setClickable(this.tappable);
181
+ }
182
+
183
+ @Override
184
+ public void removeFromMap(Object collection) {
185
+ PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
186
+ polylineCollection.remove(polyline);
187
+ }
188
+
189
+ public void setLineCap(String lineCap) {
190
+ Cap cap;
191
+ switch (lineCap) {
192
+ case "round":
193
+ cap = new RoundCap();
194
+ break;
195
+ case "square":
196
+ cap = new SquareCap();
197
+ break;
198
+ case "butt":
199
+ default:
200
+ cap = new ButtCap();
201
+ break;
202
+ }
203
+ setLineCap(cap);
204
+ }
205
+
206
+ public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
207
+ MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
208
+ builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
209
+ return builder.build();
210
+ }
211
+
212
+ public void setLineJoin(String lineJoin) {
213
+ int type;
214
+ switch (lineJoin) {
215
+ case "round":
216
+ type = JointType.ROUND;
217
+ break;
218
+ case "bevel":
219
+ type = JointType.BEVEL;
220
+ break;
221
+ case "miter":
222
+ default:
223
+ type = JointType.DEFAULT;
224
+ break;
225
+ }
226
+ if (polyline != null) {
227
+ polyline.setJointType(type);
228
+ }
229
+ }
230
+ }
@@ -1,8 +1,7 @@
1
- package com.airbnb.android.react.maps;
1
+ package com.rnmaps.maps;
2
2
 
3
3
  import android.content.Context;
4
4
  import android.graphics.Color;
5
- import android.os.Build;
6
5
  import android.util.DisplayMetrics;
7
6
  import android.view.WindowManager;
8
7
 
@@ -21,19 +20,15 @@ import com.google.android.gms.maps.model.SquareCap;
21
20
 
22
21
  import java.util.Map;
23
22
 
24
- public class AirMapPolylineManager extends ViewGroupManager<AirMapPolyline> {
23
+ public class MapPolylineManager extends ViewGroupManager<MapPolyline> {
25
24
  private final DisplayMetrics metrics;
26
25
 
27
- public AirMapPolylineManager(ReactApplicationContext reactContext) {
26
+ public MapPolylineManager(ReactApplicationContext reactContext) {
28
27
  super();
29
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
30
- metrics = new DisplayMetrics();
31
- ((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
32
- .getDefaultDisplay()
33
- .getRealMetrics(metrics);
34
- } else {
35
- metrics = reactContext.getResources().getDisplayMetrics();
36
- }
28
+ metrics = new DisplayMetrics();
29
+ ((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
30
+ .getDefaultDisplay()
31
+ .getRealMetrics(metrics);
37
32
  }
38
33
 
39
34
  @Override
@@ -42,63 +37,48 @@ public class AirMapPolylineManager extends ViewGroupManager<AirMapPolyline> {
42
37
  }
43
38
 
44
39
  @Override
45
- public AirMapPolyline createViewInstance(ThemedReactContext context) {
46
- return new AirMapPolyline(context);
40
+ public MapPolyline createViewInstance(ThemedReactContext context) {
41
+ return new MapPolyline(context);
47
42
  }
48
43
 
49
44
  @ReactProp(name = "coordinates")
50
- public void setCoordinate(AirMapPolyline view, ReadableArray coordinates) {
45
+ public void setCoordinate(MapPolyline view, ReadableArray coordinates) {
51
46
  view.setCoordinates(coordinates);
52
47
  }
53
48
 
54
49
  @ReactProp(name = "strokeWidth", defaultFloat = 1f)
55
- public void setStrokeWidth(AirMapPolyline view, float widthInPoints) {
50
+ public void setStrokeWidth(MapPolyline view, float widthInPoints) {
56
51
  float widthInScreenPx = metrics.density * widthInPoints; // done for parity with iOS
57
52
  view.setWidth(widthInScreenPx);
58
53
  }
59
54
 
60
55
  @ReactProp(name = "strokeColor", defaultInt = Color.RED, customType = "Color")
61
- public void setStrokeColor(AirMapPolyline view, int color) {
56
+ public void setStrokeColor(MapPolyline view, int color) {
62
57
  view.setColor(color);
63
58
  }
64
59
 
65
60
  @ReactProp(name = "tappable", defaultBoolean = false)
66
- public void setTappable(AirMapPolyline view, boolean tapabble) {
61
+ public void setTappable(MapPolyline view, boolean tapabble) {
67
62
  view.setTappable(tapabble);
68
63
  }
69
64
 
70
65
  @ReactProp(name = "geodesic", defaultBoolean = false)
71
- public void setGeodesic(AirMapPolyline view, boolean geodesic) {
66
+ public void setGeodesic(MapPolyline view, boolean geodesic) {
72
67
  view.setGeodesic(geodesic);
73
68
  }
74
69
 
75
70
  @ReactProp(name = "zIndex", defaultFloat = 1.0f)
76
- public void setZIndex(AirMapPolyline view, float zIndex) {
71
+ public void setZIndex(MapPolyline view, float zIndex) {
77
72
  view.setZIndex(zIndex);
78
73
  }
79
74
 
80
75
  @ReactProp(name = "lineCap")
81
- public void setlineCap(AirMapPolyline view, String lineCap) {
82
- Cap cap = null;
83
- switch (lineCap) {
84
- case "butt":
85
- cap = new ButtCap();
86
- break;
87
- case "round":
88
- cap = new RoundCap();
89
- break;
90
- case "square":
91
- cap = new SquareCap();
92
- break;
93
- default:
94
- cap = new RoundCap();
95
- break;
96
- }
97
- view.setLineCap(cap);
76
+ public void setlineCap(MapPolyline view, String lineCap) {
77
+ view.setLineCap(lineCap);
98
78
  }
99
79
 
100
80
  @ReactProp(name = "lineDashPattern")
101
- public void setLineDashPattern(AirMapPolyline view, ReadableArray patternValues) {
81
+ public void setLineDashPattern(MapPolyline view, ReadableArray patternValues) {
102
82
  view.setLineDashPattern(patternValues);
103
83
  }
104
84
 
@@ -1,4 +1,4 @@
1
- package com.airbnb.android.react.maps;
1
+ package com.rnmaps.maps;
2
2
 
3
3
  import android.content.Context;
4
4
 
@@ -14,12 +14,8 @@ import android.graphics.Color;
14
14
  import android.graphics.Paint;
15
15
  import android.graphics.Rect;
16
16
 
17
- import androidx.annotation.NonNull;
18
17
  import androidx.work.OneTimeWorkRequest;
19
18
  import androidx.work.WorkManager;
20
- import androidx.work.WorkRequest;
21
- import androidx.work.Worker;
22
- import androidx.work.WorkerParameters;
23
19
  import androidx.work.Data;
24
20
  import androidx.work.Constraints;
25
21
  import androidx.work.NetworkType;
@@ -27,10 +23,7 @@ import androidx.work.ExistingWorkPolicy;
27
23
  import androidx.work.Operation;
28
24
  import androidx.work.WorkInfo;
29
25
 
30
- import com.google.android.gms.maps.GoogleMap;
31
26
  import com.google.android.gms.maps.model.Tile;
32
- import com.google.android.gms.maps.model.TileOverlay;
33
- import com.google.android.gms.maps.model.TileOverlayOptions;
34
27
  import com.google.android.gms.maps.model.TileProvider;
35
28
  import com.google.android.gms.maps.model.UrlTileProvider;
36
29
 
@@ -48,7 +41,7 @@ import java.net.MalformedURLException;
48
41
  import java.net.URL;
49
42
  import java.net.URLConnection;
50
43
 
51
- public class AirMapTileProvider implements TileProvider {
44
+ public class MapTileProvider implements TileProvider {
52
45
 
53
46
  class AIRMapUrlTileProvider extends UrlTileProvider {
54
47
  private String urlTemplate;
@@ -61,7 +54,7 @@ public class AirMapTileProvider implements TileProvider {
61
54
  @Override
62
55
  public URL getTileUrl(int x, int y, int zoom) {
63
56
 
64
- if (AirMapTileProvider.this.flipY == true) {
57
+ if (MapTileProvider.this.flipY) {
65
58
  y = (1 << zoom) - y - 1;
66
59
  }
67
60
 
@@ -69,14 +62,14 @@ public class AirMapTileProvider implements TileProvider {
69
62
  .replace("{x}", Integer.toString(x))
70
63
  .replace("{y}", Integer.toString(y))
71
64
  .replace("{z}", Integer.toString(zoom));
72
- URL url = null;
65
+ URL url;
73
66
 
74
- if(AirMapTileProvider.this.maximumZ > 0 && zoom > AirMapTileProvider.this.maximumZ) {
75
- return url;
67
+ if(MapTileProvider.this.maximumZ > 0 && zoom > MapTileProvider.this.maximumZ) {
68
+ return null;
76
69
  }
77
70
 
78
- if(AirMapTileProvider.this.minimumZ > 0 && zoom < AirMapTileProvider.this.minimumZ) {
79
- return url;
71
+ if(MapTileProvider.this.minimumZ > 0 && zoom < MapTileProvider.this.minimumZ) {
72
+ return null;
80
73
  }
81
74
 
82
75
  try {
@@ -108,9 +101,9 @@ public class AirMapTileProvider implements TileProvider {
108
101
  protected Context context;
109
102
  protected boolean customMode;
110
103
 
111
- public AirMapTileProvider(int tileSizet, boolean doubleTileSize, String urlTemplate,
112
- int maximumZ, int maximumNativeZ, int minimumZ, boolean flipY, String tileCachePath,
113
- int tileCacheMaxAge, boolean offlineMode, Context context, boolean customMode) {
104
+ public MapTileProvider(int tileSizet, boolean doubleTileSize, String urlTemplate,
105
+ int maximumZ, int maximumNativeZ, int minimumZ, boolean flipY, String tileCachePath,
106
+ int tileCacheMaxAge, boolean offlineMode, Context context, boolean customMode) {
114
107
  this.tileProvider = new AIRMapUrlTileProvider(tileSizet, tileSizet, urlTemplate);
115
108
 
116
109
  this.tileSize = tileSizet;
@@ -152,7 +145,7 @@ public class AirMapTileProvider implements TileProvider {
152
145
  if (image == null && this.tileCachePath != null && this.offlineMode) {
153
146
  Log.d("urlTile", "findLowerZoomTileForScaling");
154
147
  int zoomLevelToStart = (zoom > this.maximumNativeZ) ? this.maximumNativeZ - 1 : zoom - 1;
155
- int minimumZoomToSearch = this.minimumZ >= zoom - 3 ? this.minimumZ : zoom - 3;
148
+ int minimumZoomToSearch = Math.max(this.minimumZ, zoom - 3);
156
149
  for (int tryZoom = zoomLevelToStart; tryZoom >= minimumZoomToSearch; tryZoom--) {
157
150
  image = scaleLowerZoomTile(x, y, zoom, tryZoom);
158
151
  if (image != null) {
@@ -166,16 +159,15 @@ public class AirMapTileProvider implements TileProvider {
166
159
 
167
160
  byte[] getTileImage(int x, int y, int zoom) {
168
161
  byte[] image = null;
169
- boolean fallbackOnSyncFetch = false;
170
-
162
+
171
163
  if (this.tileCachePath != null) {
172
164
  image = readTileImage(x, y, zoom);
173
165
  if (image != null) {
174
- Log.d("urlTile: tile cache HIT for ", Integer.toString(zoom) +
175
- "/" + Integer.toString(x) + "/" + Integer.toString(y));
166
+ Log.d("urlTile", "tile cache HIT for " + zoom +
167
+ "/" + x + "/" + y);
176
168
  } else {
177
- Log.d("urlTile: tile cache MISS for ", Integer.toString(zoom) +
178
- "/" + Integer.toString(x) + "/" + Integer.toString(y));
169
+ Log.d("urlTile", "tile cache MISS for " + zoom +
170
+ "/" + x + "/" + y);
179
171
  }
180
172
  if (image != null && !this.offlineMode) {
181
173
  checkForRefresh(x, y, zoom);
@@ -187,7 +179,7 @@ public class AirMapTileProvider implements TileProvider {
187
179
  Constraints constraints = new Constraints.Builder()
188
180
  .setRequiredNetworkType(NetworkType.CONNECTED)
189
181
  .build();
190
- OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(AirMapTileWorker.class)
182
+ OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(MapTileWorker.class)
191
183
  .setConstraints(constraints)
192
184
  .addTag(fileName)
193
185
  .setInputData(
@@ -198,39 +190,35 @@ public class AirMapTileProvider implements TileProvider {
198
190
  .build()
199
191
  )
200
192
  .build();
201
- if (tileRefreshWorkRequest != null) {
202
- WorkManager workManager = WorkManager.getInstance(this.context.getApplicationContext());
203
- Operation fetchOperation = workManager
204
- .enqueueUniqueWork(fileName, ExistingWorkPolicy.KEEP, tileRefreshWorkRequest);
205
- Future<Operation.State.SUCCESS> operationFuture = fetchOperation.getResult();
206
- try {
207
- operationFuture.get(1L, TimeUnit.SECONDS);
208
- Thread.sleep(500);
209
- Future<List<WorkInfo>> fetchFuture = workManager.getWorkInfosByTag(fileName);
210
- List<WorkInfo> workInfo = fetchFuture.get(1L, TimeUnit.SECONDS);
211
- Log.d("urlTile: ", workInfo.get(0).toString());
212
- if (this.tileCachePath != null) {
213
- image = readTileImage(x, y, zoom);
214
- if (image != null) {
215
- Log.d("urlTile: tile cache fetch HIT for ", Integer.toString(zoom) +
216
- "/" + Integer.toString(x) + "/" + Integer.toString(y));
217
- } else {
218
- Log.d("urlTile: tile cache fetch MISS for ", Integer.toString(zoom) +
219
- "/" + Integer.toString(x) + "/" + Integer.toString(y));
220
- }
193
+ WorkManager workManager = WorkManager.getInstance(this.context.getApplicationContext());
194
+ Operation fetchOperation = workManager
195
+ .enqueueUniqueWork(fileName, ExistingWorkPolicy.KEEP, tileRefreshWorkRequest);
196
+ Future<Operation.State.SUCCESS> operationFuture = fetchOperation.getResult();
197
+ try {
198
+ operationFuture.get(1L, TimeUnit.SECONDS);
199
+ Thread.sleep(500);
200
+ Future<List<WorkInfo>> fetchFuture = workManager.getWorkInfosByTag(fileName);
201
+ List<WorkInfo> workInfo = fetchFuture.get(1L, TimeUnit.SECONDS);
202
+ Log.d("urlTile: ", workInfo.get(0).toString());
203
+ if (this.tileCachePath != null) {
204
+ image = readTileImage(x, y, zoom);
205
+ if (image != null) {
206
+ Log.d("urlTile","tile cache fetch HIT for " + zoom +
207
+ "/" + x + "/" + y);
208
+ } else {
209
+ Log.d("urlTile","tile cache fetch MISS for " + zoom +
210
+ "/" + x + "/" + y);
221
211
  }
222
- } catch (Exception e) {
223
- e.printStackTrace();
224
212
  }
225
- } else {
226
- fallbackOnSyncFetch = true;
213
+ } catch (Exception e) {
214
+ e.printStackTrace();
227
215
  }
228
- } else if (fallbackOnSyncFetch || (image == null && !this.offlineMode)) {
216
+ } else if (image == null && !this.offlineMode) {
229
217
  Log.d("urlTile", "Normal fetch");
230
218
  image = fetchTile(x, y, zoom);
231
219
  if (image == null) {
232
- Log.d("urlTile: tile fetch TIMEOUT / FAIL for ", Integer.toString(zoom) +
233
- "/" + Integer.toString(x) + "/" + Integer.toString(y));
220
+ Log.d("urlTile", "tile fetch TIMEOUT / FAIL for " + zoom +
221
+ "/" + x + "/" + y);
234
222
  }
235
223
  }
236
224
 
@@ -304,7 +292,7 @@ public class AirMapTileProvider implements TileProvider {
304
292
  int yParent = y >> overZoomLevel;
305
293
  int zoomParent = zoom - overZoomLevel;
306
294
 
307
- int xOffset = x % zoomFactor;;
295
+ int xOffset = x % zoomFactor;
308
296
  int yOffset = y % zoomFactor;
309
297
 
310
298
  byte[] data;
@@ -340,7 +328,7 @@ public class AirMapTileProvider implements TileProvider {
340
328
  Constraints constraints = new Constraints.Builder()
341
329
  .setRequiredNetworkType(NetworkType.CONNECTED)
342
330
  .build();
343
- OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(AirMapTileWorker.class)
331
+ OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(MapTileWorker.class)
344
332
  .setConstraints(constraints)
345
333
  .addTag(fileName)
346
334
  .setInputData(
@@ -351,11 +339,9 @@ public class AirMapTileProvider implements TileProvider {
351
339
  .build()
352
340
  )
353
341
  .build();
354
- if (tileRefreshWorkRequest != null) {
355
- WorkManager.getInstance(this.context.getApplicationContext())
356
- .enqueueUniqueWork(fileName, ExistingWorkPolicy.KEEP, tileRefreshWorkRequest);
357
- }
358
- }
342
+ WorkManager.getInstance(this.context.getApplicationContext())
343
+ .enqueueUniqueWork(fileName, ExistingWorkPolicy.KEEP, tileRefreshWorkRequest);
344
+ }
359
345
  }
360
346
 
361
347
  byte[] fetchTile(int x, int y, int zoom) {
@@ -377,10 +363,7 @@ public class AirMapTileProvider implements TileProvider {
377
363
  buffer.flush();
378
364
 
379
365
  return buffer.toByteArray();
380
- } catch (IOException e) {
381
- e.printStackTrace();
382
- return null;
383
- } catch (OutOfMemoryError e) {
366
+ } catch (IOException | OutOfMemoryError e) {
384
367
  e.printStackTrace();
385
368
  return null;
386
369
  } finally {
@@ -416,10 +399,7 @@ public class AirMapTileProvider implements TileProvider {
416
399
  }
417
400
 
418
401
  return buffer.toByteArray();
419
- } catch (IOException e) {
420
- e.printStackTrace();
421
- return null;
422
- } catch (OutOfMemoryError e) {
402
+ } catch (IOException | OutOfMemoryError e) {
423
403
  e.printStackTrace();
424
404
  return null;
425
405
  } finally {
@@ -442,10 +422,7 @@ public class AirMapTileProvider implements TileProvider {
442
422
  out.write(image);
443
423
 
444
424
  return true;
445
- } catch (IOException e) {
446
- e.printStackTrace();
447
- return false;
448
- } catch (OutOfMemoryError e) {
425
+ } catch (IOException | OutOfMemoryError e) {
449
426
  e.printStackTrace();
450
427
  return false;
451
428
  } finally {
@@ -457,9 +434,8 @@ public class AirMapTileProvider implements TileProvider {
457
434
  if (this.tileCachePath == null) {
458
435
  return null;
459
436
  }
460
- String s = this.tileCachePath + '/' + Integer.toString(zoom) +
461
- "/" + Integer.toString(x) + "/" + Integer.toString(y);
462
- return s;
437
+ return this.tileCachePath + '/' + zoom +
438
+ "/" + x + "/" + y;
463
439
  }
464
440
 
465
441
  protected URL getTileUrl(int x, int y, int zoom) {
@@ -467,6 +443,10 @@ public class AirMapTileProvider implements TileProvider {
467
443
  }
468
444
 
469
445
  public void setUrlTemplate(String urlTemplate) {
446
+ if (this.urlTemplate != urlTemplate) {
447
+ this.tileProvider = new AIRMapUrlTileProvider(tileSize, tileSize, urlTemplate);
448
+ }
449
+
470
450
  this.urlTemplate = urlTemplate;
471
451
  }
472
452
 
@@ -510,6 +490,5 @@ public class AirMapTileProvider implements TileProvider {
510
490
  }
511
491
 
512
492
  public void setCustomMode() {
513
- this.customMode = customMode;
514
493
  }
515
494
  }
@@ -1,4 +1,4 @@
1
- package com.airbnb.android.react.maps;
1
+ package com.rnmaps.maps;
2
2
 
3
3
  import android.content.Context;
4
4
 
@@ -10,7 +10,6 @@ import androidx.work.WorkerParameters;
10
10
 
11
11
  import java.io.ByteArrayOutputStream;
12
12
  import java.io.File;
13
- import java.io.FileInputStream;
14
13
  import java.io.FileOutputStream;
15
14
  import java.io.InputStream;
16
15
  import java.io.OutputStream;
@@ -19,10 +18,10 @@ import java.io.IOException;
19
18
  import java.net.MalformedURLException;
20
19
  import java.net.URL;
21
20
 
22
- public class AirMapTileWorker extends Worker {
21
+ public class MapTileWorker extends Worker {
23
22
  private static final int BUFFER_SIZE = 16 * 1024;
24
23
 
25
- public AirMapTileWorker(
24
+ public MapTileWorker(
26
25
  @NonNull Context context,
27
26
  @NonNull WorkerParameters params) {
28
27
  super(context, params);
@@ -30,8 +29,8 @@ public class AirMapTileWorker extends Worker {
30
29
 
31
30
  @Override
32
31
  public Result doWork() {
33
- byte[] image = null;
34
- URL url = null;
32
+ byte[] image;
33
+ URL url;
35
34
  String fileName = getInputData().getString("filename");
36
35
 
37
36
  try {
@@ -84,10 +83,7 @@ public class AirMapTileWorker extends Worker {
84
83
  buffer.flush();
85
84
 
86
85
  return buffer.toByteArray();
87
- } catch (IOException e) {
88
- e.printStackTrace();
89
- return null;
90
- } catch (OutOfMemoryError e) {
86
+ } catch (IOException | OutOfMemoryError e) {
91
87
  e.printStackTrace();
92
88
  return null;
93
89
  } finally {
@@ -109,10 +105,7 @@ public class AirMapTileWorker extends Worker {
109
105
  out.write(image);
110
106
 
111
107
  return true;
112
- } catch (IOException e) {
113
- e.printStackTrace();
114
- return false;
115
- } catch (OutOfMemoryError e) {
108
+ } catch (IOException | OutOfMemoryError e) {
116
109
  e.printStackTrace();
117
110
  return false;
118
111
  } finally {