react-native-maps 1.21.0-alpha.50 → 1.21.0-alpha.52
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/build.gradle +2 -2
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +199 -0
- package/android/generated/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +71 -0
- package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +345 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +26 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +24 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +24 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +43 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +14 -1
- package/android/src/main/java/com/rnmaps/maps/MapView.java +155 -86
- package/lib/MapView.js +50 -77
- package/lib/specs/NativeComponentMapView.js +1 -3
- package/package.json +1 -1
|
@@ -23,9 +23,12 @@ import androidx.core.content.PermissionChecker;
|
|
|
23
23
|
import androidx.core.view.GestureDetectorCompat;
|
|
24
24
|
import androidx.core.view.MotionEventCompat;
|
|
25
25
|
|
|
26
|
+
import com.facebook.react.common.MapBuilder;
|
|
27
|
+
|
|
26
28
|
import com.facebook.react.bridge.Arguments;
|
|
27
29
|
import com.facebook.react.bridge.LifecycleEventListener;
|
|
28
30
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
31
|
+
import com.facebook.react.bridge.ReactContext;
|
|
29
32
|
import com.facebook.react.bridge.ReadableArray;
|
|
30
33
|
import com.facebook.react.bridge.ReadableMap;
|
|
31
34
|
import com.facebook.react.bridge.WritableArray;
|
|
@@ -35,6 +38,7 @@ import com.facebook.react.bridge.WritableNativeMap;
|
|
|
35
38
|
import com.facebook.react.uimanager.ThemedReactContext;
|
|
36
39
|
import com.facebook.react.uimanager.UIManagerHelper;
|
|
37
40
|
import com.facebook.react.uimanager.common.UIManagerType;
|
|
41
|
+
import com.facebook.react.uimanager.events.Event;
|
|
38
42
|
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
39
43
|
import com.google.android.gms.maps.CameraUpdate;
|
|
40
44
|
import com.google.android.gms.maps.CameraUpdateFactory;
|
|
@@ -77,6 +81,7 @@ import java.util.HashMap;
|
|
|
77
81
|
import java.util.List;
|
|
78
82
|
import java.util.Map;
|
|
79
83
|
import java.util.concurrent.ExecutionException;
|
|
84
|
+
import com.rnmaps.fabric.event.*;
|
|
80
85
|
|
|
81
86
|
public class MapView extends com.google.android.gms.maps.MapView implements GoogleMap.InfoWindowAdapter,
|
|
82
87
|
GoogleMap.OnMarkerDragListener, OnMapReadyCallback, GoogleMap.OnPoiClickListener, GoogleMap.OnIndoorStateChangeListener {
|
|
@@ -128,12 +133,10 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
128
133
|
private final Map<TileOverlay, MapHeatmap> heatmapMap = new HashMap<>();
|
|
129
134
|
private final Map<TileOverlay, MapGradientPolyline> gradientPolylineMap = new HashMap<>();
|
|
130
135
|
private final GestureDetectorCompat gestureDetector;
|
|
131
|
-
private final MapManager manager;
|
|
132
136
|
private LifecycleEventListener lifecycleListener;
|
|
133
137
|
private boolean paused = false;
|
|
134
138
|
private boolean destroyed = false;
|
|
135
139
|
private final ThemedReactContext context;
|
|
136
|
-
private final EventDispatcher eventDispatcher;
|
|
137
140
|
private final FusedLocationSource fusedLocationSource;
|
|
138
141
|
|
|
139
142
|
private final ViewAttacherGroup attacherGroup;
|
|
@@ -168,15 +171,12 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
168
171
|
}
|
|
169
172
|
return superContext;
|
|
170
173
|
}
|
|
171
|
-
|
|
172
|
-
public MapView(ThemedReactContext reactContext, ReactApplicationContext appContext,
|
|
173
|
-
MapManager manager,
|
|
174
|
+
public MapView(ThemedReactContext context,
|
|
174
175
|
GoogleMapOptions googleMapOptions) {
|
|
175
|
-
super(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
this.context =
|
|
179
|
-
MapsInitializer.initialize(context, this.manager.renderer, renderer -> Log.d("AirMapRenderer", renderer.toString()));
|
|
176
|
+
super(context, googleMapOptions);
|
|
177
|
+
// todo add support for legacy renderer
|
|
178
|
+
MapsInitializer.initialize(context, MapsInitializer.Renderer.LATEST, renderer -> Log.d("AirMapRenderer", renderer.toString()));
|
|
179
|
+
this.context = context;
|
|
180
180
|
super.onCreate(null);
|
|
181
181
|
super.onResume();
|
|
182
182
|
super.getMapAsync(this);
|
|
@@ -186,41 +186,34 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
186
186
|
fusedLocationSource = new FusedLocationSource(context);
|
|
187
187
|
|
|
188
188
|
gestureDetector =
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
189
|
+
new GestureDetectorCompat(context, new GestureDetector.SimpleOnGestureListener() {
|
|
190
|
+
|
|
191
|
+
@Override
|
|
192
|
+
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
|
|
193
|
+
float distanceY) {
|
|
194
|
+
if (handlePanDrag) {
|
|
195
|
+
onPanDrag(e2);
|
|
196
|
+
}
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
@Override
|
|
201
|
+
public boolean onDoubleTap(MotionEvent ev) {
|
|
202
|
+
onDoublePress(ev);
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
206
|
|
|
207
207
|
this.addOnLayoutChangeListener(new OnLayoutChangeListener() {
|
|
208
208
|
@Override public void onLayoutChange(View v, int left, int top, int right, int bottom,
|
|
209
|
-
|
|
209
|
+
int oldLeft, int oldTop, int oldRight, int oldBottom) {
|
|
210
210
|
if (!paused) {
|
|
211
211
|
MapView.this.cacheView();
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
});
|
|
215
215
|
|
|
216
|
-
int uiManagerType = UIManagerType.DEFAULT;
|
|
217
|
-
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
|
218
|
-
uiManagerType = UIManagerType.FABRIC;
|
|
219
|
-
}
|
|
220
216
|
|
|
221
|
-
eventDispatcher = UIManagerHelper
|
|
222
|
-
.getUIManager(reactContext, uiManagerType)
|
|
223
|
-
.getEventDispatcher();
|
|
224
217
|
|
|
225
218
|
// Set up a parent view for triggering visibility in subviews that depend on it.
|
|
226
219
|
// Mainly ReactImageView depends on Fresco which depends on onVisibilityChanged() event
|
|
@@ -234,6 +227,33 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
234
227
|
addView(attacherGroup);
|
|
235
228
|
}
|
|
236
229
|
|
|
230
|
+
public MapView(ThemedReactContext reactContext, ReactApplicationContext appContext,
|
|
231
|
+
MapManager manager,
|
|
232
|
+
GoogleMapOptions googleMapOptions) {
|
|
233
|
+
this(null, googleMapOptions);
|
|
234
|
+
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
@FunctionalInterface
|
|
239
|
+
public interface EventCreator<T extends Event> {
|
|
240
|
+
T create(int surfaceId, int viewId, WritableMap payload);
|
|
241
|
+
}
|
|
242
|
+
private <T extends Event> void dispatchEvent(WritableMap payload, EventCreator<T> creator) {
|
|
243
|
+
// Cast context to ReactContext
|
|
244
|
+
ReactContext reactContext = context;
|
|
245
|
+
|
|
246
|
+
// Get the event dispatcher
|
|
247
|
+
EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());
|
|
248
|
+
|
|
249
|
+
// If there is a dispatcher, create and dispatch the event
|
|
250
|
+
if (eventDispatcher != null) {
|
|
251
|
+
int surfaceId = UIManagerHelper.getSurfaceId(reactContext);
|
|
252
|
+
T event = creator.create(surfaceId, getId(), payload);
|
|
253
|
+
eventDispatcher.dispatchEvent(event);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
237
257
|
@Override
|
|
238
258
|
public void onMapReady(@NonNull final GoogleMap map) {
|
|
239
259
|
if (destroyed) {
|
|
@@ -257,8 +277,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
257
277
|
this.map.setOnIndoorStateChangeListener(this);
|
|
258
278
|
|
|
259
279
|
applyBridgedProps();
|
|
260
|
-
|
|
261
|
-
manager.pushEvent(context, this, "onMapReady", new WritableNativeMap());
|
|
280
|
+
dispatchEvent(new WritableNativeMap(), OnMapReadyEvent::new);
|
|
262
281
|
|
|
263
282
|
final MapView view = this;
|
|
264
283
|
|
|
@@ -278,8 +297,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
278
297
|
coordinate.putBoolean("isFromMockProvider", location.isFromMockProvider());
|
|
279
298
|
|
|
280
299
|
event.putMap("coordinate", coordinate);
|
|
281
|
-
|
|
282
|
-
manager.pushEvent(context, view, "onUserLocationChange", event);
|
|
300
|
+
dispatchEvent(event, OnUserLocationChangeEvent::new);
|
|
283
301
|
}
|
|
284
302
|
});
|
|
285
303
|
|
|
@@ -288,15 +306,19 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
288
306
|
public boolean onMarkerClick(@NonNull Marker marker) {
|
|
289
307
|
MapMarker airMapMarker = getMarkerMap(marker);
|
|
290
308
|
|
|
291
|
-
WritableMap
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
309
|
+
WritableMap eventData = makeClickEventData(marker.getPosition());
|
|
310
|
+
eventData.putString("action", "marker-press");
|
|
311
|
+
eventData.putString("id", airMapMarker.getIdentifier());
|
|
312
|
+
|
|
313
|
+
dispatchEvent(eventData, OnMarkerPressEvent::new);
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
eventData = makeClickEventData(marker.getPosition());
|
|
317
|
+
eventData.putString("action", "marker-press");
|
|
318
|
+
eventData.putString("id", airMapMarker.getIdentifier());
|
|
319
|
+
|
|
320
|
+
dispatchEvent(eventData, OnPressEvent::new);
|
|
295
321
|
|
|
296
|
-
event = makeClickEventData(marker.getPosition());
|
|
297
|
-
event.putString("action", "marker-press");
|
|
298
|
-
event.putString("id", airMapMarker.getIdentifier());
|
|
299
|
-
manager.pushEvent(context, airMapMarker, "onPress", event);
|
|
300
322
|
|
|
301
323
|
handleMarkerSelection(airMapMarker);
|
|
302
324
|
|
|
@@ -317,7 +339,8 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
317
339
|
public void onPolygonClick(@NonNull Polygon polygon) {
|
|
318
340
|
WritableMap event = makeClickEventData(tapLocation);
|
|
319
341
|
event.putString("action", "polygon-press");
|
|
320
|
-
|
|
342
|
+
// todo: use Fabric events
|
|
343
|
+
// manager.pushEvent(context, polygonMap.get(polygon), "onPress", event);
|
|
321
344
|
}
|
|
322
345
|
});
|
|
323
346
|
|
|
@@ -326,7 +349,8 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
326
349
|
public void onPolylineClick(@NonNull Polyline polyline) {
|
|
327
350
|
WritableMap event = makeClickEventData(tapLocation);
|
|
328
351
|
event.putString("action", "polyline-press");
|
|
329
|
-
|
|
352
|
+
// todo: use Fabric events
|
|
353
|
+
// manager.pushEvent(context, polylineMap.get(polyline), "onPress", event);
|
|
330
354
|
}
|
|
331
355
|
});
|
|
332
356
|
|
|
@@ -335,17 +359,20 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
335
359
|
public void onInfoWindowClick(@NonNull Marker marker) {
|
|
336
360
|
WritableMap event = makeClickEventData(marker.getPosition());
|
|
337
361
|
event.putString("action", "callout-press");
|
|
338
|
-
|
|
362
|
+
// todo: use Fabric events
|
|
363
|
+
// manager.pushEvent(context, view, "onCalloutPress", event);
|
|
339
364
|
|
|
340
365
|
event = makeClickEventData(marker.getPosition());
|
|
341
366
|
event.putString("action", "callout-press");
|
|
342
367
|
MapMarker markerView = getMarkerMap(marker);
|
|
343
|
-
|
|
368
|
+
// todo: use Fabric events
|
|
369
|
+
// manager.pushEvent(context, markerView, "onCalloutPress", event);
|
|
344
370
|
|
|
345
371
|
event = makeClickEventData(marker.getPosition());
|
|
346
372
|
event.putString("action", "callout-press");
|
|
347
373
|
MapCallout infoWindow = markerView.getCalloutView();
|
|
348
|
-
|
|
374
|
+
// todo: use Fabric events
|
|
375
|
+
// if (infoWindow != null) manager.pushEvent(context, infoWindow, "onPress", event);
|
|
349
376
|
}
|
|
350
377
|
});
|
|
351
378
|
|
|
@@ -354,7 +381,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
354
381
|
public void onMapClick(@NonNull LatLng point) {
|
|
355
382
|
WritableMap event = makeClickEventData(point);
|
|
356
383
|
event.putString("action", "press");
|
|
357
|
-
|
|
384
|
+
dispatchEvent(event, OnPressEvent::new);
|
|
358
385
|
|
|
359
386
|
handleMarkerSelection(null);
|
|
360
387
|
}
|
|
@@ -365,7 +392,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
365
392
|
public void onMapLongClick(@NonNull LatLng point) {
|
|
366
393
|
WritableMap event = makeClickEventData(point);
|
|
367
394
|
event.putString("action", "long-press");
|
|
368
|
-
|
|
395
|
+
dispatchEvent(event, OnLongPressEvent::new);
|
|
369
396
|
}
|
|
370
397
|
});
|
|
371
398
|
|
|
@@ -374,7 +401,8 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
374
401
|
public void onGroundOverlayClick(@NonNull GroundOverlay groundOverlay) {
|
|
375
402
|
WritableMap event = makeClickEventData(groundOverlay.getPosition());
|
|
376
403
|
event.putString("action", "overlay-press");
|
|
377
|
-
|
|
404
|
+
// todo: use Fabric events
|
|
405
|
+
// manager.pushEvent(context, overlayMap.get(groundOverlay), "onPress", event);
|
|
378
406
|
}
|
|
379
407
|
});
|
|
380
408
|
|
|
@@ -385,7 +413,8 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
385
413
|
boolean isGesture = GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE == reason;
|
|
386
414
|
WritableMap event = new WritableNativeMap();
|
|
387
415
|
event.putBoolean("isGesture", isGesture);
|
|
388
|
-
|
|
416
|
+
// todo: use Fabric events
|
|
417
|
+
// manager.pushEvent(context, view, "onRegionChangeStart", event);
|
|
389
418
|
}
|
|
390
419
|
});
|
|
391
420
|
|
|
@@ -396,9 +425,8 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
396
425
|
|
|
397
426
|
cameraLastIdleBounds = null;
|
|
398
427
|
boolean isGesture = GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE == cameraMoveReason;
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
eventDispatcher.dispatchEvent(event);
|
|
428
|
+
WritableMap payload = OnRegionChangeEvent.payLoadFor(bounds, true, isGesture);
|
|
429
|
+
dispatchEvent(payload, OnRegionChangeEvent::new);
|
|
402
430
|
}
|
|
403
431
|
});
|
|
404
432
|
|
|
@@ -414,7 +442,8 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
414
442
|
boolean isGesture = GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE == cameraMoveReason;
|
|
415
443
|
|
|
416
444
|
RegionChangeEvent event = new RegionChangeEvent(getId(), bounds, false, isGesture);
|
|
417
|
-
|
|
445
|
+
// todo: use Fabric events
|
|
446
|
+
// eventDispatcher.dispatchEvent(event);
|
|
418
447
|
}
|
|
419
448
|
}
|
|
420
449
|
});
|
|
@@ -422,7 +451,8 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
422
451
|
map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
|
|
423
452
|
@Override public void onMapLoaded() {
|
|
424
453
|
isMapLoaded = true;
|
|
425
|
-
|
|
454
|
+
// todo: use Fabric events
|
|
455
|
+
// manager.pushEvent(context, view, "onMapLoaded", new WritableNativeMap());
|
|
426
456
|
MapView.this.cacheView();
|
|
427
457
|
}
|
|
428
458
|
});
|
|
@@ -484,24 +514,26 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
484
514
|
event = makeClickEventData(selectedMarker.getPosition());
|
|
485
515
|
event.putString("action", "marker-deselect");
|
|
486
516
|
event.putString("id", selectedMarker.getIdentifier());
|
|
487
|
-
|
|
517
|
+
// todo: use Fabric events
|
|
518
|
+
// manager.pushEvent(context, selectedMarker, "onDeselect", event);
|
|
488
519
|
|
|
489
520
|
event = makeClickEventData(selectedMarker.getPosition());
|
|
490
521
|
event.putString("action", "marker-deselect");
|
|
491
522
|
event.putString("id", selectedMarker.getIdentifier());
|
|
492
|
-
|
|
523
|
+
dispatchEvent(event, OnMarkerDeselectEvent::new);
|
|
493
524
|
}
|
|
494
525
|
|
|
495
526
|
if (target != null) {
|
|
496
527
|
event = makeClickEventData(target.getPosition());
|
|
497
528
|
event.putString("action", "marker-select");
|
|
498
529
|
event.putString("id", target.getIdentifier());
|
|
499
|
-
|
|
530
|
+
// todo: use Fabric events
|
|
531
|
+
// manager.pushEvent(context, target, "onSelect", event);
|
|
500
532
|
|
|
501
533
|
event = makeClickEventData(target.getPosition());
|
|
502
534
|
event.putString("action", "marker-select");
|
|
503
535
|
event.putString("id", target.getIdentifier());
|
|
504
|
-
|
|
536
|
+
dispatchEvent(event, OnMarkerSelectEvent::new);
|
|
505
537
|
}
|
|
506
538
|
|
|
507
539
|
selectedMarker = target;
|
|
@@ -513,6 +545,29 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
513
545
|
}
|
|
514
546
|
|
|
515
547
|
|
|
548
|
+
public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
|
|
549
|
+
MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
|
|
550
|
+
builder.put(OnMarkerPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnMarkerPressEvent.EVENT_NAME));
|
|
551
|
+
builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
|
|
552
|
+
builder.put(OnMarkerSelectEvent.EVENT_NAME, MapBuilder.of("registrationName", OnMarkerSelectEvent.EVENT_NAME));
|
|
553
|
+
builder.put(OnMarkerDeselectEvent.EVENT_NAME, MapBuilder.of("registrationName", OnMarkerDeselectEvent.EVENT_NAME));
|
|
554
|
+
builder.put(OnMarkerDragEvent.EVENT_NAME, MapBuilder.of("registrationName", OnMarkerDragEvent.EVENT_NAME));
|
|
555
|
+
builder.put(OnMarkerDragStartEvent.EVENT_NAME, MapBuilder.of("registrationName", OnMarkerDragStartEvent.EVENT_NAME));
|
|
556
|
+
builder.put(OnMarkerDragEndEvent.EVENT_NAME, MapBuilder.of("registrationName", OnMarkerDragEndEvent.EVENT_NAME));
|
|
557
|
+
builder.put(OnPoiClickEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPoiClickEvent.EVENT_NAME));
|
|
558
|
+
builder.put(OnLongPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnLongPressEvent.EVENT_NAME));
|
|
559
|
+
return builder.build();
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
public static Map<String, Object> getExportedCustomDirectEventTypeConstants() {
|
|
563
|
+
return MapBuilder.of(
|
|
564
|
+
OnMapReadyEvent.EVENT_NAME, MapBuilder.of("registrationName", OnMapReadyEvent.EVENT_NAME),
|
|
565
|
+
OnUserLocationChangeEvent.EVENT_NAME, MapBuilder.of("registrationName", OnUserLocationChangeEvent.EVENT_NAME),
|
|
566
|
+
OnRegionChangeEvent.EVENT_NAME, MapBuilder.of("registrationName", OnRegionChangeEvent.EVENT_NAME)
|
|
567
|
+
);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
|
|
516
571
|
/*
|
|
517
572
|
onDestroy is final method so I can't override it.
|
|
518
573
|
*/
|
|
@@ -679,6 +734,9 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
679
734
|
map.getUiSettings().setMapToolbarEnabled(toolbarEnabled);
|
|
680
735
|
}
|
|
681
736
|
}
|
|
737
|
+
public void setMapType(int mapType){
|
|
738
|
+
map.setMapType(mapType);
|
|
739
|
+
}
|
|
682
740
|
|
|
683
741
|
public void setCacheEnabled(boolean cacheEnabled) {
|
|
684
742
|
this.cacheEnabled = cacheEnabled;
|
|
@@ -1182,31 +1240,36 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1182
1240
|
@Override
|
|
1183
1241
|
public void onMarkerDragStart(Marker marker) {
|
|
1184
1242
|
WritableMap event = makeClickEventData(marker.getPosition());
|
|
1185
|
-
|
|
1243
|
+
// todo: use Fabric events
|
|
1244
|
+
dispatchEvent(event, OnMarkerDragStartEvent::new);
|
|
1186
1245
|
|
|
1187
1246
|
MapMarker markerView = getMarkerMap(marker);
|
|
1188
1247
|
event = makeClickEventData(marker.getPosition());
|
|
1189
|
-
|
|
1248
|
+
// todo: use Fabric events
|
|
1249
|
+
// manager.pushEvent(context, markerView, "onDragStart", event);
|
|
1190
1250
|
}
|
|
1191
1251
|
|
|
1192
1252
|
@Override
|
|
1193
1253
|
public void onMarkerDrag(Marker marker) {
|
|
1194
1254
|
WritableMap event = makeClickEventData(marker.getPosition());
|
|
1195
|
-
|
|
1255
|
+
dispatchEvent(event, OnMarkerDragEvent::new);
|
|
1196
1256
|
|
|
1197
1257
|
MapMarker markerView = getMarkerMap(marker);
|
|
1198
1258
|
event = makeClickEventData(marker.getPosition());
|
|
1199
|
-
|
|
1259
|
+
// todo: use Fabric events
|
|
1260
|
+
// manager.pushEvent(context, markerView, "onDrag", event);
|
|
1200
1261
|
}
|
|
1201
1262
|
|
|
1202
1263
|
@Override
|
|
1203
1264
|
public void onMarkerDragEnd(Marker marker) {
|
|
1204
1265
|
WritableMap event = makeClickEventData(marker.getPosition());
|
|
1205
|
-
|
|
1266
|
+
dispatchEvent(event, OnMarkerDragEndEvent::new);
|
|
1267
|
+
|
|
1206
1268
|
|
|
1207
1269
|
MapMarker markerView = getMarkerMap(marker);
|
|
1208
1270
|
event = makeClickEventData(marker.getPosition());
|
|
1209
|
-
|
|
1271
|
+
// todo: use Fabric events
|
|
1272
|
+
// manager.pushEvent(context, markerView, "onDragEnd", event);
|
|
1210
1273
|
}
|
|
1211
1274
|
|
|
1212
1275
|
@Override
|
|
@@ -1215,8 +1278,7 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1215
1278
|
|
|
1216
1279
|
event.putString("placeId", poi.placeId);
|
|
1217
1280
|
event.putString("name", poi.name);
|
|
1218
|
-
|
|
1219
|
-
manager.pushEvent(context, this, "onPoiClick", event);
|
|
1281
|
+
dispatchEvent(event, OnPoiClickEvent::new);
|
|
1220
1282
|
}
|
|
1221
1283
|
|
|
1222
1284
|
private ProgressBar getMapLoadingProgressBar() {
|
|
@@ -1309,7 +1371,8 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1309
1371
|
Point point = new Point((int) ev.getX(), (int) ev.getY());
|
|
1310
1372
|
LatLng coords = this.map.getProjection().fromScreenLocation(point);
|
|
1311
1373
|
WritableMap event = makeClickEventData(coords);
|
|
1312
|
-
|
|
1374
|
+
// todo: use Fabric events
|
|
1375
|
+
// manager.pushEvent(context, this, "onPanDrag", event);
|
|
1313
1376
|
}
|
|
1314
1377
|
|
|
1315
1378
|
public void onDoublePress(MotionEvent ev) {
|
|
@@ -1317,7 +1380,8 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1317
1380
|
Point point = new Point((int) ev.getX(), (int) ev.getY());
|
|
1318
1381
|
LatLng coords = this.map.getProjection().fromScreenLocation(point);
|
|
1319
1382
|
WritableMap event = makeClickEventData(coords);
|
|
1320
|
-
|
|
1383
|
+
// todo: use Fabric events
|
|
1384
|
+
// manager.pushEvent(context, this, "onDoublePress", event);
|
|
1321
1385
|
}
|
|
1322
1386
|
|
|
1323
1387
|
public void setKmlSrc(String kmlSrc) {
|
|
@@ -1335,14 +1399,16 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1335
1399
|
WritableArray markers = new WritableNativeArray();
|
|
1336
1400
|
|
|
1337
1401
|
if (kmlLayer.getContainers() == null) {
|
|
1338
|
-
|
|
1402
|
+
// todo: use Fabric events
|
|
1403
|
+
// manager.pushEvent(context, this, "onKmlReady", pointers);
|
|
1339
1404
|
return;
|
|
1340
1405
|
}
|
|
1341
1406
|
|
|
1342
1407
|
//Retrieve a nested container within the first container
|
|
1343
1408
|
KmlContainer container = kmlLayer.getContainers().iterator().next();
|
|
1344
1409
|
if (container == null || container.getContainers() == null) {
|
|
1345
|
-
|
|
1410
|
+
// todo: use Fabric events
|
|
1411
|
+
// manager.pushEvent(context, this, "onKmlReady", pointers);
|
|
1346
1412
|
return;
|
|
1347
1413
|
}
|
|
1348
1414
|
|
|
@@ -1376,7 +1442,8 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1376
1442
|
options.position(latLng);
|
|
1377
1443
|
options.title(title);
|
|
1378
1444
|
options.snippet(snippet);
|
|
1379
|
-
|
|
1445
|
+
// FIXME: get markerManager from somewhere
|
|
1446
|
+
/*
|
|
1380
1447
|
MapMarker marker = new MapMarker(context, options, this.manager.getMarkerManager());
|
|
1381
1448
|
|
|
1382
1449
|
if (placemark.getInlineStyle() != null
|
|
@@ -1393,17 +1460,19 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1393
1460
|
|
|
1394
1461
|
addFeature(marker, index++);
|
|
1395
1462
|
|
|
1463
|
+
|
|
1396
1464
|
WritableMap loadedMarker = makeClickEventData(latLng);
|
|
1397
1465
|
loadedMarker.putString("id", identifier);
|
|
1398
1466
|
loadedMarker.putString("title", title);
|
|
1399
1467
|
loadedMarker.putString("description", snippet);
|
|
1400
1468
|
|
|
1401
1469
|
markers.pushMap(loadedMarker);
|
|
1470
|
+
*/
|
|
1402
1471
|
}
|
|
1403
1472
|
|
|
1404
1473
|
pointers.putArray("markers", markers);
|
|
1405
|
-
|
|
1406
|
-
|
|
1474
|
+
// todo: use Fabric events
|
|
1475
|
+
// manager.pushEvent(context, this, "onKmlReady", pointers);
|
|
1407
1476
|
|
|
1408
1477
|
} catch (XmlPullParserException | IOException | InterruptedException | ExecutionException e) {
|
|
1409
1478
|
e.printStackTrace();
|
|
@@ -1432,8 +1501,8 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1432
1501
|
indoorBuilding.putBoolean("underground", building.isUnderground());
|
|
1433
1502
|
|
|
1434
1503
|
event.putMap("IndoorBuilding", indoorBuilding);
|
|
1435
|
-
|
|
1436
|
-
|
|
1504
|
+
// todo: use Fabric events
|
|
1505
|
+
// manager.pushEvent(context, this, "onIndoorBuildingFocused", event);
|
|
1437
1506
|
} else {
|
|
1438
1507
|
WritableMap event = Arguments.createMap();
|
|
1439
1508
|
WritableArray levelsArray = Arguments.createArray();
|
|
@@ -1443,8 +1512,8 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1443
1512
|
indoorBuilding.putBoolean("underground", false);
|
|
1444
1513
|
|
|
1445
1514
|
event.putMap("IndoorBuilding", indoorBuilding);
|
|
1446
|
-
|
|
1447
|
-
|
|
1515
|
+
// todo: use Fabric events
|
|
1516
|
+
// manager.pushEvent(context, this, "onIndoorBuildingFocused", event);
|
|
1448
1517
|
}
|
|
1449
1518
|
}
|
|
1450
1519
|
|
|
@@ -1467,8 +1536,8 @@ public static CameraPosition cameraPositionFromMap(ReadableMap camera){
|
|
|
1467
1536
|
indoorlevel.putString("shortName", level.getShortName());
|
|
1468
1537
|
|
|
1469
1538
|
event.putMap("IndoorLevel", indoorlevel);
|
|
1470
|
-
|
|
1471
|
-
|
|
1539
|
+
// todo: use Fabric events
|
|
1540
|
+
// manager.pushEvent(context, this, "onIndoorLevelActivated", event);
|
|
1472
1541
|
}
|
|
1473
1542
|
|
|
1474
1543
|
public void setIndoorActiveLevelIndex(int activeLevelIndex) {
|