@rnmapbox/maps 10.1.0-beta.14 → 10.1.0-beta.18

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 (310) hide show
  1. package/android/build.gradle +2 -1
  2. package/android/src/main/AndroidManifest.xml +1 -1
  3. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +25 -6
  4. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXCalloutManager.kt +33 -0
  5. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerViewManager.kt +24 -10
  6. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotation.kt +5 -0
  7. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationManager.kt +83 -0
  8. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationModule.kt +33 -0
  9. package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImage.kt +5 -0
  10. package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImageManager.kt +25 -22
  11. package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImageModule.kt +33 -0
  12. package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt +9 -8
  13. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocationManager.kt +11 -4
  14. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +140 -63
  15. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt +71 -55
  16. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/atmosphere/RNMBXAtmosphereManager.kt +0 -5
  17. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/light/RNMBXLightManager.kt +27 -0
  18. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSourceManager.kt +16 -8
  19. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterDemSourceManager.kt +15 -1
  20. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXRasterSourceManager.kt +11 -3
  21. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSource.kt +5 -2
  22. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt +45 -32
  23. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXSource.kt +1 -1
  24. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSourceManager.kt +17 -17
  25. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSourceManager.kt +13 -32
  26. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/terrain/RNMBXTerrainManager.kt +8 -11
  27. package/android/src/main/java/com/rnmapbox/rnmbx/utils/PropertyChanges.kt +68 -0
  28. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCalloutManagerDelegate.java +25 -0
  29. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCalloutManagerInterface.java +16 -0
  30. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageManagerDelegate.java +47 -0
  31. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageManagerInterface.java +22 -0
  32. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImagesManagerDelegate.java +38 -0
  33. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImagesManagerInterface.java +19 -0
  34. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLightManagerDelegate.java +32 -0
  35. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLightManagerInterface.java +17 -0
  36. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMapViewManagerDelegate.java +3 -0
  37. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMapViewManagerInterface.java +1 -0
  38. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewManagerDelegate.java +41 -0
  39. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewManagerInterface.java +20 -0
  40. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerDelegate.java +35 -0
  41. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerInterface.java +18 -0
  42. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXPointAnnotationManagerDelegate.java +41 -0
  43. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXPointAnnotationManagerInterface.java +20 -0
  44. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerDelegate.java +0 -6
  45. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerInterface.java +0 -2
  46. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXTerrainManagerDelegate.java +35 -0
  47. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXTerrainManagerInterface.java +18 -0
  48. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXImageModuleSpec.java +40 -0
  49. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXPointAnnotationModuleSpec.java +40 -0
  50. package/ios/RNMBX/RNMBXAtmosphereComponentView.mm +3 -1
  51. package/ios/RNMBX/RNMBXBackgroundLayerComponentView.mm +1 -1
  52. package/ios/RNMBX/RNMBXCallout.swift +1 -1
  53. package/ios/RNMBX/RNMBXCalloutComponentView.h +15 -0
  54. package/ios/RNMBX/RNMBXCalloutComponentView.mm +57 -0
  55. package/ios/RNMBX/{RNMBXCalloutManager.m → RNMBXCalloutViewManager.m} +1 -1
  56. package/ios/RNMBX/{RNMBXCalloutManager.swift → RNMBXCalloutViewManager.swift} +2 -2
  57. package/ios/RNMBX/RNMBXCamera.swift +4 -4
  58. package/ios/RNMBX/RNMBXCameraComponentView.mm +1 -1
  59. package/ios/RNMBX/RNMBXCircleLayerComponentView.mm +1 -1
  60. package/ios/RNMBX/RNMBXFabricHelpers.h +1 -8
  61. package/ios/RNMBX/RNMBXFillExtrusionLayerComponentView.mm +1 -1
  62. package/ios/RNMBX/RNMBXFillLayerComponentView.mm +1 -1
  63. package/ios/RNMBX/RNMBXHeatmapLayerComponentView.mm +1 -1
  64. package/ios/RNMBX/RNMBXImage.swift +30 -22
  65. package/ios/RNMBX/RNMBXImageComponentView.h +15 -0
  66. package/ios/RNMBX/RNMBXImageComponentView.mm +100 -0
  67. package/ios/RNMBX/RNMBXImageManager.swift +0 -1
  68. package/ios/RNMBX/RNMBXImageModule.h +17 -0
  69. package/ios/RNMBX/RNMBXImageModule.mm +67 -0
  70. package/ios/RNMBX/RNMBXImageSourceComponentView.mm +1 -1
  71. package/ios/RNMBX/RNMBXImages.swift +9 -9
  72. package/ios/RNMBX/RNMBXImagesComponentView.h +15 -0
  73. package/ios/RNMBX/RNMBXImagesComponentView.mm +91 -0
  74. package/ios/RNMBX/{RNMBXImagesManager.m → RNMBXImagesViewManager.m} +1 -2
  75. package/ios/RNMBX/{RNMBXImagesManager.swift → RNMBXImagesViewManager.swift} +2 -2
  76. package/ios/RNMBX/RNMBXLight.swift +7 -7
  77. package/ios/RNMBX/RNMBXLightComponentView.h +15 -0
  78. package/ios/RNMBX/RNMBXLightComponentView.mm +68 -0
  79. package/ios/RNMBX/{RNMBXLightManager.m → RNMBXLightViewManager.m} +1 -1
  80. package/ios/RNMBX/{RNMBXLightManager.swift → RNMBXLightViewManager.swift} +2 -2
  81. package/ios/RNMBX/RNMBXLineLayerComponentView.mm +1 -1
  82. package/ios/RNMBX/RNMBXMapView.swift +326 -136
  83. package/ios/RNMBX/RNMBXMapViewComponentView.mm +1 -2
  84. package/ios/RNMBX/RNMBXMarkerView.swift +24 -17
  85. package/ios/RNMBX/RNMBXMarkerViewComponentView.h +15 -0
  86. package/ios/RNMBX/RNMBXMarkerViewComponentView.mm +130 -0
  87. package/ios/RNMBX/RNMBXNativeUserLocation.swift +12 -10
  88. package/ios/RNMBX/RNMBXNativeUserLocationComponentView.h +15 -0
  89. package/ios/RNMBX/RNMBXNativeUserLocationComponentView.mm +72 -0
  90. package/ios/RNMBX/{RNMBXNativeUserLocationManager.m → RNMBXNativeUserLocationViewManager.m} +1 -1
  91. package/ios/RNMBX/{RNMBXNativeUserLocationManager.swift → RNMBXNativeUserLocationViewManager.swift} +2 -2
  92. package/ios/RNMBX/RNMBXPointAnnotation.swift +41 -30
  93. package/ios/RNMBX/RNMBXPointAnnotationComponentView.h +15 -0
  94. package/ios/RNMBX/RNMBXPointAnnotationComponentView.mm +147 -0
  95. package/ios/RNMBX/RNMBXPointAnnotationModule.h +17 -0
  96. package/ios/RNMBX/RNMBXPointAnnotationModule.mm +66 -0
  97. package/ios/RNMBX/{RNMBXPointAnnotationManager.m → RNMBXPointAnnotationViewManager.m} +1 -6
  98. package/ios/RNMBX/RNMBXPointAnnotationViewManager.swift +14 -0
  99. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.h +1 -3
  100. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.mm +1 -3
  101. package/ios/RNMBX/RNMBXRasterLayerComponentView.mm +1 -1
  102. package/ios/RNMBX/RNMBXRasterSourceComponentView.h +1 -3
  103. package/ios/RNMBX/RNMBXRasterSourceComponentView.mm +1 -3
  104. package/ios/RNMBX/RNMBXShapeSourceComponentView.h +1 -3
  105. package/ios/RNMBX/RNMBXShapeSourceComponentView.mm +5 -7
  106. package/ios/RNMBX/RNMBXShapeSourceModule.mm +1 -9
  107. package/ios/RNMBX/RNMBXSingletonLayer.swift +1 -1
  108. package/ios/RNMBX/RNMBXSkyLayerComponentView.mm +1 -1
  109. package/ios/RNMBX/RNMBXSymbolLayerComponentView.mm +1 -1
  110. package/ios/RNMBX/RNMBXTerrain.swift +2 -2
  111. package/ios/RNMBX/RNMBXTerrainComponentView.h +15 -0
  112. package/ios/RNMBX/RNMBXTerrainComponentView.mm +78 -0
  113. package/ios/RNMBX/{RNMBXTerrainManager.m → RNMBXTerrainViewManager.m} +1 -1
  114. package/ios/RNMBX/{RNMBXTerrainManager.swift → RNMBXTerrainViewManager.swift} +2 -2
  115. package/ios/RNMBX/RNMBXVectorSourceComponentView.h +1 -3
  116. package/ios/RNMBX/RNMBXVectorSourceComponentView.mm +1 -3
  117. package/ios/RNMBX/Uitls/PropertyChanges.swift +58 -0
  118. package/ios/RNMBX/rnmapbox_maps-Swift.pre.h +0 -2
  119. package/lib/commonjs/components/Callout.js +3 -4
  120. package/lib/commonjs/components/Callout.js.map +1 -1
  121. package/lib/commonjs/components/Image.js +20 -4
  122. package/lib/commonjs/components/Image.js.map +1 -1
  123. package/lib/commonjs/components/Images.js +6 -3
  124. package/lib/commonjs/components/Images.js.map +1 -1
  125. package/lib/commonjs/components/Light.js +5 -5
  126. package/lib/commonjs/components/Light.js.map +1 -1
  127. package/lib/commonjs/components/MapView.js +12 -49
  128. package/lib/commonjs/components/MapView.js.map +1 -1
  129. package/lib/commonjs/components/MarkerView.js +2 -1
  130. package/lib/commonjs/components/MarkerView.js.map +1 -1
  131. package/lib/commonjs/components/NativeBridgeComponent.js +6 -43
  132. package/lib/commonjs/components/NativeBridgeComponent.js.map +1 -1
  133. package/lib/commonjs/components/NativeUserLocation.js +3 -4
  134. package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
  135. package/lib/commonjs/components/PointAnnotation.js +29 -14
  136. package/lib/commonjs/components/PointAnnotation.js.map +1 -1
  137. package/lib/commonjs/components/ShapeSource.js +7 -18
  138. package/lib/commonjs/components/ShapeSource.js.map +1 -1
  139. package/lib/commonjs/components/Terrain.js +4 -5
  140. package/lib/commonjs/components/Terrain.js.map +1 -1
  141. package/lib/commonjs/components/VectorSource.js +2 -11
  142. package/lib/commonjs/components/VectorSource.js.map +1 -1
  143. package/lib/commonjs/specs/NativeRNMBXImageModule.js +10 -0
  144. package/lib/commonjs/specs/NativeRNMBXImageModule.js.map +1 -0
  145. package/lib/commonjs/specs/NativeRNMBXPointAnnotationModule.js +10 -0
  146. package/lib/commonjs/specs/NativeRNMBXPointAnnotationModule.js.map +1 -0
  147. package/lib/commonjs/specs/RNMBXCalloutNativeComponent.js +11 -0
  148. package/lib/commonjs/specs/RNMBXCalloutNativeComponent.js.map +1 -0
  149. package/lib/commonjs/specs/{RNMBXAndroidTextureMapViewNativeComponent.js → RNMBXImageNativeComponent.js} +2 -4
  150. package/lib/commonjs/specs/RNMBXImageNativeComponent.js.map +1 -0
  151. package/lib/commonjs/specs/RNMBXImagesNativeComponent.js +10 -0
  152. package/lib/commonjs/specs/RNMBXImagesNativeComponent.js.map +1 -0
  153. package/lib/commonjs/specs/RNMBXLightNativeComponent.js +10 -0
  154. package/lib/commonjs/specs/RNMBXLightNativeComponent.js.map +1 -0
  155. package/lib/commonjs/specs/RNMBXMapViewNativeComponent.js +1 -1
  156. package/lib/commonjs/specs/RNMBXMapViewNativeComponent.js.map +1 -1
  157. package/lib/commonjs/specs/RNMBXMarkerViewNativeComponent.js +10 -0
  158. package/lib/commonjs/specs/RNMBXMarkerViewNativeComponent.js.map +1 -0
  159. package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js +10 -0
  160. package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -0
  161. package/lib/commonjs/specs/RNMBXPointAnnotationNativeComponent.js +10 -0
  162. package/lib/commonjs/specs/RNMBXPointAnnotationNativeComponent.js.map +1 -0
  163. package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js.map +1 -1
  164. package/lib/commonjs/specs/RNMBXTerrainNativeComponent.js +10 -0
  165. package/lib/commonjs/specs/RNMBXTerrainNativeComponent.js.map +1 -0
  166. package/lib/commonjs/utils/index.js +6 -30
  167. package/lib/commonjs/utils/index.js.map +1 -1
  168. package/lib/module/components/Callout.js +3 -4
  169. package/lib/module/components/Callout.js.map +1 -1
  170. package/lib/module/components/Image.js +19 -4
  171. package/lib/module/components/Image.js.map +1 -1
  172. package/lib/module/components/Images.js +7 -4
  173. package/lib/module/components/Images.js.map +1 -1
  174. package/lib/module/components/Light.js +4 -4
  175. package/lib/module/components/Light.js.map +1 -1
  176. package/lib/module/components/MapView.js +12 -49
  177. package/lib/module/components/MapView.js.map +1 -1
  178. package/lib/module/components/MarkerView.js +3 -2
  179. package/lib/module/components/MarkerView.js.map +1 -1
  180. package/lib/module/components/NativeBridgeComponent.js +7 -44
  181. package/lib/module/components/NativeBridgeComponent.js.map +1 -1
  182. package/lib/module/components/NativeUserLocation.js +2 -4
  183. package/lib/module/components/NativeUserLocation.js.map +1 -1
  184. package/lib/module/components/PointAnnotation.js +30 -15
  185. package/lib/module/components/PointAnnotation.js.map +1 -1
  186. package/lib/module/components/ShapeSource.js +7 -18
  187. package/lib/module/components/ShapeSource.js.map +1 -1
  188. package/lib/module/components/Terrain.js +2 -4
  189. package/lib/module/components/Terrain.js.map +1 -1
  190. package/lib/module/components/VectorSource.js +2 -11
  191. package/lib/module/components/VectorSource.js.map +1 -1
  192. package/lib/module/specs/NativeRNMBXImageModule.js +5 -0
  193. package/lib/module/specs/NativeRNMBXImageModule.js.map +1 -0
  194. package/lib/module/specs/NativeRNMBXPointAnnotationModule.js +5 -0
  195. package/lib/module/specs/NativeRNMBXPointAnnotationModule.js.map +1 -0
  196. package/lib/module/specs/RNMBXCalloutNativeComponent.js +6 -0
  197. package/lib/module/specs/RNMBXCalloutNativeComponent.js.map +1 -0
  198. package/lib/module/specs/RNMBXImageNativeComponent.js +3 -0
  199. package/lib/module/specs/RNMBXImageNativeComponent.js.map +1 -0
  200. package/lib/module/specs/RNMBXImagesNativeComponent.js +3 -0
  201. package/lib/module/specs/RNMBXImagesNativeComponent.js.map +1 -0
  202. package/lib/module/specs/RNMBXLightNativeComponent.js +3 -0
  203. package/lib/module/specs/RNMBXLightNativeComponent.js.map +1 -0
  204. package/lib/module/specs/RNMBXMapViewNativeComponent.js +2 -0
  205. package/lib/module/specs/RNMBXMapViewNativeComponent.js.map +1 -1
  206. package/lib/module/specs/RNMBXMarkerViewNativeComponent.js +3 -0
  207. package/lib/module/specs/RNMBXMarkerViewNativeComponent.js.map +1 -0
  208. package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js +3 -0
  209. package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -0
  210. package/lib/module/specs/RNMBXPointAnnotationNativeComponent.js +3 -0
  211. package/lib/module/specs/RNMBXPointAnnotationNativeComponent.js.map +1 -0
  212. package/lib/module/specs/RNMBXShapeSourceNativeComponent.js.map +1 -1
  213. package/lib/module/specs/RNMBXTerrainNativeComponent.js +3 -0
  214. package/lib/module/specs/RNMBXTerrainNativeComponent.js.map +1 -0
  215. package/lib/module/utils/index.js +6 -29
  216. package/lib/module/utils/index.js.map +1 -1
  217. package/lib/typescript/src/components/Callout.d.ts +0 -1
  218. package/lib/typescript/src/components/Callout.d.ts.map +1 -1
  219. package/lib/typescript/src/components/Image.d.ts +0 -1
  220. package/lib/typescript/src/components/Image.d.ts.map +1 -1
  221. package/lib/typescript/src/components/Images.d.ts +0 -1
  222. package/lib/typescript/src/components/Images.d.ts.map +1 -1
  223. package/lib/typescript/src/components/Light.d.ts +0 -1
  224. package/lib/typescript/src/components/Light.d.ts.map +1 -1
  225. package/lib/typescript/src/components/MapView.d.ts +21 -28
  226. package/lib/typescript/src/components/MapView.d.ts.map +1 -1
  227. package/lib/typescript/src/components/MarkerView.d.ts.map +1 -1
  228. package/lib/typescript/src/components/NativeBridgeComponent.d.ts +5 -9
  229. package/lib/typescript/src/components/NativeBridgeComponent.d.ts.map +1 -1
  230. package/lib/typescript/src/components/NativeUserLocation.d.ts.map +1 -1
  231. package/lib/typescript/src/components/PointAnnotation.d.ts +5 -11
  232. package/lib/typescript/src/components/PointAnnotation.d.ts.map +1 -1
  233. package/lib/typescript/src/components/ShapeSource.d.ts +40 -2
  234. package/lib/typescript/src/components/ShapeSource.d.ts.map +1 -1
  235. package/lib/typescript/src/components/Terrain.d.ts +0 -1
  236. package/lib/typescript/src/components/Terrain.d.ts.map +1 -1
  237. package/lib/typescript/src/components/VectorSource.d.ts +1 -2
  238. package/lib/typescript/src/components/VectorSource.d.ts.map +1 -1
  239. package/lib/typescript/src/specs/NativeRNMBXImageModule.d.ts +9 -0
  240. package/lib/typescript/src/specs/NativeRNMBXImageModule.d.ts.map +1 -0
  241. package/lib/typescript/src/specs/NativeRNMBXPointAnnotationModule.d.ts +9 -0
  242. package/lib/typescript/src/specs/NativeRNMBXPointAnnotationModule.d.ts.map +1 -0
  243. package/lib/typescript/src/specs/RNMBXCalloutNativeComponent.d.ts +6 -0
  244. package/lib/typescript/src/specs/RNMBXCalloutNativeComponent.d.ts.map +1 -0
  245. package/lib/typescript/src/specs/RNMBXImageNativeComponent.d.ts +14 -0
  246. package/lib/typescript/src/specs/RNMBXImageNativeComponent.d.ts.map +1 -0
  247. package/lib/typescript/src/specs/RNMBXImagesNativeComponent.d.ts +18 -0
  248. package/lib/typescript/src/specs/RNMBXImagesNativeComponent.d.ts.map +1 -0
  249. package/lib/typescript/src/specs/RNMBXLightNativeComponent.d.ts +8 -0
  250. package/lib/typescript/src/specs/RNMBXLightNativeComponent.d.ts.map +1 -0
  251. package/lib/typescript/src/specs/RNMBXMapViewNativeComponent.d.ts +52 -3
  252. package/lib/typescript/src/specs/RNMBXMapViewNativeComponent.d.ts.map +1 -1
  253. package/lib/typescript/src/specs/RNMBXMarkerViewNativeComponent.d.ts +16 -0
  254. package/lib/typescript/src/specs/RNMBXMarkerViewNativeComponent.d.ts.map +1 -0
  255. package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts +9 -0
  256. package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts.map +1 -0
  257. package/lib/typescript/src/specs/RNMBXPointAnnotationNativeComponent.d.ts +37 -0
  258. package/lib/typescript/src/specs/RNMBXPointAnnotationNativeComponent.d.ts.map +1 -0
  259. package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts +0 -2
  260. package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts.map +1 -1
  261. package/lib/typescript/src/specs/RNMBXTerrainNativeComponent.d.ts +9 -0
  262. package/lib/typescript/src/specs/RNMBXTerrainNativeComponent.d.ts.map +1 -0
  263. package/lib/typescript/src/specs/codegenUtils.d.ts +0 -4
  264. package/lib/typescript/src/specs/codegenUtils.d.ts.map +1 -1
  265. package/lib/typescript/src/utils/index.d.ts +2 -3
  266. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  267. package/package.json +2 -1
  268. package/setup-jest.js +8 -0
  269. package/src/components/Callout.tsx +4 -11
  270. package/src/components/Image.tsx +17 -13
  271. package/src/components/Images.tsx +9 -19
  272. package/src/components/Light.tsx +4 -12
  273. package/src/components/MapView.tsx +36 -74
  274. package/src/components/MarkerView.tsx +3 -15
  275. package/src/components/NativeBridgeComponent.tsx +9 -57
  276. package/src/components/NativeUserLocation.tsx +2 -8
  277. package/src/components/PointAnnotation.tsx +32 -24
  278. package/src/components/ShapeSource.tsx +21 -44
  279. package/src/components/Terrain.tsx +3 -11
  280. package/src/components/VectorSource.tsx +2 -19
  281. package/src/specs/NativeRNMBXImageModule.ts +10 -0
  282. package/src/specs/NativeRNMBXPointAnnotationModule.ts +12 -0
  283. package/src/specs/RNMBXCalloutNativeComponent.ts +9 -0
  284. package/src/specs/RNMBXImageNativeComponent.ts +18 -0
  285. package/src/specs/RNMBXImagesNativeComponent.ts +18 -0
  286. package/src/specs/RNMBXLightNativeComponent.ts +12 -0
  287. package/src/specs/RNMBXMapViewNativeComponent.ts +69 -5
  288. package/src/specs/RNMBXMarkerViewNativeComponent.ts +21 -0
  289. package/src/specs/RNMBXNativeUserLocationNativeComponent.ts +13 -0
  290. package/src/specs/RNMBXPointAnnotationNativeComponent.ts +40 -0
  291. package/src/specs/RNMBXShapeSourceNativeComponent.ts +0 -2
  292. package/src/specs/RNMBXTerrainNativeComponent.ts +13 -0
  293. package/src/specs/codegenUtils.ts +0 -5
  294. package/src/utils/index.ts +6 -43
  295. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXCalloutManager.java +0 -18
  296. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationManager.java +0 -84
  297. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXAndroidTextureMapViewManager.kt +0 -39
  298. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/light/RNMBXLightManager.java +0 -25
  299. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXAndroidTextureMapViewManagerDelegate.java +0 -95
  300. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXAndroidTextureMapViewManagerInterface.java +0 -38
  301. package/ios/RNMBX/RNMBXCircleLayerManager.m +0 -12
  302. package/ios/RNMBX/RNMBXCircleLayerManager.swift +0 -13
  303. package/ios/RNMBX/RNMBXMapFeatureView.h +0 -7
  304. package/ios/RNMBX/RNMBXPointAnnotationManager.swift +0 -34
  305. package/lib/commonjs/specs/RNMBXAndroidTextureMapViewNativeComponent.js.map +0 -1
  306. package/lib/module/specs/RNMBXAndroidTextureMapViewNativeComponent.js +0 -5
  307. package/lib/module/specs/RNMBXAndroidTextureMapViewNativeComponent.js.map +0 -1
  308. package/lib/typescript/src/specs/RNMBXAndroidTextureMapViewNativeComponent.d.ts +0 -46
  309. package/lib/typescript/src/specs/RNMBXAndroidTextureMapViewNativeComponent.d.ts.map +0 -1
  310. package/src/specs/RNMBXAndroidTextureMapViewNativeComponent.ts +0 -59
