@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.
- package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +19 -8
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXAndroidTextureMapViewManager.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +15 -15
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSource.kt +21 -23
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt +0 -46
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt +61 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/{RCTSource.kt → RNMBXSource.kt} +8 -8
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSource.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/events/FeatureClickEvent.java +4 -4
- package/android/src/main/java/com/rnmapbox/rnmbx/utils/ViewTagResolver.kt +6 -5
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerDelegate.java +41 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXImageSourceManagerInterface.java +20 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerDelegate.java +50 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterDemSourceManagerInterface.java +23 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerDelegate.java +56 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterSourceManagerInterface.java +25 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerDelegate.java +77 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXShapeSourceManagerInterface.java +32 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerDelegate.java +59 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXVectorSourceManagerInterface.java +26 -0
- package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXShapeSourceModuleSpec.java +48 -0
- package/ios/RNMBX/RNMBXBackgroundLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXCircleLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXFillExtrusionLayerComponentView.mm +3 -1
- package/ios/RNMBX/RNMBXFillLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXHeatmapLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXImageSource.swift +3 -3
- package/ios/RNMBX/RNMBXImageSourceComponentView.h +15 -0
- package/ios/RNMBX/RNMBXImageSourceComponentView.mm +100 -0
- package/ios/RNMBX/{RNMBXImageSourceManager.m → RNMBXImageSourceViewManager.m} +1 -1
- package/ios/RNMBX/{RNMBXImageSourceManager.swift → RNMBXImageSourceViewManager.swift} +2 -2
- package/ios/RNMBX/RNMBXInteractiveElement.swift +7 -7
- package/ios/RNMBX/RNMBXLayer.swift +1 -1
- package/ios/RNMBX/RNMBXLineLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXMapFeatureView.h +7 -0
- package/ios/RNMBX/RNMBXRasterDemSource.swift +6 -6
- package/ios/RNMBX/RNMBXRasterDemSourceComponentView.h +17 -0
- package/ios/RNMBX/RNMBXRasterDemSourceComponentView.mm +116 -0
- package/ios/RNMBX/{RNMBXRasterDemSourceManager.m → RNMBXRasterDemSourceViewManager.m} +1 -7
- package/ios/RNMBX/{RNMBXRasterDemSourceManager.swift → RNMBXRasterDemSourceViewManager.swift} +2 -2
- package/ios/RNMBX/RNMBXRasterLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXRasterSource.swift +8 -8
- package/ios/RNMBX/RNMBXRasterSourceComponentView.h +17 -0
- package/ios/RNMBX/RNMBXRasterSourceComponentView.mm +124 -0
- package/ios/RNMBX/{RNMBXRasterSourceManager.m → RNMBXRasterSourceViewManager.m} +1 -1
- package/ios/RNMBX/{RNMBXRasterSourceManager.swift → RNMBXRasterSourceViewManager.swift} +2 -2
- package/ios/RNMBX/RNMBXShapeSource.swift +11 -11
- package/ios/RNMBX/RNMBXShapeSourceComponentView.h +17 -0
- package/ios/RNMBX/RNMBXShapeSourceComponentView.mm +153 -0
- package/ios/RNMBX/RNMBXShapeSourceModule.h +18 -0
- package/ios/RNMBX/RNMBXShapeSourceModule.mm +87 -0
- package/ios/RNMBX/RNMBXShapeSourceViewManager.m +26 -0
- package/ios/RNMBX/{RNMBXShapeSourceManager.swift → RNMBXShapeSourceViewManager.swift} +12 -42
- package/ios/RNMBX/RNMBXSkyLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXSource.swift +36 -27
- package/ios/RNMBX/RNMBXSymbolLayerComponentView.mm +2 -0
- package/ios/RNMBX/RNMBXTileSource.swift +2 -2
- package/ios/RNMBX/RNMBXVectorSource.swift +6 -6
- package/ios/RNMBX/RNMBXVectorSourceComponentView.h +17 -0
- package/ios/RNMBX/RNMBXVectorSourceComponentView.mm +141 -0
- package/ios/RNMBX/{RNMBXVectorSourceManager.m → RNMBXVectorSourceViewManager.m} +1 -1
- package/ios/RNMBX/{RNMBXVectorSourceManager.swift → RNMBXVectorSourceViewManager.swift} +2 -2
- package/ios/install.md +1 -0
- package/lib/commonjs/components/ImageSource.js +10 -7
- package/lib/commonjs/components/ImageSource.js.map +1 -1
- package/lib/commonjs/components/RasterDemSource.js +11 -8
- package/lib/commonjs/components/RasterDemSource.js.map +1 -1
- package/lib/commonjs/components/RasterSource.js +11 -8
- package/lib/commonjs/components/RasterSource.js.map +1 -1
- package/lib/commonjs/components/ShapeSource.js +31 -52
- package/lib/commonjs/components/ShapeSource.js.map +1 -1
- package/lib/commonjs/components/VectorSource.js +26 -39
- package/lib/commonjs/components/VectorSource.js.map +1 -1
- package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js +10 -0
- package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js.map +1 -0
- package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js +10 -0
- package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js +10 -0
- package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js +10 -0
- package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js +10 -0
- package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js +10 -0
- package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js.map +1 -0
- package/lib/module/components/ImageSource.js +10 -7
- package/lib/module/components/ImageSource.js.map +1 -1
- package/lib/module/components/RasterDemSource.js +11 -8
- package/lib/module/components/RasterDemSource.js.map +1 -1
- package/lib/module/components/RasterSource.js +11 -8
- package/lib/module/components/RasterSource.js.map +1 -1
- package/lib/module/components/ShapeSource.js +32 -53
- package/lib/module/components/ShapeSource.js.map +1 -1
- package/lib/module/components/VectorSource.js +28 -41
- package/lib/module/components/VectorSource.js.map +1 -1
- package/lib/module/specs/NativeRNMBXShapeSourceModule.js +5 -0
- package/lib/module/specs/NativeRNMBXShapeSourceModule.js.map +1 -0
- package/lib/module/specs/RNMBXImageSourceNativeComponent.js +3 -0
- package/lib/module/specs/RNMBXImageSourceNativeComponent.js.map +1 -0
- package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js +3 -0
- package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -0
- package/lib/module/specs/RNMBXRasterSourceNativeComponent.js +3 -0
- package/lib/module/specs/RNMBXRasterSourceNativeComponent.js.map +1 -0
- package/lib/module/specs/RNMBXShapeSourceNativeComponent.js +3 -0
- package/lib/module/specs/RNMBXShapeSourceNativeComponent.js.map +1 -0
- package/lib/module/specs/RNMBXVectorSourceNativeComponent.js +3 -0
- package/lib/module/specs/RNMBXVectorSourceNativeComponent.js.map +1 -0
- package/lib/typescript/src/components/ImageSource.d.ts.map +1 -1
- package/lib/typescript/src/components/RasterDemSource.d.ts +0 -1
- package/lib/typescript/src/components/RasterDemSource.d.ts.map +1 -1
- package/lib/typescript/src/components/RasterSource.d.ts +0 -1
- package/lib/typescript/src/components/RasterSource.d.ts.map +1 -1
- package/lib/typescript/src/components/ShapeSource.d.ts +2 -58
- package/lib/typescript/src/components/ShapeSource.d.ts.map +1 -1
- package/lib/typescript/src/components/VectorSource.d.ts +3 -64
- package/lib/typescript/src/components/VectorSource.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts +11 -0
- package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXImageSourceNativeComponent.d.ts +11 -0
- package/lib/typescript/src/specs/RNMBXImageSourceNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXRasterDemSourceNativeComponent.d.ts +15 -0
- package/lib/typescript/src/specs/RNMBXRasterDemSourceNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXRasterSourceNativeComponent.d.ts +17 -0
- package/lib/typescript/src/specs/RNMBXRasterSourceNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts +29 -0
- package/lib/typescript/src/specs/RNMBXShapeSourceNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXVectorSourceNativeComponent.d.ts +23 -0
- package/lib/typescript/src/specs/RNMBXVectorSourceNativeComponent.d.ts.map +1 -0
- package/package.json +1 -1
- package/plugin/build/withMapbox.d.ts +5 -4
- package/plugin/build/withMapbox.js +46 -19
- package/plugin/install.md +20 -0
- package/plugin/src/withMapbox.ts +79 -21
- package/setup-jest.js +6 -0
- package/src/components/ImageSource.tsx +4 -6
- package/src/components/RasterDemSource.tsx +5 -8
- package/src/components/RasterSource.tsx +5 -8
- package/src/components/ShapeSource.tsx +39 -86
- package/src/components/VectorSource.tsx +20 -44
- package/src/specs/NativeRNMBXShapeSourceModule.ts +23 -0
- package/src/specs/RNMBXImageSourceNativeComponent.ts +15 -0
- package/src/specs/RNMBXRasterDemSourceNativeComponent.ts +19 -0
- package/src/specs/RNMBXRasterSourceNativeComponent.ts +21 -0
- package/src/specs/RNMBXShapeSourceNativeComponent.ts +35 -0
- package/src/specs/RNMBXVectorSourceNativeComponent.ts +28 -0
- package/ios/RNMBX/RNMBXShapeSourceManager.m +0 -45
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Annotation.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Event.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Feature.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/HttpInterceptor.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Image.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Light.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Location.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/MapboxMap.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/OfflineManager.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/OrnamentSettings.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/ResourceOption.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/Snapshot.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v10/com/{mapbox → rnmapbox}/rnmbx/v11compat/style.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Annotation.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Event.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Feature.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/HttpInterceptor.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Image.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Light.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Location.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/MapboxMap.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/OfflineManager.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/OrnamentSettings.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/ResourceOption.kt +0 -0
- /package/android/src/main/mapbox-v11-compat/v11/com/{mapbox → rnmapbox}/rnmbx/v11compat/Snapshot.kt +0 -0
- /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
|
|
49
|
-
fun
|
|
50
|
-
val viewTagResolver =
|
|
49
|
+
var viewTagResolver: ViewTagResolver? = null
|
|
50
|
+
fun getViewTagResolver(context: ReactApplicationContext) : ViewTagResolver {
|
|
51
|
+
val viewTagResolver = viewTagResolver
|
|
51
52
|
if (viewTagResolver == null) {
|
|
52
|
-
val viewTagResolver = ViewTagResolver
|
|
53
|
-
|
|
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,
|
|
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,
|
|
85
|
-
managers.add(RNMBXMapViewManager(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
|
|
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
|
|
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.
|
|
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,
|
|
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
|
|
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
|
|
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<
|
|
556
|
+
private val allTouchableSources: List<RNMBXSource<*>>
|
|
557
557
|
private get() {
|
|
558
|
-
val sources: MutableList<
|
|
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<
|
|
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,
|
|
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<
|
|
665
|
+
fun run(hitTouchableSources: List<RNMBXSource<*>?>?, hits: Map<String?, List<Feature?>?>)
|
|
666
666
|
}
|
|
667
667
|
|
|
668
668
|
fun handleTapInSources(
|
|
669
|
-
sources: LinkedList<
|
|
669
|
+
sources: LinkedList<RNMBXSource<*>>, screenPoint: ScreenCoordinate,
|
|
670
670
|
hits: HashMap<String?, List<Feature?>?>,
|
|
671
|
-
hitTouchableSources: ArrayList<
|
|
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<
|
|
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<
|
|
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(
|
|
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
|
|
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
|
|
package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXImageSource.kt
CHANGED
|
@@ -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?) :
|
|
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
|
package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSource.kt
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
180
|
-
|
|
181
|
-
mManager.handleEvent(event)
|
|
180
|
+
private fun callbackSuccess(payload: WritableMap, promise: Promise) {
|
|
181
|
+
promise.resolve(payload)
|
|
182
182
|
}
|
|
183
|
-
private fun callbackError(
|
|
184
|
-
|
|
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(
|
|
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(
|
|
198
|
+
callbackSuccess(payload, promise)
|
|
202
199
|
return@QueryFeatureExtensionCallback
|
|
203
200
|
} else {
|
|
204
201
|
callbackError(
|
|
205
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
}
|
package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceModule.kt
ADDED
|
@@ -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.
|
|
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.
|
|
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
|
|
30
|
+
abstract class RNMBXSource<T : Source?>(context: Context?) : AbstractMapFeature(context) {
|
|
31
31
|
@JvmField
|
|
32
|
-
|
|
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
|
-
"
|
|
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("
|
|
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("
|
|
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 = "
|
|
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
|
package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSource.kt
CHANGED
|
@@ -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?) :
|
|
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.
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
18
|
+
open class ViewTagResolver(val context: ReactApplicationContext) {
|
|
18
19
|
private val createdViews: HashSet<Int> = hashSetOf<Int>()
|
|
19
|
-
private val viewWaiters: HashMap<Int, MutableList<ViewTagWaiter<
|
|
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)
|
|
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<
|
|
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
|
+
}
|