@rnmapbox/maps 10.1.0-beta.20 → 10.1.0-beta.21

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 (292) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/AndroidManifest.xml +1 -1
  3. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +27 -1
  4. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocation.kt +6 -5
  5. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSource.kt +56 -6
  6. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt +2 -1
  7. package/android/src/main/java/com/rnmapbox/rnmbx/shape_animators/RNMBXMovePointShapeAnimatorModule.kt +55 -0
  8. package/android/src/main/java/com/rnmapbox/rnmbx/shape_animators/ShapeAnimatorCommon.kt +110 -0
  9. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeMapViewModuleSpec.java +1 -2
  10. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXImageModuleSpec.java +1 -2
  11. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXMovePointShapeAnimatorModuleSpec.java +43 -0
  12. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXPointAnnotationModuleSpec.java +1 -2
  13. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXShapeSourceModuleSpec.java +1 -2
  14. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXViewportModuleSpec.java +1 -2
  15. package/ios/RNMBX/RNMBXMapView.swift +74 -3
  16. package/ios/RNMBX/RNMBXMarkerViewComponentView.mm +1 -0
  17. package/ios/RNMBX/RNMBXShapeSource.swift +54 -15
  18. package/ios/RNMBX/RNMBXViewportComponentView.mm +1 -1
  19. package/ios/RNMBX/ShapeAnimators/RNMBXMovePointShapeAnimatorModule.m +61 -0
  20. package/ios/RNMBX/ShapeAnimators/RNMBXMovePointShapeAnimatorModule.swift +47 -0
  21. package/ios/RNMBX/ShapeAnimators/ShapeAnimatorCommon.swift +76 -0
  22. package/ios/RNMBX/ShapeAnimators/ShapeAnimatorManager.swift +45 -0
  23. package/lib/commonjs/Mapbox.js +10 -0
  24. package/lib/commonjs/Mapbox.js.map +1 -1
  25. package/lib/commonjs/RNMBXModule.js.map +1 -1
  26. package/lib/commonjs/classes/AnimatedCoordinatesArray.js.map +1 -1
  27. package/lib/commonjs/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
  28. package/lib/commonjs/classes/AnimatedPoint.js.map +1 -1
  29. package/lib/commonjs/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
  30. package/lib/commonjs/classes/AnimatedShape.js.map +1 -1
  31. package/lib/commonjs/classes/index.d.js.map +1 -1
  32. package/lib/commonjs/classes/index.js.map +1 -1
  33. package/lib/commonjs/components/AbstractLayer.js.map +1 -1
  34. package/lib/commonjs/components/AbstractSource.js.map +1 -1
  35. package/lib/commonjs/components/Annotation.js.map +1 -1
  36. package/lib/commonjs/components/Atmosphere.js.map +1 -1
  37. package/lib/commonjs/components/BackgroundLayer.js.map +1 -1
  38. package/lib/commonjs/components/Callout.js.map +1 -1
  39. package/lib/commonjs/components/Camera.js.map +1 -1
  40. package/lib/commonjs/components/CircleLayer.js.map +1 -1
  41. package/lib/commonjs/components/CustomLocationProvider.js.map +1 -1
  42. package/lib/commonjs/components/FillExtrusionLayer.js.map +1 -1
  43. package/lib/commonjs/components/FillLayer.js.map +1 -1
  44. package/lib/commonjs/components/HeadingIndicator.js.map +1 -1
  45. package/lib/commonjs/components/HeatmapLayer.js.map +1 -1
  46. package/lib/commonjs/components/Image.js.map +1 -1
  47. package/lib/commonjs/components/ImageSource.js.map +1 -1
  48. package/lib/commonjs/components/Images.js.map +1 -1
  49. package/lib/commonjs/components/Light.js.map +1 -1
  50. package/lib/commonjs/components/LineLayer.js.map +1 -1
  51. package/lib/commonjs/components/MapView.js +0 -8
  52. package/lib/commonjs/components/MapView.js.map +1 -1
  53. package/lib/commonjs/components/MarkerView.js.map +1 -1
  54. package/lib/commonjs/components/NativeBridgeComponent.js.map +1 -1
  55. package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
  56. package/lib/commonjs/components/PointAnnotation.js.map +1 -1
  57. package/lib/commonjs/components/RasterDemSource.js.map +1 -1
  58. package/lib/commonjs/components/RasterLayer.js.map +1 -1
  59. package/lib/commonjs/components/RasterSource.js.map +1 -1
  60. package/lib/commonjs/components/ShapeSource.js.map +1 -1
  61. package/lib/commonjs/components/SkyLayer.js.map +1 -1
  62. package/lib/commonjs/components/Style.js.map +1 -1
  63. package/lib/commonjs/components/StyleImport.js.map +1 -1
  64. package/lib/commonjs/components/SymbolLayer.js.map +1 -1
  65. package/lib/commonjs/components/Terrain.js.map +1 -1
  66. package/lib/commonjs/components/UserLocation.js.map +1 -1
  67. package/lib/commonjs/components/VectorSource.js.map +1 -1
  68. package/lib/commonjs/components/Viewport.js.map +1 -1
  69. package/lib/commonjs/global.d.js.map +1 -1
  70. package/lib/commonjs/index.js.map +1 -1
  71. package/lib/commonjs/index.web.js.map +1 -1
  72. package/lib/commonjs/modules/location/locationManager.js.map +1 -1
  73. package/lib/commonjs/modules/offline/OfflineCreatePackOptions.js.map +1 -1
  74. package/lib/commonjs/modules/offline/OfflinePack.js.map +1 -1
  75. package/lib/commonjs/modules/offline/offlineManager.js.map +1 -1
  76. package/lib/commonjs/modules/snapshot/SnapshotOptions.js.map +1 -1
  77. package/lib/commonjs/modules/snapshot/snapshotManager.js.map +1 -1
  78. package/lib/commonjs/requestAndroidLocationPermissions.js.map +1 -1
  79. package/lib/commonjs/shape_animators/MovePointShapeAnimator.js +21 -0
  80. package/lib/commonjs/shape_animators/MovePointShapeAnimator.js.map +1 -0
  81. package/lib/commonjs/shape_animators/ShapeAnimatorManager.js +15 -0
  82. package/lib/commonjs/shape_animators/ShapeAnimatorManager.js.map +1 -0
  83. package/lib/commonjs/specs/NativeMapViewModule.js.map +1 -1
  84. package/lib/commonjs/specs/NativeRNMBXImageModule.js.map +1 -1
  85. package/lib/commonjs/specs/NativeRNMBXMovePointShapeAnimatorModule.js +10 -0
  86. package/lib/commonjs/specs/NativeRNMBXMovePointShapeAnimatorModule.js.map +1 -0
  87. package/lib/commonjs/specs/NativeRNMBXPointAnnotationModule.js.map +1 -1
  88. package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js.map +1 -1
  89. package/lib/commonjs/specs/NativeRNMBXViewportModule.js.map +1 -1
  90. package/lib/commonjs/specs/RNMBXAtmosphereNativeComponent.js.map +1 -1
  91. package/lib/commonjs/specs/RNMBXBackgroundLayerNativeComponent.js.map +1 -1
  92. package/lib/commonjs/specs/RNMBXCalloutNativeComponent.js.map +1 -1
  93. package/lib/commonjs/specs/RNMBXCameraNativeComponent.js.map +1 -1
  94. package/lib/commonjs/specs/RNMBXCircleLayerNativeComponent.js.map +1 -1
  95. package/lib/commonjs/specs/RNMBXCustomLocationProviderNativeComponent.js.map +1 -1
  96. package/lib/commonjs/specs/RNMBXFillExtrusionLayerNativeComponent.js.map +1 -1
  97. package/lib/commonjs/specs/RNMBXFillLayerNativeComponent.js.map +1 -1
  98. package/lib/commonjs/specs/RNMBXHeatmapLayerNativeComponent.js.map +1 -1
  99. package/lib/commonjs/specs/RNMBXImageNativeComponent.js.map +1 -1
  100. package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js.map +1 -1
  101. package/lib/commonjs/specs/RNMBXImagesNativeComponent.js.map +1 -1
  102. package/lib/commonjs/specs/RNMBXLightNativeComponent.js.map +1 -1
  103. package/lib/commonjs/specs/RNMBXLineLayerNativeComponent.js.map +1 -1
  104. package/lib/commonjs/specs/RNMBXMapViewNativeComponent.js.map +1 -1
  105. package/lib/commonjs/specs/RNMBXMarkerViewNativeComponent.js.map +1 -1
  106. package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
  107. package/lib/commonjs/specs/RNMBXPointAnnotationNativeComponent.js.map +1 -1
  108. package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -1
  109. package/lib/commonjs/specs/RNMBXRasterLayerNativeComponent.js.map +1 -1
  110. package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js.map +1 -1
  111. package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js.map +1 -1
  112. package/lib/commonjs/specs/RNMBXSkyLayerNativeComponent.js.map +1 -1
  113. package/lib/commonjs/specs/RNMBXStyleImportNativeComponent.js.map +1 -1
  114. package/lib/commonjs/specs/RNMBXSymbolLayerNativeComponent.js.map +1 -1
  115. package/lib/commonjs/specs/RNMBXTerrainNativeComponent.js.map +1 -1
  116. package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js.map +1 -1
  117. package/lib/commonjs/specs/RNMBXViewportNativeComponent.js.map +1 -1
  118. package/lib/commonjs/specs/codegenUtils.js.map +1 -1
  119. package/lib/commonjs/types/BaseProps.js.map +1 -1
  120. package/lib/commonjs/types/OnPressEvent.js.map +1 -1
  121. package/lib/commonjs/types/Position.js.map +1 -1
  122. package/lib/commonjs/types/index.js.map +1 -1
  123. package/lib/commonjs/utils/BridgeValue.js.map +1 -1
  124. package/lib/commonjs/utils/Logger.js.map +1 -1
  125. package/lib/commonjs/utils/MapboxStyles.d.js.map +1 -1
  126. package/lib/commonjs/utils/StyleValue.js.map +1 -1
  127. package/lib/commonjs/utils/animated/Animated.js.map +1 -1
  128. package/lib/commonjs/utils/checkRequiredProps.js.map +1 -1
  129. package/lib/commonjs/utils/deprecation.js.map +1 -1
  130. package/lib/commonjs/utils/filterUtils.js.map +1 -1
  131. package/lib/commonjs/utils/geoUtils.js.map +1 -1
  132. package/lib/commonjs/utils/getAnnotationsLayerID.js.map +1 -1
  133. package/lib/commonjs/utils/index.js.map +1 -1
  134. package/lib/commonjs/utils/nativeRef.js.map +1 -1
  135. package/lib/commonjs/utils/styleMap.js.map +1 -1
  136. package/lib/commonjs/web/MapContext.js.map +1 -1
  137. package/lib/commonjs/web/MapboxModule.js.map +1 -1
  138. package/lib/commonjs/web/UnimplementedComponent.js.map +1 -1
  139. package/lib/commonjs/web/components/Camera.js.map +1 -1
  140. package/lib/commonjs/web/components/MapView.js.map +1 -1
  141. package/lib/commonjs/web/index.js.map +1 -1
  142. package/lib/commonjs/web/utils/Logger.js.map +1 -1
  143. package/lib/module/Mapbox.js +8 -0
  144. package/lib/module/Mapbox.js.map +1 -1
  145. package/lib/module/RNMBXModule.js.map +1 -1
  146. package/lib/module/classes/AnimatedCoordinatesArray.js.map +1 -1
  147. package/lib/module/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
  148. package/lib/module/classes/AnimatedPoint.js.map +1 -1
  149. package/lib/module/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
  150. package/lib/module/classes/AnimatedShape.js.map +1 -1
  151. package/lib/module/classes/index.d.js.map +1 -1
  152. package/lib/module/classes/index.js.map +1 -1
  153. package/lib/module/components/AbstractLayer.js.map +1 -1
  154. package/lib/module/components/AbstractSource.js.map +1 -1
  155. package/lib/module/components/Annotation.js.map +1 -1
  156. package/lib/module/components/Atmosphere.js.map +1 -1
  157. package/lib/module/components/BackgroundLayer.js.map +1 -1
  158. package/lib/module/components/Callout.js.map +1 -1
  159. package/lib/module/components/Camera.js.map +1 -1
  160. package/lib/module/components/CircleLayer.js.map +1 -1
  161. package/lib/module/components/CustomLocationProvider.js.map +1 -1
  162. package/lib/module/components/FillExtrusionLayer.js.map +1 -1
  163. package/lib/module/components/FillLayer.js.map +1 -1
  164. package/lib/module/components/HeadingIndicator.js.map +1 -1
  165. package/lib/module/components/HeatmapLayer.js.map +1 -1
  166. package/lib/module/components/Image.js.map +1 -1
  167. package/lib/module/components/ImageSource.js.map +1 -1
  168. package/lib/module/components/Images.js.map +1 -1
  169. package/lib/module/components/Light.js.map +1 -1
  170. package/lib/module/components/LineLayer.js.map +1 -1
  171. package/lib/module/components/MapView.js +0 -8
  172. package/lib/module/components/MapView.js.map +1 -1
  173. package/lib/module/components/MarkerView.js.map +1 -1
  174. package/lib/module/components/NativeBridgeComponent.js.map +1 -1
  175. package/lib/module/components/NativeUserLocation.js.map +1 -1
  176. package/lib/module/components/PointAnnotation.js.map +1 -1
  177. package/lib/module/components/RasterDemSource.js.map +1 -1
  178. package/lib/module/components/RasterLayer.js.map +1 -1
  179. package/lib/module/components/RasterSource.js.map +1 -1
  180. package/lib/module/components/ShapeSource.js.map +1 -1
  181. package/lib/module/components/SkyLayer.js.map +1 -1
  182. package/lib/module/components/Style.js.map +1 -1
  183. package/lib/module/components/StyleImport.js.map +1 -1
  184. package/lib/module/components/SymbolLayer.js.map +1 -1
  185. package/lib/module/components/Terrain.js.map +1 -1
  186. package/lib/module/components/UserLocation.js.map +1 -1
  187. package/lib/module/components/VectorSource.js.map +1 -1
  188. package/lib/module/components/Viewport.js.map +1 -1
  189. package/lib/module/global.d.js.map +1 -1
  190. package/lib/module/index.js.map +1 -1
  191. package/lib/module/index.web.js.map +1 -1
  192. package/lib/module/modules/location/locationManager.js.map +1 -1
  193. package/lib/module/modules/offline/OfflineCreatePackOptions.js.map +1 -1
  194. package/lib/module/modules/offline/OfflinePack.js.map +1 -1
  195. package/lib/module/modules/offline/offlineManager.js.map +1 -1
  196. package/lib/module/modules/snapshot/SnapshotOptions.js.map +1 -1
  197. package/lib/module/modules/snapshot/snapshotManager.js.map +1 -1
  198. package/lib/module/requestAndroidLocationPermissions.js.map +1 -1
  199. package/lib/module/shape_animators/MovePointShapeAnimator.js +13 -0
  200. package/lib/module/shape_animators/MovePointShapeAnimator.js.map +1 -0
  201. package/lib/module/shape_animators/ShapeAnimatorManager.js +8 -0
  202. package/lib/module/shape_animators/ShapeAnimatorManager.js.map +1 -0
  203. package/lib/module/specs/NativeMapViewModule.js.map +1 -1
  204. package/lib/module/specs/NativeRNMBXImageModule.js.map +1 -1
  205. package/lib/module/specs/NativeRNMBXMovePointShapeAnimatorModule.js +6 -0
  206. package/lib/module/specs/NativeRNMBXMovePointShapeAnimatorModule.js.map +1 -0
  207. package/lib/module/specs/NativeRNMBXPointAnnotationModule.js.map +1 -1
  208. package/lib/module/specs/NativeRNMBXShapeSourceModule.js.map +1 -1
  209. package/lib/module/specs/NativeRNMBXViewportModule.js.map +1 -1
  210. package/lib/module/specs/RNMBXAtmosphereNativeComponent.js.map +1 -1
  211. package/lib/module/specs/RNMBXBackgroundLayerNativeComponent.js.map +1 -1
  212. package/lib/module/specs/RNMBXCalloutNativeComponent.js.map +1 -1
  213. package/lib/module/specs/RNMBXCameraNativeComponent.js.map +1 -1
  214. package/lib/module/specs/RNMBXCircleLayerNativeComponent.js.map +1 -1
  215. package/lib/module/specs/RNMBXCustomLocationProviderNativeComponent.js.map +1 -1
  216. package/lib/module/specs/RNMBXFillExtrusionLayerNativeComponent.js.map +1 -1
  217. package/lib/module/specs/RNMBXFillLayerNativeComponent.js.map +1 -1
  218. package/lib/module/specs/RNMBXHeatmapLayerNativeComponent.js.map +1 -1
  219. package/lib/module/specs/RNMBXImageNativeComponent.js.map +1 -1
  220. package/lib/module/specs/RNMBXImageSourceNativeComponent.js.map +1 -1
  221. package/lib/module/specs/RNMBXImagesNativeComponent.js.map +1 -1
  222. package/lib/module/specs/RNMBXLightNativeComponent.js.map +1 -1
  223. package/lib/module/specs/RNMBXLineLayerNativeComponent.js.map +1 -1
  224. package/lib/module/specs/RNMBXMapViewNativeComponent.js.map +1 -1
  225. package/lib/module/specs/RNMBXMarkerViewNativeComponent.js.map +1 -1
  226. package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
  227. package/lib/module/specs/RNMBXPointAnnotationNativeComponent.js.map +1 -1
  228. package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -1
  229. package/lib/module/specs/RNMBXRasterLayerNativeComponent.js.map +1 -1
  230. package/lib/module/specs/RNMBXRasterSourceNativeComponent.js.map +1 -1
  231. package/lib/module/specs/RNMBXShapeSourceNativeComponent.js.map +1 -1
  232. package/lib/module/specs/RNMBXSkyLayerNativeComponent.js.map +1 -1
  233. package/lib/module/specs/RNMBXStyleImportNativeComponent.js.map +1 -1
  234. package/lib/module/specs/RNMBXSymbolLayerNativeComponent.js.map +1 -1
  235. package/lib/module/specs/RNMBXTerrainNativeComponent.js.map +1 -1
  236. package/lib/module/specs/RNMBXVectorSourceNativeComponent.js.map +1 -1
  237. package/lib/module/specs/RNMBXViewportNativeComponent.js.map +1 -1
  238. package/lib/module/specs/codegenUtils.js.map +1 -1
  239. package/lib/module/types/BaseProps.js.map +1 -1
  240. package/lib/module/types/OnPressEvent.js.map +1 -1
  241. package/lib/module/types/Position.js.map +1 -1
  242. package/lib/module/types/index.js.map +1 -1
  243. package/lib/module/utils/BridgeValue.js.map +1 -1
  244. package/lib/module/utils/Logger.js.map +1 -1
  245. package/lib/module/utils/MapboxStyles.d.js.map +1 -1
  246. package/lib/module/utils/StyleValue.js.map +1 -1
  247. package/lib/module/utils/animated/Animated.js.map +1 -1
  248. package/lib/module/utils/checkRequiredProps.js.map +1 -1
  249. package/lib/module/utils/deprecation.js.map +1 -1
  250. package/lib/module/utils/filterUtils.js.map +1 -1
  251. package/lib/module/utils/geoUtils.js.map +1 -1
  252. package/lib/module/utils/getAnnotationsLayerID.js.map +1 -1
  253. package/lib/module/utils/index.js.map +1 -1
  254. package/lib/module/utils/nativeRef.js.map +1 -1
  255. package/lib/module/utils/styleMap.js.map +1 -1
  256. package/lib/module/web/MapContext.js.map +1 -1
  257. package/lib/module/web/MapboxModule.js.map +1 -1
  258. package/lib/module/web/UnimplementedComponent.js.map +1 -1
  259. package/lib/module/web/components/Camera.js.map +1 -1
  260. package/lib/module/web/components/MapView.js.map +1 -1
  261. package/lib/module/web/index.js.map +1 -1
  262. package/lib/module/web/utils/Logger.js.map +1 -1
  263. package/lib/typescript/src/Mapbox.d.ts +5 -0
  264. package/lib/typescript/src/Mapbox.d.ts.map +1 -1
  265. package/lib/typescript/src/components/MapView.d.ts +0 -5
  266. package/lib/typescript/src/components/MapView.d.ts.map +1 -1
  267. package/lib/typescript/src/shape_animators/MovePointShapeAnimator.d.ts +7 -0
  268. package/lib/typescript/src/shape_animators/MovePointShapeAnimator.d.ts.map +1 -0
  269. package/lib/typescript/src/shape_animators/ShapeAnimatorManager.d.ts +5 -0
  270. package/lib/typescript/src/shape_animators/ShapeAnimatorManager.d.ts.map +1 -0
  271. package/lib/typescript/src/specs/NativeMapViewModule.d.ts +0 -1
  272. package/lib/typescript/src/specs/NativeMapViewModule.d.ts.map +1 -1
  273. package/lib/typescript/src/specs/NativeRNMBXImageModule.d.ts +0 -1
  274. package/lib/typescript/src/specs/NativeRNMBXImageModule.d.ts.map +1 -1
  275. package/lib/typescript/src/specs/NativeRNMBXMovePointShapeAnimatorModule.d.ts +10 -0
  276. package/lib/typescript/src/specs/NativeRNMBXMovePointShapeAnimatorModule.d.ts.map +1 -0
  277. package/lib/typescript/src/specs/NativeRNMBXPointAnnotationModule.d.ts +0 -1
  278. package/lib/typescript/src/specs/NativeRNMBXPointAnnotationModule.d.ts.map +1 -1
  279. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts +0 -1
  280. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts.map +1 -1
  281. package/lib/typescript/src/specs/NativeRNMBXViewportModule.d.ts +0 -1
  282. package/lib/typescript/src/specs/NativeRNMBXViewportModule.d.ts.map +1 -1
  283. package/lib/typescript/src/specs/codegenUtils.d.ts +0 -1
  284. package/lib/typescript/src/specs/codegenUtils.d.ts.map +1 -1
  285. package/package.json +7 -8
  286. package/rnmapbox-maps.podspec +13 -2
  287. package/setup-jest.js +5 -0
  288. package/src/Mapbox.ts +9 -0
  289. package/src/components/MapView.tsx +0 -8
  290. package/src/shape_animators/MovePointShapeAnimator.ts +18 -0
  291. package/src/shape_animators/ShapeAnimatorManager.tsx +8 -0
  292. package/src/specs/NativeRNMBXMovePointShapeAnimatorModule.ts +16 -0
