@maplibre/maplibre-react-native 8.6.0-beta.0

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 (381) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +158 -0
  3. package/.gitattributes +1 -0
  4. package/.nvmrc +1 -0
  5. package/.prettierrc.js +7 -0
  6. package/.sonarcloud.properties +15 -0
  7. package/CHANGELOG.md +367 -0
  8. package/CODE_OF_CONDUCT.md +2 -0
  9. package/CONTRIBUTING.md +34 -0
  10. package/LICENSE.md +9 -0
  11. package/README.md +224 -0
  12. package/RELEASE.md +30 -0
  13. package/android/build.gradle +34 -0
  14. package/android/install.md +16 -0
  15. package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +2 -0
  16. package/android/rctmgl/build.gradle +61 -0
  17. package/android/rctmgl/proguard-rules.pro +25 -0
  18. package/android/rctmgl/src/main/AndroidManifest.xml +4 -0
  19. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +99 -0
  20. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEvent.java +35 -0
  21. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEventEmitter.java +80 -0
  22. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractMapFeature.java +19 -0
  23. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerView.java +23 -0
  24. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerViewManager.java +67 -0
  25. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java +15 -0
  26. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +22 -0
  27. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java +112 -0
  28. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java +45 -0
  29. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java +360 -0
  30. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java +88 -0
  31. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraStop.java +249 -0
  32. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java +125 -0
  33. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java +73 -0
  34. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java +530 -0
  35. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java +101 -0
  36. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/constants/CameraMode.java +22 -0
  37. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java +234 -0
  38. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java +103 -0
  39. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/LocationComponentManager.java +149 -0
  40. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java +66 -0
  41. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java +35 -0
  42. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/LayerSourceInfo.java +59 -0
  43. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +16 -0
  44. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +31 -0
  45. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java +1527 -0
  46. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java +353 -0
  47. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +41 -0
  48. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java +83 -0
  49. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java +2242 -0
  50. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java +108 -0
  51. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java +212 -0
  52. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTLayer.java +287 -0
  53. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +27 -0
  54. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java +64 -0
  55. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java +55 -0
  56. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java +77 -0
  57. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java +55 -0
  58. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java +80 -0
  59. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java +55 -0
  60. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java +80 -0
  61. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java +55 -0
  62. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java +77 -0
  63. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java +55 -0
  64. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java +79 -0
  65. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +27 -0
  66. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java +64 -0
  67. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java +55 -0
  68. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java +75 -0
  69. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java +65 -0
  70. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java +29 -0
  71. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java +81 -0
  72. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java +72 -0
  73. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java +45 -0
  74. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java +44 -0
  75. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java +302 -0
  76. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java +227 -0
  77. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java +97 -0
  78. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java +80 -0
  79. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +64 -0
  80. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java +84 -0
  81. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTSource.java +244 -0
  82. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AbstractEvent.java +66 -0
  83. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AndroidCallbackEvent.java +38 -0
  84. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/EventEmitter.java +45 -0
  85. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/FeatureClickEvent.java +79 -0
  86. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/IEvent.java +18 -0
  87. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/ImageMissingEvent.java +42 -0
  88. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/LocationEvent.java +100 -0
  89. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapChangeEvent.java +47 -0
  90. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapClickEvent.java +51 -0
  91. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.java +36 -0
  92. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/OfflineEvent.java +29 -0
  93. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationClickEvent.java +46 -0
  94. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationDragEvent.java +51 -0
  95. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventKeys.java +39 -0
  96. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventTypes.java +51 -0
  97. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/http/CustomHeadersInterceptor.java +38 -0
  98. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/LocationManager.java +168 -0
  99. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocation.java +63 -0
  100. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +11 -0
  101. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingMode.java +63 -0
  102. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingState.java +19 -0
  103. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +158 -0
  104. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java +140 -0
  105. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java +348 -0
  106. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java +597 -0
  107. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java +139 -0
  108. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/BitmapUtils.java +129 -0
  109. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ConvertUtils.java +257 -0
  110. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/DownloadMapImageTask.java +159 -0
  111. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ExpressionParser.java +74 -0
  112. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoJSONUtils.java +209 -0
  113. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoViewport.java +38 -0
  114. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ImageEntry.java +25 -0
  115. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ResourceUtils.java +30 -0
  116. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SimpleEventCallback.java +30 -0
  117. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SphericalMercator.java +69 -0
  118. package/android/rctmgl/src/main/res/drawable/empty.xml +5 -0
  119. package/android/rctmgl/src/main/res/drawable/empty_drawable.png +0 -0
  120. package/android/rctmgl/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
  121. package/android/rctmgl/src/main/res/layout/annotation.xml +17 -0
  122. package/android/rctmgl/src/main/res/values/strings.xml +3 -0
  123. package/android/settings.gradle +1 -0
  124. package/app.plugin.js +1 -0
  125. package/assets/heading.png +0 -0
  126. package/assets/heading@2x.png +0 -0
  127. package/assets/heading@3x.png +0 -0
  128. package/assets/indoor_building_map_android.png +0 -0
  129. package/assets/indoor_building_map_ios.png +0 -0
  130. package/assets/mapbox_logo.png +0 -0
  131. package/babel.config.js +9 -0
  132. package/docs/Annotation.md +39 -0
  133. package/docs/Annotations.md +17 -0
  134. package/docs/BackgroundLayer.md +166 -0
  135. package/docs/Callout.md +15 -0
  136. package/docs/Camera.md +162 -0
  137. package/docs/CircleLayer.md +453 -0
  138. package/docs/CustomHttpHeaders.md +87 -0
  139. package/docs/FillExtrusionLayer.md +327 -0
  140. package/docs/FillLayer.md +293 -0
  141. package/docs/GettingStarted.md +72 -0
  142. package/docs/HeadingIndicator.md +10 -0
  143. package/docs/HeatmapLayer.md +215 -0
  144. package/docs/ImageSource.md +12 -0
  145. package/docs/Images.md +12 -0
  146. package/docs/Light.md +159 -0
  147. package/docs/LineLayer.md +567 -0
  148. package/docs/Logger.md +23 -0
  149. package/docs/MapView.md +211 -0
  150. package/docs/MapboxGL.md +65 -0
  151. package/docs/MarkerView.md +14 -0
  152. package/docs/NativeUserLocation.md +11 -0
  153. package/docs/OfflineManager.md +246 -0
  154. package/docs/PointAnnotation.md +34 -0
  155. package/docs/RasterLayer.md +357 -0
  156. package/docs/RasterSource.md +17 -0
  157. package/docs/ShapeSource.md +100 -0
  158. package/docs/Style.md +10 -0
  159. package/docs/StyleSheet.md +430 -0
  160. package/docs/SymbolLayer.md +1658 -0
  161. package/docs/UserLocation.md +39 -0
  162. package/docs/VectorSource.md +48 -0
  163. package/docs/docs.json +6093 -0
  164. package/docs/snapshotManager.md +53 -0
  165. package/index.d.ts +953 -0
  166. package/ios/RCTMGL/CameraMode.h +18 -0
  167. package/ios/RCTMGL/CameraMode.m +18 -0
  168. package/ios/RCTMGL/CameraStop.h +26 -0
  169. package/ios/RCTMGL/CameraStop.m +83 -0
  170. package/ios/RCTMGL/CameraUpdateItem.h +18 -0
  171. package/ios/RCTMGL/CameraUpdateItem.m +178 -0
  172. package/ios/RCTMGL/CameraUpdateQueue.h +21 -0
  173. package/ios/RCTMGL/CameraUpdateQueue.m +74 -0
  174. package/ios/RCTMGL/FilterParser.h +14 -0
  175. package/ios/RCTMGL/FilterParser.m +22 -0
  176. package/ios/RCTMGL/MGLCustomHeaders.h +20 -0
  177. package/ios/RCTMGL/MGLCustomHeaders.m +98 -0
  178. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +23 -0
  179. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.m +474 -0
  180. package/ios/RCTMGL/MGLModule.h +13 -0
  181. package/ios/RCTMGL/MGLModule.m +269 -0
  182. package/ios/RCTMGL/MGLOfflineModule.h +19 -0
  183. package/ios/RCTMGL/MGLOfflineModule.m +516 -0
  184. package/ios/RCTMGL/MGLSnapshotModule.h +13 -0
  185. package/ios/RCTMGL/MGLSnapshotModule.m +80 -0
  186. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.h +11 -0
  187. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.m +57 -0
  188. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +11 -0
  189. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.m +102 -0
  190. package/ios/RCTMGL/MGLUserLocationHeadingIndicator.h +10 -0
  191. package/ios/RCTMGL/RCTConvert+Mapbox.h +16 -0
  192. package/ios/RCTMGL/RCTConvert+Mapbox.m +32 -0
  193. package/ios/RCTMGL/RCTMGL.h +13 -0
  194. package/ios/RCTMGL/RCTMGL.m +13 -0
  195. package/ios/RCTMGL/RCTMGLBackgroundLayer.h +14 -0
  196. package/ios/RCTMGL/RCTMGLBackgroundLayer.m +27 -0
  197. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.h +13 -0
  198. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.m +35 -0
  199. package/ios/RCTMGL/RCTMGLCallout.h +15 -0
  200. package/ios/RCTMGL/RCTMGLCallout.m +74 -0
  201. package/ios/RCTMGL/RCTMGLCalloutManager.h +13 -0
  202. package/ios/RCTMGL/RCTMGLCalloutManager.m +21 -0
  203. package/ios/RCTMGL/RCTMGLCamera.h +39 -0
  204. package/ios/RCTMGL/RCTMGLCamera.m +258 -0
  205. package/ios/RCTMGL/RCTMGLCameraManager.h +13 -0
  206. package/ios/RCTMGL/RCTMGLCameraManager.m +52 -0
  207. package/ios/RCTMGL/RCTMGLCircleLayer.h +13 -0
  208. package/ios/RCTMGL/RCTMGLCircleLayer.m +34 -0
  209. package/ios/RCTMGL/RCTMGLCircleLayerManager.h +13 -0
  210. package/ios/RCTMGL/RCTMGLCircleLayerManager.m +39 -0
  211. package/ios/RCTMGL/RCTMGLEvent.h +21 -0
  212. package/ios/RCTMGL/RCTMGLEvent.m +47 -0
  213. package/ios/RCTMGL/RCTMGLEventProtocol.h +16 -0
  214. package/ios/RCTMGL/RCTMGLEventTypes.h +50 -0
  215. package/ios/RCTMGL/RCTMGLEventTypes.m +49 -0
  216. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +14 -0
  217. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.m +32 -0
  218. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.h +13 -0
  219. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.m +39 -0
  220. package/ios/RCTMGL/RCTMGLFillLayer.h +14 -0
  221. package/ios/RCTMGL/RCTMGLFillLayer.m +33 -0
  222. package/ios/RCTMGL/RCTMGLFillLayerManager.h +13 -0
  223. package/ios/RCTMGL/RCTMGLFillLayerManager.m +37 -0
  224. package/ios/RCTMGL/RCTMGLHeatmapLayer.h +12 -0
  225. package/ios/RCTMGL/RCTMGLHeatmapLayer.m +30 -0
  226. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +12 -0
  227. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.m +38 -0
  228. package/ios/RCTMGL/RCTMGLImageQueue.h +19 -0
  229. package/ios/RCTMGL/RCTMGLImageQueue.m +57 -0
  230. package/ios/RCTMGL/RCTMGLImageQueueOperation.h +17 -0
  231. package/ios/RCTMGL/RCTMGLImageQueueOperation.m +138 -0
  232. package/ios/RCTMGL/RCTMGLImageSource.h +16 -0
  233. package/ios/RCTMGL/RCTMGLImageSource.m +60 -0
  234. package/ios/RCTMGL/RCTMGLImageSourceManager.h +13 -0
  235. package/ios/RCTMGL/RCTMGLImageSourceManager.m +25 -0
  236. package/ios/RCTMGL/RCTMGLImages.h +25 -0
  237. package/ios/RCTMGL/RCTMGLImages.m +126 -0
  238. package/ios/RCTMGL/RCTMGLImagesManager.h +5 -0
  239. package/ios/RCTMGL/RCTMGLImagesManager.m +21 -0
  240. package/ios/RCTMGL/RCTMGLLayer.h +52 -0
  241. package/ios/RCTMGL/RCTMGLLayer.m +236 -0
  242. package/ios/RCTMGL/RCTMGLLight.h +17 -0
  243. package/ios/RCTMGL/RCTMGLLight.m +46 -0
  244. package/ios/RCTMGL/RCTMGLLightManager.h +13 -0
  245. package/ios/RCTMGL/RCTMGLLightManager.m +23 -0
  246. package/ios/RCTMGL/RCTMGLLineLayer.h +14 -0
  247. package/ios/RCTMGL/RCTMGLLineLayer.m +33 -0
  248. package/ios/RCTMGL/RCTMGLLineLayerManager.h +13 -0
  249. package/ios/RCTMGL/RCTMGLLineLayerManager.m +40 -0
  250. package/ios/RCTMGL/RCTMGLLocation.h +19 -0
  251. package/ios/RCTMGL/RCTMGLLocation.m +32 -0
  252. package/ios/RCTMGL/RCTMGLLocationManager.h +30 -0
  253. package/ios/RCTMGL/RCTMGLLocationManager.m +180 -0
  254. package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +20 -0
  255. package/ios/RCTMGL/RCTMGLLocationModule.h +15 -0
  256. package/ios/RCTMGL/RCTMGLLocationModule.m +99 -0
  257. package/ios/RCTMGL/RCTMGLLogging.h +18 -0
  258. package/ios/RCTMGL/RCTMGLLogging.m +132 -0
  259. package/ios/RCTMGL/RCTMGLMapTouchEvent.h +25 -0
  260. package/ios/RCTMGL/RCTMGLMapTouchEvent.m +77 -0
  261. package/ios/RCTMGL/RCTMGLMapView.h +91 -0
  262. package/ios/RCTMGL/RCTMGLMapView.m +536 -0
  263. package/ios/RCTMGL/RCTMGLMapViewManager.h +17 -0
  264. package/ios/RCTMGL/RCTMGLMapViewManager.m +625 -0
  265. package/ios/RCTMGL/RCTMGLNativeUserLocation.h +18 -0
  266. package/ios/RCTMGL/RCTMGLNativeUserLocation.m +49 -0
  267. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +5 -0
  268. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +25 -0
  269. package/ios/RCTMGL/RCTMGLPointAnnotation.h +41 -0
  270. package/ios/RCTMGL/RCTMGLPointAnnotation.m +251 -0
  271. package/ios/RCTMGL/RCTMGLPointAnnotationManager.h +13 -0
  272. package/ios/RCTMGL/RCTMGLPointAnnotationManager.m +36 -0
  273. package/ios/RCTMGL/RCTMGLRasterLayer.h +14 -0
  274. package/ios/RCTMGL/RCTMGLRasterLayer.m +30 -0
  275. package/ios/RCTMGL/RCTMGLRasterLayerManager.h +13 -0
  276. package/ios/RCTMGL/RCTMGLRasterLayerManager.m +35 -0
  277. package/ios/RCTMGL/RCTMGLRasterSource.h +16 -0
  278. package/ios/RCTMGL/RCTMGLRasterSource.m +35 -0
  279. package/ios/RCTMGL/RCTMGLRasterSourceManager.h +13 -0
  280. package/ios/RCTMGL/RCTMGLRasterSourceManager.m +32 -0
  281. package/ios/RCTMGL/RCTMGLShapeSource.h +52 -0
  282. package/ios/RCTMGL/RCTMGLShapeSource.m +180 -0
  283. package/ios/RCTMGL/RCTMGLShapeSourceManager.h +14 -0
  284. package/ios/RCTMGL/RCTMGLShapeSourceManager.m +205 -0
  285. package/ios/RCTMGL/RCTMGLSource.h +35 -0
  286. package/ios/RCTMGL/RCTMGLSource.m +143 -0
  287. package/ios/RCTMGL/RCTMGLStyle.h +219 -0
  288. package/ios/RCTMGL/RCTMGLStyle.m +1654 -0
  289. package/ios/RCTMGL/RCTMGLStyleValue.h +27 -0
  290. package/ios/RCTMGL/RCTMGLStyleValue.m +167 -0
  291. package/ios/RCTMGL/RCTMGLSymbolLayer.h +19 -0
  292. package/ios/RCTMGL/RCTMGLSymbolLayer.m +121 -0
  293. package/ios/RCTMGL/RCTMGLSymbolLayerManager.h +13 -0
  294. package/ios/RCTMGL/RCTMGLSymbolLayerManager.m +40 -0
  295. package/ios/RCTMGL/RCTMGLTileSource.h +22 -0
  296. package/ios/RCTMGL/RCTMGLTileSource.m +31 -0
  297. package/ios/RCTMGL/RCTMGLUserLocation.h +15 -0
  298. package/ios/RCTMGL/RCTMGLUserLocation.m +38 -0
  299. package/ios/RCTMGL/RCTMGLUtils.h +31 -0
  300. package/ios/RCTMGL/RCTMGLUtils.m +218 -0
  301. package/ios/RCTMGL/RCTMGLVectorLayer.h +15 -0
  302. package/ios/RCTMGL/RCTMGLVectorLayer.m +59 -0
  303. package/ios/RCTMGL/RCTMGLVectorSource.h +16 -0
  304. package/ios/RCTMGL/RCTMGLVectorSource.m +28 -0
  305. package/ios/RCTMGL/RCTMGLVectorSourceManager.h +14 -0
  306. package/ios/RCTMGL/RCTMGLVectorSourceManager.m +79 -0
  307. package/ios/RCTMGL/RNMBImageUtils.h +17 -0
  308. package/ios/RCTMGL/RNMBImageUtils.m +31 -0
  309. package/ios/RCTMGL/ViewManager.h +16 -0
  310. package/ios/RCTMGL/ViewManager.m +63 -0
  311. package/ios/RCTMGL/index.d.ts +1164 -0
  312. package/ios/RCTMGL.xcodeproj/project.pbxproj +774 -0
  313. package/ios/install.md +44 -0
  314. package/javascript/components/AbstractLayer.js +75 -0
  315. package/javascript/components/AbstractSource.js +15 -0
  316. package/javascript/components/BackgroundLayer.js +97 -0
  317. package/javascript/components/Callout.js +139 -0
  318. package/javascript/components/Camera.js +665 -0
  319. package/javascript/components/CircleLayer.js +101 -0
  320. package/javascript/components/FillExtrusionLayer.js +98 -0
  321. package/javascript/components/FillLayer.js +94 -0
  322. package/javascript/components/HeadingIndicator.js +31 -0
  323. package/javascript/components/HeatmapLayer.js +99 -0
  324. package/javascript/components/ImageSource.js +82 -0
  325. package/javascript/components/Images.js +119 -0
  326. package/javascript/components/Light.js +47 -0
  327. package/javascript/components/LineLayer.js +94 -0
  328. package/javascript/components/MapView.js +817 -0
  329. package/javascript/components/MarkerView.js +87 -0
  330. package/javascript/components/NativeBridgeComponent.js +86 -0
  331. package/javascript/components/NativeUserLocation.js +41 -0
  332. package/javascript/components/PointAnnotation.js +216 -0
  333. package/javascript/components/RasterLayer.js +95 -0
  334. package/javascript/components/RasterSource.js +124 -0
  335. package/javascript/components/ShapeSource.js +357 -0
  336. package/javascript/components/Style.js +264 -0
  337. package/javascript/components/SymbolLayer.js +120 -0
  338. package/javascript/components/UserLocation.js +273 -0
  339. package/javascript/components/VectorSource.js +200 -0
  340. package/javascript/components/annotations/Annotation.js +122 -0
  341. package/javascript/index.js +153 -0
  342. package/javascript/modules/location/locationManager.js +101 -0
  343. package/javascript/modules/offline/OfflineCreatePackOptions.js +46 -0
  344. package/javascript/modules/offline/OfflinePack.js +40 -0
  345. package/javascript/modules/offline/offlineManager.js +378 -0
  346. package/javascript/modules/snapshot/SnapshotOptions.js +67 -0
  347. package/javascript/modules/snapshot/snapshotManager.js +62 -0
  348. package/javascript/utils/BridgeValue.js +81 -0
  349. package/javascript/utils/Logger.js +114 -0
  350. package/javascript/utils/animated/Animated.js +39 -0
  351. package/javascript/utils/animated/AnimatedCoordinatesArray.js +191 -0
  352. package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.js +43 -0
  353. package/javascript/utils/animated/AnimatedPoint.js +126 -0
  354. package/javascript/utils/animated/AnimatedRouteCoordinatesArray.js +124 -0
  355. package/javascript/utils/animated/AnimatedShape.js +72 -0
  356. package/javascript/utils/deprecation.js +25 -0
  357. package/javascript/utils/filterUtils.js +7 -0
  358. package/javascript/utils/geoUtils.js +73 -0
  359. package/javascript/utils/index.js +113 -0
  360. package/javascript/utils/styleMap.js +1901 -0
  361. package/maplibre-react-native.podspec +79 -0
  362. package/package.json +120 -0
  363. package/plugin/build/withMapbox.d.ts +12 -0
  364. package/plugin/build/withMapbox.js +119 -0
  365. package/plugin/install.md +32 -0
  366. package/react-native.config.js +10 -0
  367. package/scripts/autogenHelpers/DocJSONBuilder.js +458 -0
  368. package/scripts/autogenHelpers/JSDocNodeTree.js +131 -0
  369. package/scripts/autogenHelpers/MarkdownBuilder.js +29 -0
  370. package/scripts/autogenHelpers/globals.js +507 -0
  371. package/scripts/autogenerate.js +374 -0
  372. package/scripts/download-style-spec.sh +15 -0
  373. package/scripts/templates/RCTMGLStyle.h.ejs +33 -0
  374. package/scripts/templates/RCTMGLStyle.m.ejs +97 -0
  375. package/scripts/templates/RCTMGLStyleFactory.java.ejs +107 -0
  376. package/scripts/templates/component.md.ejs +122 -0
  377. package/scripts/templates/index.d.ts.ejs +56 -0
  378. package/scripts/templates/styleMap.js.ejs +115 -0
  379. package/setup-jest.js +121 -0
  380. package/style-spec/v8.json +5798 -0
  381. package/tsconfig.json +65 -0
