@rnmapbox/maps 10.2.10 → 10.3.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 (337) hide show
  1. package/android/build.gradle +14 -35
  2. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +11 -10
  3. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXHillshadeLayer.kt +27 -0
  4. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXHillshadeLayerManager.kt +84 -0
  5. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt +0 -4
  6. package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXLocationModule.kt +1 -9
  7. package/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt +1 -7
  8. package/ios/RNMBX/Bridge/RNMBX.h +0 -1
  9. package/ios/RNMBX/CustomHttpHeaders.swift +0 -19
  10. package/ios/RNMBX/Offline/RNMBXOfflineModule.swift +1 -28
  11. package/ios/RNMBX/Offline/RNMBXOfflineModuleLegacy.swift +0 -4
  12. package/ios/RNMBX/RNMBXAtmosphere.swift +0 -2
  13. package/ios/RNMBX/RNMBXAtmosphereComponentView.h +2 -3
  14. package/ios/RNMBX/RNMBXAtmosphereComponentView.mm +0 -2
  15. package/ios/RNMBX/RNMBXBackgroundLayer.swift +0 -4
  16. package/ios/RNMBX/RNMBXBackgroundLayerComponentView.h +2 -3
  17. package/ios/RNMBX/RNMBXBackgroundLayerComponentView.mm +0 -2
  18. package/ios/RNMBX/RNMBXCalloutComponentView.h +2 -3
  19. package/ios/RNMBX/RNMBXCalloutComponentView.mm +0 -2
  20. package/ios/RNMBX/RNMBXCamera.swift +0 -9
  21. package/ios/RNMBX/RNMBXCameraComponentView.h +2 -3
  22. package/ios/RNMBX/RNMBXCameraComponentView.mm +0 -2
  23. package/ios/RNMBX/RNMBXCameraGestureObserver.swift +0 -8
  24. package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.h +2 -3
  25. package/ios/RNMBX/RNMBXCameraGestureObserverComponentView.mm +0 -2
  26. package/ios/RNMBX/RNMBXCameraModule.h +6 -9
  27. package/ios/RNMBX/RNMBXCameraModule.mm +0 -7
  28. package/ios/RNMBX/RNMBXCircleLayer.swift +0 -6
  29. package/ios/RNMBX/RNMBXCircleLayerComponentView.h +2 -3
  30. package/ios/RNMBX/RNMBXCircleLayerComponentView.mm +0 -2
  31. package/ios/RNMBX/RNMBXCustomLocationProvider.swift +7 -138
  32. package/ios/RNMBX/RNMBXCustomLocationProviderComponentView.h +2 -3
  33. package/ios/RNMBX/RNMBXCustomLocationProviderComponentView.mm +0 -2
  34. package/ios/RNMBX/RNMBXFabricPropConvert.mm +0 -4
  35. package/ios/RNMBX/RNMBXFillExtrusionLayer.swift +0 -6
  36. package/ios/RNMBX/RNMBXFillExtrusionLayerComponentView.h +2 -3
  37. package/ios/RNMBX/RNMBXFillExtrusionLayerComponentView.mm +0 -2
  38. package/ios/RNMBX/RNMBXFillLayer.swift +2 -8
  39. package/ios/RNMBX/RNMBXFillLayerComponentView.h +2 -3
  40. package/ios/RNMBX/RNMBXFillLayerComponentView.mm +0 -2
  41. package/ios/RNMBX/RNMBXHeatmapLayer.swift +1 -5
  42. package/ios/RNMBX/RNMBXHeatmapLayerComponentView.h +2 -3
  43. package/ios/RNMBX/RNMBXHeatmapLayerComponentView.mm +0 -2
  44. package/ios/RNMBX/RNMBXHillshadeLayer.swift +96 -0
  45. package/ios/RNMBX/RNMBXHillshadeLayerComponentView.h +14 -0
  46. package/ios/RNMBX/RNMBXHillshadeLayerComponentView.mm +73 -0
  47. package/ios/RNMBX/RNMBXImageComponentView.h +2 -3
  48. package/ios/RNMBX/RNMBXImageComponentView.mm +0 -2
  49. package/ios/RNMBX/RNMBXImageModule.h +7 -9
  50. package/ios/RNMBX/RNMBXImageModule.mm +0 -7
  51. package/ios/RNMBX/RNMBXImageSource.swift +0 -4
  52. package/ios/RNMBX/RNMBXImageSourceComponentView.h +2 -3
  53. package/ios/RNMBX/RNMBXImageSourceComponentView.mm +0 -2
  54. package/ios/RNMBX/RNMBXImages.swift +0 -6
  55. package/ios/RNMBX/RNMBXImagesComponentView.h +2 -3
  56. package/ios/RNMBX/RNMBXImagesComponentView.mm +0 -2
  57. package/ios/RNMBX/RNMBXLayer.swift +0 -35
  58. package/ios/RNMBX/RNMBXLight.swift +0 -8
  59. package/ios/RNMBX/RNMBXLightComponentView.h +2 -3
  60. package/ios/RNMBX/RNMBXLightComponentView.mm +0 -2
  61. package/ios/RNMBX/RNMBXLineLayer.swift +0 -6
  62. package/ios/RNMBX/RNMBXLineLayerComponentView.h +2 -3
  63. package/ios/RNMBX/RNMBXLineLayerComponentView.mm +0 -2
  64. package/ios/RNMBX/RNMBXLocationModule.swift +202 -477
  65. package/ios/RNMBX/RNMBXMapView.swift +299 -68
  66. package/ios/RNMBX/RNMBXMapViewComponentView.h +2 -3
  67. package/ios/RNMBX/RNMBXMapViewComponentView.mm +0 -2
  68. package/ios/RNMBX/RNMBXMapViewModule.h +6 -9
  69. package/ios/RNMBX/RNMBXMapViewModule.mm +16 -23
  70. package/ios/RNMBX/RNMBXMarkerView.swift +0 -2
  71. package/ios/RNMBX/RNMBXMarkerViewComponentView.h +2 -3
  72. package/ios/RNMBX/RNMBXMarkerViewComponentView.mm +0 -2
  73. package/ios/RNMBX/RNMBXMarkerViewContentComponentView.h +2 -3
  74. package/ios/RNMBX/RNMBXMarkerViewContentComponentView.mm +0 -2
  75. package/ios/RNMBX/RNMBXModelLayer.swift +0 -6
  76. package/ios/RNMBX/RNMBXModelLayerComponentView.h +2 -3
  77. package/ios/RNMBX/RNMBXModelLayerComponentView.mm +0 -2
  78. package/ios/RNMBX/RNMBXModels.swift +0 -2
  79. package/ios/RNMBX/RNMBXModelsComponentView.h +2 -3
  80. package/ios/RNMBX/RNMBXModelsComponentView.mm +0 -2
  81. package/ios/RNMBX/RNMBXModule.swift +1 -17
  82. package/ios/RNMBX/RNMBXNativeUserLocationComponentView.h +2 -3
  83. package/ios/RNMBX/RNMBXNativeUserLocationComponentView.mm +0 -2
  84. package/ios/RNMBX/RNMBXPointAnnotationComponentView.h +2 -3
  85. package/ios/RNMBX/RNMBXPointAnnotationComponentView.mm +0 -2
  86. package/ios/RNMBX/RNMBXPointAnnotationModule.h +7 -9
  87. package/ios/RNMBX/RNMBXPointAnnotationModule.mm +0 -7
  88. package/ios/RNMBX/RNMBXRasterArraySource.swift +0 -2
  89. package/ios/RNMBX/RNMBXRasterArraySourceComponentView.h +2 -3
  90. package/ios/RNMBX/RNMBXRasterArraySourceComponentView.mm +0 -39
  91. package/ios/RNMBX/RNMBXRasterDemSource.swift +0 -4
  92. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.h +2 -3
  93. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.mm +0 -2
  94. package/ios/RNMBX/RNMBXRasterLayer.swift +0 -6
  95. package/ios/RNMBX/RNMBXRasterLayerComponentView.h +2 -3
  96. package/ios/RNMBX/RNMBXRasterLayerComponentView.mm +0 -2
  97. package/ios/RNMBX/RNMBXRasterParticleLayer.swift +0 -4
  98. package/ios/RNMBX/RNMBXRasterParticleLayerComponentView.h +2 -3
  99. package/ios/RNMBX/RNMBXRasterParticleLayerComponentView.mm +0 -36
  100. package/ios/RNMBX/RNMBXRasterSource.swift +0 -4
  101. package/ios/RNMBX/RNMBXRasterSourceComponentView.h +2 -3
  102. package/ios/RNMBX/RNMBXRasterSourceComponentView.mm +0 -2
  103. package/ios/RNMBX/RNMBXShapeSource.swift +59 -60
  104. package/ios/RNMBX/RNMBXShapeSourceComponentView.h +2 -3
  105. package/ios/RNMBX/RNMBXShapeSourceComponentView.mm +0 -2
  106. package/ios/RNMBX/RNMBXShapeSourceModule.h +6 -9
  107. package/ios/RNMBX/RNMBXShapeSourceModule.mm +5 -12
  108. package/ios/RNMBX/RNMBXSkyLayerComponentView.h +2 -3
  109. package/ios/RNMBX/RNMBXSkyLayerComponentView.mm +0 -2
  110. package/ios/RNMBX/RNMBXSnapshotModule.m +0 -1
  111. package/ios/RNMBX/RNMBXSnapshotModule.swift +1 -10
  112. package/ios/RNMBX/RNMBXSource.swift +0 -4
  113. package/ios/RNMBX/RNMBXStyle.swift +57 -251
  114. package/ios/RNMBX/RNMBXStyleImport.swift +3 -7
  115. package/ios/RNMBX/RNMBXStyleImportComponentView.h +2 -3
  116. package/ios/RNMBX/RNMBXStyleImportComponentView.mm +0 -2
  117. package/ios/RNMBX/RNMBXStyleValue.swift +0 -61
  118. package/ios/RNMBX/RNMBXSymbolLayer.swift +0 -6
  119. package/ios/RNMBX/RNMBXSymbolLayerComponentView.h +2 -3
  120. package/ios/RNMBX/RNMBXSymbolLayerComponentView.mm +0 -2
  121. package/ios/RNMBX/RNMBXTerrainComponentView.h +2 -3
  122. package/ios/RNMBX/RNMBXTerrainComponentView.mm +0 -2
  123. package/ios/RNMBX/RNMBXVectorSource.swift +0 -4
  124. package/ios/RNMBX/RNMBXVectorSourceComponentView.h +2 -3
  125. package/ios/RNMBX/RNMBXVectorSourceComponentView.mm +0 -2
  126. package/ios/RNMBX/RNMBXViewport.swift +3 -8
  127. package/ios/RNMBX/RNMBXViewportComponentView.h +2 -3
  128. package/ios/RNMBX/RNMBXViewportComponentView.mm +0 -2
  129. package/ios/RNMBX/RNMBXViewportModule.h +6 -9
  130. package/ios/RNMBX/RNMBXViewportModule.mm +5 -12
  131. package/ios/RNMBX/ShapeAnimators/RNMBXChangeLineOffsetsShapeAnimatorModule.mm +1 -15
  132. package/ios/RNMBX/ShapeAnimators/RNMBXMovePointShapeAnimatorModule.mm +2 -16
  133. package/ios/RNMBX/Utils/RNMBXFollyConvert.h +0 -4
  134. package/ios/RNMBX/Utils/RNMBXViewResolver.h +1 -3
  135. package/ios/RNMBX/Utils/RNMBXViewResolver.mm +1 -20
  136. package/ios/RNMBX/codeparts/LayerPropsCommon.codepart-swift.ejs +0 -2
  137. package/ios/RNMBX/rnmapbox_maps-Swift.pre.h +0 -1
  138. package/ios/install.md +0 -3
  139. package/lib/commonjs/plugin/build/withMapbox.d.ts +3 -0
  140. package/lib/commonjs/plugin/install.md +0 -19
  141. package/lib/commonjs/plugin/src/withMapbox.ts +3 -0
  142. package/lib/module/Mapbox.native.js +1 -0
  143. package/lib/module/Mapbox.native.js.map +1 -1
  144. package/lib/module/classes/AnimatedPoint.js +28 -5
  145. package/lib/module/classes/AnimatedPoint.js.map +1 -1
  146. package/lib/module/components/HillshadeLayer.js +34 -0
  147. package/lib/module/components/HillshadeLayer.js.map +1 -0
  148. package/lib/module/specs/RNMBXHillshadeLayerNativeComponent.ts +39 -0
  149. package/lib/typescript/example/src/examples/common/ExampleMetadata.d.ts +1 -0
  150. package/lib/typescript/example/src/examples/common/ExampleMetadata.d.ts.map +1 -1
  151. package/lib/typescript/plugin/src/withMapbox.d.ts +3 -0
  152. package/lib/typescript/plugin/src/withMapbox.d.ts.map +1 -1
  153. package/lib/typescript/scripts/autogenHelpers/globals.d.mts +1 -1
  154. package/lib/typescript/src/Mapbox.native.d.ts +1 -0
  155. package/lib/typescript/src/Mapbox.native.d.ts.map +1 -1
  156. package/lib/typescript/src/classes/AnimatedPoint.d.ts.map +1 -1
  157. package/lib/typescript/src/components/HillshadeLayer.d.ts +74 -0
  158. package/lib/typescript/src/components/HillshadeLayer.d.ts.map +1 -0
  159. package/lib/typescript/src/specs/RNMBXHillshadeLayerNativeComponent.d.ts +25 -0
  160. package/lib/typescript/src/specs/RNMBXHillshadeLayerNativeComponent.d.ts.map +1 -0
  161. package/package.json +6 -2
  162. package/plugin/build/withMapbox.d.ts +3 -0
  163. package/plugin/install.md +0 -19
  164. package/plugin/src/withMapbox.ts +3 -0
  165. package/rnmapbox-maps.podspec +7 -7
  166. package/src/Mapbox.native.ts +1 -0
  167. package/src/classes/AnimatedPoint.js +28 -5
  168. package/src/components/HillshadeLayer.tsx +108 -0
  169. package/src/specs/RNMBXHillshadeLayerNativeComponent.ts +39 -0
  170. package/android/src/main/java/com/rnmapbox/rnmbx/events/EventEmitter.java +0 -45
  171. package/android/src/main/mapbox-v11-compat/v10/com/mapbox/maps/extension/style/layers/generated/RasterParticleLayer.kt +0 -58
  172. package/android/src/main/mapbox-v11-compat/v10/com/mapbox/maps/extension/style/sources/generated/RasterArraySource.kt +0 -20
  173. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterParticleLayer.kt +0 -22
  174. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterParticleLayerManager.kt +0 -59
  175. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterArraySource.kt +0 -16
  176. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterArraySourceManager.kt +0 -59
  177. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Annotation.kt +0 -40
  178. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Cancelable.kt +0 -15
  179. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Event.kt +0 -17
  180. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Feature.kt +0 -10
  181. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/HttpInterceptor.kt +0 -22
  182. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Image.kt +0 -69
  183. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Layer.kt +0 -7
  184. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Light.kt +0 -15
  185. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Location.kt +0 -62
  186. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/MapboxMap.kt +0 -67
  187. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/OfflineManager.kt +0 -51
  188. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/OrnamentSettings.kt +0 -96
  189. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/ResourceOption.kt +0 -12
  190. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Snapshot.kt +0 -28
  191. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/StyleFactory.kt +0 -809
  192. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/style.kt +0 -9
  193. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXAtmosphereManagerDelegate.java +0 -33
  194. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXAtmosphereManagerInterface.java +0 -16
  195. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXBackgroundLayerManagerDelegate.java +0 -60
  196. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXBackgroundLayerManagerInterface.java +0 -25
  197. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCalloutManagerDelegate.java +0 -26
  198. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCalloutManagerInterface.java +0 -15
  199. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerDelegate.java +0 -39
  200. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraGestureObserverManagerInterface.java +0 -18
  201. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraManagerDelegate.java +0 -75
  202. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCameraManagerInterface.java +0 -30
  203. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCircleLayerManagerDelegate.java +0 -66
  204. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCircleLayerManagerInterface.java +0 -27
  205. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCustomLocationProviderManagerDelegate.java +0 -36
  206. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCustomLocationProviderManagerInterface.java +0 -17
  207. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXFillExtrusionLayerManagerDelegate.java +0 -63
  208. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXFillExtrusionLayerManagerInterface.java +0 -26
  209. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXFillLayerManagerDelegate.java +0 -66
  210. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXFillLayerManagerInterface.java +0 -27
  211. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXHeatmapLayerManagerDelegate.java +0 -66
  212. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXHeatmapLayerManagerInterface.java +0 -27
  213. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageManagerDelegate.java +0 -48
  214. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageManagerInterface.java +0 -21
  215. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerDelegate.java +0 -42
  216. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerInterface.java +0 -19
  217. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImagesManagerDelegate.java +0 -39
  218. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImagesManagerInterface.java +0 -18
  219. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLightManagerDelegate.java +0 -33
  220. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLightManagerInterface.java +0 -16
  221. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLineLayerManagerDelegate.java +0 -66
  222. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLineLayerManagerInterface.java +0 -27
  223. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMapViewManagerDelegate.java +0 -117
  224. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMapViewManagerInterface.java +0 -44
  225. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewContentManagerDelegate.java +0 -26
  226. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewContentManagerInterface.java +0 -15
  227. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewManagerDelegate.java +0 -45
  228. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewManagerInterface.java +0 -20
  229. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelLayerManagerDelegate.java +0 -66
  230. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelLayerManagerInterface.java +0 -27
  231. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerDelegate.java +0 -33
  232. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerInterface.java +0 -16
  233. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerDelegate.java +0 -57
  234. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerInterface.java +0 -24
  235. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXPointAnnotationManagerDelegate.java +0 -42
  236. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXPointAnnotationManagerInterface.java +0 -19
  237. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterArraySourceManagerDelegate.java +0 -54
  238. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterArraySourceManagerInterface.java +0 -23
  239. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerDelegate.java +0 -51
  240. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerInterface.java +0 -22
  241. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterLayerManagerDelegate.java +0 -66
  242. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterLayerManagerInterface.java +0 -27
  243. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterParticleLayerManagerDelegate.java +0 -66
  244. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterParticleLayerManagerInterface.java +0 -27
  245. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerDelegate.java +0 -60
  246. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerInterface.java +0 -25
  247. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerDelegate.java +0 -72
  248. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerInterface.java +0 -29
  249. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXSkyLayerManagerDelegate.java +0 -60
  250. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXSkyLayerManagerInterface.java +0 -25
  251. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXStyleImportManagerDelegate.java +0 -39
  252. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXStyleImportManagerInterface.java +0 -19
  253. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXSymbolLayerManagerDelegate.java +0 -66
  254. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXSymbolLayerManagerInterface.java +0 -27
  255. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXTerrainManagerDelegate.java +0 -36
  256. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXTerrainManagerInterface.java +0 -17
  257. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerDelegate.java +0 -60
  258. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerInterface.java +0 -25
  259. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXViewportManagerDelegate.java +0 -36
  260. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXViewportManagerInterface.java +0 -17
  261. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeMapViewModuleSpec.java +0 -102
  262. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXCameraModuleSpec.java +0 -49
  263. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXChangeLineOffsetsShapeAnimatorModuleSpec.java +0 -52
  264. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXImageModuleSpec.java +0 -40
  265. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXLocationModuleSpec.java +0 -68
  266. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXMovePointShapeAnimatorModuleSpec.java +0 -44
  267. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXPointAnnotationModuleSpec.java +0 -40
  268. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXShapeSourceModuleSpec.java +0 -48
  269. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXTileStoreModuleSpec.java +0 -45
  270. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXViewportModuleSpec.java +0 -49
  271. package/ios/RNMBX/RNMBXAtmosphereViewManager.m +0 -8
  272. package/ios/RNMBX/RNMBXAtmosphereViewManager.swift +0 -13
  273. package/ios/RNMBX/RNMBXBackgroundLayerViewManager.m +0 -9
  274. package/ios/RNMBX/RNMBXBackgroundLayerViewManager.swift +0 -13
  275. package/ios/RNMBX/RNMBXCalloutViewManager.m +0 -8
  276. package/ios/RNMBX/RNMBXCalloutViewManager.swift +0 -14
  277. package/ios/RNMBX/RNMBXCameraViewManager.m +0 -27
  278. package/ios/RNMBX/RNMBXCameraViewManager.swift +0 -16
  279. package/ios/RNMBX/RNMBXCircleLayerViewManager.m +0 -14
  280. package/ios/RNMBX/RNMBXCircleLayerViewManager.swift +0 -15
  281. package/ios/RNMBX/RNMBXCustomLocationProviderVIewManager.swift +0 -13
  282. package/ios/RNMBX/RNMBXCustomLocationProviderViewManager.m +0 -10
  283. package/ios/RNMBX/RNMBXFillExtrusionLayerViewManager.m +0 -12
  284. package/ios/RNMBX/RNMBXFillExtrusionLayerViewManager.swift +0 -13
  285. package/ios/RNMBX/RNMBXFillLayerViewManager.m +0 -12
  286. package/ios/RNMBX/RNMBXFillLayerViewManager.swift +0 -13
  287. package/ios/RNMBX/RNMBXHeatmapLayerViewManager.m +0 -12
  288. package/ios/RNMBX/RNMBXHeatmapLayerViewManager.swift +0 -13
  289. package/ios/RNMBX/RNMBXImageManager.m +0 -30
  290. package/ios/RNMBX/RNMBXImageManager.swift +0 -13
  291. package/ios/RNMBX/RNMBXImageSourceViewManager.m +0 -11
  292. package/ios/RNMBX/RNMBXImageSourceViewManager.swift +0 -11
  293. package/ios/RNMBX/RNMBXImagesViewManager.m +0 -10
  294. package/ios/RNMBX/RNMBXImagesViewManager.swift +0 -14
  295. package/ios/RNMBX/RNMBXLightViewManager.m +0 -9
  296. package/ios/RNMBX/RNMBXLightViewManager.swift +0 -13
  297. package/ios/RNMBX/RNMBXLineLayerViewManager.m +0 -12
  298. package/ios/RNMBX/RNMBXLineLayerViewManager.swift +0 -13
  299. package/ios/RNMBX/RNMBXLocationModuleV11.swift +0 -353
  300. package/ios/RNMBX/RNMBXMapViewManager.m +0 -46
  301. package/ios/RNMBX/RNMBXMapViewManager.swift +0 -373
  302. package/ios/RNMBX/RNMBXMarkerViewContentManager.m +0 -6
  303. package/ios/RNMBX/RNMBXMarkerViewContentManager.swift +0 -14
  304. package/ios/RNMBX/RNMBXMarkerViewManager.m +0 -13
  305. package/ios/RNMBX/RNMBXMarkerViewManager.swift +0 -14
  306. package/ios/RNMBX/RNMBXModelLayerViewManager.m +0 -12
  307. package/ios/RNMBX/RNMBXModelLayerViewManager.swift +0 -13
  308. package/ios/RNMBX/RNMBXModelsManager.mm +0 -9
  309. package/ios/RNMBX/RNMBXModelsManager.swift +0 -13
  310. package/ios/RNMBX/RNMBXNativeUserLocationViewManager.m +0 -17
  311. package/ios/RNMBX/RNMBXNativeUserLocationViewManager.swift +0 -11
  312. package/ios/RNMBX/RNMBXPointAnnotationViewManager.m +0 -18
  313. package/ios/RNMBX/RNMBXPointAnnotationViewManager.swift +0 -14
  314. package/ios/RNMBX/RNMBXRasterArraySourceViewManager.swift +0 -16
  315. package/ios/RNMBX/RNMBXRasterDemSourceViewManager.m +0 -15
  316. package/ios/RNMBX/RNMBXRasterDemSourceViewManager.swift +0 -11
  317. package/ios/RNMBX/RNMBXRasterLayerViewManager.m +0 -12
  318. package/ios/RNMBX/RNMBXRasterLayerViewManager.swift +0 -13
  319. package/ios/RNMBX/RNMBXRasterParticleLayerViewManager.swift +0 -17
  320. package/ios/RNMBX/RNMBXRasterSourceViewManager.m +0 -19
  321. package/ios/RNMBX/RNMBXRasterSourceViewManager.swift +0 -14
  322. package/ios/RNMBX/RNMBXShapeSourceViewManager.m +0 -28
  323. package/ios/RNMBX/RNMBXShapeSourceViewManager.swift +0 -81
  324. package/ios/RNMBX/RNMBXSkyLayerViewManager.m +0 -9
  325. package/ios/RNMBX/RNMBXSkyLayerViewManager.swift +0 -13
  326. package/ios/RNMBX/RNMBXStyleImportManager.m +0 -10
  327. package/ios/RNMBX/RNMBXStyleImportManager.swift +0 -12
  328. package/ios/RNMBX/RNMBXSymbolLayerViewManager.m +0 -12
  329. package/ios/RNMBX/RNMBXSymbolLayerViewManager.swift +0 -13
  330. package/ios/RNMBX/RNMBXTerrainViewManager.m +0 -15
  331. package/ios/RNMBX/RNMBXTerrainViewManager.swift +0 -13
  332. package/ios/RNMBX/RNMBXVectorSourceViewManager.m +0 -22
  333. package/ios/RNMBX/RNMBXVectorSourceViewManager.swift +0 -11
  334. package/ios/RNMBX/RNMBXViewportManager.m +0 -12
  335. package/ios/RNMBX/RNMBXViewportManager.swift +0 -38
  336. package/lib/typescript/scripts/codegen-old-arch.d.ts +0 -3
  337. package/lib/typescript/scripts/codegen-old-arch.d.ts.map +0 -1
