@rnmapbox/maps 10.0.0-rc.0 → 10.0.0-rc.10

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 (67) hide show
  1. package/README.md +2 -2
  2. package/android/rctmgl/build.gradle +1 -1
  3. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractEventEmitter.kt +75 -0
  4. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.kt +1 -1
  5. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/camera/RCTMGLCamera.kt +92 -9
  6. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.kt +2 -2
  7. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/location/LocationComponentManager.kt +3 -2
  8. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.kt +23 -0
  9. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.kt +86 -17
  10. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.kt +24 -8
  11. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.kt +1 -1
  12. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.kt +1 -1
  13. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.kt +1 -1
  14. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/AbstractEvent.kt +49 -0
  15. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/IEvent.kt +17 -0
  16. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/LocationEvent.kt +11 -16
  17. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.kt +10 -10
  18. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/constants/EventTypes.kt +44 -0
  19. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLLocationModule.kt +36 -1
  20. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLModule.kt +4 -3
  21. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.kt +474 -405
  22. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/FeatureCollection.kt +10 -0
  23. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/Geometry.kt +22 -0
  24. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/JSONObject.kt +78 -0
  25. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/ReadableArray.kt +1 -1
  26. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/extensions/Value.kt +9 -0
  27. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/utils/writeableMapArrayOf.kt +41 -0
  28. package/ios/RCTMGL-v10/RCTMGLCamera.swift +1 -6
  29. package/ios/RCTMGL-v10/RCTMGLImages.swift +0 -1
  30. package/ios/RCTMGL-v10/RCTMGLLocationModule.m +2 -2
  31. package/ios/RCTMGL-v10/RCTMGLMapView.swift +7 -1
  32. package/ios/RCTMGL-v10/RCTMGLOfflineModule.swift +283 -307
  33. package/ios/install.md +7 -0
  34. package/lib/commonjs/components/MapView.js +12 -2
  35. package/lib/commonjs/components/MapView.js.map +1 -1
  36. package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
  37. package/lib/commonjs/components/Terrain.js +1 -2
  38. package/lib/commonjs/components/Terrain.js.map +1 -1
  39. package/lib/commonjs/components/VectorSource.js +2 -0
  40. package/lib/commonjs/components/VectorSource.js.map +1 -1
  41. package/lib/commonjs/modules/location/locationManager.js +4 -0
  42. package/lib/commonjs/modules/location/locationManager.js.map +1 -1
  43. package/lib/module/components/MapView.js +12 -2
  44. package/lib/module/components/MapView.js.map +1 -1
  45. package/lib/module/components/NativeUserLocation.js.map +1 -1
  46. package/lib/module/components/Terrain.js +1 -2
  47. package/lib/module/components/Terrain.js.map +1 -1
  48. package/lib/module/components/VectorSource.js +3 -0
  49. package/lib/module/components/VectorSource.js.map +1 -1
  50. package/lib/module/modules/location/locationManager.js +4 -0
  51. package/lib/module/modules/location/locationManager.js.map +1 -1
  52. package/lib/typescript/components/MapView.d.ts +7 -1
  53. package/lib/typescript/components/MapView.d.ts.map +1 -1
  54. package/lib/typescript/components/NativeUserLocation.d.ts.map +1 -1
  55. package/lib/typescript/components/Terrain.d.ts.map +1 -1
  56. package/package.json +1 -1
  57. package/plugin/install.md +17 -0
  58. package/rnmapbox-maps.podspec +1 -1
  59. package/src/components/MapView.tsx +11 -3
  60. package/src/components/NativeUserLocation.tsx +5 -3
  61. package/src/components/Terrain.tsx +3 -5
  62. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/AbstractEventEmitter.java +0 -82
  63. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +0 -16
  64. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +0 -31
  65. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/AbstractEvent.java +0 -62
  66. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/IEvent.java +0 -18
  67. package/android/rctmgl/src/main/java-v10/com/mapbox/rctmgl/events/constants/EventTypes.java +0 -51