@@ -0,0 +1,353 @@
1
+ package com.mapbox.rctmgl.components.mapview;
2
+
3
+ import android.util.Log;
4
+ import android.view.Gravity;
5
+ import android.view.View;
6
+
7
+ import com.facebook.react.bridge.ReactApplicationContext;
8
+ import com.facebook.react.bridge.ReadableArray;
9
+ import com.facebook.react.bridge.ReadableMap;
10
+ import com.facebook.react.common.MapBuilder;
11
+ import com.facebook.react.uimanager.LayoutShadowNode;
12
+ import com.facebook.react.uimanager.ThemedReactContext;
13
+ import com.facebook.react.uimanager.annotations.ReactProp;
14
+ import com.mapbox.mapboxsdk.geometry.LatLngBounds;
15
+ import com.mapbox.mapboxsdk.log.Logger;
16
+ import com.mapbox.mapboxsdk.maps.MapboxMap;
17
+ import com.mapbox.rctmgl.components.AbstractEventEmitter;
18
+ import com.mapbox.rctmgl.events.constants.EventKeys;
19
+ import com.mapbox.rctmgl.utils.ConvertUtils;
20
+ import com.mapbox.rctmgl.utils.ExpressionParser;
21
+ import com.mapbox.rctmgl.utils.GeoJSONUtils;
22
+ import com.mapbox.geojson.FeatureCollection;
23
+ import com.mapbox.geojson.Point;
24
+
25
+ import java.util.ArrayList;
26
+ import java.util.HashMap;
27
+ import java.util.Map;
28
+ import java.util.concurrent.ExecutionException;
29
+ import java.util.concurrent.FutureTask;
30
+ import java.util.concurrent.RunnableFuture;
31
+
32
+ import javax.annotation.Nullable;
33
+
34
+ import static com.facebook.react.bridge.UiThreadUtil.runOnUiThread;
35
+
36
+ /**
37
+ * Created by nickitaliano on 8/18/17.
38
+ */
39
+
40
+ public class RCTMGLMapViewManager extends AbstractEventEmitter<RCTMGLMapView> {
41
+ public static final String LOG_TAG = "RCTMGLMapViewManager";
42
+ public static final String REACT_CLASS = "RCTMGLMapView";
43
+
44
+ private Map<Integer, RCTMGLMapView> mViews;
45
+
46
+ public RCTMGLMapViewManager(ReactApplicationContext context) {
47
+ super(context);
48
+ mViews = new HashMap<>();
49
+ }
50
+
51
+ @Override
52
+ public String getName() {
53
+ return REACT_CLASS;
54
+ }
55
+
56
+ @Override
57
+ public LayoutShadowNode createShadowNodeInstance() {
58
+ return new MapShadowNode(this);
59
+ }
60
+
61
+ @Override
62
+ public Class<? extends LayoutShadowNode> getShadowNodeClass() {
63
+ return MapShadowNode.class;
64
+ }
65
+
66
+ @Override
67
+ protected void onAfterUpdateTransaction(RCTMGLMapView mapView) {
68
+ super.onAfterUpdateTransaction(mapView);
69
+
70
+ if (mapView.getMapboxMap() == null) {
71
+ mViews.put(mapView.getId(), mapView);
72
+ mapView.init();
73
+ }
74
+ }
75
+
76
+ @Override
77
+ public void addView(RCTMGLMapView mapView, View childView, int childPosition) {
78
+ mapView.addFeature(childView, childPosition);
79
+ }
80
+
81
+ @Override
82
+ public int getChildCount(RCTMGLMapView mapView) {
83
+ return mapView.getFeatureCount();
84
+ }
85
+
86
+ @Override
87
+ public View getChildAt(RCTMGLMapView mapView, int index) {
88
+ return mapView.getFeatureAt(index);
89
+ }
90
+
91
+ @Override
92
+ public void removeViewAt(RCTMGLMapView mapView, int index) {
93
+ mapView.removeFeature(index);
94
+ }
95
+
96
+ @Override
97
+ protected RCTMGLMapView createViewInstance(ThemedReactContext themedReactContext) {
98
+ return new RCTMGLMapView(themedReactContext, this, null);
99
+ }
100
+
101
+ @Override
102
+ public void onDropViewInstance(RCTMGLMapView mapView) {
103
+ int reactTag = mapView.getId();
104
+
105
+ if (mViews.containsKey(reactTag)) {
106
+ mViews.remove(reactTag);
107
+ }
108
+
109
+ super.onDropViewInstance(mapView);
110
+ }
111
+
112
+ public RCTMGLMapView getByReactTag(int reactTag) {
113
+ return mViews.get(reactTag);
114
+ }
115
+
116
+ //region React Props
117
+
118
+ @ReactProp(name="styleURL")
119
+ public void setStyleURL(RCTMGLMapView mapView, String styleURL) {
120
+ mapView.setReactStyleURL(styleURL);
121
+ }
122
+
123
+ @ReactProp(name="preferredFramesPerSecond")
124
+ public void setPreferredFramesPerSecond(RCTMGLMapView mapView, int preferredFramesPerSecond) {
125
+ mapView.setReactPreferredFramesPerSecond(preferredFramesPerSecond);
126
+ }
127
+
128
+ @ReactProp(name="localizeLabels")
129
+ public void setLocalizeLabels(RCTMGLMapView mapView, boolean localizeLabels) {
130
+ mapView.setLocalizeLabels(localizeLabels);
131
+ }
132
+
133
+ @ReactProp(name="zoomEnabled")
134
+ public void setZoomEnabled(RCTMGLMapView mapView, boolean zoomEnabled) {
135
+ mapView.setReactZoomEnabled(zoomEnabled);
136
+ }
137
+
138
+ @ReactProp(name="scrollEnabled")
139
+ public void setScrollEnabled(RCTMGLMapView mapView, boolean scrollEnabled) {
140
+ mapView.setReactScrollEnabled(scrollEnabled);
141
+ }
142
+
143
+ @ReactProp(name="pitchEnabled")
144
+ public void setPitchEnabled(RCTMGLMapView mapView, boolean pitchEnabled) {
145
+ mapView.setReactPitchEnabled(pitchEnabled);
146
+ }
147
+
148
+ @ReactProp(name="rotateEnabled")
149
+ public void setRotateEnabled(RCTMGLMapView mapView, boolean rotateEnabled) {
150
+ mapView.setReactRotateEnabled(rotateEnabled);
151
+ }
152
+
153
+ @ReactProp(name="attributionEnabled")
154
+ public void setAttributionEnabled(RCTMGLMapView mapView, boolean attributionEnabled) {
155
+ mapView.setReactAttributionEnabled(attributionEnabled);
156
+ }
157
+
158
+ @ReactProp(name="attributionPosition")
159
+ public void setAttributionPosition(RCTMGLMapView mapView, @Nullable ReadableMap attributionPosition) {
160
+ mapView.setReactAttributionPosition(attributionPosition);
161
+ }
162
+
163
+ @ReactProp(name="logoEnabled")
164
+ public void setLogoEnabled(RCTMGLMapView mapView, boolean logoEnabled) {
165
+ mapView.setReactLogoEnabled(logoEnabled);
166
+ }
167
+
168
+ @ReactProp(name="logoPosition")
169
+ public void setLogoPosition(RCTMGLMapView mapView, ReadableMap logoPosition) {
170
+ mapView.setReactLogoPosition(logoPosition);
171
+ }
172
+
173
+ @ReactProp(name="compassEnabled")
174
+ public void setCompassEnabled(RCTMGLMapView mapView, boolean compassEnabled) {
175
+ mapView.setReactCompassEnabled(compassEnabled);
176
+ }
177
+
178
+ @ReactProp(name="compassViewMargins")
179
+ public void setCompassViewMargins(RCTMGLMapView mapView, ReadableMap compassViewMargins){
180
+ mapView.setReactCompassViewMargins(compassViewMargins);
181
+ }
182
+
183
+ @ReactProp(name="compassViewPosition")
184
+ public void setCompassViewPosition(RCTMGLMapView mapView, int compassViewPosition) {
185
+ mapView.setReactCompassViewPosition(compassViewPosition);
186
+ }
187
+
188
+ @ReactProp(name="contentInset")
189
+ public void setContentInset(RCTMGLMapView mapView, ReadableArray array) {
190
+ mapView.setReactContentInset(array);
191
+ }
192
+
193
+ @ReactProp(name = "tintColor", customType = "Color")
194
+ public void setTintColor(RCTMGLMapView mapView, @Nullable Integer tintColor) {
195
+ mapView.setTintColor(tintColor);
196
+ }
197
+
198
+ //endregion
199
+
200
+ //region Custom Events
201
+
202
+ @Override
203
+ public Map<String, String> customEvents() {
204
+ return MapBuilder.<String, String>builder()
205
+ .put(EventKeys.MAP_CLICK, "onPress")
206
+ .put(EventKeys.MAP_LONG_CLICK,"onLongPress")
207
+ .put(EventKeys.MAP_ONCHANGE, "onMapChange")
208
+ .put(EventKeys.MAP_ON_LOCATION_CHANGE, "onLocationChange")
209
+ .put(EventKeys.MAP_USER_TRACKING_MODE_CHANGE, "onUserTrackingModeChange")
210
+ .put(EventKeys.MAP_ANDROID_CALLBACK, "onAndroidCallback")
211
+ .build();
212
+ }
213
+
214
+ //endregion
215
+
216
+ //region React Methods
217
+ public static final int METHOD_QUERY_FEATURES_POINT = 2;
218
+ public static final int METHOD_QUERY_FEATURES_RECT = 3;
219
+ public static final int METHOD_VISIBLE_BOUNDS = 4;
220
+ public static final int METHOD_GET_POINT_IN_VIEW = 5;
221
+ public static final int METHOD_GET_COORDINATE_FROM_VIEW = 6;
222
+ public static final int METHOD_TAKE_SNAP = 7;
223
+ public static final int METHOD_GET_ZOOM = 8;
224
+ public static final int METHOD_GET_CENTER = 9;
225
+ public static final int METHOD_SET_HANDLED_MAP_EVENTS = 10;
226
+ public static final int METHOD_SHOW_ATTRIBUTION = 11;
227
+ public static final int METHOD_SET_SOURCE_VISIBILITY = 12;
228
+
229
+ @Nullable
230
+ @Override
231
+ public Map<String, Integer> getCommandsMap() {
232
+ return MapBuilder.<String, Integer>builder()
233
+ .put("queryRenderedFeaturesAtPoint", METHOD_QUERY_FEATURES_POINT)
234
+ .put("queryRenderedFeaturesInRect", METHOD_QUERY_FEATURES_RECT)
235
+ .put("getVisibleBounds", METHOD_VISIBLE_BOUNDS)
236
+ .put("getPointInView", METHOD_GET_POINT_IN_VIEW)
237
+ .put("getCoordinateFromView", METHOD_GET_COORDINATE_FROM_VIEW)
238
+ .put("takeSnap", METHOD_TAKE_SNAP)
239
+ .put("getZoom", METHOD_GET_ZOOM)
240
+ .put("getCenter", METHOD_GET_CENTER)
241
+ .put( "setHandledMapChangedEvents", METHOD_SET_HANDLED_MAP_EVENTS)
242
+ .put("showAttribution", METHOD_SHOW_ATTRIBUTION)
243
+ .put("setSourceVisibility", METHOD_SET_SOURCE_VISIBILITY)
244
+ .build();
245
+ }
246
+
247
+ @Override
248
+ public void receiveCommand(RCTMGLMapView mapView, int commandID, @Nullable ReadableArray args) {
249
+ // allows method calls to work with componentDidMount
250
+ MapboxMap mapboxMap = mapView.getMapboxMap();
251
+ if (mapboxMap == null) {
252
+ mapView.enqueuePreRenderMapMethod(commandID, args);
253
+ return;
254
+ }
255
+
256
+ switch (commandID) {
257
+ case METHOD_QUERY_FEATURES_POINT:
258
+ mapView.queryRenderedFeaturesAtPoint(
259
+ args.getString(0),
260
+ ConvertUtils.toPointF(args.getArray(1)),
261
+ ExpressionParser.from(args.getArray(2)),
262
+ ConvertUtils.toStringList(args.getArray(3)));
263
+ break;
264
+ case METHOD_QUERY_FEATURES_RECT:
265
+ mapView.queryRenderedFeaturesInRect(
266
+ args.getString(0),
267
+ ConvertUtils.toRectF(args.getArray(1)),
268
+ ExpressionParser.from(args.getArray(2)),
269
+ ConvertUtils.toStringList(args.getArray(3)));
270
+ break;
271
+ case METHOD_VISIBLE_BOUNDS:
272
+ mapView.getVisibleBounds(args.getString(0));
273
+ break;
274
+ case METHOD_GET_POINT_IN_VIEW:
275
+ mapView.getPointInView(args.getString(0), GeoJSONUtils.toLatLng(args.getArray(1)));
276
+ break;
277
+ case METHOD_GET_COORDINATE_FROM_VIEW:
278
+ mapView.getCoordinateFromView(args.getString(0), ConvertUtils.toPointF(args.getArray(1)));
279
+ break;
280
+ case METHOD_TAKE_SNAP:
281
+ mapView.takeSnap(args.getString(0), args.getBoolean(1));
282
+ break;
283
+ case METHOD_GET_ZOOM:
284
+ mapView.getZoom(args.getString(0));
285
+ break;
286
+ case METHOD_GET_CENTER:
287
+ mapView.getCenter(args.getString(0));
288
+ break;
289
+ case METHOD_SET_HANDLED_MAP_EVENTS:
290
+ if(args != null) {
291
+ ArrayList<String> eventsArray = new ArrayList<>();
292
+ for (int i = 1; i < args.size(); i++) {
293
+ eventsArray.add(args.getString(i));
294
+ }
295
+ mapView.setHandledMapChangedEvents(eventsArray);
296
+ }
297
+ break;
298
+ case METHOD_SHOW_ATTRIBUTION:
299
+ mapView.showAttribution();
300
+ break;
301
+ case METHOD_SET_SOURCE_VISIBILITY:
302
+ mapView.setSourceVisibility(
303
+ args.getBoolean(1),
304
+ args.getString(2),
305
+ args.getString(3)
306
+ );
307
+
308
+ }
309
+ }
310
+
311
+ //endregion
312
+
313
+ private static final class MapShadowNode extends LayoutShadowNode {
314
+ private RCTMGLMapViewManager mViewManager;
315
+
316
+ public MapShadowNode(RCTMGLMapViewManager viewManager) {
317
+ mViewManager = viewManager;
318
+ }
319
+
320
+ @Override
321
+ public void dispose() {
322
+ super.dispose();
323
+ diposeNativeMapView();
324
+ }
325
+
326
+ /**
327
+ * We need this mapview to dispose (calls into nativeMap.destroy) before ReactNative starts tearing down the views in
328
+ * onDropViewInstance.
329
+ */
330
+ private void diposeNativeMapView() {
331
+ final RCTMGLMapView mapView = mViewManager.getByReactTag(getReactTag());
332
+
333
+ if (mapView != null)
334
+ {
335
+ runOnUiThread(new Runnable() {
336
+ @Override
337
+ public void run()
338
+ {
339
+ try
340
+ {
341
+ mapView.dispose();
342
+ }
343
+ catch (Exception ex)
344
+ {
345
+ Log.e(LOG_TAG , " disposeNativeMapView() exception destroying map view", ex);
346
+ }
347
+ }
348
+ });
349
+ }
350
+ }
351
+ }
352
+ }
353
+
@@ -0,0 +1,41 @@
1
+ package com.mapbox.rctmgl.components.mapview.helpers;
2
+
3
+ import android.util.Log;
4
+
5
+ /**
6
+ * Created by nickitaliano on 12/12/17.
7
+ */
8
+
9
+ public class CameraChangeTracker {
10
+ public static final int USER_GESTURE = 1;
11
+ public static final int DEVELOPER_ANIMATION = 2;
12
+ public static final int SDK_ANIMATION = 3;
13
+ public static final int EMPTY = -1;
14
+
15
+ private int reason = EMPTY;
16
+ private boolean isAnimating;
17
+
18
+ public void setReason(int reason) {
19
+ this.reason = reason;
20
+ }
21
+
22
+ public void setIsAnimating(boolean isAnimating) {
23
+ this.isAnimating = isAnimating;
24
+ }
25
+
26
+ public boolean isUserInteraction() {
27
+ return reason == USER_GESTURE || reason == DEVELOPER_ANIMATION;
28
+ }
29
+
30
+ public boolean isAnimated() {
31
+ return reason == DEVELOPER_ANIMATION || reason == SDK_ANIMATION;
32
+ }
33
+
34
+ public boolean isAnimating() {
35
+ return this.isAnimating;
36
+ }
37
+
38
+ public boolean isEmpty() {
39
+ return reason == EMPTY;
40
+ }
41
+ }
@@ -0,0 +1,83 @@
1
+ package com.mapbox.rctmgl.components.styles;
2
+
3
+ import android.content.Context;
4
+ import androidx.annotation.NonNull;
5
+
6
+ import com.facebook.react.bridge.ReadableMap;
7
+ import com.facebook.react.bridge.ReadableMapKeySetIterator;
8
+ import com.mapbox.mapboxsdk.maps.MapboxMap;
9
+ import com.mapbox.rctmgl.utils.DownloadMapImageTask;
10
+ import com.mapbox.rctmgl.utils.ImageEntry;
11
+
12
+ import java.util.AbstractMap;
13
+ import java.util.ArrayList;
14
+ import java.util.List;
15
+ import java.util.Map;
16
+
17
+ /**
18
+ * Created by nickitaliano on 9/12/17.
19
+ */
20
+
21
+ public class RCTMGLStyle {
22
+ private Context mContext;
23
+ private ReadableMap mReactStyle;
24
+ private MapboxMap mMap;
25
+
26
+ public RCTMGLStyle(@NonNull Context context, @NonNull ReadableMap reactStyle, @NonNull MapboxMap map) {
27
+ mContext = context;
28
+ mReactStyle = reactStyle;
29
+ mMap = map;
30
+ }
31
+
32
+ public List<String> getAllStyleKeys() {
33
+ if (mReactStyle == null) {
34
+ return new ArrayList<>();
35
+ }
36
+
37
+ ReadableMapKeySetIterator it = mReactStyle.keySetIterator();
38
+ List<String> keys = new ArrayList<>();
39
+
40
+ while (it.hasNextKey()) {
41
+ String key = it.nextKey();
42
+
43
+ if (!key.equals("__MAPBOX_STYLESHEET__")) {
44
+ keys.add(key);
45
+ }
46
+ }
47
+
48
+ return keys;
49
+ }
50
+
51
+ public RCTMGLStyleValue getStyleValueForKey(String styleKey) {
52
+ ReadableMap styleValueConfig = mReactStyle.getMap(styleKey);
53
+
54
+ if (styleValueConfig == null) {
55
+ // TODO: throw exeception here
56
+ return null;
57
+ }
58
+
59
+ return new RCTMGLStyleValue(styleValueConfig);
60
+ }
61
+
62
+ public void addImage(RCTMGLStyleValue styleValue) {
63
+ addImage(styleValue, null);
64
+ }
65
+
66
+ public ImageEntry imageEntry(RCTMGLStyleValue styleValue) {
67
+ return new ImageEntry(styleValue.getImageURI(), styleValue.getImageScale());
68
+ }
69
+
70
+ public void addImage(RCTMGLStyleValue styleValue, DownloadMapImageTask.OnAllImagesLoaded callback) {
71
+ if (!styleValue.shouldAddImage()) {
72
+ if (callback != null) {
73
+ callback.onAllImagesLoaded();
74
+ }
75
+ return;
76
+ }
77
+
78
+ String uriStr = styleValue.getImageURI();
79
+ Map.Entry[] images = new Map.Entry[]{ new AbstractMap.SimpleEntry(uriStr, imageEntry(styleValue)) };
80
+ DownloadMapImageTask task = new DownloadMapImageTask(mContext, mMap, callback);
81
+ task.execute(images);
82
+ }
83
+ }