@@ -1,436 +1,110 @@
1
- import Foundation
2
1
  import MapboxMaps
3
2
 
4
- #if !RNMBX_11
3
+ let RCT_MAPBOX_USER_LOCATION_UPDATE = "MapboxUserLocationUpdate";
5
4
 
6
5
  @objc(RNMBXLocation)
7
6
  class RNMBXLocation: NSObject {
8
- var location : CLLocation = CLLocation(latitude: 0.0, longitude: 0.0)
7
+ var location : Location? = nil
9
8
 
10
- var heading : CLHeading? = nil
9
+ var heading : Heading? = nil
11
10
 
12
11
  var timestamp: Date? = nil
13
12
 
14
- func toJSON() -> NSDictionary {
15
- return [
16
- "coords": [
17
- "longitude": location.coordinate.longitude,
13
+ func toJSON() -> [String:Any] {
14
+ var coords: [String:Any] = [:]
15
+
16
+ if let location = location {
17
+ coords = coords.merging([
18
18
  "latitude": location.coordinate.latitude,
19
+ "longitude": location.coordinate.longitude,
19
20
  "altitude": location.altitude,
20
21
  "accuracy": location.horizontalAccuracy,
21
- "heading": heading?.trueHeading ?? 0.0,
22
- "course": location.course,
23
- "speed": location.speed,
24
- ],
25
- "timestamp": (timestamp ?? location.timestamp).timeIntervalSince1970 * 1000
26
- ]
27
- }
28
- }
29
-
30
- typealias RNMBXLocationBlock = (RNMBXLocation?) -> Void
31
-
32
- let RCT_MAPBOX_USER_LOCATION_UPDATE = "MapboxUserLocationUpdate";
33
-
34
- /// This implementation of LocationProviderDelegate is used by `LocationManager` to work around
35
- /// the fact that the `LocationProvider` API does not allow the delegate to be set to `nil`.
36
- internal class EmptyLocationProviderDelegate: LocationProviderDelegate {
37
- func locationProvider(_ provider: LocationProvider, didFailWithError error: Error) {}
38
- func locationProvider(_ provider: LocationProvider, didUpdateHeading newHeading: CLHeading) {}
39
- func locationProvider(_ provider: LocationProvider, didUpdateLocations locations: [CLLocation]) {}
40
- func locationProviderDidChangeAuthorization(_ provider: LocationProvider) {}
41
- }
42
-
43
- protocol LocationProviderRNMBXDelegate : AnyObject {
44
- func locationManager(_ locationManager: LocationProviderRNMBX, didUpdateLocation: RNMBXLocation)
45
- }
46
-
47
- class RNMBXAppleLocationProvider: NSObject {
48
- private var locationProvider: CLLocationManager
49
-
50
- private var privateLocationProviderOptions: LocationOptions {
51
- didSet {
52
- locationProvider.distanceFilter = privateLocationProviderOptions.distanceFilter
53
- locationProvider.desiredAccuracy = privateLocationProviderOptions.desiredAccuracy
54
- locationProvider.activityType = privateLocationProviderOptions.activityType
55
- }
56
- }
57
- private weak var delegate: LocationProviderDelegate?
58
-
59
- public var headingOrientation: CLDeviceOrientation {
60
- didSet { locationProvider.headingOrientation = headingOrientation }
22
+ "course": location.bearing,
23
+ "speed": location.speed
24
+ ]) { (_, new ) in new }
61
25
  }
62
-
63
- public override init() {
64
- locationProvider = CLLocationManager()
65
- privateLocationProviderOptions = LocationOptions()
66
- headingOrientation = locationProvider.headingOrientation
67
- super.init()
68
- locationProvider.delegate = self
69
- }
70
- }
71
-
72
- extension RNMBXAppleLocationProvider: LocationProvider {
73
- public var locationProviderOptions: LocationOptions {
74
- get { privateLocationProviderOptions }
75
- set { privateLocationProviderOptions = newValue }
26
+ if let heading = heading {
27
+ coords = coords.merging([
28
+ "heading": heading.direction
29
+ ]) { (_, new) in new }
76
30
  }
77
-
78
- public var authorizationStatus: CLAuthorizationStatus {
79
- if #available(iOS 14.0, *) {
80
- return locationProvider.authorizationStatus
81
- } else {
82
- return CLLocationManager.authorizationStatus()
83
- }
84
- }
85
-
86
- public var accuracyAuthorization: CLAccuracyAuthorization {
87
- if #available(iOS 14.0, *) {
88
- return locationProvider.accuracyAuthorization
89
- } else {
90
- return .fullAccuracy
91
- }
92
- }
93
-
94
- public var heading: CLHeading? {
95
- return locationProvider.heading
96
- }
97
-
98
- public func setDelegate(_ delegate: LocationProviderDelegate) {
99
- self.delegate = delegate
100
- }
101
-
102
- public func requestAlwaysAuthorization() {
103
- locationProvider.requestAlwaysAuthorization()
104
- }
105
-
106
- public func requestWhenInUseAuthorization() {
107
- locationProvider.requestWhenInUseAuthorization()
108
- }
109
-
110
- @available(iOS 14.0, *)
111
- public func requestTemporaryFullAccuracyAuthorization(withPurposeKey purposeKey: String) {
112
- locationProvider.requestTemporaryFullAccuracyAuthorization(withPurposeKey: purposeKey)
113
- }
114
-
115
- public func startUpdatingLocation() {
116
- locationProvider.startUpdatingLocation()
117
- }
118
-
119
- public func stopUpdatingLocation() {
120
- locationProvider.stopUpdatingLocation()
121
- }
122
-
123
- public func startUpdatingHeading() {
124
- locationProvider.startUpdatingHeading()
125
- }
126
-
127
- public func stopUpdatingHeading() {
128
- locationProvider.stopUpdatingHeading()
129
- }
130
-
131
- public func dismissHeadingCalibrationDisplay() {
132
- locationProvider.dismissHeadingCalibrationDisplay()
133
- }
134
- }
135
-
136
- extension RNMBXAppleLocationProvider: CLLocationManagerDelegate {
137
- public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
138
- delegate?.locationProvider(self, didUpdateLocations: locations)
139
- }
140
-
141
- public func locationManager(_ manager: CLLocationManager, didUpdateHeading heading: CLHeading) {
142
- delegate?.locationProvider(self, didUpdateHeading: heading)
143
- }
144
-
145
- public func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
146
- delegate?.locationProvider(self, didFailWithError: error)
147
- }
148
-
149
- @available(iOS 14.0, *)
150
- public func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
151
- delegate?.locationProviderDidChangeAuthorization(self)
152
- }
153
-
154
- public func locationManagerShouldDisplayHeadingCalibration(_ manager: CLLocationManager) -> Bool {
155
- guard let calibratingDelegate = delegate as? CalibratingLocationProviderDelegate else {
156
- return false
157
- }
158
-
159
- return calibratingDelegate.locationProviderShouldDisplayHeadingCalibration(self)
31
+
32
+ return [
33
+ "coords": coords,
34
+ "timestamp": (timestamp ?? location?.timestamp ?? heading?.timestamp ?? Date()).timeIntervalSince1970 * 1000
35
+ ]
160
36
  }