@@ -22,6 +22,7 @@ import { getFilter } from '../utils/filterUtils';
22
22
  import Logger from '../utils/Logger';
23
23
  import { FilterExpression } from '../utils/MapboxStyles';
24
24
  import { type Position } from '../types/Position';
25
+ import { type Location } from '../modules/location/locationManager';
25
26
 
26
27
  import NativeBridgeComponent from './NativeBridgeComponent';
27
28
 
@@ -184,7 +185,7 @@ type Props = ViewProps & {
184
185
  /**
185
186
  * Enable/Disable the compass from appearing on the map
186
187
  */
187
- compassEnabled: boolean;
188
+ compassEnabled?: boolean;
188
189
 
189
190
  /**
190
191
  * [`mapbox` (v10) implementation only] Enable/Disable if the compass should fade out when the map is pointing north
@@ -226,6 +227,12 @@ type Props = ViewProps & {
226
227
  */
227
228
  surfaceView?: boolean;
228
229
 
230
+ /**
231
+ * [Android only] Experimental, call requestDisallowInterceptTouchEvent on parent with onTochEvent, this allows touch interaction to work
232
+ * when embedded into a scroll view
233
+ */
234
+ requestDisallowInterceptTouchEvent?: boolean;
235
+
229
236
  /**
230
237
  * [`mapbox` (v10) implementation only]
231
238
  * Set map's label locale, e.g. { "locale": "es" } will localize labels to Spanish, { "locale": "current" } will localize labels to system locale.
@@ -397,7 +404,8 @@ class MapView extends NativeBridgeComponent(
397
404
  compassFadeWhenNorth: false,
398
405
  logoEnabled: true,
399
406
  scaleBarEnabled: true,
400
- surfaceView: false,
407
+ surfaceView: MGLModule.MapboxV10 ? true : false,
408
+ requestDisallowInterceptTouchEvent: false,
401
409
  regionWillChangeDebounceTime: 10,
402
410
  regionDidChangeDebounceTime: 500,
403
411
  };
@@ -526,7 +534,7 @@ class MapView extends NativeBridgeComponent(
526
534
  );
527
535
  this.deprecationLogged.regionDidChange = true;
528
536
  }
529
- if (props.onRegionDidChange) {
537
+ if (props.onMapIdle) {
530
538
  console.warn(
531
539
  'rnmapbox/maps: only one of MapView.onRegionDidChange or onMapIdle is supported',
532
540
  );
@@ -1,5 +1,5 @@
1
1
  import React, { memo } from 'react';
2
- import { HostComponent, requireNativeComponent } from 'react-native';
2
+ import { requireNativeComponent } from 'react-native';
3
3
 
4
4
  const NATIVE_MODULE_NAME = 'RCTMGLNativeUserLocation';
5
5
 
@@ -23,8 +23,10 @@ export type Props = {
23
23
  iosShowsUserHeadingIndicator?: boolean;
24
24
  };
25
25
 
26
- const RCTMGLNativeUserLocation: HostComponent<Props> =
27
- requireNativeComponent(NATIVE_MODULE_NAME);
26
+ type NativeProps = Props;
27
+
28
+ const RCTMGLNativeUserLocation =
29
+ requireNativeComponent<NativeProps>(NATIVE_MODULE_NAME);
28
30
 
29
31
  const NativeUserLocation = memo((props: Props) => {
30
32
  return <RCTMGLNativeUserLocation {...props} />;
@@ -1,5 +1,5 @@
1
1
  import React, { memo, useMemo } from 'react';
2
- import { HostComponent, requireNativeComponent } from 'react-native';
2
+ import { requireNativeComponent } from 'react-native';
3
3
 
4
4
  import type { TerrainLayerStyleProps, Value } from '../utils/MapboxStyles';
5
5
  import { StyleValue, transformStyle } from '../utils/StyleValue';
@@ -33,7 +33,7 @@ export const Terrain = memo((props: Props) => {
33
33
 
34
34
  if (props.exaggeration) {
35
35
  console.warn(
36
- `Tarrain: exaggeration property is deprecated pls use style.exaggeration instead!`,
36
+ `Terrain: exaggeration property is deprecated pls use style.exaggeration instead!`,
37
37
  );
38
38
  style = { exaggeration: props.exaggeration, ...style };
39
39
  }
@@ -45,10 +45,8 @@ export const Terrain = memo((props: Props) => {
45
45
  style: undefined,
46
46
  };
47
47
  }, [props, style]);
48
- console.log('BASE PROPS', baseProps);
49
48
 
50
49
  return <RCTMGLTerrain {...baseProps} />;
51
50
  });
52
51
 
53
- const RCTMGLTerrain: HostComponent<NativeProps> =
54
- requireNativeComponent(NATIVE_MODULE_NAME);
52
+ const RCTMGLTerrain = requireNativeComponent<NativeProps>(NATIVE_MODULE_NAME);
@@ -1,82 +0,0 @@
1
- package com.mapbox.rctmgl.components;
2
-
3
- import android.view.ViewGroup;
4
-
5
- import com.facebook.react.bridge.ReactApplicationContext;
6
- import com.facebook.react.common.MapBuilder;
7
- import com.facebook.react.uimanager.ThemedReactContext;
8
- import com.facebook.react.uimanager.UIManagerModule;
9
- import com.facebook.react.uimanager.ViewGroupManager;
10
- import com.facebook.react.uimanager.events.EventDispatcher;
11
-
12
- import com.mapbox.rctmgl.events.IEvent;
13
- import com.mapbox.rctmgl.components.AbstractEvent;
14
-
15
- import java.util.HashMap;
16
- import java.util.Map;
17
-
18
- import javax.annotation.Nullable;
19
- import javax.annotation.Nonnull;
20
-
21
- /**
22
- * Created by nickitaliano on 8/23/17.
23
- */
24
-
25
- abstract public class AbstractEventEmitter<T extends ViewGroup> extends ViewGroupManager<T> {
26
- private static final double BRIDGE_TIMEOUT_MS = 10;
27
- private Map<String, Long> mRateLimitedEvents;
28
- private EventDispatcher mEventDispatcher;
29
- private ReactApplicationContext mRCTAppContext;
30
-
31
- public AbstractEventEmitter(ReactApplicationContext reactApplicationContext) {
32
- mRateLimitedEvents = new HashMap<>();
33
- mRCTAppContext = reactApplicationContext;
34
- }
35
-
36
- public void handleEvent(IEvent event) {
37
- String eventCacheKey = getEventCacheKey(event);
38
-
39
- // fail safe to protect bridge from being spammed
40
- if (shouldDropEvent(eventCacheKey, event)) {
41
- return;
42
- }
43
-
44
- mRateLimitedEvents.put(eventCacheKey, System.currentTimeMillis());
45
- mEventDispatcher.dispatchEvent(new AbstractEvent(event.getID(), event.getKey(), event.canCoalesce(), event.toJSON()));
46
- }
47
-
48
- @Override
49
- protected void addEventEmitters(ThemedReactContext context, @Nonnull T view) {
50
- mEventDispatcher = context.getNativeModule(UIManagerModule.class).getEventDispatcher();
51
- }
52
-
53
- @Nullable
54
- @Override
55
- public Map<String, Object> getExportedCustomDirectEventTypeConstants() {
56
- Map<String, String> events = customEvents();
57
-
58
- if (events == null) {
59
- return null;
60
- }
61
-
62
- Map<String, Object> exportedEvents = new HashMap<>();
63
-
64
- for (Map.Entry<String, String> event : events.entrySet()) {
65
- exportedEvents.put(event.getKey(), MapBuilder.of("registrationName", event.getValue()));
66
- }
67
-
68
- return exportedEvents;
69
- }
70
-
71
- @Nullable
72
- public abstract Map<String, String> customEvents();
73
-
74
- private boolean shouldDropEvent(String cacheKey, IEvent event) {
75
- Long lastEventTimestamp = mRateLimitedEvents.get(cacheKey);
76
- return lastEventTimestamp != null && (event.getTimestamp() - lastEventTimestamp) <= BRIDGE_TIMEOUT_MS;
77
- }
78
-
79
- private String getEventCacheKey(IEvent event) {
80
- return String.format("%s-%s", event.getKey(), event.getType());
81
- }
82
- }
@@ -1,16 +0,0 @@
1
- package com.mapbox.rctmgl.components.mapview;
2
-
3
- import android.content.Context;
4
- //import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
5
- /**
6
- * Created by hernanmateo on 12/11/18.
7
- */
8
-
9
- @SuppressWarnings({"MissingPermission"})
10
- public class RCTMGLAndroidTextureMapView extends RCTMGLMapView {
11
- public static final String LOG_TAG = "RCTMGLAndroidTextureMapView";
12
-
13
- public RCTMGLAndroidTextureMapView(Context context, RCTMGLAndroidTextureMapViewManager manager/*, MapboxMapOptions options*/) {
14
- super(context, manager/*, options*/);
15
- }
16
- }
@@ -1,31 +0,0 @@
1
- package com.mapbox.rctmgl.components.mapview;
2
-
3
- import com.facebook.react.bridge.ReactApplicationContext;
4
- //import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
5
- import com.facebook.react.uimanager.ThemedReactContext;
6
- import com.facebook.react.uimanager.annotations.ReactProp;
7
-
8
- /**
9
- * Created by hernanmateo on 12/11/18.
10
- */
11
-
12
- public class RCTMGLAndroidTextureMapViewManager extends RCTMGLMapViewManager {
13
- public static final String LOG_TAG = "RCTMGLAndroidTextureMapViewManager";
14
- public static final String REACT_CLASS = "RCTMGLAndroidTextureMapView";
15
-
16
- public RCTMGLAndroidTextureMapViewManager(ReactApplicationContext context) {
17
- super(context);
18
- }
19
-
20
- @Override
21
- public String getName() {
22
- return REACT_CLASS;
23
- }
24
-
25
- @Override
26
- protected RCTMGLAndroidTextureMapView createViewInstance(ThemedReactContext themedReactContext) {
27
- //MapboxMapOptions options = new MapboxMapOptions();
28
- //options.textureMode(true);
29
- return new RCTMGLAndroidTextureMapView(themedReactContext, this/*, options*/);
30
- }
31
- }
@@ -1,62 +0,0 @@
1
- package com.mapbox.rctmgl.events;
2
-
3
- import android.view.View;
4
-
5
- import com.facebook.react.bridge.Arguments;
6
- import com.facebook.react.bridge.WritableMap;
7
-
8
- abstract public class AbstractEvent implements IEvent {
9
- private int mTagID;
10
- private String mEventType;
11
- private long mTimestamp;
12
-
13
- public AbstractEvent(String eventType) {
14
- this(null, eventType);
15
- }
16
-
17
- public AbstractEvent(View view, String eventType) {
18
- mEventType = eventType;
19
-
20
- if (view != null) {
21
- mTagID = view.getId();
22
- }
23
-
24
- mTimestamp = System.currentTimeMillis();
25
- }
26
-
27
- public int getID() {
28
- return mTagID;
29
- }
30
-
31
- public String getType() {
32
- return mEventType;
33
- }
34
-
35
- public boolean equals(IEvent event) {
36
- return getKey().equals(event.getKey()) && mEventType.equals(event.getType());
37
- }
38
-
39
- public WritableMap getPayload() {
40
- return Arguments.createMap();
41
- }
42
-
43
- public long getTimestamp() {
44
- return mTimestamp;
45
- }
46
-
47
- public WritableMap toJSON() {
48
- WritableMap map = Arguments.createMap();
49
- map.putString("type", getType());
50
-
51
- WritableMap payloadClone = Arguments.createMap();
52
- payloadClone.merge(getPayload());
53
- map.putMap("payload", payloadClone);
54
- return map;
55
- }
56
-
57
- @Override
58
- public boolean canCoalesce() {
59
- // default behavior of com.facebook.react.uimanager.events.Event
60
- return true;
61
- }
62
- }
@@ -1,18 +0,0 @@
1
- package com.mapbox.rctmgl.events;
2
-
3
- import com.facebook.react.bridge.WritableMap;
4
-
5
- /**
6
- * Created by nickitaliano on 8/23/17.
7
- */
8
-
9
- public interface IEvent {
10
- int getID();
11
- String getKey();
12
- String getType();
13
- long getTimestamp();
14
- boolean equals(IEvent event);
15
- boolean canCoalesce();
16
- WritableMap getPayload();
17
- WritableMap toJSON();
18
- }
@@ -1,51 +0,0 @@
1
- package com.mapbox.rctmgl.events.constants;
2
-
3
- public class EventTypes {
4
- // map event types
5
- public static final String MAP_CLICK = "press";
6
- public static final String MAP_LONG_CLICK = "longpress";
7
- public static final String MAP_USER_TRACKING_MODE_CHANGE = "usertrackingmodechange";
8
-
9
- public static final String REGION_WILL_CHANGE = "regionwillchange";
10
- public static final String REGION_IS_CHANGING = "regionischanging"; // deprecated
11
- public static final String CAMERA_CHANGED = "camerachanged";
12
- public static final String REGION_DID_CHANGE = "regiondidchange";
13
- public static final String MAP_IDLE = "mapidle";
14
- public static final String USER_LOCATION_UPDATED = "userlocationdupdated";
15
-
16
-
17
-
18
- public static final String WILL_START_LOADING_MAP = "willstartloadingmap";
19
- public static final String DID_FINISH_LOADING_MAP = "didfinishloadingmap";
20
- public static final String DID_FAIL_LOADING_MAP = "didfailloadingmap";
21
-
22
- public static final String WILL_START_RENDERING_FRAME = "willstartrenderingframe";
23
- public static final String DID_FINISH_RENDERING_FRAME = "didfinishrenderingframe";
24
- public static final String DID_FINISH_RENDERING_FRAME_FULLY = "didfinishrenderingframefully";
25
-
26
- public static final String WILL_START_RENDERING_MAP = "willstartrenderingmap";
27
- public static final String DID_FINISH_RENDERING_MAP = "didfinishrenderingmap";
28
- public static final String DID_FINISH_RENDERING_MAP_FULLY = "didfinishrenderingmapfully";
29
-
30
- public static final String DID_FINISH_LOADING_STYLE = "didfinishloadingstyle";
31
-
32
- // point annotation event types
33
- public static final String ANNOTATION_SELECTED = "annotationselected";
34
- public static final String ANNOTATION_DESELECTED = "annotationdeselected";
35
- public static final String ANNOTATION_DRAG_START = "annotationdragstart";
36
- public static final String ANNOTATION_DRAG = "annotationdrag";
37
- public static final String ANNOTATION_DRAG_END = "annotationdragend";
38
-
39
- // offline event types
40
- public static final String OFFLINE_ERROR = "offlineerror";
41
- public static final String OFFLINE_TILE_LIMIT = "offlinetilelimit";
42
- public static final String OFFLINE_STATUS = "offlinestatus";
43
-
44
- // shape source event types
45
- public static final String SHAPE_SOURCE_LAYER_CLICK = "shapesourcelayerpress";
46
- public static final String VECTOR_SOURCE_LAYER_CLICK = "vectorsourcelayerpress";
47
- public static final String RASTER_SOURCE_LAYER_CLICK = "rastersourcelayerpress";
48
-
49
- // image missing event type
50
- public static final String IMAGES_MISSING = "imagesmissing";
51
- }