@@ -1,5 +1,5 @@
1
1
  def defaultMapboxMapsImpl = "mapbox"
2
- def defaultMapboxMapsVersion = "10.16.1"
2
+ def defaultMapboxMapsVersion = "10.16.2"
3
3
 
4
4
  def safeExtGet(prop, fallback) {
5
5
  rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
@@ -1,4 +1,4 @@
1
- <manifest xmlns:android="http://schemas.android.com/apk/res/android">
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.rnmapbox.rnmbx">
2
2
  <uses-permission android:name="android.permission.INTERNET" />
3
3
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
4
4
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
@@ -46,6 +46,8 @@ import com.rnmapbox.rnmbx.modules.RNMBXLogging
46
46
  import com.rnmapbox.rnmbx.modules.RNMBXModule
47
47
  import com.rnmapbox.rnmbx.modules.RNMBXOfflineModule
48
48
  import com.rnmapbox.rnmbx.modules.RNMBXSnapshotModule
49
+ import com.rnmapbox.rnmbx.shape_animators.RNMBXMovePointShapeAnimatorModule
50
+ import com.rnmapbox.rnmbx.shape_animators.ShapeAnimatorManager
49
51
  import com.rnmapbox.rnmbx.utils.ViewTagResolver
50
52
 
51
53
  class RNMBXPackage : TurboReactPackage() {
@@ -61,6 +63,17 @@ class RNMBXPackage : TurboReactPackage() {
61
63
  return viewTagResolver
62
64
  }
63
65
 
66
+ var shapeAnimators: ShapeAnimatorManager? = null
67
+ fun getShapeAnimators(module: String): ShapeAnimatorManager {
68
+ val shapeAnimators = shapeAnimators
69
+ if (shapeAnimators == null) {
70
+ val result = ShapeAnimatorManager()
71
+ this.shapeAnimators = result
72
+ return result
73
+ }
74
+ return shapeAnimators
75
+ }
76
+
64
77
  fun resetViewTagResolver() {
65
78
  viewTagResolver = null
66
79
  }
@@ -80,6 +93,7 @@ class RNMBXPackage : TurboReactPackage() {
80
93
  RNMBXShapeSourceModule.NAME -> return RNMBXShapeSourceModule(reactApplicationContext, getViewTagResolver(reactApplicationContext, s))
81
94
  RNMBXImageModule.NAME -> return RNMBXImageModule(reactApplicationContext, getViewTagResolver(reactApplicationContext, s))
82
95
  RNMBXPointAnnotationModule.NAME -> return RNMBXPointAnnotationModule(reactApplicationContext, getViewTagResolver(reactApplicationContext, s))
96
+ RNMBXMovePointShapeAnimatorModule.NAME -> return RNMBXMovePointShapeAnimatorModule(reactApplicationContext, getShapeAnimators(s))
83
97
  }
84
98
  return null
85
99
  }
@@ -107,7 +121,10 @@ class RNMBXPackage : TurboReactPackage() {
107
121
 
108
122
  // sources
109
123
  managers.add(RNMBXVectorSourceManager(reactApplicationContext))
110
- managers.add(RNMBXShapeSourceManager(reactApplicationContext, getViewTagResolver(reactApplicationContext, "RNMBXShapeSourceManager")))
124
+ managers.add(RNMBXShapeSourceManager(reactApplicationContext,
125
+ getViewTagResolver(reactApplicationContext, "RNMBXShapeSourceManager"),
126
+ getShapeAnimators("RNMBXShapeSourceManager")
127
+ ))
111
128
  managers.add(RNMBXRasterDemSourceManager(reactApplicationContext))
112
129
  managers.add(RNMBXRasterSourceManager(reactApplicationContext))
113
130
  managers.add(RNMBXImageSourceManager())
@@ -227,6 +244,15 @@ class RNMBXPackage : TurboReactPackage() {
227
244
  false, // isCxxModule
228
245
  isTurboModule // isTurboModule
229
246
  )
247
+ moduleInfos[RNMBXMovePointShapeAnimatorModule.NAME] = ReactModuleInfo(
248
+ RNMBXMovePointShapeAnimatorModule.NAME,
249
+ RNMBXMovePointShapeAnimatorModule.NAME,
250
+ false,
251
+ false,
252
+ false,
253
+ false,
254
+ isTurboModule
255
+ )
230
256
  moduleInfos
231
257
  }
232
258
  }