161
37
  }
162
38
 
163
- internal protocol CalibratingLocationProviderDelegate: LocationProviderDelegate {
164
- func locationProviderShouldDisplayHeadingCalibration(_ locationProvider: LocationProvider) -> Bool
165
- }
166
-
167
- /// LocationProviderRNMBX listens to updates from a locationProvider and implements the LocationProvider interface itself
168
- /// So it can be source of Mapbox locationProduces (which updates location pluck and viewport if configured) as well as source to updates
169
- /// to RNMBXLocationModules.
170
- class LocationProviderRNMBX : LocationProviderDelegate {
171
- enum LocationUpdateType {
172
- case heading
173
- case location
174
- }
175
-
176
- var provider: LocationProvider
177
-
178
- var lastKnownLocation : CLLocation?
179
- var lastKnownHeading : CLHeading?
180
- var shouldRequestAlwaysAuthorization: Bool?
181
-
182
- weak var delegate: LocationProviderRNMBXDelegate?
183
- weak var locationProviderDelage: LocationProviderDelegate?
39
+ /*
40
+ class RNMBXAppleLocationProviderProxy : LocationProvider & HeadingProvider {
41
+ var origProvider : AppleLocationProvider
184
42
 
185
43
  var headingSimulator: Timer? = nil
186
44
  var simulatedHeading: Double = 0.0
187
45
  var simulatedHeadingIncrement: Double = 1.0
188
46
 
189
-
190
- struct Status {
191
- var provider = (updatingLocation: false, updatingHeading: false)
192
- var RNMBXModule = false
193
-
194
- var shouldUpdateLocation: Bool {
195
- return provider.updatingLocation || RNMBXModule
196
- }
197
- var shouldUpdateHeading: Bool {
198
- return provider.updatingHeading || RNMBXModule
199
- }
200
- }
201
-
202
- var started = Status(provider: (updatingLocation: false, updatingHeading: false), RNMBXModule: false) {
203
- didSet {
204
- _syncStarted(oldValue: oldValue, started: started)
205
- }
206
- }
207
-
208
- init() {
209
- provider = RNMBXAppleLocationProvider()
210
- provider.setDelegate(self)
211
- }
212
-
213
- func setDistanceFilter(_ distanceFilter: CLLocationDistance) {
214
- var options = provider.locationProviderOptions
215
- options.distanceFilter = distanceFilter
216
- provider.locationProviderOptions = options
217
- }
218
-
219
- func setRequestsAlwaysUse(_ requestsAlwaysUse: Bool) {
220
- shouldRequestAlwaysAuthorization = requestsAlwaysUse;
221
- }
222
-
223
- func start() {
224
- if shouldRequestAlwaysAuthorization == true {
225
- provider.requestAlwaysAuthorization()
226
- }
227
- provider.requestWhenInUseAuthorization()
228
- started.RNMBXModule = true
229
- }
230
-
231
- func stop() {
232
- started.RNMBXModule = false
233
- }
234
-
235
- func _syncStarted(oldValue: Status, started: Status) {
236
- var stoppedSomething = false
237
- if (oldValue.shouldUpdateLocation != started.shouldUpdateLocation) {
238
- if started.shouldUpdateLocation {
239
- provider.setDelegate(self)
240
- provider.startUpdatingLocation()
241
- } else {
242
- provider.stopUpdatingLocation()
243
- stoppedSomething = true
244
- }
245
- }
246
-
247
- if (oldValue.shouldUpdateHeading != started.shouldUpdateHeading) {
248
- if started.shouldUpdateHeading {
249
- provider.setDelegate(self)
250
- provider.startUpdatingHeading()
251
- } else {
252
- provider.stopUpdatingHeading()
253
- stoppedSomething = true
254
- }
255
- }
256
-
257
- if stoppedSomething && !started.shouldUpdateLocation && !started.shouldUpdateHeading {
258
- provider.setDelegate(EmptyLocationProviderDelegate())
259
- }
260
- }
261
-
262
- func _convertToMapboxLocation(_ location: CLLocation?, type: LocationUpdateType) -> RNMBXLocation {
263
- guard let location = location else {
264
- return RNMBXLocation()
265
- }
266
-
267
- let userLocation = RNMBXLocation()
268
- userLocation.location = location;
269
- userLocation.heading = lastKnownHeading
270
- switch type {
271
- case .location:
272
- userLocation.timestamp = location.timestamp
273
- case .heading:
274
- userLocation.timestamp = lastKnownHeading!.timestamp
275
- }
276
- return userLocation;
277
- }
278
-
279
- func _updateDelegate(type: LocationUpdateType) {
280
- if delegate == nil {
281
- return;
282
- }
283
-
284
- let userLocation = _convertToMapboxLocation(lastKnownLocation, type: type)
285
-
286
- delegate?.locationManager(self, didUpdateLocation: userLocation)
287
- }
288
-
289
- // MARK: - LocationProviderDelegate
290
-
291
- func locationProvider(_ provider: LocationProvider, didUpdateLocations locations: [CLLocation]) {
292
- lastKnownLocation = locations.last
293
- self._updateDelegate(type: .location)
294
-
295
- locationProviderDelage?.locationProvider(provider, didUpdateLocations: locations)
296
- }
297
-
298
- func locationProvider(_ provider: LocationProvider, didUpdateHeading newHeading: CLHeading) {
299
- lastKnownHeading = newHeading
300
- self._updateDelegate(type: .heading)
301
-
302
- locationProviderDelage?.locationProvider(provider, didUpdateHeading: newHeading)
303
- }
304
-
305
- func locationProvider(_ provider: LocationProvider, didFailWithError error: Error) {
306
- locationProviderDelage?.locationProvider(provider, didFailWithError: error)
307
- }
308
-
309
- func locationProviderDidChangeAuthorization(_ provider: LocationProvider) {
310
- locationProviderDelage?.locationProviderDidChangeAuthorization(provider)
311
- }
312
- }
313
-
314
- // MARK: LocationProvider
315
-
316
- extension LocationProviderRNMBX: LocationProvider {
317
- var locationProviderOptions: LocationOptions {
47
+ public var options: AppleLocationProvider.Options {
318
48
  get {
319
- provider.locationProviderOptions
49
+ origProvider.options
320
50
  }
321
- set(newValue) {
322
- provider.locationProviderOptions = newValue
51
+ set {
52
+ origProvider.options = newValue
323
53
  }
324
54
  }
325
55
 
326
- var authorizationStatus: CLAuthorizationStatus {
56
+ var onLocationUpdate: Signal<[Location]> {
327
57
  get {
328
- provider.authorizationStatus
58
+ origProvider.onLocationUpdate
329
59
  }
330
60
  }
331
61
 
332
- var accuracyAuthorization: CLAccuracyAuthorization {
62
+ var onHeadingUpdate: Signal<Heading> {
333
63
  get {
334
- provider.accuracyAuthorization
64
+ origProvider.onHeadingUpdate
335
65
  }
336
66
  }
337
67
 
338
- var heading: CLHeading? {
339
- get {
340
- provider.heading
341
- }
68
+ init(provider: AppleLocationProvider) {
69
+ self.origProvider = provider
342
70
  }
343
71
 
344
- func setDelegate(_ delegate: LocationProviderDelegate) {
345
- provider.setDelegate(self)
346
- locationProviderDelage = delegate
347
-
348
- if let lastLocation = lastKnownLocation {
349
- DispatchQueue.main.async {
350
- self.locationProviderDelage?.locationProvider(self, didUpdateLocations: [lastLocation])
351
- }
352
- }
353
- if let lastHeading = lastKnownHeading {
354
- DispatchQueue.main.async { [self] in
355
- self.locationProviderDelage?.locationProvider(self, didUpdateHeading: lastHeading)
356
- }
357
- }
72
+ func addLocationObserver(for observer: LocationObserver) {
73
+ origProvider.addLocationObserver(for: observer)
358
74
  }
359
75
 
360
- func requestAlwaysAuthorization() {
361
- provider.requestAlwaysAuthorization()
76
+ func removeLocationObserver(for observer: LocationObserver) {
77
+ origProvider.removeLocationObserver(for: observer)
362
78
  }
363
79
 
364
- func requestWhenInUseAuthorization() {
365
- provider.requestWhenInUseAuthorization()
80
+ func getLastObservedLocation() -> Location? {
81
+ origProvider.getLastObservedLocation()
366
82
  }
367
83
 
368
- func requestTemporaryFullAccuracyAuthorization(withPurposeKey purposeKey: String) {
369
- if #available(iOS 14.0, *) {
370
- provider.requestTemporaryFullAccuracyAuthorization(withPurposeKey: purposeKey)
371
- } else {
372
- // Fallback on earlier versions
84
+ var latestHeading: MapboxMaps.Heading? {
85
+ get {
86
+ return origProvider.latestHeading
373
87
  }
374
88
  }
375
89
 
376
- func startUpdatingLocation() {
377
- started.provider.updatingLocation = true
378
- }
379
-
380
- func stopUpdatingLocation() {
381
- started.provider.updatingLocation = false
382
- }
383
-
384
- var headingOrientation: CLDeviceOrientation {
90
+ var latestLocation: MapboxMaps.Location? {
385
91
  get {
386
- return provider.headingOrientation
387
- }
388
- set(newValue) {
389
- provider.headingOrientation = newValue
92
+ return origProvider.latestLocation
390
93
  }
391
94
  }
392
95
 
393
- func startUpdatingHeading() {
394
- started.provider.updatingHeading = true
96
+ func add(headingObserver: MapboxMaps.HeadingObserver) {
97
+ origProvider.add(headingObserver: headingObserver)
395
98
  }
396
99
 
397
- func stopUpdatingHeading() {
398
- started.provider.updatingHeading = false
399
- }
400
-
401
- func dismissHeadingCalibrationDisplay() {
402
- provider.dismissHeadingCalibrationDisplay()
100
+ func remove(headingObserver: MapboxMaps.HeadingObserver) {
101
+ origProvider.remove(headingObserver: headingObserver)
403
102
  }
404
103
  }
405
104
 
406
- // MARK: heading simulation
407
-
408
- final public class SimulatedHeading: CLHeading {
409
- init(trueHeading: CLLocationDirection, timestamp: Date) {
410
- _trueHeading = trueHeading
411
- _timestamp = timestamp
412
- super.init()
413
- }
414
-
415
- required init?(coder: NSCoder) {
416
- fatalError("init(coder:) has not been implemented")
417
- }
418
-
419
- private var _trueHeading: CLLocationDirection = 0
420
- private var _timestamp: Date
421
-
422
- public override var trueHeading: CLLocationDirection {
423
- get { _trueHeading }
424
- set { _trueHeading = newValue }
425
- }
426
-
427
- public override var timestamp: Date{
428
- get { _timestamp }
429
- set { _timestamp = newValue }
430
- }
431
- }
105
+ // MARK: - heading simulation
432
106
 
433
- extension LocationProviderRNMBX {
107
+ extension RNMBXAppleLocationProviderProxy {
434
108
  func simulateHeading(changesPerSecond: Int, increment: Double) {
435
109
  self.simulatedHeadingIncrement = increment
436
110
  DispatchQueue.main.async {
@@ -450,102 +124,164 @@ extension LocationProviderRNMBX {
450
124
  }
451
125
  }
452
126
  }
127
+ */
453
128
 
454
- // LocationModule is a sigleton class
455
- @objc(RNMBXLocationModule)
456
- class RNMBXLocationModule: RCTEventEmitter, LocationProviderRNMBXDelegate {
129
+ // MARK: - RNMBXLocationModule
457
130
 
131
+ @objc(RNMBXLocationModule)
132
+ class RNMBXLocationModule: RCTEventEmitter {
458
133
  static weak var shared : RNMBXLocationModule? = nil
134
+
135
+ var _locationProvider : LocationProvider & HeadingProvider = AppleLocationProvider()
136
+ var locationUpdateObserver : Cancelable? = nil
137
+ var locationHeadingObserver : Cancelable? = nil
138
+
139
+ var actLocation : RNMBXLocation = RNMBXLocation()
140
+
141
+ var hasListener : Bool = false
459
142
 
460
- var hasListener = false
461
-
462
- var locationProvider : LocationProvider
463
- var defaultLocationProvider : LocationProvider? = nil
464
-
465
- var locationEventThrottle : (
466
- waitBetweenEvents: Double?,
467
- lastSentTimestamp: Double?
468
- ) = (
469
- nil,
470
- nil
471
- )
143
+ var throttler = EventThrottler()
472
144
 
473
145
  override init() {
474
- locationProvider = LocationProviderRNMBX()
475
- defaultLocationProvider = locationProvider
476
146
  super.init()
477
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
478
- locationProvider.delegate = self
479
- }
480
147
  RNMBXLocationModule.shared = self
481
148
  }
482
149
 
150
+ func override(for locationManager: LocationManager) {
151
+ locationManager.override(provider: _locationProvider)
152
+ }
153
+
483
154
  @objc
484
155
  override static func requiresMainQueueSetup() -> Bool {
485
156
  return true
486
157
  }
487
158
 
488
- @objc
489
- override func constantsToExport() -> [AnyHashable: Any]! {
490
- return [:];
491
- }
492
-
493
159
  @objc override func supportedEvents() -> [String]
494
160
  {
495
161
  return [RCT_MAPBOX_USER_LOCATION_UPDATE];
496
162
  }
497
163
 
498
164
  @objc func start(_ minDisplacement: CLLocationDistance) {
499
- if minDisplacement >= 0.0 {
500
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
501
- locationProvider.setDistanceFilter(minDisplacement)
165
+ setMinDisplacement(minDisplacement)
166
+
167
+ locationUpdateObserver?.cancel()
168
+ locationUpdateObserver = observeLocationUpdates(_locationProvider) { location in
169
+ guard self.hasListener else { return }
170
+
171
+ self.actLocation.location = location.last
172
+ self.throttler.perform {
173
+ self.sendEvent(withName: RCT_MAPBOX_USER_LOCATION_UPDATE, body: self.actLocation.toJSON())
502
174
  }
503
175
  }
504
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
505
- locationProvider.start()
176
+ locationHeadingObserver?.cancel()
177
+ locationHeadingObserver = observeHeadingUpdates(_locationProvider) { heading in
178
+ guard self.hasListener else { return }
179
+
180
+ self.actLocation.heading = heading
181
+ self.throttler.perform {
182
+ self.sendEvent(withName: RCT_MAPBOX_USER_LOCATION_UPDATE, body: self.actLocation.toJSON())
183
+ }
506
184
  }
507
185
  }
508
186
 
509
- @objc func stop() {
510
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
511
- locationProvider.stop()
187
+ class _LocationObserver : Cancelable, LocationObserver {
188
+ weak var locationProvider: LocationProvider?
189
+ var callback: (([Location]) -> Void)?
190
+
191
+ init(_ locationProvider: LocationProvider) {
192
+ self.locationProvider = locationProvider
193
+ }
194
+
195
+ func onLocationUpdateReceived(for locations: [Location]) {
196
+ callback?(locations)
197
+ }
198
+
199
+ func cancel() {
200
+ locationProvider?.removeLocationObserver(for: self)
201
+ locationProvider = nil
202
+ }
203
+
204
+ deinit {
205
+ self.cancel()
512
206
  }
513
207
  }
514
208
 
515
- @objc func getLastKnownLocation() -> NSDictionary? {
516
- let result = RNMBXLocation()
517
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
518
- if let location = locationProvider.lastKnownLocation {
519
- result.location = location
520
- result.timestamp = location.timestamp
521
- }
522
- if let heading = locationProvider.lastKnownHeading {
523
- result.heading = heading
524
- if result.timestamp == nil ||
525
- heading.timestamp.compare(result.timestamp!) == .orderedAscending {
526
- result.timestamp = heading.timestamp
527
- }
528
- }
209
+ class _HeadingObserver: Cancelable, HeadingObserver {
210
+ var headingProvider: HeadingProvider?
211
+ var callback: ((Heading) -> Void)?
212
+
213
+ init(_ headingProvider: HeadingProvider) {
214
+ self.headingProvider = headingProvider
215
+ }
216
+
217
+ func onHeadingUpdate(_ heading: MapboxMaps.Heading) {
218
+ callback?(heading)
219
+ }
220
+
221
+ func cancel() {
222
+ headingProvider?.remove(headingObserver: self)
223
+ headingProvider = nil
224
+ }
225
+
226
+ deinit {
227
+ self.cancel()
529
228
  }
530
- return result.toJSON()
531
229
  }
532
230
 
533
- @objc func setMinDisplacement(_ minDisplacement: CLLocationDistance) {
534
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
535
- locationProvider.setDistanceFilter(minDisplacement)
231
+ func observeLocationUpdates(_ locationProvider: LocationProvider, callback: @escaping ([Location]) -> Void) -> Cancelable {
232
+ let observer = _LocationObserver(locationProvider)
233
+ observer.callback = callback
234
+ locationProvider.addLocationObserver(for: observer)
235
+ return observer
236
+ }
237
+
238
+ func observeHeadingUpdates(_ headingProvider: HeadingProvider, callback: @escaping (Heading) -> Void) -> Cancelable {
239
+ let observer = _HeadingObserver(headingProvider)
240
+ observer.callback = callback
241
+ headingProvider.add(headingObserver: observer)
242
+ return observer
243
+ }
244
+
245
+ @objc func stop() {
246
+ locationUpdateObserver?.cancel()
247
+ locationUpdateObserver = nil
248
+ locationHeadingObserver?.cancel()
249
+ locationHeadingObserver = nil
250
+ throttler.cancel()
251
+ }
252
+
253
+ @objc func getLastKnownLocation() -> [String: Any]? {
254
+ let last = RNMBXLocation()
255
+ last.heading = _locationProvider.latestHeading
256
+ last.location = _locationProvider.getLastObservedLocation()
257
+ return last.toJSON()
258
+ }
259
+
260
+ @objc
261
+ func setMinDisplacement(_ minDisplacement: CLLocationDistance) {
262
+ if let appleLocationProvider = _locationProvider as? AppleLocationProvider {
263
+ var newOptions = appleLocationProvider.options
264
+ newOptions.distanceFilter = minDisplacement
265
+ if minDisplacement >= 0.0 { appleLocationProvider.options = newOptions }
266
+ }
267
+ }
268
+
269
+ @objc
270
+ func setLocationEventThrottle(_ throttleValue:NSNumber) {
271
+ let throttleValue = throttleValue.doubleValue
272
+ if throttleValue > 0.0 {
273
+ throttler.waitBetweenEvents = throttleValue
274
+ } else {
275
+ throttler.waitBetweenEvents = nil
536
276
  }
537
277
  }
538
278
 
539
279
  @objc func setRequestsAlwaysUse(_ requestsAlwaysUse: Bool) {
540
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
541
- locationProvider.setRequestsAlwaysUse(requestsAlwaysUse)
542
- }
280
+ // V11TODO
543
281
  }
544
282
 
545
283
  @objc func simulateHeading(_ changesPerSecond: NSNumber, increment: NSNumber) {
546
- if let locationProvider = locationProvider as? LocationProviderRNMBX {
547
- locationProvider.simulateHeading(changesPerSecond: changesPerSecond.intValue, increment: increment.doubleValue)
548
- }
284
+ // V11TODO
549
285
  }
550
286
 
551
287
  @objc
@@ -557,70 +293,59 @@ class RNMBXLocationModule: RCTEventEmitter, LocationProviderRNMBXDelegate {
557
293
  @objc
558
294
  override func stopObserving() {
559
295
  super.stopObserving()
296
+ throttler.cancel()
560
297
  hasListener = false
561
298
  }
562
-
563
- func locationManager(_ locationManager: LocationProviderRNMBX, didUpdateLocation location: RNMBXLocation) {
564
- guard hasListener, let _ = bridge else {
565
- return
566
- }
567
299
 
568
- if shouldSendLocationEvent() {
569
- self.sendEvent(withName: RCT_MAPBOX_USER_LOCATION_UPDATE, body: location.toJSON())
300
+ var locationProvider : LocationProvider & HeadingProvider {
301
+ get {
302
+ return _locationProvider
570
303
  }
571
- }
572
-
573
- func override(for locationManager: LocationManager) {
574
- if let locationModule = RNMBXLocationModule.shared {
575
- var isSameProvider = false
576
- if let currentProvider = locationManager.locationProvider as? AnyObject, let newProvider = locationModule.locationProvider as? AnyObject {
577
- if currentProvider === newProvider {
578
- isSameProvider = true
579
- }
580
- }
581
- if !isSameProvider {
582
- locationManager.overrideLocationProvider(with: locationModule.locationProvider)
583
- }
304
+ set(value) {
305
+ _locationProvider = value
584
306
  }
585
307
  }
586
308
 
587
- func resetLocationProvider() {
588
- if let defaultLocationProvider = defaultLocationProvider {
589
- self.locationProvider = defaultLocationProvider
590
- }
591
- }
592
-
593
- // MARK: - location event throttle
594
- @objc
595
- func setLocationEventThrottle(_ throttleValue:NSNumber) {
596
- let throttleValue = throttleValue.doubleValue
597
- if throttleValue > 0.0 {
598
- locationEventThrottle.waitBetweenEvents = throttleValue
599
- } else {
600
- locationEventThrottle.waitBetweenEvents = nil
601
- }
309
+ func overrideLocationProvider(newProvider: LocationProvider & HeadingProvider) {
310
+ _locationProvider = newProvider
602
311
  }
312
+
313
+
314
+ }
603
315
 
604
- func shouldSendLocationEvent() -> Bool {
605
- guard let waitBetweenEvents = locationEventThrottle.waitBetweenEvents, waitBetweenEvents > 0 else {
316
+ class EventThrottler {
317
+ var waitBetweenEvents: Double? = nil
318
+ var lastSentTimestamp: Double? = nil
319
+
320
+ func shouldSend() -> Bool {
321
+ guard let waitBetweenEvents = waitBetweenEvents, waitBetweenEvents > 0 else {
606
322
  return true
607
323
  }
608
324
 
609
325
  let currentTimestamp: Double = CACurrentMediaTime() * 1000.0
610
326
 
611
- guard let lastSentTimestamp = locationEventThrottle.lastSentTimestamp else {
612
- locationEventThrottle.lastSentTimestamp = currentTimestamp
327
+ guard let lastSentTimestamp = lastSentTimestamp else {
328
+ self.lastSentTimestamp = currentTimestamp
613
329
  return true;
614
330
  }
615
331
 
616
332
  if (currentTimestamp - lastSentTimestamp > waitBetweenEvents) {
617
- locationEventThrottle.lastSentTimestamp = currentTimestamp
333
+ self.lastSentTimestamp = currentTimestamp
618
334
  return true;
619
335
  }
620
336
 
621
337
  return false;
622
338
  }
339
+
340
+ func cancel() {}
341
+
342
+ func shouldTrhottle() -> Bool {
343
+ return !shouldSend()
344
+ }
345
+
346
+ func perform(action: @escaping () -> Void) {
347
+ if shouldSend() {
348
+ action()
349
+ }
350
+ }
623
351
  }
624
-
625
- #endif
626
-