react-native-maps 1.4.0-beta.1 → 1.4.0
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 +4 -3
- package/android/src/main/AndroidManifest.xml +1 -1
- package/android/src/main/java/com/{rnmaps/maps/MapCallout.java → airbnb/android/react/maps/AirMapCallout.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapCalloutManager.java → airbnb/android/react/maps/AirMapCalloutManager.java} +6 -6
- package/android/src/main/java/com/{rnmaps/maps/MapCircle.java → airbnb/android/react/maps/AirMapCircle.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapCircleManager.java → airbnb/android/react/maps/AirMapCircleManager.java} +11 -11
- package/android/src/main/java/com/{rnmaps/maps/MapFeature.java → airbnb/android/react/maps/AirMapFeature.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapGradientPolyline.java → airbnb/android/react/maps/AirMapGradientPolyline.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapGradientPolylineManager.java → airbnb/android/react/maps/AirMapGradientPolylineManager.java} +9 -9
- package/android/src/main/java/com/{rnmaps/maps/MapHeatmap.java → airbnb/android/react/maps/AirMapHeatmap.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapHeatmapManager.java → airbnb/android/react/maps/AirMapHeatmapManager.java} +8 -8
- package/android/src/main/java/com/{rnmaps/maps/MapLiteManager.java → airbnb/android/react/maps/AirMapLiteManager.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapLocalTile.java → airbnb/android/react/maps/AirMapLocalTile.java} +5 -5
- package/android/src/main/java/com/{rnmaps/maps/MapLocalTileManager.java → airbnb/android/react/maps/AirMapLocalTileManager.java} +9 -9
- package/android/src/main/java/com/{rnmaps/maps/MapManager.java → airbnb/android/react/maps/AirMapManager.java} +48 -48
- package/android/src/main/java/com/{rnmaps/maps/MapMarker.java → airbnb/android/react/maps/AirMapMarker.java} +12 -12
- package/android/src/main/java/com/{rnmaps/maps/MapMarkerManager.java → airbnb/android/react/maps/AirMapMarkerManager.java} +30 -30
- package/android/src/main/java/com/{rnmaps/maps/MapModule.java → airbnb/android/react/maps/AirMapModule.java} +10 -10
- package/android/src/main/java/com/{rnmaps/maps/MapOverlay.java → airbnb/android/react/maps/AirMapOverlay.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapOverlayManager.java → airbnb/android/react/maps/AirMapOverlayManager.java} +11 -11
- package/android/src/main/java/com/{rnmaps/maps/MapPolygon.java → airbnb/android/react/maps/AirMapPolygon.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapPolygonManager.java → airbnb/android/react/maps/AirMapPolygonManager.java} +13 -13
- package/android/src/main/java/com/{rnmaps/maps/MapPolyline.java → airbnb/android/react/maps/AirMapPolyline.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapPolylineManager.java → airbnb/android/react/maps/AirMapPolylineManager.java} +13 -13
- package/android/src/main/java/com/{rnmaps/maps/MapTileProvider.java → airbnb/android/react/maps/AirMapTileProvider.java} +10 -10
- package/android/src/main/java/com/{rnmaps/maps/MapTileWorker.java → airbnb/android/react/maps/AirMapTileWorker.java} +3 -3
- package/android/src/main/java/com/{rnmaps/maps/MapUrlTile.java → airbnb/android/react/maps/AirMapUrlTile.java} +5 -5
- package/android/src/main/java/com/{rnmaps/maps/MapUrlTileManager.java → airbnb/android/react/maps/AirMapUrlTileManager.java} +17 -17
- package/android/src/main/java/com/{rnmaps/maps/MapView.java → airbnb/android/react/maps/AirMapView.java} +63 -62
- package/android/src/main/java/com/{rnmaps/maps/MapWMSTile.java → airbnb/android/react/maps/AirMapWMSTile.java} +6 -6
- package/android/src/main/java/com/{rnmaps/maps/MapWMSTileManager.java → airbnb/android/react/maps/AirMapWMSTileManager.java} +15 -15
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/FileUtil.java +1 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/FusedLocationSource.java +1 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/ImageReadable.java +1 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/ImageReader.java +1 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/ImageUtil.java +2 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/LatLngBoundsUtils.java +1 -1
- package/android/src/main/java/com/airbnb/android/react/maps/MapsPackage.java +65 -0
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/RegionChangeEvent.java +1 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/SizeReportingShadowNode.java +1 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/ViewAttacherGroup.java +1 -1
- package/android/src/main/java/com/{rnmaps → airbnb/android/react}/maps/ViewChangesTracker.java +7 -7
- package/lib/AnimatedRegion.d.ts +1 -1
- package/lib/Geojson.d.ts +5 -5
- package/lib/MapCallout.d.ts +2 -2
- package/lib/MapCalloutSubview.d.ts +3 -3
- package/lib/MapCircle.d.ts +2 -2
- package/lib/MapHeatmap.d.ts +3 -3
- package/lib/MapLocalTile.d.ts +2 -2
- package/lib/MapMarker.d.ts +3 -3
- package/lib/MapMarkerNativeComponent.d.ts +1 -1
- package/lib/MapOverlay.d.ts +4 -4
- package/lib/MapPolygon.d.ts +3 -3
- package/lib/MapPolyline.d.ts +3 -3
- package/lib/MapUrlTile.d.ts +2 -2
- package/lib/MapView.d.ts +4 -4
- package/lib/MapView.types.d.ts +24 -24
- package/lib/MapViewNativeComponent.d.ts +1 -1
- package/lib/MapWMSTile.d.ts +2 -2
- package/lib/decorateMapComponent.d.ts +7 -7
- package/lib/sharedTypes.d.ts +14 -14
- package/lib/sharedTypesInternal.d.ts +1 -1
- package/package.json +14 -14
- package/react-native-google-maps.podspec +1 -2
- package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +0 -46
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.airbnb.android.react.maps;
|
|
2
2
|
|
|
3
3
|
import android.view.View;
|
|
4
4
|
|
|
@@ -25,7 +25,7 @@ import com.google.android.gms.maps.model.LatLngBounds;
|
|
|
25
25
|
|
|
26
26
|
import java.util.Map;
|
|
27
27
|
|
|
28
|
-
public class
|
|
28
|
+
public class AirMapManager extends ViewGroupManager<AirMapView> {
|
|
29
29
|
|
|
30
30
|
private static final String REACT_CLASS = "AIRMap";
|
|
31
31
|
|
|
@@ -45,19 +45,19 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
45
45
|
);
|
|
46
46
|
|
|
47
47
|
private final ReactApplicationContext appContext;
|
|
48
|
-
private
|
|
48
|
+
private AirMapMarkerManager markerManager;
|
|
49
49
|
|
|
50
50
|
protected GoogleMapOptions googleMapOptions;
|
|
51
51
|
|
|
52
|
-
public
|
|
52
|
+
public AirMapManager(ReactApplicationContext context) {
|
|
53
53
|
this.appContext = context;
|
|
54
54
|
this.googleMapOptions = new GoogleMapOptions();
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
public
|
|
57
|
+
public AirMapMarkerManager getMarkerManager() {
|
|
58
58
|
return this.markerManager;
|
|
59
59
|
}
|
|
60
|
-
public void setMarkerManager(
|
|
60
|
+
public void setMarkerManager(AirMapMarkerManager markerManager) {
|
|
61
61
|
this.markerManager = markerManager;
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -67,8 +67,8 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
@Override
|
|
70
|
-
protected
|
|
71
|
-
return new
|
|
70
|
+
protected AirMapView createViewInstance(ThemedReactContext context) {
|
|
71
|
+
return new AirMapView(context, this.appContext, this, googleMapOptions);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
private void emitMapError(ThemedReactContext context, String message, String type) {
|
|
@@ -82,38 +82,38 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
@ReactProp(name = "region")
|
|
85
|
-
public void setRegion(
|
|
85
|
+
public void setRegion(AirMapView view, ReadableMap region) {
|
|
86
86
|
view.setRegion(region);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
@ReactProp(name = "initialRegion")
|
|
90
|
-
public void setInitialRegion(
|
|
90
|
+
public void setInitialRegion(AirMapView view, ReadableMap initialRegion) {
|
|
91
91
|
view.setInitialRegion(initialRegion);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
@ReactProp(name = "camera")
|
|
95
|
-
public void setCamera(
|
|
95
|
+
public void setCamera(AirMapView view, ReadableMap camera) {
|
|
96
96
|
view.setCamera(camera);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
@ReactProp(name = "initialCamera")
|
|
100
|
-
public void setInitialCamera(
|
|
100
|
+
public void setInitialCamera(AirMapView view, ReadableMap initialCamera) {
|
|
101
101
|
view.setInitialCamera(initialCamera);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
@ReactProp(name = "mapType")
|
|
105
|
-
public void setMapType(
|
|
105
|
+
public void setMapType(AirMapView view, @Nullable String mapType) {
|
|
106
106
|
int typeId = MAP_TYPES.get(mapType);
|
|
107
107
|
view.map.setMapType(typeId);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
@ReactProp(name = "customMapStyleString")
|
|
111
|
-
public void setMapStyle(
|
|
111
|
+
public void setMapStyle(AirMapView view, @Nullable String customMapStyleString) {
|
|
112
112
|
view.setMapStyle(customMapStyleString);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
@ReactProp(name = "mapPadding")
|
|
116
|
-
public void setMapPadding(
|
|
116
|
+
public void setMapPadding(AirMapView view, @Nullable ReadableMap padding) {
|
|
117
117
|
int left = 0;
|
|
118
118
|
int top = 0;
|
|
119
119
|
int right = 0;
|
|
@@ -143,141 +143,141 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
@ReactProp(name = "showsUserLocation", defaultBoolean = false)
|
|
146
|
-
public void setShowsUserLocation(
|
|
146
|
+
public void setShowsUserLocation(AirMapView view, boolean showUserLocation) {
|
|
147
147
|
view.setShowsUserLocation(showUserLocation);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
@ReactProp(name = "userLocationPriority")
|
|
151
|
-
public void setUserLocationPriority(
|
|
151
|
+
public void setUserLocationPriority(AirMapView view, @Nullable String accuracy) {
|
|
152
152
|
view.setUserLocationPriority(MY_LOCATION_PRIORITY.get(accuracy));
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
@ReactProp(name = "userLocationUpdateInterval", defaultInt = 5000)
|
|
156
|
-
public void setUserLocationUpdateInterval(
|
|
156
|
+
public void setUserLocationUpdateInterval(AirMapView view, int updateInterval) {
|
|
157
157
|
view.setUserLocationUpdateInterval(updateInterval);
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
@ReactProp(name = "userLocationFastestInterval", defaultInt = 5000)
|
|
161
|
-
public void setUserLocationFastestInterval(
|
|
161
|
+
public void setUserLocationFastestInterval(AirMapView view, int fastestInterval) {
|
|
162
162
|
view.setUserLocationFastestInterval(fastestInterval);
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
@ReactProp(name = "showsMyLocationButton", defaultBoolean = true)
|
|
166
|
-
public void setShowsMyLocationButton(
|
|
166
|
+
public void setShowsMyLocationButton(AirMapView view, boolean showMyLocationButton) {
|
|
167
167
|
view.setShowsMyLocationButton(showMyLocationButton);
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
@ReactProp(name = "toolbarEnabled", defaultBoolean = true)
|
|
171
|
-
public void setToolbarEnabled(
|
|
171
|
+
public void setToolbarEnabled(AirMapView view, boolean toolbarEnabled) {
|
|
172
172
|
view.setToolbarEnabled(toolbarEnabled);
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
// This is a private prop to improve performance of panDrag by disabling it when the callback
|
|
176
176
|
// is not set
|
|
177
177
|
@ReactProp(name = "handlePanDrag", defaultBoolean = false)
|
|
178
|
-
public void setHandlePanDrag(
|
|
178
|
+
public void setHandlePanDrag(AirMapView view, boolean handlePanDrag) {
|
|
179
179
|
view.setHandlePanDrag(handlePanDrag);
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
@ReactProp(name = "showsTraffic", defaultBoolean = false)
|
|
183
|
-
public void setShowTraffic(
|
|
183
|
+
public void setShowTraffic(AirMapView view, boolean showTraffic) {
|
|
184
184
|
view.map.setTrafficEnabled(showTraffic);
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
@ReactProp(name = "showsBuildings", defaultBoolean = false)
|
|
188
|
-
public void setShowBuildings(
|
|
188
|
+
public void setShowBuildings(AirMapView view, boolean showBuildings) {
|
|
189
189
|
view.map.setBuildingsEnabled(showBuildings);
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
@ReactProp(name = "showsIndoors", defaultBoolean = false)
|
|
193
|
-
public void setShowIndoors(
|
|
193
|
+
public void setShowIndoors(AirMapView view, boolean showIndoors) {
|
|
194
194
|
view.map.setIndoorEnabled(showIndoors);
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
@ReactProp(name = "showsIndoorLevelPicker", defaultBoolean = false)
|
|
198
|
-
public void setShowsIndoorLevelPicker(
|
|
198
|
+
public void setShowsIndoorLevelPicker(AirMapView view, boolean showsIndoorLevelPicker) {
|
|
199
199
|
view.map.getUiSettings().setIndoorLevelPickerEnabled(showsIndoorLevelPicker);
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
@ReactProp(name = "showsCompass", defaultBoolean = false)
|
|
203
|
-
public void setShowsCompass(
|
|
203
|
+
public void setShowsCompass(AirMapView view, boolean showsCompass) {
|
|
204
204
|
view.map.getUiSettings().setCompassEnabled(showsCompass);
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
@ReactProp(name = "scrollEnabled", defaultBoolean = false)
|
|
208
|
-
public void setScrollEnabled(
|
|
208
|
+
public void setScrollEnabled(AirMapView view, boolean scrollEnabled) {
|
|
209
209
|
view.map.getUiSettings().setScrollGesturesEnabled(scrollEnabled);
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
@ReactProp(name = "zoomEnabled", defaultBoolean = false)
|
|
213
|
-
public void setZoomEnabled(
|
|
213
|
+
public void setZoomEnabled(AirMapView view, boolean zoomEnabled) {
|
|
214
214
|
view.map.getUiSettings().setZoomGesturesEnabled(zoomEnabled);
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
@ReactProp(name = "zoomControlEnabled", defaultBoolean = true)
|
|
218
|
-
public void setZoomControlEnabled(
|
|
218
|
+
public void setZoomControlEnabled(AirMapView view, boolean zoomControlEnabled) {
|
|
219
219
|
view.map.getUiSettings().setZoomControlsEnabled(zoomControlEnabled);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
@ReactProp(name = "rotateEnabled", defaultBoolean = false)
|
|
223
|
-
public void setRotateEnabled(
|
|
223
|
+
public void setRotateEnabled(AirMapView view, boolean rotateEnabled) {
|
|
224
224
|
view.map.getUiSettings().setRotateGesturesEnabled(rotateEnabled);
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
@ReactProp(name = "scrollDuringRotateOrZoomEnabled", defaultBoolean = true)
|
|
228
|
-
public void setScrollDuringRotateOrZoomEnabled(
|
|
228
|
+
public void setScrollDuringRotateOrZoomEnabled(AirMapView view, boolean scrollDuringRotateOrZoomEnabled) {
|
|
229
229
|
view.map.getUiSettings().setScrollGesturesEnabledDuringRotateOrZoom(scrollDuringRotateOrZoomEnabled);
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
@ReactProp(name = "cacheEnabled", defaultBoolean = false)
|
|
233
|
-
public void setCacheEnabled(
|
|
233
|
+
public void setCacheEnabled(AirMapView view, boolean cacheEnabled) {
|
|
234
234
|
view.setCacheEnabled(cacheEnabled);
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
@ReactProp(name = "loadingEnabled", defaultBoolean = false)
|
|
238
|
-
public void setLoadingEnabled(
|
|
238
|
+
public void setLoadingEnabled(AirMapView view, boolean loadingEnabled) {
|
|
239
239
|
view.enableMapLoading(loadingEnabled);
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
@ReactProp(name = "moveOnMarkerPress", defaultBoolean = true)
|
|
243
|
-
public void setMoveOnMarkerPress(
|
|
243
|
+
public void setMoveOnMarkerPress(AirMapView view, boolean moveOnPress) {
|
|
244
244
|
view.setMoveOnMarkerPress(moveOnPress);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
@ReactProp(name = "loadingBackgroundColor", customType = "Color")
|
|
248
|
-
public void setLoadingBackgroundColor(
|
|
248
|
+
public void setLoadingBackgroundColor(AirMapView view, @Nullable Integer loadingBackgroundColor) {
|
|
249
249
|
view.setLoadingBackgroundColor(loadingBackgroundColor);
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
@ReactProp(name = "loadingIndicatorColor", customType = "Color")
|
|
253
|
-
public void setLoadingIndicatorColor(
|
|
253
|
+
public void setLoadingIndicatorColor(AirMapView view, @Nullable Integer loadingIndicatorColor) {
|
|
254
254
|
view.setLoadingIndicatorColor(loadingIndicatorColor);
|
|
255
255
|
}
|
|
256
256
|
|
|
257
257
|
@ReactProp(name = "pitchEnabled", defaultBoolean = false)
|
|
258
|
-
public void setPitchEnabled(
|
|
258
|
+
public void setPitchEnabled(AirMapView view, boolean pitchEnabled) {
|
|
259
259
|
view.map.getUiSettings().setTiltGesturesEnabled(pitchEnabled);
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
@ReactProp(name = "minZoomLevel")
|
|
263
|
-
public void setMinZoomLevel(
|
|
263
|
+
public void setMinZoomLevel(AirMapView view, float minZoomLevel) {
|
|
264
264
|
view.map.setMinZoomPreference(minZoomLevel);
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
@ReactProp(name = "maxZoomLevel")
|
|
268
|
-
public void setMaxZoomLevel(
|
|
268
|
+
public void setMaxZoomLevel(AirMapView view, float maxZoomLevel) {
|
|
269
269
|
view.map.setMaxZoomPreference(maxZoomLevel);
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
@ReactProp(name = "kmlSrc")
|
|
273
|
-
public void setKmlSrc(
|
|
273
|
+
public void setKmlSrc(AirMapView view, String kmlUrl) {
|
|
274
274
|
if (kmlUrl != null) {
|
|
275
275
|
view.setKmlSrc(kmlUrl);
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
@Override
|
|
280
|
-
public void receiveCommand(@NonNull
|
|
280
|
+
public void receiveCommand(@NonNull AirMapView view, String commandId, @Nullable ReadableArray args) {
|
|
281
281
|
int duration;
|
|
282
282
|
double lat;
|
|
283
283
|
double lng;
|
|
@@ -399,27 +399,27 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
399
399
|
}
|
|
400
400
|
|
|
401
401
|
@Override
|
|
402
|
-
public void addView(
|
|
402
|
+
public void addView(AirMapView parent, View child, int index) {
|
|
403
403
|
parent.addFeature(child, index);
|
|
404
404
|
}
|
|
405
405
|
|
|
406
406
|
@Override
|
|
407
|
-
public int getChildCount(
|
|
407
|
+
public int getChildCount(AirMapView view) {
|
|
408
408
|
return view.getFeatureCount();
|
|
409
409
|
}
|
|
410
410
|
|
|
411
411
|
@Override
|
|
412
|
-
public View getChildAt(
|
|
412
|
+
public View getChildAt(AirMapView view, int index) {
|
|
413
413
|
return view.getFeatureAt(index);
|
|
414
414
|
}
|
|
415
415
|
|
|
416
416
|
@Override
|
|
417
|
-
public void removeViewAt(
|
|
417
|
+
public void removeViewAt(AirMapView parent, int index) {
|
|
418
418
|
parent.removeFeatureAt(index);
|
|
419
419
|
}
|
|
420
420
|
|
|
421
421
|
@Override
|
|
422
|
-
public void updateExtraData(
|
|
422
|
+
public void updateExtraData(AirMapView view, Object extraData) {
|
|
423
423
|
view.updateExtraData(extraData);
|
|
424
424
|
}
|
|
425
425
|
|
|
@@ -429,7 +429,7 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
429
429
|
}
|
|
430
430
|
|
|
431
431
|
@Override
|
|
432
|
-
public void onDropViewInstance(
|
|
432
|
+
public void onDropViewInstance(AirMapView view) {
|
|
433
433
|
view.doDestroy();
|
|
434
434
|
super.onDropViewInstance(view);
|
|
435
435
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.airbnb.android.react.maps;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.graphics.Bitmap;
|
|
@@ -40,7 +40,7 @@ import com.google.android.gms.maps.model.LatLng;
|
|
|
40
40
|
import com.google.android.gms.maps.model.Marker;
|
|
41
41
|
import com.google.android.gms.maps.model.MarkerOptions;
|
|
42
42
|
|
|
43
|
-
public class
|
|
43
|
+
public class AirMapMarker extends AirMapFeature {
|
|
44
44
|
|
|
45
45
|
private MarkerOptions markerOptions;
|
|
46
46
|
private Marker marker;
|
|
@@ -56,7 +56,7 @@ public class MapMarker extends MapFeature {
|
|
|
56
56
|
private float anchorX;
|
|
57
57
|
private float anchorY;
|
|
58
58
|
|
|
59
|
-
private
|
|
59
|
+
private AirMapCallout calloutView;
|
|
60
60
|
private View wrappedCalloutView;
|
|
61
61
|
private final Context context;
|
|
62
62
|
|
|
@@ -78,7 +78,7 @@ public class MapMarker extends MapFeature {
|
|
|
78
78
|
private boolean tracksViewChangesActive = false;
|
|
79
79
|
|
|
80
80
|
private boolean hasCustomMarkerView = false;
|
|
81
|
-
private final
|
|
81
|
+
private final AirMapMarkerManager markerManager;
|
|
82
82
|
private String imageUri;
|
|
83
83
|
|
|
84
84
|
private final DraweeHolder<?> logoHolder;
|
|
@@ -111,15 +111,15 @@ public class MapMarker extends MapFeature {
|
|
|
111
111
|
CloseableReference.closeSafely(imageReference);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
if (
|
|
115
|
-
|
|
114
|
+
if (AirMapMarker.this.markerManager != null && AirMapMarker.this.imageUri != null) {
|
|
115
|
+
AirMapMarker.this.markerManager.getSharedIcon(AirMapMarker.this.imageUri)
|
|
116
116
|
.updateIcon(iconBitmapDescriptor, iconBitmap);
|
|
117
117
|
}
|
|
118
118
|
update(true);
|
|
119
119
|
}
|
|
120
120
|
};
|
|
121
121
|
|
|
122
|
-
public
|
|
122
|
+
public AirMapMarker(Context context, AirMapMarkerManager markerManager) {
|
|
123
123
|
super(context);
|
|
124
124
|
this.context = context;
|
|
125
125
|
this.markerManager = markerManager;
|
|
@@ -127,7 +127,7 @@ public class MapMarker extends MapFeature {
|
|
|
127
127
|
logoHolder.onAttach();
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
public
|
|
130
|
+
public AirMapMarker(Context context, MarkerOptions options, AirMapMarkerManager markerManager) {
|
|
131
131
|
super(context);
|
|
132
132
|
this.context = context;
|
|
133
133
|
this.markerManager = markerManager;
|
|
@@ -332,7 +332,7 @@ public class MapMarker extends MapFeature {
|
|
|
332
332
|
}
|
|
333
333
|
if (uri != null) {
|
|
334
334
|
// listening for marker bitmap descriptor update, as well as check whether to load the image.
|
|
335
|
-
|
|
335
|
+
AirMapMarkerManager.AirMapMarkerSharedIcon sharedIcon = this.markerManager.getSharedIcon(uri);
|
|
336
336
|
sharedIcon.addMarker(this);
|
|
337
337
|
shouldLoadImage = sharedIcon.shouldLoadImage();
|
|
338
338
|
}
|
|
@@ -399,7 +399,7 @@ public class MapMarker extends MapFeature {
|
|
|
399
399
|
public void addView(View child, int index) {
|
|
400
400
|
super.addView(child, index);
|
|
401
401
|
// if children are added, it means we are rendering a custom marker
|
|
402
|
-
if (!(child instanceof
|
|
402
|
+
if (!(child instanceof AirMapCallout)) {
|
|
403
403
|
hasCustomMarkerView = true;
|
|
404
404
|
updateTracksViewChanges();
|
|
405
405
|
}
|
|
@@ -539,11 +539,11 @@ public class MapMarker extends MapFeature {
|
|
|
539
539
|
return bitmap;
|
|
540
540
|
}
|
|
541
541
|
|
|
542
|
-
public void setCalloutView(
|
|
542
|
+
public void setCalloutView(AirMapCallout view) {
|
|
543
543
|
this.calloutView = view;
|
|
544
544
|
}
|
|
545
545
|
|
|
546
|
-
public
|
|
546
|
+
public AirMapCallout getCalloutView() {
|
|
547
547
|
return this.calloutView;
|
|
548
548
|
}
|
|
549
549
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.airbnb.android.react.maps;
|
|
2
2
|
|
|
3
3
|
import android.graphics.Bitmap;
|
|
4
4
|
import android.graphics.Color;
|
|
@@ -23,12 +23,12 @@ import java.util.Map;
|
|
|
23
23
|
import java.util.WeakHashMap;
|
|
24
24
|
import java.util.concurrent.ConcurrentHashMap;
|
|
25
25
|
|
|
26
|
-
public class
|
|
26
|
+
public class AirMapMarkerManager extends ViewGroupManager<AirMapMarker> {
|
|
27
27
|
|
|
28
28
|
public static class AirMapMarkerSharedIcon {
|
|
29
29
|
private BitmapDescriptor iconBitmapDescriptor;
|
|
30
30
|
private Bitmap bitmap;
|
|
31
|
-
private final Map<
|
|
31
|
+
private final Map<AirMapMarker, Boolean> markers;
|
|
32
32
|
private boolean loadImageStarted;
|
|
33
33
|
|
|
34
34
|
public AirMapMarkerSharedIcon(){
|
|
@@ -57,7 +57,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
57
57
|
*
|
|
58
58
|
* @param marker
|
|
59
59
|
*/
|
|
60
|
-
public synchronized void addMarker(
|
|
60
|
+
public synchronized void addMarker(AirMapMarker marker) {
|
|
61
61
|
this.markers.put(marker, true);
|
|
62
62
|
if (this.iconBitmapDescriptor != null) {
|
|
63
63
|
marker.setIconBitmapDescriptor(this.iconBitmapDescriptor, this.bitmap);
|
|
@@ -71,7 +71,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
71
71
|
*
|
|
72
72
|
* @param marker
|
|
73
73
|
*/
|
|
74
|
-
public synchronized void removeMarker(
|
|
74
|
+
public synchronized void removeMarker(AirMapMarker marker) {
|
|
75
75
|
this.markers.remove(marker);
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -101,7 +101,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
for (Map.Entry<
|
|
104
|
+
for (Map.Entry<AirMapMarker, Boolean> markerEntry: markers.entrySet()) {
|
|
105
105
|
if (markerEntry.getKey() != null) {
|
|
106
106
|
markerEntry.getKey().setIconBitmapDescriptor(bitmapDescriptor, bitmap);
|
|
107
107
|
}
|
|
@@ -147,7 +147,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
public
|
|
150
|
+
public AirMapMarkerManager() {
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
@Override
|
|
@@ -156,27 +156,27 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
@Override
|
|
159
|
-
public
|
|
160
|
-
return new
|
|
159
|
+
public AirMapMarker createViewInstance(ThemedReactContext context) {
|
|
160
|
+
return new AirMapMarker(context, this);
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
@ReactProp(name = "coordinate")
|
|
164
|
-
public void setCoordinate(
|
|
164
|
+
public void setCoordinate(AirMapMarker view, ReadableMap map) {
|
|
165
165
|
view.setCoordinate(map);
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
@ReactProp(name = "title")
|
|
169
|
-
public void setTitle(
|
|
169
|
+
public void setTitle(AirMapMarker view, String title) {
|
|
170
170
|
view.setTitle(title);
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
@ReactProp(name = "identifier")
|
|
174
|
-
public void setIdentifier(
|
|
174
|
+
public void setIdentifier(AirMapMarker view, String identifier) {
|
|
175
175
|
view.setIdentifier(identifier);
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
@ReactProp(name = "description")
|
|
179
|
-
public void setDescription(
|
|
179
|
+
public void setDescription(AirMapMarker view, String description) {
|
|
180
180
|
view.setSnippet(description);
|
|
181
181
|
}
|
|
182
182
|
|
|
@@ -195,7 +195,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
195
195
|
// }
|
|
196
196
|
|
|
197
197
|
@ReactProp(name = "anchor")
|
|
198
|
-
public void setAnchor(
|
|
198
|
+
public void setAnchor(AirMapMarker view, ReadableMap map) {
|
|
199
199
|
// should default to (0.5, 1) (bottom middle)
|
|
200
200
|
double x = map != null && map.hasKey("x") ? map.getDouble("x") : 0.5;
|
|
201
201
|
double y = map != null && map.hasKey("y") ? map.getDouble("y") : 1.0;
|
|
@@ -203,7 +203,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
@ReactProp(name = "calloutAnchor")
|
|
206
|
-
public void setCalloutAnchor(
|
|
206
|
+
public void setCalloutAnchor(AirMapMarker view, ReadableMap map) {
|
|
207
207
|
// should default to (0.5, 0) (top middle)
|
|
208
208
|
double x = map != null && map.hasKey("x") ? map.getDouble("x") : 0.5;
|
|
209
209
|
double y = map != null && map.hasKey("y") ? map.getDouble("y") : 0.0;
|
|
@@ -211,7 +211,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
@ReactProp(name = "image")
|
|
214
|
-
public void setImage(
|
|
214
|
+
public void setImage(AirMapMarker view, @Nullable String source) {
|
|
215
215
|
view.setImage(source);
|
|
216
216
|
}
|
|
217
217
|
// public void setImage(AirMapMarker view, ReadableMap image) {
|
|
@@ -219,12 +219,12 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
219
219
|
// }
|
|
220
220
|
|
|
221
221
|
@ReactProp(name = "icon")
|
|
222
|
-
public void setIcon(
|
|
222
|
+
public void setIcon(AirMapMarker view, @Nullable String source) {
|
|
223
223
|
view.setImage(source);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
@ReactProp(name = "pinColor", defaultInt = Color.RED, customType = "Color")
|
|
227
|
-
public void setPinColor(
|
|
227
|
+
public void setPinColor(AirMapMarker view, int pinColor) {
|
|
228
228
|
float[] hsv = new float[3];
|
|
229
229
|
Color.colorToHSV(pinColor, hsv);
|
|
230
230
|
// NOTE: android only supports a hue
|
|
@@ -232,23 +232,23 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
@ReactProp(name = "rotation", defaultFloat = 0.0f)
|
|
235
|
-
public void setMarkerRotation(
|
|
235
|
+
public void setMarkerRotation(AirMapMarker view, float rotation) {
|
|
236
236
|
view.setRotation(rotation);
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
@ReactProp(name = "flat", defaultBoolean = false)
|
|
240
|
-
public void setFlat(
|
|
240
|
+
public void setFlat(AirMapMarker view, boolean flat) {
|
|
241
241
|
view.setFlat(flat);
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
@ReactProp(name = "draggable", defaultBoolean = false)
|
|
245
|
-
public void setDraggable(
|
|
245
|
+
public void setDraggable(AirMapMarker view, boolean draggable) {
|
|
246
246
|
view.setDraggable(draggable);
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
@Override
|
|
250
250
|
@ReactProp(name = "zIndex", defaultFloat = 0.0f)
|
|
251
|
-
public void setZIndex(
|
|
251
|
+
public void setZIndex(AirMapMarker view, float zIndex) {
|
|
252
252
|
super.setZIndex(view, zIndex);
|
|
253
253
|
int integerZIndex = Math.round(zIndex);
|
|
254
254
|
view.setZIndex(integerZIndex);
|
|
@@ -256,22 +256,22 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
256
256
|
|
|
257
257
|
@Override
|
|
258
258
|
@ReactProp(name = "opacity", defaultFloat = 1.0f)
|
|
259
|
-
public void setOpacity(
|
|
259
|
+
public void setOpacity(AirMapMarker view, float opacity) {
|
|
260
260
|
super.setOpacity(view, opacity);
|
|
261
261
|
view.setOpacity(opacity);
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
@ReactProp(name = "tracksViewChanges", defaultBoolean = true)
|
|
265
|
-
public void setTracksViewChanges(
|
|
265
|
+
public void setTracksViewChanges(AirMapMarker view, boolean tracksViewChanges) {
|
|
266
266
|
view.setTracksViewChanges(tracksViewChanges);
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
@Override
|
|
270
|
-
public void addView(
|
|
270
|
+
public void addView(AirMapMarker parent, View child, int index) {
|
|
271
271
|
// if an <Callout /> component is a child, then it is a callout view, NOT part of the
|
|
272
272
|
// marker.
|
|
273
|
-
if (child instanceof
|
|
274
|
-
parent.setCalloutView((
|
|
273
|
+
if (child instanceof AirMapCallout) {
|
|
274
|
+
parent.setCalloutView((AirMapCallout) child);
|
|
275
275
|
} else {
|
|
276
276
|
super.addView(parent, child, index);
|
|
277
277
|
parent.update(true);
|
|
@@ -279,13 +279,13 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
279
279
|
}
|
|
280
280
|
|
|
281
281
|
@Override
|
|
282
|
-
public void removeViewAt(
|
|
282
|
+
public void removeViewAt(AirMapMarker parent, int index) {
|
|
283
283
|
super.removeViewAt(parent, index);
|
|
284
284
|
parent.update(true);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
@Override
|
|
288
|
-
public void receiveCommand(@NonNull
|
|
288
|
+
public void receiveCommand(@NonNull AirMapMarker view, String commandId, @Nullable ReadableArray args) {
|
|
289
289
|
int duration;
|
|
290
290
|
double lat;
|
|
291
291
|
double lng;
|
|
@@ -347,7 +347,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
347
347
|
}
|
|
348
348
|
|
|
349
349
|
@Override
|
|
350
|
-
public void updateExtraData(
|
|
350
|
+
public void updateExtraData(AirMapMarker view, Object extraData) {
|
|
351
351
|
// This method is called from the shadow node with the width/height of the rendered
|
|
352
352
|
// marker view.
|
|
353
353
|
HashMap<String, Float> data = (HashMap<String, Float>) extraData;
|