@@ -15,6 +15,7 @@ import com.mapbox.maps.MapboxMap
15
15
  import com.mapbox.maps.Style
16
16
  import com.mapbox.maps.plugin.LocationPuck2D
17
17
  import com.mapbox.maps.plugin.locationcomponent.location
18
+ import com.mapbox.maps.plugin.locationcomponent.R as LR
18
19
  import com.rnmapbox.rnmbx.R
19
20
  import com.rnmapbox.rnmbx.components.AbstractMapFeature
20
21
  import com.rnmapbox.rnmbx.components.RemovalReason
@@ -234,19 +235,19 @@ fun makeDefaultLocationPuck2D(context: Context, renderMode: RenderMode): Locatio
234
235
  return LocationPuck2D(
235
236
  topImage = AppCompatResourcesV11.getDrawableImageHolder(
236
237
  context,
237
- R.drawable.mapbox_user_icon
238
+ LR.drawable.mapbox_user_icon
238
239
  ),
239
240
  bearingImage = AppCompatResourcesV11.getDrawableImageHolder(
240
241
  context,
241
242
  when (renderMode) {
242
- RenderMode.GPS -> R.drawable.mapbox_user_bearing_icon
243
- RenderMode.COMPASS -> R.drawable.mapbox_user_puck_icon
244
- RenderMode.NORMAL -> R.drawable.mapbox_user_stroke_icon
243
+ RenderMode.GPS -> LR.drawable.mapbox_user_bearing_icon
244
+ RenderMode.COMPASS -> LR.drawable.mapbox_user_puck_icon
245
+ RenderMode.NORMAL -> LR.drawable.mapbox_user_stroke_icon
245
246
  }
246
247
  ),
247
248
  shadowImage = AppCompatResourcesV11.getDrawableImageHolder(
248
249
  context,
249
- R.drawable.mapbox_user_icon_shadow
250
+ LR.drawable.mapbox_user_icon_shadow
250
251
  )
251
252
  );
