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

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 (175) hide show
  1. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +19 -8
  2. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +1 -1
  3. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXAndroidTextureMapViewManager.kt +1 -1
  4. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +15 -15
  5. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt +1 -1
  6. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt +1 -1
  7. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSource.kt +21 -23
  8. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt +0 -46
  9. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt +61 -0
  10. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/{RCTSource.kt → RNMBXSource.kt} +8 -8
  11. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSource.kt +1 -1
  12. package/android/src/main/java/com/rnmapbox/rnmbx/events/FeatureClickEvent.java +4 -4
  13. package/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt +6 -5
  14. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerDelegate.java +41 -0
  15. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerInterface.java +20 -0
  16. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerDelegate.java +50 -0
  17. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerInterface.java +23 -0
  18. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerDelegate.java +56 -0
  19. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerInterface.java +25 -0
  20. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerDelegate.java +77 -0
  21. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerInterface.java +32 -0
  22. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerDelegate.java +59 -0
  23. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerInterface.java +26 -0
  24. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXShapeSourceModuleSpec.java +48 -0
  25. package/ios/RNMBX/RNMBXBackgroundLayerComponentView.mm +2 -0
  26. package/ios/RNMBX/RNMBXCircleLayerComponentView.mm +2 -0
  27. package/ios/RNMBX/RNMBXFillExtrusionLayerComponentView.mm +3 -1
  28. package/ios/RNMBX/RNMBXFillLayerComponentView.mm +2 -0
  29. package/ios/RNMBX/RNMBXHeatmapLayerComponentView.mm +2 -0
  30. package/ios/RNMBX/RNMBXImageSource.swift +3 -3
  31. package/ios/RNMBX/RNMBXImageSourceComponentView.h +15 -0
  32. package/ios/RNMBX/RNMBXImageSourceComponentView.mm +100 -0
  33. package/ios/RNMBX/{RNMBXImageSourceManager.m → RNMBXImageSourceViewManager.m} +1 -1
  34. package/ios/RNMBX/{RNMBXImageSourceManager.swift → RNMBXImageSourceViewManager.swift} +2 -2
  35. package/ios/RNMBX/RNMBXInteractiveElement.swift +7 -7
  36. package/ios/RNMBX/RNMBXLayer.swift +1 -1
  37. package/ios/RNMBX/RNMBXLineLayerComponentView.mm +2 -0
  38. package/ios/RNMBX/RNMBXMapFeatureView.h +7 -0
  39. package/ios/RNMBX/RNMBXRasterDemSource.swift +6 -6
  40. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.h +17 -0
  41. package/ios/RNMBX/RNMBXRasterDemSourceComponentView.mm +116 -0
  42. package/ios/RNMBX/{RNMBXRasterDemSourceManager.m → RNMBXRasterDemSourceViewManager.m} +1 -7
  43. package/ios/RNMBX/{RNMBXRasterDemSourceManager.swift → RNMBXRasterDemSourceViewManager.swift} +2 -2
  44. package/ios/RNMBX/RNMBXRasterLayerComponentView.mm +2 -0
  45. package/ios/RNMBX/RNMBXRasterSource.swift +8 -8
  46. package/ios/RNMBX/RNMBXRasterSourceComponentView.h +17 -0
  47. package/ios/RNMBX/RNMBXRasterSourceComponentView.mm +124 -0
  48. package/ios/RNMBX/{RNMBXRasterSourceManager.m → RNMBXRasterSourceViewManager.m} +1 -1
  49. package/ios/RNMBX/{RNMBXRasterSourceManager.swift → RNMBXRasterSourceViewManager.swift} +2 -2
  50. package/ios/RNMBX/RNMBXShapeSource.swift +11 -11
  51. package/ios/RNMBX/RNMBXShapeSourceComponentView.h +17 -0
  52. package/ios/RNMBX/RNMBXShapeSourceComponentView.mm +153 -0
  53. package/ios/RNMBX/RNMBXShapeSourceModule.h +18 -0
  54. package/ios/RNMBX/RNMBXShapeSourceModule.mm +87 -0
  55. package/ios/RNMBX/RNMBXShapeSourceViewManager.m +26 -0
  56. package/ios/RNMBX/{RNMBXShapeSourceManager.swift → RNMBXShapeSourceViewManager.swift} +12 -42
  57. package/ios/RNMBX/RNMBXSkyLayerComponentView.mm +2 -0
  58. package/ios/RNMBX/RNMBXSource.swift +36 -27
  59. package/ios/RNMBX/RNMBXSymbolLayerComponentView.mm +2 -0
  60. package/ios/RNMBX/RNMBXTileSource.swift +2 -2
  61. package/ios/RNMBX/RNMBXVectorSource.swift +6 -6
  62. package/ios/RNMBX/RNMBXVectorSourceComponentView.h +17 -0
  63. package/ios/RNMBX/RNMBXVectorSourceComponentView.mm +141 -0
  64. package/ios/RNMBX/{RNMBXVectorSourceManager.m → RNMBXVectorSourceViewManager.m} +1 -1
  65. package/ios/RNMBX/{RNMBXVectorSourceManager.swift → RNMBXVectorSourceViewManager.swift} +2 -2
  66. package/ios/install.md +1 -0
  67. package/lib/commonjs/components/ImageSource.js +10 -7
  68. package/lib/commonjs/components/ImageSource.js.map +1 -1
  69. package/lib/commonjs/components/RasterDemSource.js +11 -8
  70. package/lib/commonjs/components/RasterDemSource.js.map +1 -1
  71. package/lib/commonjs/components/RasterSource.js +11 -8
  72. package/lib/commonjs/components/RasterSource.js.map +1 -1
  73. package/lib/commonjs/components/ShapeSource.js +31 -52
  74. package/lib/commonjs/components/ShapeSource.js.map +1 -1
  75. package/lib/commonjs/components/VectorSource.js +26 -39
  76. package/lib/commonjs/components/VectorSource.js.map +1 -1
  77. package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js +10 -0
  78. package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js.map +1 -0
  79. package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js +10 -0
  80. package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js.map +1 -0
  81. package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js +10 -0
  82. package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -0
  83. package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js +10 -0
  84. package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js.map +1 -0
  85. package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js +10 -0
  86. package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js.map +1 -0
  87. package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js +10 -0
  88. package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js.map +1 -0
  89. package/lib/module/components/ImageSource.js +10 -7
  90. package/lib/module/components/ImageSource.js.map +1 -1
  91. package/lib/module/components/RasterDemSource.js +11 -8
  92. package/lib/module/components/RasterDemSource.js.map +1 -1
  93. package/lib/module/components/RasterSource.js +11 -8
  94. package/lib/module/components/RasterSource.js.map +1 -1
  95. package/lib/module/components/ShapeSource.js +32 -53
  96. package/lib/module/components/ShapeSource.js.map +1 -1
  97. package/lib/module/components/VectorSource.js +28 -41
  98. package/lib/module/components/VectorSource.js.map +1 -1
  99. package/lib/module/specs/NativeRNMBXShapeSourceModule.js +5 -0
  100. package/lib/module/specs/NativeRNMBXShapeSourceModule.js.map +1 -0
  101. package/lib/module/specs/RNMBXImageSourceNativeComponent.js +3 -0
  102. package/lib/module/specs/RNMBXImageSourceNativeComponent.js.map +1 -0
  103. package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js +3 -0
  104. package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -0
  105. package/lib/module/specs/RNMBXRasterSourceNativeComponent.js +3 -0
  106. package/lib/module/specs/RNMBXRasterSourceNativeComponent.js.map +1 -0
  107. package/lib/module/specs/RNMBXShapeSourceNativeComponent.js +3 -0
  108. package/lib/module/specs/RNMBXShapeSourceNativeComponent.js.map +1 -0
  109. package/lib/module/specs/RNMBXVectorSourceNativeComponent.js +3 -0
  110. package/lib/module/specs/RNMBXVectorSourceNativeComponent.js.map +1 -0
  111. package/lib/typescript/src/components/ImageSource.d.ts.map +1 -1
  112. package/lib/typescript/src/components/RasterDemSource.d.ts +0 -1
  113. package/lib/typescript/src/components/RasterDemSource.d.ts.map +1 -1
  114. package/lib/typescript/src/components/RasterSource.d.ts +0 -1
  115. package/lib/typescript/src/components/RasterSource.d.ts.map +1 -1
  116. package/lib/typescript/src/components/ShapeSource.d.ts +2 -58
  117. package/lib/typescript/src/components/ShapeSource.d.ts.map +1 -1
  118. package/lib/typescript/src/components/VectorSource.d.ts +3 -64
  119. package/lib/typescript/src/components/VectorSource.d.ts.map +1 -1
  120. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts +11 -0
  121. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts.map +1 -0
  122. package/lib/typescript/src/specs/RNMBXImageSourceNativeComponent.d.ts +11 -0
  123. package/lib/typescript/src/specs/RNMBXImageSourceNativeComponent.d.ts.map +1 -0
  124. package/lib/typescript/src/specs/RNMBXRasterDemSourceNativeComponent.d.ts +15 -0
  125. package/lib/typescript/src/specs/RNMBXRasterDemSourceNativeComponent.d.ts.map +1 -0
  126. package/lib/typescript/src/specs/RNMBXRasterSourceNativeComponent.d.ts +17 -0
  127. package/lib/typescript/src/specs/RNMBXRasterSourceNativeComponent.d.ts.map +1 -0
  128. package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts +29 -0
  129. package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts.map +1 -0
  130. package/lib/typescript/src/specs/RNMBXVectorSourceNativeComponent.d.ts +23 -0
  131. package/lib/typescript/src/specs/RNMBXVectorSourceNativeComponent.d.ts.map +1 -0
  132. package/package.json +1 -1
  133. package/plugin/build/withMapbox.d.ts +5 -4
  134. package/plugin/build/withMapbox.js +46 -19
  135. package/plugin/install.md +20 -0
  136. package/plugin/src/withMapbox.ts +79 -21
  137. package/setup-jest.js +6 -0
  138. package/src/components/ImageSource.tsx +4 -6
  139. package/src/components/RasterDemSource.tsx +5 -8
  140. package/src/components/RasterSource.tsx +5 -8
  141. package/src/components/ShapeSource.tsx +39 -86
  142. package/src/components/VectorSource.tsx +20 -44
  143. package/src/specs/NativeRNMBXShapeSourceModule.ts +23 -0
  144. package/src/specs/RNMBXImageSourceNativeComponent.ts +15 -0
  145. package/src/specs/RNMBXRasterDemSourceNativeComponent.ts +19 -0
  146. package/src/specs/RNMBXRasterSourceNativeComponent.ts +21 -0
  147. package/src/specs/RNMBXShapeSourceNativeComponent.ts +35 -0
  148. package/src/specs/RNMBXVectorSourceNativeComponent.ts +28 -0
  149. package/ios/RNMBX/RNMBXShapeSourceManager.m +0 -45
  150. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Annotation.kt +0 -0
  151. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Event.kt +0 -0
  152. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Feature.kt +0 -0
  153. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/HttpInterceptor.kt +0 -0
  154. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Image.kt +0 -0
  155. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Light.kt +0 -0
  156. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Location.kt +0 -0
  157. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/MapboxMap.kt +0 -0
  158. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/OfflineManager.kt +0 -0
  159. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/OrnamentSettings.kt +0 -0
  160. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/ResourceOption.kt +0 -0
  161. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Snapshot.kt +0 -0
  162. /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/style.kt +0 -0
  163. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Annotation.kt +0 -0
  164. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Event.kt +0 -0
  165. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Feature.kt +0 -0
  166. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/HttpInterceptor.kt +0 -0
  167. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Image.kt +0 -0
  168. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Light.kt +0 -0
  169. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Location.kt +0 -0
  170. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/MapboxMap.kt +0 -0
  171. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/OfflineManager.kt +0 -0
  172. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/OrnamentSettings.kt +0 -0
  173. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/ResourceOption.kt +0 -0
  174. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Snapshot.kt +0 -0
  175. /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/style.kt +0 -0