@@ -1,4 +1,4 @@
1
- def defaultMapboxMapsImpl = "mabpox"
1
+ def defaultMapboxMapsImpl = "mapbox"
2
2
  def defaultMapboxMapsVersion = "10.16.1"
3
3
 
4
4
  def safeExtGet(prop, fallback) {
@@ -43,6 +43,7 @@ if (safeExtGet("RNMapboxMapsImpl", defaultMapboxMapsImpl) == "mapbox") {
43
43
  }
44
44
 
45
45
  android {
46
+ namespace = "com.rnmapbox.rnmbx"
46
47
  if (safeExtGet("RNMapboxMapsImpl", defaultMapboxMapsImpl) == "maplibre") {
47
48
  msg = '@rnmapbox/maps: Maplibre implementation has been removed, set RNMapboxMapsImpl to mapbox- see https://github.com/rnmapbox/maps/wiki/Deprecated-RNMapboxImpl-Maplibre#android'
48
49
  logger.error(msg)
@@ -1,4 +1,4 @@
1
- <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.rnmapbox.rnmbx">
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
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"/>
@@ -10,13 +10,13 @@ import com.facebook.react.uimanager.ViewManager
10
10
  import com.rnmapbox.rnmbx.components.annotation.RNMBXCalloutManager
11
11
  import com.rnmapbox.rnmbx.components.annotation.RNMBXMarkerViewManager
12
12
  import com.rnmapbox.rnmbx.components.annotation.RNMBXPointAnnotationManager
13
+ import com.rnmapbox.rnmbx.components.annotation.RNMBXPointAnnotationModule
13
14
  import com.rnmapbox.rnmbx.components.camera.RNMBXCameraManager
14
15
  import com.rnmapbox.rnmbx.components.images.RNMBXImageManager
16
+ import com.rnmapbox.rnmbx.components.images.RNMBXImageModule
15
17
  import com.rnmapbox.rnmbx.components.images.RNMBXImagesManager
16
18
  import com.rnmapbox.rnmbx.components.location.RNMBXNativeUserLocationManager
17
19
  import com.rnmapbox.rnmbx.components.mapview.NativeMapViewModule
18
- import com.rnmapbox.rnmbx.components.mapview.RNMBXAndroidTextureMapViewManager
19
- import com.rnmapbox.rnmbx.components.mapview.RNMBXMapView
20
20
  import com.rnmapbox.rnmbx.components.mapview.RNMBXMapViewManager
21
21
  import com.rnmapbox.rnmbx.components.styles.RNMBXStyleImportManager
22
22
  import com.rnmapbox.rnmbx.components.styles.atmosphere.RNMBXAtmosphereManager
@@ -69,6 +69,8 @@ class RNMBXPackage : TurboReactPackage() {
69
69
  RNMBXLogging.REACT_CLASS -> return RNMBXLogging(reactApplicationContext)
70
70
  NativeMapViewModule.NAME -> return NativeMapViewModule(reactApplicationContext, getViewTagResolver(reactApplicationContext))
71
71
  RNMBXShapeSourceModule.NAME -> return RNMBXShapeSourceModule(reactApplicationContext, getViewTagResolver(reactApplicationContext))
72
+ RNMBXImageModule.NAME -> return RNMBXImageModule(reactApplicationContext, getViewTagResolver(reactApplicationContext))
73
+ RNMBXPointAnnotationModule.NAME -> return RNMBXPointAnnotationModule(reactApplicationContext, getViewTagResolver(reactApplicationContext))
72
74
  }
73
75
  return null
74
76
  }
@@ -83,26 +85,25 @@ class RNMBXPackage : TurboReactPackage() {
83
85
 
84
86
  // components
85
87
  managers.add(RNMBXCameraManager(reactApplicationContext))
86
- managers.add(RNMBXAndroidTextureMapViewManager(reactApplicationContext, getViewTagResolver(reactApplicationContext)))
87
88
  managers.add(RNMBXMapViewManager(reactApplicationContext, getViewTagResolver(reactApplicationContext)))
88
89
  managers.add(RNMBXStyleImportManager(reactApplicationContext))
89
90
 
90
91
  // annotations
91
92
  managers.add(RNMBXMarkerViewManager(reactApplicationContext))
92
- managers.add(RNMBXPointAnnotationManager(reactApplicationContext))
93
+ managers.add(RNMBXPointAnnotationManager(reactApplicationContext, getViewTagResolver(reactApplicationContext)))
93
94
  managers.add(RNMBXCalloutManager())
94
95
  managers.add(RNMBXNativeUserLocationManager())
95
96
 
96
97
  // sources
97
98
  managers.add(RNMBXVectorSourceManager(reactApplicationContext))
98
- managers.add(RNMBXShapeSourceManager(reactApplicationContext))
99
+ managers.add(RNMBXShapeSourceManager(reactApplicationContext, getViewTagResolver(reactApplicationContext)))
99
100
  managers.add(RNMBXRasterDemSourceManager(reactApplicationContext))
100
101
  managers.add(RNMBXRasterSourceManager(reactApplicationContext))
101
102
  managers.add(RNMBXImageSourceManager())
102
103
 
103
104
  // images
104
105
  managers.add(RNMBXImagesManager(reactApplicationContext))
105
- managers.add(RNMBXImageManager(reactApplicationContext))
106
+ managers.add(RNMBXImageManager(reactApplicationContext, getViewTagResolver(reactApplicationContext)))
106
107
 
107
108
  // layers
108
109
  managers.add(RNMBXFillLayerManager())
@@ -187,6 +188,24 @@ class RNMBXPackage : TurboReactPackage() {
187
188
  false, // isCxxModule
188
189
  isTurboModule // isTurboModule
189
190
  )
191
+ moduleInfos[RNMBXImageModule.NAME] = ReactModuleInfo(
192
+ RNMBXImageModule.NAME,
193
+ RNMBXImageModule.NAME,
194
+ false, // canOverrideExistingModule
195
+ false, // needsEagerInit
196
+ false, // hasConstants
197
+ false, // isCxxModule
198
+ isTurboModule // isTurboModule
199
+ )
200
+ moduleInfos[RNMBXPointAnnotationModule.NAME] = ReactModuleInfo(
201
+ RNMBXPointAnnotationModule.NAME,
202
+ RNMBXPointAnnotationModule.NAME,
203
+ false, // canOverrideExistingModule
204
+ false, // needsEagerInit
205
+ false, // hasConstants
206
+ false, // isCxxModule
207
+ isTurboModule // isTurboModule
208
+ )
190
209
  moduleInfos
191
210
  }
192
211
  }
@@ -0,0 +1,33 @@
1
+ package com.rnmapbox.rnmbx.components.annotation
2
+
3
+ import com.facebook.react.uimanager.ThemedReactContext
4
+ import com.facebook.react.uimanager.ViewGroupManager
5
+ import com.facebook.react.uimanager.ViewManagerDelegate
6
+ import com.facebook.react.viewmanagers.RNMBXCalloutManagerDelegate
7
+ import com.facebook.react.viewmanagers.RNMBXCalloutManagerInterface
8
+
9
+ class RNMBXCalloutManager : ViewGroupManager<RNMBXCallout>(),
10
+ RNMBXCalloutManagerInterface<RNMBXCallout> {
11
+
12
+ private val mDelegate: ViewManagerDelegate<RNMBXCallout>
13
+
14
+ init {
15
+ mDelegate = RNMBXCalloutManagerDelegate(this)
16
+ }
17
+
18
+ override fun getDelegate(): ViewManagerDelegate<RNMBXCallout> {
19
+ return mDelegate
20
+ }
21
+
22
+ override fun getName(): String {
23
+ return REACT_CLASS
24
+ }
25
+
26
+ override fun createViewInstance(reactContext: ThemedReactContext): RNMBXCallout {
27
+ return RNMBXCallout(reactContext)
28
+ }
29
+
30
+ companion object {
31
+ const val REACT_CLASS = "RNMBXCallout"
32
+ }
33
+ }
@@ -2,42 +2,56 @@ package com.rnmapbox.rnmbx.components.annotation
2
2
 
3
3
  import android.view.View
4
4
  import android.widget.FrameLayout
5
+ import com.facebook.react.bridge.Dynamic
5
6
  import com.rnmapbox.rnmbx.utils.GeoJSONUtils.toPointGeometry
6
7
  import com.facebook.react.bridge.ReactApplicationContext
7
8
  import com.rnmapbox.rnmbx.components.AbstractEventEmitter
8
9
  import com.facebook.react.uimanager.annotations.ReactProp
9
- import com.facebook.react.bridge.ReadableMap
10
10
  import com.facebook.react.common.MapBuilder
11
11
  import com.facebook.react.uimanager.ThemedReactContext
12
+ import com.facebook.react.uimanager.ViewManagerDelegate
13
+ import com.facebook.react.viewmanagers.RNMBXMarkerViewManagerDelegate
14
+ import com.facebook.react.viewmanagers.RNMBXMarkerViewManagerInterface
12
15
  import com.mapbox.maps.ScreenCoordinate
13
16
  import com.mapbox.maps.viewannotation.OnViewAnnotationUpdatedListener
14
17
  import com.mapbox.maps.viewannotation.ViewAnnotationManager
15
18
  import com.rnmapbox.rnmbx.components.mapview.RNMBXMapView
16
19
 
17
20
  class RNMBXMarkerViewManager(reactApplicationContext: ReactApplicationContext) :
18
- AbstractEventEmitter<RNMBXMarkerView?>(reactApplicationContext) {
21
+ AbstractEventEmitter<RNMBXMarkerView>(reactApplicationContext),
22
+ RNMBXMarkerViewManagerInterface<RNMBXMarkerView> {
23
+ private val mDelegate: ViewManagerDelegate<RNMBXMarkerView>
24
+
25
+ init {
26
+ mDelegate = RNMBXMarkerViewManagerDelegate(this)
27
+ }
28
+
29
+ override fun getDelegate(): ViewManagerDelegate<RNMBXMarkerView> {
30
+ return mDelegate
31
+ }
32
+
19
33
  override fun getName(): String {
20
34
  return REACT_CLASS
21
35
  }
22
36
 
23
37
  @ReactProp(name = "coordinate")
24
- fun setCoordinate(markerView: RNMBXMarkerView, geoJSONStr: String?) {
25
- markerView.setCoordinate(toPointGeometry(geoJSONStr))
38
+ override fun setCoordinate(markerView: RNMBXMarkerView, geoJSONStr: Dynamic) {
39
+ markerView.setCoordinate(toPointGeometry(geoJSONStr.asString()))
26
40
  }
27
41
 
28
42
  @ReactProp(name = "anchor")
29
- fun setAnchor(markerView: RNMBXMarkerView, map: ReadableMap) {
30
- markerView.setAnchor(map.getDouble("x").toFloat(), map.getDouble("y").toFloat())
43
+ override fun setAnchor(markerView: RNMBXMarkerView, map: Dynamic) {
44
+ markerView.setAnchor(map.asMap().getDouble("x").toFloat(), map.asMap().getDouble("y").toFloat())
31
45
  }
32
46
 
33
47
  @ReactProp(name = "allowOverlap")
34
- fun setAllowOverlap(markerView: RNMBXMarkerView, allowOverlap: Boolean) {
35
- markerView.setAllowOverlap(allowOverlap)
48
+ override fun setAllowOverlap(markerView: RNMBXMarkerView, allowOverlap: Dynamic) {
49
+ markerView.setAllowOverlap(allowOverlap.asBoolean())
36
50
  }
37
51
 
38
52
  @ReactProp(name = "isSelected")
39
- fun setIsSelected(markerView: RNMBXMarkerView, isSelected: Boolean) {
40
- markerView.setIsSelected(isSelected)
53
+ override fun setIsSelected(markerView: RNMBXMarkerView, isSelected: Dynamic) {
54
+ markerView.setIsSelected(isSelected.asBoolean())
41
55
  }
42
56
 
43
57
  override fun createViewInstance(reactContext: ThemedReactContext): RNMBXMarkerView {
@@ -74,6 +74,11 @@ class RNMBXPointAnnotation(private val mContext: Context, private val mManager:
74
74
  mMapView?.offscreenAnnotationViewContainer?.removeView(childView)
75
75
  }
76
76
 
77
+ override fun setId(id: Int) {
78
+ super.setId(id)
79
+ mManager.tagAssigned(id)
80
+ }
81
+
77
82
  override fun addToMap(mapView: RNMBXMapView) {
78
83
  super.addToMap(mapView)
79
84
  mMap = mapView.getMapboxMap()
@@ -0,0 +1,83 @@
1
+ package com.rnmapbox.rnmbx.components.annotation
2
+
3
+ import com.facebook.react.bridge.Dynamic
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.common.MapBuilder
6
+ import com.facebook.react.uimanager.ThemedReactContext
7
+ import com.facebook.react.uimanager.ViewManagerDelegate
8
+ import com.facebook.react.uimanager.annotations.ReactProp
9
+ import com.facebook.react.viewmanagers.RNMBXPointAnnotationManagerDelegate
10
+ import com.facebook.react.viewmanagers.RNMBXPointAnnotationManagerInterface
11
+ import com.rnmapbox.rnmbx.components.AbstractEventEmitter
12
+ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXShapeSource
13
+ import com.rnmapbox.rnmbx.events.constants.EventKeys
14
+ import com.rnmapbox.rnmbx.utils.GeoJSONUtils.toPointGeometry
15
+ import com.rnmapbox.rnmbx.utils.ViewTagResolver
16
+
17
+ class RNMBXPointAnnotationManager(reactApplicationContext: ReactApplicationContext, val viewTagResolver: ViewTagResolver) : AbstractEventEmitter<RNMBXPointAnnotation>(reactApplicationContext),
18
+ RNMBXPointAnnotationManagerInterface<RNMBXPointAnnotation> {
19
+
20
+ private val mDelegate: ViewManagerDelegate<RNMBXPointAnnotation>
21
+
22
+ init {
23
+ mDelegate = RNMBXPointAnnotationManagerDelegate(this)
24
+ }
25
+
26
+ override fun getDelegate(): ViewManagerDelegate<RNMBXPointAnnotation> {
27
+ return mDelegate
28
+ }
29
+
30
+ override fun getName(): String {
31
+ return REACT_CLASS
32
+ }
33
+
34
+ override fun customEvents(): Map<String, String> {
35
+ return MapBuilder.builder<String, String>()
36
+ .put(EventKeys.POINT_ANNOTATION_SELECTED, "onMapboxPointAnnotationSelected")
37
+ .put(EventKeys.POINT_ANNOTATION_DESELECTED, "onMapboxPointAnnotationDeselected")
38
+ .put(EventKeys.POINT_ANNOTATION_DRAG_START, "onMapboxPointAnnotationDragStart")
39
+ .put(EventKeys.POINT_ANNOTATION_DRAG, "onMapboxPointAnnotationDrag")
40
+ .put(EventKeys.POINT_ANNOTATION_DRAG_END, "onMapboxPointAnnotationDragEnd")
41
+ .build()
42
+ }
43
+
44
+ // TODO: check why it does not work correctly
45
+ override fun createViewInstance(reactContext: ThemedReactContext): RNMBXPointAnnotation {
46
+ return RNMBXPointAnnotation(reactContext!!, this)
47
+ }
48
+
49
+ override fun onDropViewInstance(view: RNMBXPointAnnotation) {
50
+ val reactTag = view.id
51
+
52
+ viewTagResolver.viewRemoved(reactTag)
53
+ super.onDropViewInstance(view)
54
+ }
55
+
56
+ fun tagAssigned(reactTag: Int) {
57
+ return viewTagResolver.tagAssigned(reactTag)
58
+ }
59
+
60
+ @ReactProp(name = "id")
61
+ override fun setId(annotation: RNMBXPointAnnotation, id: Dynamic) {
62
+ annotation.iD = id.asString()
63
+ }
64
+
65
+ @ReactProp(name = "coordinate")
66
+ override fun setCoordinate(annotation: RNMBXPointAnnotation, geoJSONStr: Dynamic) {
67
+ annotation.setCoordinate(toPointGeometry(geoJSONStr.asString())!!)
68
+ }
69
+
70
+ @ReactProp(name = "anchor")
71
+ override fun setAnchor(annotation: RNMBXPointAnnotation, map: Dynamic) {
72
+ annotation.setAnchor(map.asMap().getDouble("x").toFloat(), map.asMap().getDouble("y").toFloat())
73
+ }
74
+
75
+ @ReactProp(name = "draggable")
76
+ override fun setDraggable(annotation: RNMBXPointAnnotation, draggable: Dynamic) {
77
+ annotation.setDraggable(draggable.asBoolean())
78
+ }
79
+
80
+ companion object {
81
+ const val REACT_CLASS = "RNMBXPointAnnotation"
82
+ }
83
+ }
@@ -0,0 +1,33 @@
1
+ package com.rnmapbox.rnmbx.components.annotation
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactMethod
6
+ import com.facebook.react.module.annotations.ReactModule
7
+ import com.rnmapbox.rnmbx.NativeRNMBXPointAnnotationModuleSpec
8
+ import com.rnmapbox.rnmbx.utils.ViewTagResolver
9
+
10
+ @ReactModule(name = RNMBXPointAnnotationModule.NAME)
11
+ class RNMBXPointAnnotationModule(reactContext: ReactApplicationContext?, private val viewTagResolver: ViewTagResolver) :
12
+ NativeRNMBXPointAnnotationModuleSpec(reactContext) {
13
+
14
+ companion object {
15
+ const val NAME = "RNMBXPointAnnotationModule"
16
+ }
17
+
18
+ private fun withPointAnnotationOnUIThread(viewRef: Double?, reject: Promise, fn: (RNMBXPointAnnotation) -> Unit) {
19
+ if (viewRef == null) {
20
+ reject.reject(Exception("viewRef is null for RNMBXPointAnnotation"))
21
+ } else {
22
+ viewTagResolver.withViewResolved(viewRef.toInt(), reject, fn)
23
+ }
24
+ }
25
+
26
+ @ReactMethod
27
+ override fun refresh(viewRef: Double?, promise: Promise) {
28
+ withPointAnnotationOnUIThread(viewRef, promise) {
29
+ it.refresh()
30
+ promise.resolve(null)
31
+ }
32
+ }
33
+ }
@@ -28,6 +28,11 @@ class RNMBXImage(private val mContext: ReactApplicationContext, private val mMan
28
28
 
29
29
  var mBitmap : Bitmap? = null
30
30
 
31
+ override fun setId(id: Int) {
32
+ super.setId(id)
33
+ mManager.tagAssigned(id)
34
+ }
35
+
31
36
  override fun onLayoutChange(v: View, left: Int, top: Int, right: Int, bottom: Int, oldLeft: Int, oldTop: Int,
32
37
  oldRight: Int, oldBottom: Int) {
33
38
  if (left == 0 && top == 0 && right == 0 && bottom == 0) {
@@ -1,18 +1,18 @@
1
1
  package com.rnmapbox.rnmbx.components.images
2
2
 
3
3
  import com.facebook.react.bridge.Dynamic
4
- import com.facebook.react.bridge.DynamicFromArray
5
4
  import com.facebook.react.bridge.ReactApplicationContext
6
5
  import com.facebook.react.bridge.ReadableArray
7
- import com.facebook.react.common.MapBuilder
8
6
  import com.facebook.react.uimanager.ThemedReactContext
9
7
  import com.facebook.react.uimanager.annotations.ReactProp
8
+ import com.facebook.react.viewmanagers.RNMBXImageManagerInterface
10
9
  import com.rnmapbox.rnmbx.components.AbstractEventEmitter
11
- import com.rnmapbox.rnmbx.events.constants.EventKeys
10
+ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXShapeSource
11
+ import com.rnmapbox.rnmbx.utils.ViewTagResolver
12
12
 
13
- class RNMBXImageManager(private val mContext: ReactApplicationContext) : AbstractEventEmitter<RNMBXImage>(
13
+ class RNMBXImageManager(private val mContext: ReactApplicationContext, val viewTagResolver: ViewTagResolver) : AbstractEventEmitter<RNMBXImage>(
14
14
  mContext
15
- ) {
15
+ ), RNMBXImageManagerInterface<RNMBXImage> {
16
16
  override fun getName(): String {
17
17
  return "RNMBXImage"
18
18
  }
@@ -25,43 +25,46 @@ mContext
25
25
  return mutableMapOf();
26
26
  }
27
27
 
28
+ override fun onDropViewInstance(view: RNMBXImage) {
29
+ val reactTag = view.id
30
+
31
+ viewTagResolver.viewRemoved(reactTag)
32
+ super.onDropViewInstance(view)
33
+ }
34
+
35
+ fun tagAssigned(reactTag: Int) {
36
+ return viewTagResolver.tagAssigned(reactTag)
37
+ }
38
+
28
39
  // region React properties
29
40
  @ReactProp(name="name")
30
- fun setName(image: RNMBXImage, value: String) {
31
- image.name = value
41
+ override fun setName(image: RNMBXImage, value: Dynamic) {
42
+ image.name = value.asString()
32
43
  }
33
44
 
34
45
  @ReactProp(name="sdf")
35
- fun setSdf(image: RNMBXImage, value: Boolean) {
36
- image.sdf = value
46
+ override fun setSdf(image: RNMBXImage, value: Dynamic) {
47
+ image.sdf = value.asBoolean()
37
48
  }
38
49
 
39
50
  @ReactProp(name="stretchX")
40
- fun setStretchX(image: RNMBXImage, value: Dynamic) {
51
+ override fun setStretchX(image: RNMBXImage, value: Dynamic) {
41
52
  image.stretchX = RNMBXImagesManager.convertStretch(value) ?: listOf()
42
53
  }
43
54
 
44
55
  @ReactProp(name="stretchY")
45
- fun setStretchY(image: RNMBXImage, value: Dynamic) {
56
+ override fun setStretchY(image: RNMBXImage, value: Dynamic) {
46
57
  image.stretchY = RNMBXImagesManager.convertStretch(value) ?: listOf()
47
58
  }
48
59
 
49
60
  @ReactProp(name="content")
50
- fun setContent(image: RNMBXImage, value: Dynamic) {
61
+ override fun setContent(image: RNMBXImage, value: Dynamic) {
51
62
  image.content = RNMBXImagesManager.convertContent(value)
52
63
  }
53
64
 
54
65
  @ReactProp(name="scale")
55
- fun setScale(image: RNMBXImage, value: Double) {
56
- image.scale = value
57
- }
58
- // endregion
59
-
60
- // region React methods
61
- override fun receiveCommand(root: RNMBXImage, commandId: String?, args: ReadableArray?) {
62
- if (commandId == "refresh") {
63
- root.refresh()
64
- }
66
+ override fun setScale(image: RNMBXImage, value: Dynamic) {
67
+ image.scale = value.asDouble()
65
68
  }
66
69
  // endregion
67
70
  }
@@ -0,0 +1,33 @@
1
+ package com.rnmapbox.rnmbx.components.images
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactMethod
6
+ import com.facebook.react.module.annotations.ReactModule
7
+ import com.rnmapbox.rnmbx.NativeRNMBXImageModuleSpec
8
+ import com.rnmapbox.rnmbx.utils.ViewTagResolver
9
+
10
+ @ReactModule(name = RNMBXImageModule.NAME)
11
+ class RNMBXImageModule(reactContext: ReactApplicationContext?, private val viewTagResolver: ViewTagResolver) :
12
+ NativeRNMBXImageModuleSpec(reactContext) {
13
+
14
+ companion object {
15
+ const val NAME = "RNMBXImageModule"
16
+ }
17
+
18
+ private fun withImageOnUIThread(viewRef: Double?, reject: Promise, fn: (RNMBXImage) -> Unit) {
19
+ if (viewRef == null) {
20
+ reject.reject(Exception("viewRef is null for RNMBXImage"))
21
+ } else {
22
+ viewTagResolver.withViewResolved(viewRef.toInt(), reject, fn)
23
+ }
24
+ }
25
+
26
+ @ReactMethod
27
+ override fun refresh(viewRef: Double?, promise: Promise) {
28
+ withImageOnUIThread(viewRef, promise) {
29
+ it.refresh()
30
+ promise.resolve(null)
31
+ }
32
+ }
33
+ }
@@ -6,6 +6,7 @@ import com.facebook.react.bridge.*
6
6
  import com.facebook.react.common.MapBuilder
7
7
  import com.facebook.react.uimanager.ThemedReactContext
8
8
  import com.facebook.react.uimanager.annotations.ReactProp
9
+ import com.facebook.react.viewmanagers.RNMBXImagesManagerInterface
9
10
  import com.mapbox.maps.ImageContent
10
11
  import com.mapbox.maps.ImageStretches
11
12
  import com.rnmapbox.rnmbx.components.AbstractEventEmitter
@@ -20,7 +21,7 @@ import java.util.*
20
21
  class RNMBXImagesManager(private val mContext: ReactApplicationContext) :
21
22
  AbstractEventEmitter<RNMBXImages?>(
22
23
  mContext
23
- ) {
24
+ ), RNMBXImagesManagerInterface<RNMBXImages> {
24
25
  override fun getName(): String {
25
26
  return "RNMBXImages"
26
27
  }
@@ -67,9 +68,9 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) :
67
68
  }
68
69
 
69
70
  @ReactProp(name = "images")
70
- fun setImages(images: RNMBXImages, map: ReadableMap) {
71
+ override fun setImages(images: RNMBXImages, map: Dynamic) {
71
72
  val imagesList = mutableListOf<Map.Entry<String, ImageEntry>>()
72
- map.forEach { imageName, imageInfo ->
73
+ map.asMap().forEach { imageName, imageInfo ->
73
74
  when (imageInfo) {
74
75
  is ReadableMap -> {
75
76
  val uri = imageInfo.getString("uri")
@@ -128,8 +129,8 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) :
128
129
  }
129
130
 
130
131
  @ReactProp(name = "hasOnImageMissing")
131
- fun setHasOnImageMissing(images: RNMBXImages, value: Boolean?) {
132
- images.setHasOnImageMissing(value!!)
132
+ override fun setHasOnImageMissing(images: RNMBXImages, value: Dynamic) {
133
+ images.setHasOnImageMissing(value.asBoolean())
133
134
  }
134
135
 
135
136
  fun toNativeImage(dynamic: Dynamic): NativeImage? {
@@ -165,10 +166,10 @@ class RNMBXImagesManager(private val mContext: ReactApplicationContext) :
165
166
  }
166
167
 
167
168
  @ReactProp(name = "nativeImages")
168
- fun setNativeImages(images: RNMBXImages, arr: ReadableArray) {
169
+ override fun setNativeImages(images: RNMBXImages, arr: Dynamic) {
169
170
  val nativeImages = mutableListOf<NativeImage>();
170
- for (i in 0 until arr.size()) {
171
- val nativeImage = toNativeImage(arr.getDynamic(i))
171
+ for (i in 0 until arr.asArray().size()) {
172
+ val nativeImage = toNativeImage(arr.asArray().getDynamic(i))
172
173
  if (nativeImage != null) {
173
174
  nativeImages.add(nativeImage)
174
175
  }
@@ -1,26 +1,33 @@
1
1
  package com.rnmapbox.rnmbx.components.location
2
2
 
3
+ import com.facebook.react.bridge.Dynamic
3
4
  import com.facebook.react.uimanager.ThemedReactContext
4
5
  import com.facebook.react.uimanager.ViewGroupManager
5
6
  import com.facebook.react.uimanager.annotations.ReactProp
6
- import com.rnmapbox.rnmbx.utils.Logger
7
+ import com.facebook.react.viewmanagers.RNMBXNativeUserLocationManagerInterface
7
8
  import javax.annotation.Nonnull
8
9
 
9
- class RNMBXNativeUserLocationManager : ViewGroupManager<RNMBXNativeUserLocation>() {
10
+ class RNMBXNativeUserLocationManager : ViewGroupManager<RNMBXNativeUserLocation>(),
11
+ RNMBXNativeUserLocationManagerInterface<RNMBXNativeUserLocation> {
10
12
  @Nonnull
11
13
  override fun getName(): String {
12
14
  return REACT_CLASS
13
15
  }
14
16
 
15
17
  @ReactProp(name = "androidRenderMode")
16
- fun setAndroidRenderMode(userLocation: RNMBXNativeUserLocation, mode: String) {
17
- when (mode) {
18
+ override fun setAndroidRenderMode(userLocation: RNMBXNativeUserLocation, mode: Dynamic) {
19
+ when (mode.asString()) {
18
20
  "compass" -> userLocation.setAndroidRenderMode(RenderMode.COMPASS);
19
21
  "gps" -> userLocation.setAndroidRenderMode(RenderMode.GPS);
20
22
  "normal" -> userLocation.setAndroidRenderMode(RenderMode.NORMAL);
21
23
  }
22
24
  }
23
25
 
26
+ @ReactProp(name = "iosShowsUserHeadingIndicator")
27
+ override fun setIosShowsUserHeadingIndicator(view: RNMBXNativeUserLocation, value: Dynamic) {
28
+ // iOS only
29
+ }
30
+
24
31
  @Nonnull
25
32
  override fun createViewInstance(@Nonnull reactContext: ThemedReactContext): RNMBXNativeUserLocation {
26
33
  return RNMBXNativeUserLocation(reactContext)