252
253
  }
@@ -14,8 +14,13 @@ import com.mapbox.bindgen.Value
14
14
  import com.mapbox.geojson.Feature
15
15
  import com.rnmapbox.rnmbx.events.AndroidCallbackEvent
16
16
  import com.mapbox.geojson.FeatureCollection
17
+ import com.mapbox.geojson.GeoJson
18
+ import com.mapbox.geojson.Geometry
17
19
  import com.mapbox.maps.*
18
20
  import com.mapbox.maps.extension.style.expressions.generated.Expression
21
+ import com.rnmapbox.rnmbx.shape_animators.ShapeAnimationConsumer
22
+ import com.rnmapbox.rnmbx.shape_animators.ShapeAnimator
23
+ import com.rnmapbox.rnmbx.shape_animators.ShapeAnimatorManager
19
24
  import com.rnmapbox.rnmbx.utils.Logger
20
25
  import java.net.URL
21
26
  import java.util.ArrayList
@@ -24,9 +29,10 @@ import java.util.HashMap
24
29
  import com.rnmapbox.rnmbx.v11compat.feature.*
25
30
 
26
31
  class RNMBXShapeSource(context: Context, private val mManager: RNMBXShapeSourceManager) :
27
- RNMBXSource<GeoJsonSource>(context) {
32
+ RNMBXSource<GeoJsonSource>(context), ShapeAnimationConsumer {
28
33
  private var mURL: URL? = null
29
34
  private var mShape: String? = null
35
+ private var mShapeAnimator: ShapeAnimator? = null
30
36
  private var mCluster: Boolean? = null
31
37
  private var mClusterRadius: Long? = null
32
38
  private var mClusterMaxZoom: Long? = null
@@ -70,11 +76,55 @@ class RNMBXShapeSource(context: Context, private val mManager: RNMBXShapeSourceM
70
76
  }
71
77
 
72
78
  fun setShape(geoJSONStr: String) {
73
- mShape = geoJSONStr
74
- if (mSource != null && mMapView != null && !mMapView!!.isDestroyed) {
75
- mSource!!.data(mShape!!)
76
- val result = mMap!!.getStyle()!!
77
- .setStyleSourceProperty(iD!!, "data", Value.valueOf(mShape!!))
79
+ mShapeAnimator?.unsubscribe(this)
80
+ mShapeAnimator = null
81
+
82
+ val shapeAnimatorManager = mManager.shapeAnimatorManager
83
+ if (shapeAnimatorManager.isShapeAnimatorTag(geoJSONStr)) {
84
+ shapeAnimatorManager.get(geoJSONStr)?.let { shapeAnimator ->
85
+ mShapeAnimator = shapeAnimator
86
+ shapeAnimator.subscribe(this)
87
+
88
+ shapeUpdated(shapeAnimator.getShape())
89
+ }
90
+ } else {
91
+ mShape = geoJSONStr
92
+ if (mSource != null && mMapView != null && !mMapView!!.isDestroyed) {
93
+ mSource!!.data(mShape!!)
94
+ val result = mMap!!.getStyle()!!
95
+ .setStyleSourceProperty(iD!!, "data", Value.valueOf(mShape!!))
96
+ }
97
+ }
98
+ }
99
+
100
+ private fun toGeoJSONSourceData(geoJson: GeoJson): GeoJSONSourceData? {
101
+ return when (geoJson) {
102
+ is Geometry ->
103
+ GeoJSONSourceData(geoJson)
104
+ is Feature ->
105
+ GeoJSONSourceData(geoJson)
106
+ is FeatureCollection ->
107
+ GeoJSONSourceData(geoJson.features() ?: listOf())
108
+ else -> {
109
+ Logger.e(
110
+ LOG_TAG,
111
+ "Cannot convert shape to GeoJSONSourceData, neitthe Geometry, nor Feature or FeatureCollection: $geoJson"
112
+ );
113
+ return null
114
+ }
115
+ }
116
+ }
117
+ override fun shapeUpdated(geoJson: GeoJson) {
118
+ mSource?.also {
119
+ if (mSource != null && mMapView != null && !mMapView!!.isDestroyed) {
120
+ toGeoJSONSourceData(geoJson)?.let {
121
+ mMap?.getStyle()?.setStyleGeoJSONSourceData(iD!!,
122
+ "animated-shape",
123
+ it)
124
+ }
125
+ }
126
+ } ?: run {
127
+ mShape = geoJson.toJson()
78
128
  }
79
129
  }
80
130
 
@@ -13,6 +13,7 @@ import com.mapbox.bindgen.Value
13
13
  import com.mapbox.maps.extension.style.expressions.generated.Expression
14
14
  import com.rnmapbox.rnmbx.events.constants.EventKeys
15
15
  import com.rnmapbox.rnmbx.events.constants.eventMapOf
16
+ import com.rnmapbox.rnmbx.shape_animators.ShapeAnimatorManager
16
17
  import com.rnmapbox.rnmbx.utils.ExpressionParser
17
18
  import com.rnmapbox.rnmbx.utils.Logger
18
19
  import com.rnmapbox.rnmbx.utils.ViewTagResolver
@@ -22,7 +23,7 @@ import java.util.ArrayList
22
23
  import java.util.HashMap
23
24
 
24
25
 
25
- class RNMBXShapeSourceManager(private val mContext: ReactApplicationContext, val viewTagResolver: ViewTagResolver) :
26
+ class RNMBXShapeSourceManager(private val mContext: ReactApplicationContext, val viewTagResolver: ViewTagResolver, val shapeAnimatorManager: ShapeAnimatorManager) :
26
27
  AbstractEventEmitter<RNMBXShapeSource>(
27
28
  mContext
28
29
  ), RNMBXShapeSourceManagerInterface<RNMBXShapeSource> {
@@ -0,0 +1,55 @@
1
+ package com.rnmapbox.rnmbx.shape_animators
2
+
3
+ import com.facebook.react.bridge.ReadableArray
4
+ import com.rnmapbox.rnmbx.NativeRNMBXMovePointShapeAnimatorModuleSpec
5
+ import com.rnmapbox.rnmbx.components.annotation.RNMBXPointAnnotation
6
+
7
+ import com.facebook.react.bridge.Promise
8
+ import com.facebook.react.bridge.ReactApplicationContext
9
+ import com.facebook.react.bridge.ReactMethod
10
+ import com.facebook.react.module.annotations.ReactModule
11
+ import com.google.gson.JsonObject
12
+ import com.mapbox.geojson.GeoJson
13
+ import com.mapbox.geojson.Point
14
+ import com.rnmapbox.rnmbx.NativeRNMBXPointAnnotationModuleSpec
15
+ import com.rnmapbox.rnmbx.utils.Logger
16
+ import com.rnmapbox.rnmbx.utils.ViewTagResolver
17
+ import org.json.JSONObject
18
+ import java.util.Date
19
+ import java.util.Timer
20
+ import java.util.TimerTask
21
+ import kotlin.time.Duration
22
+ import kotlin.time.Duration.Companion.milliseconds
23
+ import kotlin.time.DurationUnit
24
+
25
+
26
+ /// Simple dummy animator that moves the point lng, lat by 0.01, 0.01 each second.
27
+ class MovePointShapeAnimator(tag: Tag, val lng: Double, val lat: Double) : ShapeAnimatorCommon(tag) {
28
+ override fun getAnimatedShape(timeSinceStart: Duration): Pair<GeoJson, Boolean> {
29
+ return Pair(Point.fromLngLat(lng + timeSinceStart.toDouble(DurationUnit.SECONDS) * 0.01, lat + timeSinceStart.toDouble(DurationUnit.SECONDS) * 0.01), true);
30
+ }
31
+ }
32
+
33
+
34
+ @ReactModule(name = RNMBXMovePointShapeAnimatorModule.NAME)
35
+ class RNMBXMovePointShapeAnimatorModule(reactContext: ReactApplicationContext?, val shapeAnimatorManager: ShapeAnimatorManager) :
36
+ NativeRNMBXMovePointShapeAnimatorModuleSpec(reactContext) {
37
+
38
+ companion object {
39
+ const val LOG_TAG = "RNMBXMovePointShapeAnimatorModule"
40
+ const val NAME = "RNMBXMovePointShapeAnimatorModule"
41
+ }
42
+
43
+ @ReactMethod
44
+ override fun start(tag: Double, promise: Promise?) {
45
+ shapeAnimatorManager?.get(tag.toLong())?.let {
46
+ it.start()
47
+ }
48
+ }
49
+
50
+ @ReactMethod
51
+ override fun create(tag: Double, from: ReadableArray, promise: Promise) {
52
+ shapeAnimatorManager.add(MovePointShapeAnimator(tag.toLong(), from.getDouble(0), from.getDouble(1)))
53
+ promise.resolve(tag.toInt())
54
+ }
55
+ }
@@ -0,0 +1,110 @@
1
+ package com.rnmapbox.rnmbx.shape_animators
2
+
3
+ import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
4
+ import com.mapbox.geojson.GeoJson
5
+ import com.rnmapbox.rnmbx.utils.Logger
6
+ import org.json.JSONObject
7
+ import java.util.Date
8
+ import java.util.Timer
9
+ import java.util.TimerTask
10
+ import kotlin.time.Duration
11
+ import kotlin.time.Duration.Companion.milliseconds
12
+
13
+ typealias Tag = Long
14
+
15
+ interface ShapeAnimationConsumer {
16
+ fun shapeUpdated(geoJson: GeoJson)
17
+ }
18
+ abstract class ShapeAnimator(val tag: Tag) {
19
+
20
+ abstract fun getShape(): GeoJson;
21
+ abstract fun start()
22
+
23
+ abstract fun subscribe(consumer: ShapeAnimationConsumer)
24
+ abstract fun unsubscribe(consumer: ShapeAnimationConsumer)
25
+ }
26
+
27
+ abstract class ShapeAnimatorCommon(tag: Tag): ShapeAnimator(tag) {
28
+ var timer: Timer? = null
29
+ var progress: Duration? = null
30
+
31
+ // region subscribers
32
+ var subscribers = mutableListOf<ShapeAnimationConsumer>()
33
+
34
+ override fun subscribe(consumer: ShapeAnimationConsumer) {
35
+ subscribers.add(consumer)
36
+ }
37
+
38
+ override fun unsubscribe(consumer: ShapeAnimationConsumer) {
39
+ subscribers.remove(consumer)
40
+ }
41
+ // endregion
42
+
43
+ override fun start() {
44
+ timer?.let { it.cancel() }
45
+ timer = null
46
+
47
+ val fps = 30.0
48
+ val period = (1000.0 / fps).toLong()
49
+ val start = Date()
50
+ val timer = Timer()
51
+ this.timer = timer
52
+ val animator = this
53
+
54
+ timer.schedule(object : TimerTask() {
55
+ override fun run() {
56
+
57
+ val now = Date()
58
+ val diff = now.time - start.time
59
+ val progress = diff.milliseconds
60
+ animator.progress = progress
61
+
62
+ val (shape,doContinue) = getAnimatedShape(progress)
63
+ if (!doContinue) {
64
+ timer.cancel()
65
+ }
66
+ runOnUiThread {
67
+ subscribers.forEach { it.shapeUpdated(shape) }
68
+ }
69
+ }
70
+ },0, period)
71
+ }
72
+
73
+ override fun getShape(): GeoJson {
74
+ return getAnimatedShape(progress ?: 0.0.milliseconds).first
75
+ }
76
+ abstract fun getAnimatedShape(timeSinceStart: Duration): Pair<GeoJson,Boolean>
77
+
78
+ }
79
+ class ShapeAnimatorManager {
80
+ private val animators = hashMapOf<Tag, ShapeAnimator>();
81
+ fun add(animator: ShapeAnimator) {
82
+ animators.put(animator.tag, animator)
83
+ }
84
+
85
+ fun isShapeAnimatorTag(shape: String): Boolean {
86
+ return shape.startsWith("{\"__nativeTag\":")
87
+ }
88
+
89
+ fun get(tag: String): ShapeAnimator? {
90
+ if (isShapeAnimatorTag(tag)) {
91
+ val obj = JSONObject(tag)
92
+ val tag = obj.getLong("__nativeTag")
93
+ return get(tag);
94
+ }
95
+ else {
96
+ return null
97
+ }
98
+ }
99
+ fun get(tag: Tag): ShapeAnimator? {
100
+ val result = animators[tag]
101
+ if (result == null) {
102
+ Logger.e(LOG_TAG, "Shape animator for tag: $tag was not found")
103
+ }
104
+ return result
105
+ }
106
+
107
+ companion object {
108
+ const val LOG_TAG = "RNMBXShapeAnimators"
109
+ }
110
+ }
@@ -17,13 +17,12 @@ import com.facebook.react.bridge.Promise;
17
17
  import com.facebook.react.bridge.ReactApplicationContext;
18
18
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
19
  import com.facebook.react.bridge.ReactMethod;
20
- import com.facebook.react.bridge.ReactModuleWithSpec;
21
20
  import com.facebook.react.bridge.ReadableArray;
22
21
  import com.facebook.react.turbomodule.core.interfaces.TurboModule;
23
22
  import javax.annotation.Nonnull;
24
23
  import javax.annotation.Nullable;
25
24
 
26
- public abstract class NativeMapViewModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
25
+ public abstract class NativeMapViewModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
27
26
  public static final String NAME = "RNMBXMapViewModule";
28
27
 
29
28
  public NativeMapViewModuleSpec(ReactApplicationContext reactContext) {
@@ -17,12 +17,11 @@ import com.facebook.react.bridge.Promise;
17
17
  import com.facebook.react.bridge.ReactApplicationContext;
18
18
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
19
  import com.facebook.react.bridge.ReactMethod;
20
- import com.facebook.react.bridge.ReactModuleWithSpec;
21
20
  import com.facebook.react.turbomodule.core.interfaces.TurboModule;
22
21
  import javax.annotation.Nonnull;
23
22
  import javax.annotation.Nullable;
24
23
 
25
- public abstract class NativeRNMBXImageModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
24
+ public abstract class NativeRNMBXImageModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
26
25
  public static final String NAME = "RNMBXImageModule";
27
26
 
28
27
  public NativeRNMBXImageModuleSpec(ReactApplicationContext reactContext) {
@@ -0,0 +1,43 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateModuleJavaSpec.js
9
+ *
10
+ * @nolint
11
+ */
12
+
13
+ package com.rnmapbox.rnmbx;
14
+
15
+ import com.facebook.proguard.annotations.DoNotStrip;
16
+ import com.facebook.react.bridge.Promise;
17
+ import com.facebook.react.bridge.ReactApplicationContext;
18
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
+ import com.facebook.react.bridge.ReactMethod;
20
+ import com.facebook.react.bridge.ReadableArray;
21
+ import com.facebook.react.turbomodule.core.interfaces.TurboModule;
22
+ import javax.annotation.Nonnull;
23
+
24
+ public abstract class NativeRNMBXMovePointShapeAnimatorModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
25
+ public static final String NAME = "RNMBXMovePointShapeAnimatorModule";
26
+
27
+ public NativeRNMBXMovePointShapeAnimatorModuleSpec(ReactApplicationContext reactContext) {
28
+ super(reactContext);
29
+ }
30
+
31
+ @Override
32
+ public @Nonnull String getName() {
33
+ return NAME;
34
+ }
35
+
36
+ @ReactMethod
37
+ @DoNotStrip
38
+ public abstract void create(double tag, ReadableArray from, Promise promise);
39
+
40
+ @ReactMethod
41
+ @DoNotStrip
42
+ public abstract void start(double tag, Promise promise);
43
+ }
@@ -17,12 +17,11 @@ import com.facebook.react.bridge.Promise;
17
17
  import com.facebook.react.bridge.ReactApplicationContext;
18
18
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
19
  import com.facebook.react.bridge.ReactMethod;
20
- import com.facebook.react.bridge.ReactModuleWithSpec;
21
20
  import com.facebook.react.turbomodule.core.interfaces.TurboModule;
22
21
  import javax.annotation.Nonnull;
23
22
  import javax.annotation.Nullable;
24
23
 
25
- public abstract class NativeRNMBXPointAnnotationModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
24
+ public abstract class NativeRNMBXPointAnnotationModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
26
25
  public static final String NAME = "RNMBXPointAnnotationModule";
27
26
 
28
27
  public NativeRNMBXPointAnnotationModuleSpec(ReactApplicationContext reactContext) {
@@ -17,12 +17,11 @@ import com.facebook.react.bridge.Promise;
17
17
  import com.facebook.react.bridge.ReactApplicationContext;
18
18
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
19
  import com.facebook.react.bridge.ReactMethod;
20
- import com.facebook.react.bridge.ReactModuleWithSpec;
21
20
  import com.facebook.react.turbomodule.core.interfaces.TurboModule;
22
21
  import javax.annotation.Nonnull;
23
22
  import javax.annotation.Nullable;
24
23
 
25
- public abstract class NativeRNMBXShapeSourceModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
24
+ public abstract class NativeRNMBXShapeSourceModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
26
25
  public static final String NAME = "RNMBXShapeSourceModule";
27
26
 
28
27
  public NativeRNMBXShapeSourceModuleSpec(ReactApplicationContext reactContext) {
@@ -17,13 +17,12 @@ import com.facebook.react.bridge.Promise;
17
17
  import com.facebook.react.bridge.ReactApplicationContext;
18
18
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
19
  import com.facebook.react.bridge.ReactMethod;
20
- import com.facebook.react.bridge.ReactModuleWithSpec;
21
20
  import com.facebook.react.bridge.ReadableMap;
22
21
  import com.facebook.react.turbomodule.core.interfaces.TurboModule;
23
22
  import javax.annotation.Nonnull;
24
23
  import javax.annotation.Nullable;
25
24
 
26
- public abstract class NativeRNMBXViewportModuleSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule {
25
+ public abstract class NativeRNMBXViewportModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
27
26
  public static final String NAME = "RNMBXViewportModule";
28
27
 
29
28
  public NativeRNMBXViewportModuleSpec(ReactApplicationContext reactContext) {
@@ -275,6 +275,7 @@ open class RNMBXMapView: UIView {
275
275
  case pitchEnabled
276
276
  case onMapChange
277
277
  case styleURL
278
+ case gestureSettings
278
279
 
279
280
  func apply(_ map: RNMBXMapView) -> Void {
280
281
  switch self {
@@ -304,6 +305,8 @@ open class RNMBXMapView: UIView {
304
305
  map.applyStyleURL()
305
306
  case .pitchEnabled:
306
307
  map.applyPitchEnabled()
308
+ case .gestureSettings:
309
+ map.applyGestureSettings()
307
310
  }
308
311
  }
309
312
  }
@@ -361,9 +364,27 @@ open class RNMBXMapView: UIView {
361
364
  }
362
365
  }
363
366
 
364
- @objc public func setReactGestureSettings(_ value: NSDictionary?) {
365
- if let value = value, let gestures = self.mapView.gestures {
366
- var options = gestures.options
367
+ struct GestureSettings {
368
+ var doubleTapToZoomInEnabled: Bool? = nil;
369
+ var doubleTouchToZoomOutEnabled: Bool? = nil;
370
+ var pinchPanEnabled: Bool? = nil;
371
+ var pinchZoomEnabled: Bool? = nil;
372
+ var pitchEnabled: Bool? = nil;
373
+ var quickZoomEnabled: Bool? = nil;
374
+ var rotateEnabled: Bool? = nil;
375
+ var panEnabled: Bool? = nil;
376
+ var panDecelerationFactor: CGFloat? = nil;
377
+ #if RNMBX_11
378
+ var simultaneousRotateAndPinchZoomEnabled: Bool? = nil;
379
+ #endif
380
+ }
381
+
382
+ var gestureSettings = GestureSettings()
383
+
384
+ @objc
385
+ public func setReactGestureSettings(_ value: NSDictionary?) {
386
+ if let value = value {
387
+ var options = gestureSettings
367
388
  if let doubleTapToZoomInEnabled = value["doubleTapToZoomInEnabled"] as? NSNumber {
368
389
  options.doubleTapToZoomInEnabled = doubleTapToZoomInEnabled.boolValue
369
390
  }
@@ -404,6 +425,56 @@ open class RNMBXMapView: UIView {
404
425
  if let simultaneousRotateAndPinchZoomEnabled = value["simultaneousRotateAndPinchZoomEnabled"] as? NSNumber {
405
426
  options.simultaneousRotateAndPinchZoomEnabled = simultaneousRotateAndPinchZoomEnabled.boolValue
406
427
  }
428
+ #endif
429
+ /* android only
430
+ if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
431
+ options.zoomAnimationAmount = zoomAnimationAmount.CGFloat
432
+ }*/
433
+ gestureSettings = options
434
+
435
+ changed(.gestureSettings)
436
+ }
437
+ }
438
+
439
+ func applyGestureSettings() {
440
+ if let gestures = self.mapView?.gestures {
441
+ var options = gestures.options
442
+ let settings = gestureSettings
443
+ if let doubleTapToZoomInEnabled = settings.doubleTapToZoomInEnabled as? Bool {
444
+ options.doubleTapToZoomInEnabled = doubleTapToZoomInEnabled
445
+ }
446
+ if let doubleTouchToZoomOutEnabled = settings.doubleTouchToZoomOutEnabled as? Bool {
447
+ options.doubleTouchToZoomOutEnabled = doubleTouchToZoomOutEnabled
448
+ }
449
+ if let pinchPanEnabled = settings.pinchPanEnabled as? Bool {
450
+ options.pinchPanEnabled = pinchPanEnabled
451
+ }
452
+ if let pinchZoomEnabled = settings.pinchZoomEnabled as? Bool {
453
+ options.pinchZoomEnabled = pinchZoomEnabled
454
+ }
455
+ if let pitchEnabled = settings.pitchEnabled as? Bool {
456
+ options.pitchEnabled = pitchEnabled
457
+ }
458
+ if let quickZoomEnabled = settings.quickZoomEnabled as? Bool {
459
+ options.quickZoomEnabled = quickZoomEnabled
460
+ }
461
+ if let rotateEnabled = settings.rotateEnabled as? Bool {
462
+ options.rotateEnabled = rotateEnabled
463
+ }
464
+ /* android only
465
+ if let rotateDecelerationEnabled = value["rotateDecelerationEnabled"] as? NSNumber {
466
+ options.rotateDecelerationEnabled = rotateDecelerationEnabled.boolValue
467
+ }*/
468
+ if let panEnabled = settings.panEnabled as? Bool {
469
+ options.panEnabled = panEnabled
470
+ }
471
+ if let panDecelerationFactor = settings.panDecelerationFactor as? CGFloat {
472
+ options.panDecelerationFactor = panDecelerationFactor
473
+ }
474
+ #if RNMBX_11
475
+ if let simultaneousRotateAndPinchZoomEnabled = settings.simultaneousRotateAndPinchZoomEnabled as? Bool {
476
+ options.simultaneousRotateAndPinchZoomEnabled = simultaneousRotateAndPinchZoomEnabled
477
+ }
407
478
  #endif
408
479
  /* android only
409
480
  if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
@@ -109,6 +109,7 @@ using namespace facebook::react;
109
109
  layoutMetrics.borderWidth,
110
110
  layoutMetrics.displayType,
111
111
  layoutMetrics.layoutDirection,
112
+ layoutMetrics.wasLeftAndRightSwapped,
112
113
  layoutMetrics.pointScaleFactor,
113
114
  layoutMetrics.overflowInset
114
115
  };