@@ -34,6 +34,7 @@ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXImageSourceManager
34
34
  import com.rnmapbox.rnmbx.components.styles.sources.RNMBXRasterDemSourceManager
35
35
  import com.rnmapbox.rnmbx.components.styles.sources.RNMBXRasterSourceManager
36
36
  import com.rnmapbox.rnmbx.components.styles.sources.RNMBXShapeSourceManager
37
+ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXShapeSourceModule
37
38
  import com.rnmapbox.rnmbx.components.styles.sources.RNMBXVectorSourceManager
38
39
  import com.rnmapbox.rnmbx.components.styles.terrain.RNMBXTerrainManager
39
40
  import com.rnmapbox.rnmbx.modules.RNMBXLocationModule
@@ -45,12 +46,12 @@ import com.rnmapbox.rnmbx.utils.ViewTagResolver
45
46
 
46
47
  class RNMBXPackage : TurboReactPackage() {
47
48
 
48
- var mapViewTagResolver: ViewTagResolver<RNMBXMapView>? = null
49
- fun getMapViewTagResolver(context: ReactApplicationContext) : ViewTagResolver<RNMBXMapView> {
50
- val viewTagResolver = mapViewTagResolver
49
+ var viewTagResolver: ViewTagResolver? = null
50
+ fun getViewTagResolver(context: ReactApplicationContext) : ViewTagResolver {
51
+ val viewTagResolver = viewTagResolver
51
52
  if (viewTagResolver == null) {
52
- val viewTagResolver = ViewTagResolver<RNMBXMapView>(context)
53
- mapViewTagResolver = viewTagResolver
53
+ val viewTagResolver = ViewTagResolver(context)
54
+ this.viewTagResolver = viewTagResolver
54
55
  return viewTagResolver
55
56
  }
56
57
  return viewTagResolver
@@ -66,7 +67,8 @@ class RNMBXPackage : TurboReactPackage() {
66
67
  RNMBXOfflineModule.REACT_CLASS -> return RNMBXOfflineModule(reactApplicationContext)
67
68
  RNMBXSnapshotModule.REACT_CLASS -> return RNMBXSnapshotModule(reactApplicationContext)
68
69
  RNMBXLogging.REACT_CLASS -> return RNMBXLogging(reactApplicationContext)
69
- NativeMapViewModule.NAME -> return NativeMapViewModule(reactApplicationContext, getMapViewTagResolver(reactApplicationContext))
70
+ NativeMapViewModule.NAME -> return NativeMapViewModule(reactApplicationContext, getViewTagResolver(reactApplicationContext))
71
+ RNMBXShapeSourceModule.NAME -> return RNMBXShapeSourceModule(reactApplicationContext, getViewTagResolver(reactApplicationContext))
70
72
  }
71
73
  return null
72
74
  }
@@ -81,8 +83,8 @@ class RNMBXPackage : TurboReactPackage() {
81
83
 
82
84
  // components
83
85
  managers.add(RNMBXCameraManager(reactApplicationContext))
84
- managers.add(RNMBXAndroidTextureMapViewManager(reactApplicationContext, getMapViewTagResolver(reactApplicationContext)))
85
- managers.add(RNMBXMapViewManager(reactApplicationContext, getMapViewTagResolver(reactApplicationContext)))
86
+ managers.add(RNMBXAndroidTextureMapViewManager(reactApplicationContext, getViewTagResolver(reactApplicationContext)))
87
+ managers.add(RNMBXMapViewManager(reactApplicationContext, getViewTagResolver(reactApplicationContext)))
86
88
  managers.add(RNMBXStyleImportManager(reactApplicationContext))
87
89
 
88
90
  // annotations
@@ -176,6 +178,15 @@ class RNMBXPackage : TurboReactPackage() {
176
178
  false, // isCxxModule
177
179
  isTurboModule // isTurboModule
178
180
  )
181
+ moduleInfos[RNMBXShapeSourceModule.NAME] = ReactModuleInfo(
182
+ RNMBXShapeSourceModule.NAME,
183
+ RNMBXShapeSourceModule.NAME,
184
+ false, // canOverrideExistingModule
185
+ false, // needsEagerInit
186
+ false, // hasConstants
187
+ false, // isCxxModule
188
+ isTurboModule // isTurboModule
189
+ )
179
190
  moduleInfos
180
191
  }
181
192
  }
@@ -19,7 +19,7 @@ import com.rnmapbox.rnmbx.utils.ViewTagResolver
19
19
  import com.rnmapbox.rnmbx.utils.extensions.toCoordinate
20
20
  import com.rnmapbox.rnmbx.utils.extensions.toScreenCoordinate
21
21
 
22
- class NativeMapViewModule(context: ReactApplicationContext, val viewTagResolver: ViewTagResolver<RNMBXMapView>) : NativeMapViewModuleSpec(context) {
22
+ class NativeMapViewModule(context: ReactApplicationContext, val viewTagResolver: ViewTagResolver) : NativeMapViewModuleSpec(context) {
23
23
  private fun withMapViewOnUIThread(
24
24
  viewRef: Double?,
25
25
  reject: Promise,
@@ -9,7 +9,7 @@ import com.facebook.react.viewmanagers.RNMBXMapViewManagerDelegate
9
9
  import com.mapbox.maps.MapInitOptions
10
10
  import com.rnmapbox.rnmbx.utils.ViewTagResolver
11
11
 
12
- class RNMBXAndroidTextureMapViewManager(context: ReactApplicationContext, viewTagResolver: ViewTagResolver<RNMBXMapView>) : RNMBXMapViewManager(
12
+ class RNMBXAndroidTextureMapViewManager(context: ReactApplicationContext, viewTagResolver: ViewTagResolver) : RNMBXMapViewManager(
13
13
  context,
14
14
  viewTagResolver
15
15
  ), RNMBXAndroidTextureMapViewManagerInterface<RNMBXMapView> {
@@ -63,7 +63,7 @@ import com.rnmapbox.rnmbx.components.mapview.helpers.CameraChangeReason
63
63
  import com.rnmapbox.rnmbx.components.mapview.helpers.CameraChangeTracker
64
64
  import com.rnmapbox.rnmbx.components.styles.layers.RNMBXLayer
65
65
  import com.rnmapbox.rnmbx.components.styles.light.RNMBXLight
66
- import com.rnmapbox.rnmbx.components.styles.sources.RCTSource
66
+ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXSource
67
67
  import com.rnmapbox.rnmbx.components.styles.terrain.RNMBXTerrain
68
68
  import com.rnmapbox.rnmbx.events.AndroidCallbackEvent
69
69
  import com.rnmapbox.rnmbx.events.IEvent
@@ -190,7 +190,7 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
190
190
  */
191
191
  public var offscreenAnnotationViewContainer: ViewGroup? = null
192
192
 
193
- private val mSources: MutableMap<String, RCTSource<*>>
193
+ private val mSources: MutableMap<String, RNMBXSource<*>>
194
194
  private val mImages: MutableList<RNMBXImages>
195
195
  private var mPointAnnotationManager: PointAnnotationManager? = null
196
196
  private var mActiveMarkerID: AnnotationID = INVALID_ANNOTATION_ID
@@ -309,7 +309,7 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
309
309
  savedStyle = style
310
310
  styleLoaded = true
311
311
  setUpImage(style)
312
- addFeaturesToMap()
312
+ addFeaturesToMap(true)
313
313
  applyLocalizeLabels()
314
314
  style.setProjection(Projection(mProjection))
315
315
  }
@@ -444,7 +444,7 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
444
444
  // region Features
445
445
  fun addFeature(childView: View?, childPosition: Int) {
446
446
  var feature: AbstractMapFeature? = null
447
- if (childView is RCTSource<*>) {
447
+ if (childView is RNMBXSource<*>) {
448
448
  val source = childView
449
449
  mSources[source.iD.toString()] = source
450
450
  feature = childView as AbstractMapFeature?
@@ -491,7 +491,7 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
491
491
  fun removeFeatureAt(childPosition: Int) {
492
492
  val entry = mFeatures[childPosition]
493
493
  val feature = entry.feature
494
- if (feature is RCTSource<*>) {
494
+ if (feature is RNMBXSource<*>) {
495
495
  mSources.remove(feature.iD)
496
496
  } else if (feature is RNMBXPointAnnotation) {
497
497
  val annotation = feature
@@ -553,9 +553,9 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
553
553
  }
554
554
 
555
555
 
556
- private val allTouchableSources: List<RCTSource<*>>
556
+ private val allTouchableSources: List<RNMBXSource<*>>
557
557
  private get() {
558
- val sources: MutableList<RCTSource<*>> = ArrayList()
558
+ val sources: MutableList<RNMBXSource<*>> = ArrayList()
559
559
  for (key in mSources.keys) {
560
560
  val source = mSources[key]
561
561
  if (source != null && source.hasPressListener()) {
@@ -565,14 +565,14 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
565
565
  return sources
566
566
  }
567
567
 
568
- private fun getTouchableSourceWithHighestZIndex(sources: List<RCTSource<*>>?): RCTSource<*>? {
568
+ private fun getTouchableSourceWithHighestZIndex(sources: List<RNMBXSource<*>>?): RNMBXSource<*>? {
569
569
  if (sources == null || sources.size == 0) {
570
570
  return null
571
571
  }
572
572
  if (sources.size == 1) {
573
573
  return sources[0]
574
574
  }
575
- val layerToSourceMap: MutableMap<String, RCTSource<*>> = HashMap()
575
+ val layerToSourceMap: MutableMap<String, RNMBXSource<*>> = HashMap()
576
576
  for (source in sources) {
577
577
  val layerIDs: Array<out String>? = source.layerIDs.toTypedArray()
578
578
  if (layerIDs != null) {
@@ -662,13 +662,13 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
662
662
  }
663
663
 
664
664
  interface HandleTap {
665
- fun run(hitTouchableSources: List<RCTSource<*>?>?, hits: Map<String?, List<Feature?>?>)
665
+ fun run(hitTouchableSources: List<RNMBXSource<*>?>?, hits: Map<String?, List<Feature?>?>)
666
666
  }
667
667
 
668
668
  fun handleTapInSources(
669
- sources: LinkedList<RCTSource<*>>, screenPoint: ScreenCoordinate,
669
+ sources: LinkedList<RNMBXSource<*>>, screenPoint: ScreenCoordinate,
670
670
  hits: HashMap<String?, List<Feature?>?>,
671
- hitTouchableSources: ArrayList<RCTSource<*>?>,
671
+ hitTouchableSources: ArrayList<RNMBXSource<*>?>,
672
672
  handleTap: HandleTap
673
673
  ) {
674
674
  if (sources.isEmpty()) {
@@ -723,11 +723,11 @@ open class RNMBXMapView(private val mContext: Context, var mManager: RNMBXMapVie
723
723
  val hits = HashMap<String?, List<Feature?>?>()
724
724
  if (screenPoint != null) {
725
725
  handleTapInSources(LinkedList(touchableSources), screenPoint, hits, ArrayList(), object : HandleTap {
726
- override fun run(hitTouchableSources: List<RCTSource<*>?>?, hits: Map<String?, List<Feature?>?>) {
726
+ override fun run(hitTouchableSources: List<RNMBXSource<*>?>?, hits: Map<String?, List<Feature?>?>) {
727
727
  if (hits.size > 0) {
728
- val source = getTouchableSourceWithHighestZIndex(hitTouchableSources as List<RCTSource<*>>?)
728
+ val source = getTouchableSourceWithHighestZIndex(hitTouchableSources as List<RNMBXSource<*>>?)
729
729
  if (source != null && source.hasPressListener() && source.iD != null && source.iD in hits) {
730
- source.onPress(RCTSource.OnPressEvent(
730
+ source.onPress(RNMBXSource.OnPressEvent(
731
731
  hits[source.iD] as List<Feature>,
732
732
  GeoJSONUtils.toLatLng(point),
733
733
  PointF(screenPoint.x.toFloat(), screenPoint.y.toFloat())
@@ -49,7 +49,7 @@ interface CommandResponse {
49
49
  fun error(message: String)
50
50
  }
51
51
 
52
- open class RNMBXMapViewManager(context: ReactApplicationContext, val viewTagResolver: ViewTagResolver<RNMBXMapView>) :
52
+ open class RNMBXMapViewManager(context: ReactApplicationContext, val viewTagResolver: ViewTagResolver) :
53
53
  AbstractEventEmitter<RNMBXMapView>(context), RNMBXMapViewManagerInterface<RNMBXMapView> {
54
54
  private val mViews: MutableMap<Int, RNMBXMapView>
55
55
 
@@ -8,7 +8,7 @@ import com.mapbox.maps.extension.style.sources.generated.ImageSource
8
8
  import com.rnmapbox.rnmbx.utils.LatLngQuad
9
9
  import java.net.URL
10
10
 
11
- class RNMBXImageSource(context: Context?) : RCTSource<ImageSource?>(context) {
11
+ class RNMBXImageSource(context: Context?) : RNMBXSource<ImageSource?>(context) {
12
12
  private var mURL: URL? = null
13
13
  private var mResourceId = 0
14
14
  private var mCoordQuad: LatLngQuad? = null
@@ -4,6 +4,7 @@ import android.content.Context
4
4
  import com.mapbox.maps.extension.style.sources.generated.GeoJsonSource
5
5
  import com.rnmapbox.rnmbx.utils.ImageEntry
6
6
  import android.graphics.drawable.BitmapDrawable
7
+ import com.facebook.react.bridge.Promise
7
8
  import com.facebook.react.bridge.ReadableMap
8
9
  import com.rnmapbox.rnmbx.components.mapview.RNMBXMapView
9
10
  import com.rnmapbox.rnmbx.events.FeatureClickEvent
@@ -23,7 +24,7 @@ import java.util.HashMap
23
24
  import com.rnmapbox.rnmbx.v11compat.feature.*
24
25
 
25
26
  class RNMBXShapeSource(context: Context, private val mManager: RNMBXShapeSourceManager) :
26
- RCTSource<GeoJsonSource>(context) {
27
+ RNMBXSource<GeoJsonSource>(context) {
27
28
  private var mURL: URL? = null
28
29
  private var mShape: String? = null
29
30
  private var mCluster: Boolean? = null
@@ -176,18 +177,14 @@ class RNMBXShapeSource(context: Context, private val mManager: RNMBXShapeSourceM
176
177
  }
177
178
  }
178
179
 
179
- private fun callbackSuccess(callbackID: String, payload: WritableMap) {
180
- val event = AndroidCallbackEvent(this, callbackID, payload)
181
- mManager.handleEvent(event)
180
+ private fun callbackSuccess(payload: WritableMap, promise: Promise) {
181
+ promise.resolve(payload)
182
182
  }
183
- private fun callbackError(callbackID: String, error: String, where: String) {
184
- val payload: WritableMap = WritableNativeMap()
185
- payload.putString("error", "$where: $error")
186
- val event = AndroidCallbackEvent(this, callbackID, payload)
187
- mManager.handleEvent(event)
183
+ private fun callbackError(error: String, where: String, promise: Promise) {
184
+ promise.reject("error", "$where: $error")
188
185
  }
189
186
 
190
- fun getClusterExpansionZoom(callbackID: String, featureJSON: String) {
187
+ fun getClusterExpansionZoom(featureJSON: String, promise: Promise) {
191
188
  val feature = Feature.fromJson(featureJSON)
192
189
 
193
190
  mMap!!.getGeoJsonClusterExpansionZoom(iD!!, feature, QueryFeatureExtensionCallback { features ->
@@ -198,28 +195,29 @@ class RNMBXShapeSource(context: Context, private val mManager: RNMBXShapeSourceM
198
195
  if (contents is Long) {
199
196
  val payload: WritableMap = WritableNativeMap()
200
197
  payload.putInt("data", contents.toInt())
201
- callbackSuccess(callbackID, payload)
198
+ callbackSuccess(payload, promise)
202
199
  return@QueryFeatureExtensionCallback
203
200
  } else {
204
201
  callbackError(
205
- callbackID,
202
+
206
203
  "Not a number: $contents",
207
- "getClusterExpansionZoom/getGeoJsonClusterExpansionZoom"
204
+ "getClusterExpansionZoom/getGeoJsonClusterExpansionZoom",
205
+ promise
208
206
  )
209
207
  return@QueryFeatureExtensionCallback
210
208
  }
211
209
  } else {
212
210
  callbackError(
213
- callbackID,
214
211
  features.error ?: "Unknown error",
215
- "getClusterExpansionZoom/getGeoJsonClusterExpansionZoom"
212
+ "getClusterExpansionZoom/getGeoJsonClusterExpansionZoom",
213
+ promise
216
214
  )
217
215
  return@QueryFeatureExtensionCallback
218
216
  }
219
217
  })
220
218
  }
221
219
 
222
- fun getClusterLeaves(callbackID: String, featureJSON: String, number: Int, offset: Int) {
220
+ fun getClusterLeaves(featureJSON: String, number: Int, offset: Int, promise: Promise) {
223
221
  val feature = Feature.fromJson(featureJSON)
224
222
 
225
223
  val _this = this
@@ -232,19 +230,19 @@ class RNMBXShapeSource(context: Context, private val mManager: RNMBXShapeSourceM
232
230
  "data",
233
231
  FeatureCollection.fromFeatures(leaves!!).toJson()
234
232
  )
235
- callbackSuccess(callbackID, payload)
233
+ callbackSuccess(payload, promise)
236
234
  } else {
237
235
  callbackError(
238
- callbackID,
239
236
  features.error ?: "Unknown error",
240
- "getClusterLeaves/getGeoJsonClusterLeaves"
237
+ "getClusterLeaves/getGeoJsonClusterLeaves",
238
+ promise
241
239
  )
242
240
  return@QueryFeatureExtensionCallback
243
241
  }
244
242
  })
245
243
  }
246
244
 
247
- fun getClusterChildren(callbackID: String, featureJSON: String) {
245
+ fun getClusterChildren(featureJSON: String, promise: Promise) {
248
246
  val feature = Feature.fromJson(featureJSON)
249
247
 
250
248
  val _this = this
@@ -257,12 +255,12 @@ class RNMBXShapeSource(context: Context, private val mManager: RNMBXShapeSourceM
257
255
  "data",
258
256
  FeatureCollection.fromFeatures(children!!).toJson()
259
257
  )
260
- callbackSuccess(callbackID, payload)
258
+ callbackSuccess(payload, promise)
261
259
  }else {
262
260
  callbackError(
263
- callbackID,
264
261
  features.error ?: "Unknown error",
265
- "getClusterLeaves/queryFeatureExtensions"
262
+ "getClusterLeaves/queryFeatureExtensions",
263
+ promise
266
264
  )
267
265
  return@QueryFeatureExtensionCallback
268
266
  }
@@ -1,13 +1,11 @@
1
1
  package com.rnmapbox.rnmbx.components.styles.sources
2
2
 
3
- import android.util.Log
4
3
  import android.view.View
5
4
  import com.facebook.react.bridge.ReactApplicationContext
6
5
  import com.rnmapbox.rnmbx.components.AbstractEventEmitter
7
6
  import com.facebook.react.uimanager.ThemedReactContext
8
7
  import com.facebook.react.uimanager.annotations.ReactProp
9
8
  import com.facebook.react.bridge.ReadableMap
10
- import com.facebook.react.bridge.ReadableArray
11
9
  import com.facebook.react.bridge.ReadableType
12
10
  import com.facebook.react.common.MapBuilder
13
11
  import com.mapbox.bindgen.Value
@@ -153,52 +151,8 @@ class RNMBXShapeSourceManager(private val mContext: ReactApplicationContext) :
153
151
  .build()
154
152
  }
155
153
 
156
- override fun getCommandsMap(): Map<String, Int>? {
157
- return MapBuilder.builder<String, Int>()
158
- .put("features", METHOD_FEATURES)
159
- .put("getClusterExpansionZoom", METHOD_GET_CLUSTER_EXPANSION_ZOOM)
160
- .put("getClusterLeaves", METHOD_GET_CLUSTER_LEAVES)
161
- .put("getClusterChildren", METHOD_GET_CLUSTER_CHILDREN)
162
- .build()
163
- }
164
-
165
- override fun receiveCommand(source: RNMBXShapeSource, commandID: Int, args: ReadableArray?) {
166
- if (args == null) {
167
- return
168
- }
169
-
170
- val callbackID = args.getString(0);
171
-
172
- when (commandID) {
173
- METHOD_FEATURES -> source.querySourceFeatures(
174
- callbackID,
175
- ExpressionParser.from(args.getArray(1))
176
- )
177
- METHOD_GET_CLUSTER_EXPANSION_ZOOM -> source.getClusterExpansionZoom(
178
- callbackID,
179
- args.getString(1)
180
- )
181
- METHOD_GET_CLUSTER_LEAVES -> source.getClusterLeaves(
182
- callbackID,
183
- args.getString(1),
184
- args.getInt(2),
185
- args.getInt(3)
186
- )
187
- METHOD_GET_CLUSTER_CHILDREN -> source.getClusterChildren(
188
- callbackID,
189
- args.getString(1)
190
- )
191
- }
192
- }
193
-
194
154
  companion object {
195
155
  const val LOG_TAG = "RNMBXShapeSourceMgr"
196
156
  const val REACT_CLASS = "RNMBXShapeSource"
197
-
198
- //region React Methods
199
- const val METHOD_FEATURES = 103
200
- const val METHOD_GET_CLUSTER_EXPANSION_ZOOM = 104
201
- const val METHOD_GET_CLUSTER_LEAVES = 105
202
- const val METHOD_GET_CLUSTER_CHILDREN = 106
203
157
  }
204
158
  }
@@ -0,0 +1,61 @@
1
+ package com.rnmapbox.rnmbx.components.styles.sources
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.facebook.react.uimanager.UIManagerHelper
8
+ import com.facebook.react.uimanager.common.UIManagerType
9
+ import com.rnmapbox.rnmbx.BuildConfig
10
+ import com.rnmapbox.rnmbx.NativeRNMBXShapeSourceModuleSpec
11
+ import com.rnmapbox.rnmbx.components.mapview.RNMBXMapView
12
+ import com.rnmapbox.rnmbx.utils.ViewTagResolver
13
+
14
+ @ReactModule(name = RNMBXShapeSourceModule.NAME)
15
+ class RNMBXShapeSourceModule(reactContext: ReactApplicationContext?, private val viewTagResolver: ViewTagResolver) :
16
+ NativeRNMBXShapeSourceModuleSpec(reactContext) {
17
+
18
+
19
+ private fun withShapeSourceOnUIThread(viewRef: Double?, reject: Promise, fn: (RNMBXShapeSource) -> Unit) {
20
+ if (viewRef == null) {
21
+ reject.reject(Exception("viewRef is null for RNMBXShapeSource"))
22
+ } else {
23
+ viewTagResolver.withViewResolved(viewRef.toInt(), reject, fn)
24
+ }
25
+ }
26
+
27
+ companion object {
28
+ const val NAME = "RNMBXShapeSourceModule"
29
+ }
30
+
31
+ @ReactMethod
32
+ override fun getClusterExpansionZoom(
33
+ viewRef: Double?,
34
+ featureJSON: String,
35
+ promise: Promise
36
+ ) {
37
+ withShapeSourceOnUIThread(viewRef, promise) {
38
+ it.getClusterExpansionZoom(featureJSON, promise)
39
+ }
40
+ }
41
+
42
+ @ReactMethod
43
+ override fun getClusterLeaves(
44
+ viewRef: Double?,
45
+ featureJSON: String,
46
+ number: Double,
47
+ offset: Double,
48
+ promise: Promise
49
+ ) {
50
+ withShapeSourceOnUIThread(viewRef, promise) {
51
+ it.getClusterLeaves(featureJSON, number.toInt(), offset.toInt(), promise)
52
+ }
53
+ }
54
+
55
+ @ReactMethod
56
+ override fun getClusterChildren(viewRef: Double?, featureJSON: String, promise: Promise) {
57
+ withShapeSourceOnUIThread(viewRef, promise) {
58
+ it.getClusterChildren(featureJSON, promise)
59
+ }
60
+ }
61
+ }
@@ -8,7 +8,7 @@ import com.rnmapbox.rnmbx.components.mapview.RNMBXMapView
8
8
  import com.mapbox.maps.MapboxMap
9
9
  import com.rnmapbox.rnmbx.components.styles.sources.AbstractSourceConsumer
10
10
  import com.facebook.react.bridge.ReadableMap
11
- import com.rnmapbox.rnmbx.components.styles.sources.RCTSource
11
+ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXSource
12
12
  import android.graphics.PointF
13
13
  import android.view.View
14
14
  import com.facebook.react.common.MapBuilder
@@ -17,7 +17,7 @@ import com.mapbox.maps.Style
17
17
  import com.mapbox.maps.extension.style.StyleContract
18
18
  import com.mapbox.maps.extension.style.sources.Source
19
19
  import com.rnmapbox.rnmbx.components.RemovalReason
20
- import com.rnmapbox.rnmbx.components.styles.sources.RCTSource.OnPressEvent
20
+ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXSource.OnPressEvent
21
21
  import com.rnmapbox.rnmbx.utils.LatLng
22
22
  import com.rnmapbox.rnmbx.utils.Logger
23
23
  import java.lang.ClassCastException
@@ -27,9 +27,9 @@ import java.util.HashMap
27
27
  data class FeatureInfo(val feature: AbstractMapFeature?, var added: Boolean) {
28
28
  }
29
29
 
30
- abstract class RCTSource<T : Source?>(context: Context?) : AbstractMapFeature(context) {
30
+ abstract class RNMBXSource<T : Source?>(context: Context?) : AbstractMapFeature(context) {
31
31
  @JvmField
32
- protected var mMap: MapboxMap? = null
32
+ var mMap: MapboxMap? = null
33
33
  var iD: String? = null
34
34
  @JvmField
35
35
  protected var mSource: T? = null
@@ -61,7 +61,7 @@ abstract class RCTSource<T : Source?>(context: Context?) : AbstractMapFeature(co
61
61
  if (hasNoDataSoRefersToExisting()) {
62
62
  Logger.w(
63
63
  LOG_TAG,
64
- "RCTSource: soure with id: $id seems to refer to existing value but existing flag is not set. This is deprecated."
64
+ "RNMBXSource: soure with id: $id seems to refer to existing value but existing flag is not set. This is deprecated."
65
65
  )
66
66
  result = true
67
67
  } else {
@@ -141,7 +141,7 @@ abstract class RCTSource<T : Source?>(context: Context?) : AbstractMapFeature(co
141
141
  mMap = mapView.getMapboxMap()
142
142
  val map = mMap
143
143
  if (map == null) {
144
- Logger.e("RCTSource", "map is exepted to be valid but was null, $iD")
144
+ Logger.e("RNMBXSource", "map is exepted to be valid but was null, $iD")
145
145
  return
146
146
  }
147
147
  val style = map.getStyle()
@@ -171,7 +171,7 @@ abstract class RCTSource<T : Source?>(context: Context?) : AbstractMapFeature(co
171
171
  try {
172
172
  iD?.let { mMap?.getStyle()?.removeStyleSource(it) }
173
173
  } catch (ex: Throwable) {
174
- Logger.w(LOG_TAG, String.format("RCTSource.removeFromMap: %s - %s", mSource, ex.message), ex)
174
+ Logger.w(LOG_TAG, String.format("RNMBXSource.removeFromMap: %s - %s", mSource, ex.message), ex)
175
175
  }
176
176
  }
177
177
  return super.removeFromMap(mapView, reason)
@@ -227,7 +227,7 @@ abstract class RCTSource<T : Source?>(context: Context?) : AbstractMapFeature(co
227
227
 
228
228
  companion object {
229
229
  const val DEFAULT_ID = "composite"
230
- const val LOG_TAG = "RCTSource"
230
+ const val LOG_TAG = "RNMBXSource"
231
231
  const val DEFAULT_HITBOX_WIDTH = 44.0
232
232
  const val DEFAULT_HITBOX_HEIGHT = 44.0
233
233
  @JvmStatic
@@ -7,7 +7,7 @@ import com.mapbox.maps.extension.style.sources.TileSet
7
7
  import com.mapbox.maps.extension.style.sources.generated.Scheme
8
8
  import java.util.*
9
9
 
10
- abstract class RNMBXTileSource<T : Source?>(context: Context?) : RCTSource<T>(context) {
10
+ abstract class RNMBXTileSource<T : Source?>(context: Context?) : RNMBXSource<T>(context) {
11
11
  var uRL: String? = null
12
12
  public var tileUrlTemplates: Collection<String> = ArrayList()
13
13
  var attribution: String? = null
@@ -7,7 +7,7 @@ import com.facebook.react.bridge.Arguments;
7
7
  import com.facebook.react.bridge.WritableArray;
8
8
  import com.facebook.react.bridge.WritableMap;
9
9
  import com.mapbox.geojson.Feature;
10
- import com.rnmapbox.rnmbx.components.styles.sources.RCTSource;
10
+ import com.rnmapbox.rnmbx.components.styles.sources.RNMBXSource;
11
11
  import com.rnmapbox.rnmbx.events.constants.EventKeys;
12
12
  import com.rnmapbox.rnmbx.events.constants.EventTypes;
13
13
  import com.rnmapbox.rnmbx.utils.ConvertUtils;
@@ -62,17 +62,17 @@ public class FeatureClickEvent extends AbstractEvent {
62
62
  return map;
63
63
  }
64
64
 
65
- public static FeatureClickEvent makeShapeSourceEvent(View view, RCTSource.OnPressEvent event) {
65
+ public static FeatureClickEvent makeShapeSourceEvent(View view, RNMBXSource.OnPressEvent event) {
66
66
  return new FeatureClickEvent(view, EventKeys.SHAPE_SOURCE_LAYER_CLICK,
67
67
  EventTypes.SHAPE_SOURCE_LAYER_CLICK, event.getFeatures(), event.getLatLng(), event.getScreenPoint());
68
68
  }
69
69
 
70
- public static FeatureClickEvent makeVectorSourceEvent(View view, RCTSource.OnPressEvent event) {
70
+ public static FeatureClickEvent makeVectorSourceEvent(View view, RNMBXSource.OnPressEvent event) {
71
71
  return new FeatureClickEvent(view, EventKeys.VECTOR_SOURCE_LAYER_CLICK,
72
72
  EventTypes.VECTOR_SOURCE_LAYER_CLICK, event.getFeatures(), event.getLatLng(), event.getScreenPoint());
73
73
  }
74
74
 
75
- public static FeatureClickEvent makeRasterSourceEvent(View view, RCTSource.OnPressEvent event) {
75
+ public static FeatureClickEvent makeRasterSourceEvent(View view, RNMBXSource.OnPressEvent event) {
76
76
  return new FeatureClickEvent(view, EventKeys.RASTER_SOURCE_LAYER_CLICK,
77
77
  EventTypes.RASTER_SOURCE_LAYER_CLICK, event.getFeatures(), event.getLatLng(), event.getScreenPoint());
78
78
  }
@@ -1,5 +1,6 @@
1
1
  package com.rnmapbox.rnmbx.utils
2
2
 
3
+ import android.view.View
3
4
  import com.facebook.react.bridge.Promise
4
5
  import com.facebook.react.bridge.ReactApplicationContext
5
6
  import com.facebook.react.bridge.UIManager
@@ -14,9 +15,9 @@ data class ViewTagWaiter<V>(
14
15
  )
15
16
 
16
17
  // see https://github.com/rnmapbox/maps/pull/3074
17
- open class ViewTagResolver<V>(val context: ReactApplicationContext) {
18
+ open class ViewTagResolver(val context: ReactApplicationContext) {
18
19
  private val createdViews: HashSet<Int> = hashSetOf<Int>()
19
- private val viewWaiters: HashMap<Int, MutableList<ViewTagWaiter<V>>> = hashMapOf()
20
+ private val viewWaiters: HashMap<Int, MutableList<ViewTagWaiter<View>>> = hashMapOf()
20
21
 
21
22
  // to be called from view.setId
22
23
  fun tagAssigned(viewTag: Int) {
@@ -26,7 +27,7 @@ open class ViewTagResolver<V>(val context: ReactApplicationContext) {
26
27
  if (list != null) {
27
28
  context.runOnUiQueueThread {
28
29
  try {
29
- val view = manager.resolveView(viewTag) as V
30
+ val view = manager.resolveView(viewTag)
30
31
 
31
32
  list.forEach { it.fn(view) }
32
33
  } catch (err: IllegalViewOperationException) {
@@ -51,14 +52,14 @@ open class ViewTagResolver<V>(val context: ReactApplicationContext) {
51
52
  }
52
53
 
53
54
  // calls on UiQueueThread with resolved view
54
- fun withViewResolved(viewTag: Int, reject: Promise? = null, fn: (V) -> Unit) {
55
+ fun <V>withViewResolved(viewTag: Int, reject: Promise? = null, fn: (V) -> Unit) {
55
56
  context.runOnUiQueueThread() {
56
57
  try {
57
58
  val view = manager.resolveView(viewTag) as V
58
59
  fn(view)
59
60
  } catch (err: IllegalViewOperationException) {
60
61
  if (!createdViews.contains(viewTag)) {
61
- viewWaiters.getOrPut(viewTag) { mutableListOf<ViewTagWaiter<V>>() }.add(ViewTagWaiter(fn, reject))
62
+ viewWaiters.getOrPut(viewTag) { mutableListOf<ViewTagWaiter<View>>() }.add(ViewTagWaiter<View>({ view -> fn(view as V) }, reject))
62
63
  } else {
63
64
  reject?.reject(err)
64
65
  }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaDelegate.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+ import com.facebook.react.bridge.DynamicFromObject;
15
+ import com.facebook.react.uimanager.BaseViewManagerDelegate;
16
+ import com.facebook.react.uimanager.BaseViewManagerInterface;
17
+
18
+ public class RNMBXImageSourceManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNMBXImageSourceManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
19
+ public RNMBXImageSourceManagerDelegate(U viewManager) {
20
+ super(viewManager);
21
+ }
22
+ @Override
23
+ public void setProperty(T view, String propName, @Nullable Object value) {
24
+ switch (propName) {
25
+ case "id":
26
+ mViewManager.setId(view, new DynamicFromObject(value));
27
+ break;
28
+ case "existing":
29
+ mViewManager.setExisting(view, new DynamicFromObject(value));
30
+ break;
31
+ case "url":
32
+ mViewManager.setUrl(view, new DynamicFromObject(value));
33
+ break;
34
+ case "coordinates":
35
+ mViewManager.setCoordinates(view, new DynamicFromObject(value));
36
+ break;
37
+ default:
38
+ super.setProperty(view, propName, value);
39
+ }
40
+ }
41
+ }