react-native-maps 2.0.0-beta.5 → 2.0.0-beta.7
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/rnmaps/maps/MapCalloutManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapCircleManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapGradientPolyline.java +4 -4
- package/android/src/main/java/com/rnmaps/maps/MapGradientPolylineManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapHeatmapManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapLiteManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapLocalTile.java +4 -4
- package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapManager.java +1 -56
- package/android/src/main/java/com/rnmaps/maps/MapMarker.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +9 -26
- package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapPolygonManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapTileProvider.java +4 -4
- package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapView.java +24 -131
- package/android/src/main/java/com/rnmaps/maps/MapViewModule.java +598 -0
- package/android/src/main/java/com/rnmaps/maps/MapWMSTile.java +6 -6
- package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/SizeReportingShadowNode.java +1 -1
- package/ios/{AirGoogleMaps/AIRDummyView.h → GoogleMaps/RNMDummyView.h} +3 -3
- package/ios/{AirGoogleMaps/AIRDummyView.m → GoogleMaps/RNMDummyView.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSMarker.h → GoogleMaps/RNMGMSMarker.h} +6 -6
- package/ios/{AirGoogleMaps/AIRGMSMarker.m → GoogleMaps/RNMGMSMarker.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolygon.h → GoogleMaps/RNMGMSPolygon.h} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolygon.m → GoogleMaps/RNMGMSPolygon.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolyline.h → GoogleMaps/RNMGMSPolyline.h} +4 -4
- package/ios/{AirGoogleMaps/AIRGMSPolyline.m → GoogleMaps/RNMGMSPolyline.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMap.h → GoogleMaps/RNMGoogleMap.h} +5 -5
- package/ios/{AirGoogleMaps/AIRGoogleMap.m → GoogleMaps/RNMGoogleMap.m} +77 -77
- package/ios/{AirGoogleMaps/AIRGoogleMapCallout.h → GoogleMaps/RNMGoogleMapCallout.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCallout.m → GoogleMaps/RNMGoogleMapCallout.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutManager.h → GoogleMaps/RNMGoogleMapCalloutManager.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutManager.m → GoogleMaps/RNMGoogleMapCalloutManager.m} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubview.h → GoogleMaps/RNMGoogleMapCalloutSubview.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubview.m → GoogleMaps/RNMGoogleMapCalloutSubview.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubviewManager.h → GoogleMaps/RNMGoogleMapCalloutSubviewManager.h} +3 -3
- package/ios/GoogleMaps/RNMGoogleMapCalloutSubviewManager.m +28 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapCircle.h → GoogleMaps/RNMGoogleMapCircle.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCircle.m → GoogleMaps/RNMGoogleMapCircle.m} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapCircleManager.h → GoogleMaps/RNMGoogleMapCircleManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapCircleManager.m → GoogleMaps/RNMGoogleMapCircleManager.m} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapHeatmap.h → GoogleMaps/RNMGoogleMapHeatmap.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapHeatmap.m → GoogleMaps/RNMGoogleMapHeatmap.m} +4 -4
- package/ios/GoogleMaps/RNMGoogleMapHeatmapManager.h +11 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapHeatmapManager.m → GoogleMaps/RNMGoogleMapHeatmapManager.m} +9 -9
- package/ios/{AirGoogleMaps/AIRGoogleMapManager.h → GoogleMaps/RNMGoogleMapManager.h} +3 -3
- package/ios/GoogleMaps/RNMGoogleMapManager.m +274 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapMarker.h → GoogleMaps/RNMGoogleMapMarker.h} +15 -15
- package/ios/{AirGoogleMaps/AIRGoogleMapMarker.m → GoogleMaps/RNMGoogleMapMarker.m} +22 -22
- package/ios/{AirGoogleMaps/AIRGoogleMapMarkerManager.h → GoogleMaps/RNMGoogleMapMarkerManager.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapMarkerManager.m → GoogleMaps/RNMGoogleMapMarkerManager.m} +20 -20
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlay.h → GoogleMaps/RNMGoogleMapOverlay.h} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlay.m → GoogleMaps/RNMGoogleMapOverlay.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlayManager.h → GoogleMaps/RNMGoogleMapOverlayManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapOverlayManager.m → GoogleMaps/RNMGoogleMapOverlayManager.m} +6 -6
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygon.h → GoogleMaps/RNMGoogleMapPolygon.h} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygon.m → GoogleMaps/RNMGoogleMapPolygon.m} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapPolylineManager.h → GoogleMaps/RNMGoogleMapPolygonManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygonManager.m → GoogleMaps/RNMGoogleMapPolygonManager.m} +10 -10
- package/ios/{AirGoogleMaps/AIRGoogleMapPolyline.h → GoogleMaps/RNMGoogleMapPolyline.h} +7 -7
- package/ios/{AirGoogleMaps/AIRGoogleMapPolyline.m → GoogleMaps/RNMGoogleMapPolyline.m} +9 -9
- package/ios/{AirGoogleMaps/AIRGoogleMapPolygonManager.h → GoogleMaps/RNMGoogleMapPolylineManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapPolylineManager.m → GoogleMaps/RNMGoogleMapPolylineManager.m} +9 -9
- package/ios/{AirGoogleMaps/AIRGoogleMapUrlTile.h → GoogleMaps/RNMGoogleMapUrlTile.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapUrlTile.m → GoogleMaps/RNMGoogleMapUrlTile.m} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapUrlTileManager.h → GoogleMaps/RNMGoogleMapUrlTileManager.h} +2 -2
- package/ios/{AirGoogleMaps/AIRGoogleMapURLTileManager.m → GoogleMaps/RNMGoogleMapUrlTileManager.m} +7 -7
- package/ios/GoogleMaps/RNMGoogleMapViewModule.h +5 -0
- package/ios/GoogleMaps/RNMGoogleMapViewModule.m +380 -0
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTile.h → GoogleMaps/RNMGoogleMapWMSTile.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTile.m → GoogleMaps/RNMGoogleMapWMSTile.m} +4 -4
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTileManager.h → GoogleMaps/RNMGoogleMapWMSTileManager.h} +3 -3
- package/ios/{AirGoogleMaps/AIRGoogleMapWMSTileManager.m → GoogleMaps/RNMGoogleMapWMSTileManager.m} +8 -8
- package/ios/{AirMaps → Maps}/Callout/SMCalloutView.h +4 -4
- package/ios/{AirMaps/RCTConvert+AirMap.h → Maps/RCTConvert+RNMMap.h} +1 -1
- package/ios/{AirMaps/RCTConvert+AirMap.m → Maps/RCTConvert+RNMMap.m} +8 -8
- package/ios/{AirMaps/AIRMap.h → Maps/RNMMap.h} +8 -8
- package/ios/{AirMaps/AIRMap.m → Maps/RNMMap.m} +56 -56
- package/ios/{AirMaps/AIRMapCallout.h → Maps/RNMMapCallout.h} +1 -1
- package/ios/{AirMaps/AIRMapCallout.m → Maps/RNMMapCallout.m} +2 -2
- package/ios/{AirMaps/AIRMapCircleManager.h → Maps/RNMMapCalloutManager.h} +2 -2
- package/ios/{AirMaps/AIRMapCalloutManager.m → Maps/RNMMapCalloutManager.m} +7 -7
- package/ios/{AirMaps/AIRMapCalloutSubview.h → Maps/RNMMapCalloutSubview.h} +3 -3
- package/ios/{AirMaps/AIRMapCalloutSubview.m → Maps/RNMMapCalloutSubview.m} +4 -4
- package/ios/Maps/RNMMapCalloutSubviewManager.h +14 -0
- package/ios/Maps/RNMMapCalloutSubviewManager.m +24 -0
- package/ios/{AirMaps/AIRMapCircle.h → Maps/RNMMapCircle.h} +5 -5
- package/ios/{AirMaps/AIRMapCircle.m → Maps/RNMMapCircle.m} +3 -3
- package/ios/{AirMaps/AIRMapCalloutManager.h → Maps/RNMMapCircleManager.h} +2 -2
- package/ios/{AirMaps/AIRMapCircleManager.m → Maps/RNMMapCircleManager.m} +7 -7
- package/ios/{AirMaps/AIRMapCoordinate.h → Maps/RNMMapCoordinate.h} +2 -2
- package/ios/{AirMaps/AIRMapCoordinate.m → Maps/RNMMapCoordinate.m} +3 -3
- package/ios/{AirMaps/AIRMapLocalTile.h → Maps/RNMMapLocalTile.h} +7 -7
- package/ios/{AirMaps/AIRMapLocalTile.m → Maps/RNMMapLocalTile.m} +6 -6
- package/ios/{AirMaps/AIRMapLocalTileManager.h → Maps/RNMMapLocalTileManager.h} +3 -3
- package/ios/{AirMaps/AIRMapLocalTileManager.m → Maps/RNMMapLocalTileManager.m} +9 -9
- package/ios/{AirMaps/AIRMapLocalTileOverlay.h → Maps/RNMMapLocalTileOverlay.h} +2 -2
- package/ios/{AirMaps/AIRMapLocalTileOverlay.m → Maps/RNMMapLocalTileOverlay.m} +5 -5
- package/ios/{AirMaps/AIRMapManager.h → Maps/RNMMapManager.h} +6 -6
- package/ios/Maps/RNMMapManager.m +857 -0
- package/ios/{AirMaps/AIRMapMarker.h → Maps/RNMMapMarker.h} +8 -8
- package/ios/{AirMaps/AIRMapMarker.m → Maps/RNMMapMarker.m} +13 -13
- package/ios/{AirMaps/AIRMapMarkerManager.h → Maps/RNMMapMarkerManager.h} +1 -1
- package/ios/{AirMaps/AIRMapMarkerManager.m → Maps/RNMMapMarkerManager.m} +14 -14
- package/ios/{AirMaps/AIRMapOverlay.h → Maps/RNMMapOverlay.h} +7 -7
- package/ios/{AirMaps/AIRMapOverlay.m → Maps/RNMMapOverlay.m} +4 -4
- package/ios/Maps/RNMMapOverlayManager.h +5 -0
- package/ios/{AirMaps/AIRMapOverlayManager.m → Maps/RNMMapOverlayManager.m} +6 -6
- package/ios/{AirMaps/AIRMapOverlayRenderer.h → Maps/RNMMapOverlayRenderer.h} +1 -1
- package/ios/{AirMaps/AIRMapOverlayRenderer.m → Maps/RNMMapOverlayRenderer.m} +5 -5
- package/ios/{AirMaps/AIRMapPolygon.h → Maps/RNMMapPolygon.h} +7 -7
- package/ios/{AirMaps/AIRMapPolygon.m → Maps/RNMMapPolygon.m} +4 -4
- package/ios/{AirMaps/AIRMapPolygonManager.h → Maps/RNMMapPolygonManager.h} +2 -2
- package/ios/{AirMaps/AIRMapPolygonManager.m → Maps/RNMMapPolygonManager.m} +10 -10
- package/ios/{AirMaps/AIRMapPolyline.h → Maps/RNMMapPolyline.h} +6 -6
- package/ios/{AirMaps/AIRMapPolyline.m → Maps/RNMMapPolyline.m} +11 -11
- package/ios/{AirMaps/AIRMapPolylineManager.h → Maps/RNMMapPolylineManager.h} +2 -2
- package/ios/{AirMaps/AIRMapPolylineManager.m → Maps/RNMMapPolylineManager.m} +9 -9
- package/ios/{AirMaps/AIRMapPolylineRenderer.h → Maps/RNMMapPolylineRenderer.h} +2 -2
- package/ios/{AirMaps/AIRMapPolylineRenderer.m → Maps/RNMMapPolylineRenderer.m} +10 -10
- package/ios/{AirMaps/AIRMapSnapshot.h → Maps/RNMMapSnapshot.h} +6 -6
- package/ios/{AirMaps/AIRMapUrlTile.h → Maps/RNMMapUrlTile.h} +18 -18
- package/ios/{AirMaps/AIRMapUrlTile.m → Maps/RNMMapUrlTile.m} +7 -7
- package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.h → Maps/RNMMapUrlTileCachedOverlay.h} +3 -3
- package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.m → Maps/RNMMapUrlTileCachedOverlay.m} +10 -10
- package/ios/{AirMaps/AIRMapUrlTileManager.h → Maps/RNMMapUrlTileManager.h} +3 -3
- package/ios/{AirMaps/AIRMapUrlTileManager.m → Maps/RNMMapUrlTileManager.m} +9 -9
- package/ios/Maps/RNMMapViewModule.h +5 -0
- package/ios/Maps/RNMMapViewModule.m +459 -0
- package/ios/{AirMaps/AIRMapWMSTile.h → Maps/RNMMapWMSTile.h} +11 -11
- package/ios/{AirMaps/AIRMapWMSTile.m → Maps/RNMMapWMSTile.m} +15 -15
- package/ios/{AirMaps/AIRMapWMSTileManager.h → Maps/RNMMapWMSTileManager.h} +3 -3
- package/ios/{AirMaps/AIRMapWMSTileManager.m → Maps/RNMMapWMSTileManager.m} +9 -9
- package/ios/RNMaps.xcodeproj/project.pbxproj +647 -0
- package/lib/MapCallout.js +2 -2
- package/lib/MapCalloutSubview.js +2 -2
- package/lib/MapCircle.js +2 -2
- package/lib/MapHeatmap.js +2 -2
- package/lib/MapLocalTile.js +2 -2
- package/lib/MapMarker.js +2 -2
- package/lib/MapOverlay.js +2 -2
- package/lib/MapPolygon.js +2 -2
- package/lib/MapPolyline.js +2 -2
- package/lib/MapUrlTile.js +2 -2
- package/lib/MapView.d.ts +7 -8
- package/lib/MapView.js +89 -97
- package/lib/MapView.types.d.ts +8 -2
- package/lib/MapViewNativeComponent.d.ts +2 -7
- package/lib/MapViewNativeComponent.js +0 -5
- package/lib/MapWMSTile.js +2 -2
- package/lib/NativeGoogleMapViewModule.d.ts +25 -0
- package/lib/NativeGoogleMapViewModule.js +4 -0
- package/lib/NativeMapViewModule.d.ts +29 -0
- package/lib/NativeMapViewModule.js +4 -0
- package/lib/decorateMapComponent.d.ts +1 -1
- package/lib/decorateMapComponent.js +3 -3
- package/package.json +1 -1
- package/react-native-google-maps.podspec +1 -1
- package/react-native-maps.podspec +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapModule.java +0 -380
- package/ios/AirGoogleMaps/AIRGoogleMapCalloutSubviewManager.m +0 -28
- package/ios/AirGoogleMaps/AIRGoogleMapHeatmapManager.h +0 -11
- package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -597
- package/ios/AirMaps/AIRMapCalloutSubviewManager.h +0 -14
- package/ios/AirMaps/AIRMapCalloutSubviewManager.m +0 -24
- package/ios/AirMaps/AIRMapManager.m +0 -1253
- package/ios/AirMaps/AIRMapOverlayManager.h +0 -5
- package/ios/AirMaps/AIRWeakMapReference.h +0 -24
- package/ios/AirMaps/AIRWeakMapReference.m +0 -23
- package/ios/AirMaps/AIRWeakTimerReference.h +0 -21
- package/ios/AirMaps/AIRWeakTimerReference.m +0 -42
- package/ios/AirMaps.xcodeproj/project.pbxproj +0 -587
- /package/ios/{AirGoogleMaps → GoogleMaps}/RCTConvert+GMSMapViewType.h +0 -0
- /package/ios/{AirGoogleMaps → GoogleMaps}/RCTConvert+GMSMapViewType.m +0 -0
- /package/ios/{AirMaps → Maps}/Callout/SMCalloutView.m +0 -0
|
@@ -86,7 +86,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
86
86
|
private TileOverlayOptions createTileOverlayOptions() {
|
|
87
87
|
TileOverlayOptions options = new TileOverlayOptions();
|
|
88
88
|
options.zIndex(zIndex);
|
|
89
|
-
|
|
89
|
+
MapGradientPolylineProvider tileProvider = new MapGradientPolylineProvider(context, points, colors, width);
|
|
90
90
|
options.tileProvider(tileProvider);
|
|
91
91
|
return options;
|
|
92
92
|
}
|
|
@@ -110,7 +110,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
110
110
|
return Color.rgb(rTotal, gTotal, bTotal);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
public class
|
|
113
|
+
public class MapGradientPolylineProvider implements TileProvider {
|
|
114
114
|
|
|
115
115
|
public static final int BASE_TILE_SIZE = 256;
|
|
116
116
|
|
|
@@ -126,7 +126,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
126
126
|
protected Point[] projectedPts;
|
|
127
127
|
protected Point[] projectedPtMids;
|
|
128
128
|
|
|
129
|
-
public
|
|
129
|
+
public MapGradientPolylineProvider(Context context, List<LatLng> points, int[] colors,
|
|
130
130
|
float width) {
|
|
131
131
|
super();
|
|
132
132
|
|
|
@@ -239,7 +239,7 @@ public class MapGradientPolyline extends MapFeature {
|
|
|
239
239
|
float interp2 = ((float)i - 1) / points.size();
|
|
240
240
|
float interp1to2 = (interp1 + interp2) / 2;
|
|
241
241
|
|
|
242
|
-
Log.d("
|
|
242
|
+
Log.d("MapGradientPolyline", String.valueOf(interp1to2));
|
|
243
243
|
|
|
244
244
|
// Circle for the corner (removes the weird empty corners that occur otherwise)
|
|
245
245
|
colorPaint.setStyle(Paint.Style.FILL);
|
|
@@ -5,7 +5,7 @@ import com.google.android.gms.maps.GoogleMapOptions;
|
|
|
5
5
|
|
|
6
6
|
public class MapLiteManager extends MapManager {
|
|
7
7
|
|
|
8
|
-
private static final String REACT_CLASS = "
|
|
8
|
+
private static final String REACT_CLASS = "RNMMapLite";
|
|
9
9
|
|
|
10
10
|
@Override
|
|
11
11
|
public String getName() {
|
|
@@ -15,14 +15,14 @@ import java.io.InputStream;
|
|
|
15
15
|
|
|
16
16
|
public class MapLocalTile extends MapFeature {
|
|
17
17
|
|
|
18
|
-
class
|
|
18
|
+
class MapLocalTileProvider implements TileProvider {
|
|
19
19
|
private static final int BUFFER_SIZE = 16 * 1024;
|
|
20
20
|
private int tileSize;
|
|
21
21
|
private String pathTemplate;
|
|
22
22
|
private final boolean useAssets;
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
public
|
|
25
|
+
public MapLocalTileProvider(int tileSizet, String pathTemplate, boolean useAssets) {
|
|
26
26
|
this.tileSize = tileSizet;
|
|
27
27
|
this.pathTemplate = pathTemplate;
|
|
28
28
|
this.useAssets = useAssets;
|
|
@@ -80,7 +80,7 @@ public class MapLocalTile extends MapFeature {
|
|
|
80
80
|
|
|
81
81
|
private TileOverlayOptions tileOverlayOptions;
|
|
82
82
|
private TileOverlay tileOverlay;
|
|
83
|
-
private MapLocalTile.
|
|
83
|
+
private MapLocalTile.MapLocalTileProvider tileProvider;
|
|
84
84
|
|
|
85
85
|
private String pathTemplate;
|
|
86
86
|
private float tileSize;
|
|
@@ -129,7 +129,7 @@ public class MapLocalTile extends MapFeature {
|
|
|
129
129
|
private TileOverlayOptions createTileOverlayOptions() {
|
|
130
130
|
TileOverlayOptions options = new TileOverlayOptions();
|
|
131
131
|
options.zIndex(zIndex);
|
|
132
|
-
this.tileProvider = new MapLocalTile.
|
|
132
|
+
this.tileProvider = new MapLocalTile.MapLocalTileProvider((int)this.tileSize, this.pathTemplate, this.useAssets);
|
|
133
133
|
options.tileProvider(this.tileProvider);
|
|
134
134
|
return options;
|
|
135
135
|
}
|
|
@@ -20,14 +20,12 @@ import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
|
20
20
|
import com.google.android.gms.location.Priority;
|
|
21
21
|
import com.google.android.gms.maps.GoogleMap;
|
|
22
22
|
import com.google.android.gms.maps.GoogleMapOptions;
|
|
23
|
-
import com.google.android.gms.maps.model.LatLng;
|
|
24
|
-
import com.google.android.gms.maps.model.LatLngBounds;
|
|
25
23
|
|
|
26
24
|
import java.util.Map;
|
|
27
25
|
|
|
28
26
|
public class MapManager extends ViewGroupManager<MapView> {
|
|
29
27
|
|
|
30
|
-
private static final String REACT_CLASS = "
|
|
28
|
+
private static final String REACT_CLASS = "RNMMap";
|
|
31
29
|
|
|
32
30
|
private final Map<String, Integer> MAP_TYPES = MapBuilder.of(
|
|
33
31
|
"standard", GoogleMap.MAP_TYPE_NORMAL,
|
|
@@ -278,12 +276,6 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
278
276
|
|
|
279
277
|
@Override
|
|
280
278
|
public void receiveCommand(@NonNull MapView view, String commandId, @Nullable ReadableArray args) {
|
|
281
|
-
int duration;
|
|
282
|
-
double lat;
|
|
283
|
-
double lng;
|
|
284
|
-
double lngDelta;
|
|
285
|
-
double latDelta;
|
|
286
|
-
ReadableMap region;
|
|
287
279
|
ReadableMap camera;
|
|
288
280
|
|
|
289
281
|
switch (commandId) {
|
|
@@ -295,53 +287,6 @@ public class MapManager extends ViewGroupManager<MapView> {
|
|
|
295
287
|
view.animateToCamera(camera, 0);
|
|
296
288
|
break;
|
|
297
289
|
|
|
298
|
-
case "animateCamera":
|
|
299
|
-
if(args == null) {
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
camera = args.getMap(0);
|
|
303
|
-
duration = args.getInt(1);
|
|
304
|
-
view.animateToCamera(camera, duration);
|
|
305
|
-
break;
|
|
306
|
-
|
|
307
|
-
case "animateToRegion":
|
|
308
|
-
if(args == null) {
|
|
309
|
-
break;
|
|
310
|
-
}
|
|
311
|
-
region = args.getMap(0);
|
|
312
|
-
duration = args.getInt(1);
|
|
313
|
-
lng = region.getDouble("longitude");
|
|
314
|
-
lat = region.getDouble("latitude");
|
|
315
|
-
lngDelta = region.getDouble("longitudeDelta");
|
|
316
|
-
latDelta = region.getDouble("latitudeDelta");
|
|
317
|
-
LatLngBounds bounds = new LatLngBounds(
|
|
318
|
-
new LatLng(lat - latDelta / 2, lng - lngDelta / 2), // southwest
|
|
319
|
-
new LatLng(lat + latDelta / 2, lng + lngDelta / 2) // northeast
|
|
320
|
-
);
|
|
321
|
-
view.animateToRegion(bounds, duration);
|
|
322
|
-
break;
|
|
323
|
-
|
|
324
|
-
case "fitToElements":
|
|
325
|
-
if(args == null) {
|
|
326
|
-
break;
|
|
327
|
-
}
|
|
328
|
-
view.fitToElements(args.getMap(0), args.getBoolean(1));
|
|
329
|
-
break;
|
|
330
|
-
|
|
331
|
-
case "fitToSuppliedMarkers":
|
|
332
|
-
if(args == null) {
|
|
333
|
-
break;
|
|
334
|
-
}
|
|
335
|
-
view.fitToSuppliedMarkers(args.getArray(0), args.getMap(1), args.getBoolean(2));
|
|
336
|
-
break;
|
|
337
|
-
|
|
338
|
-
case "fitToCoordinates":
|
|
339
|
-
if(args == null) {
|
|
340
|
-
break;
|
|
341
|
-
}
|
|
342
|
-
view.fitToCoordinates(args.getArray(0), args.getMap(1), args.getBoolean(2));
|
|
343
|
-
break;
|
|
344
|
-
|
|
345
290
|
case "setMapBoundaries":
|
|
346
291
|
if(args == null) {
|
|
347
292
|
break;
|
|
@@ -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
|
-
MapMarkerManager.
|
|
335
|
+
MapMarkerManager.MapMarkerSharedIcon sharedIcon = this.markerManager.getSharedIcon(uri);
|
|
336
336
|
sharedIcon.addMarker(this);
|
|
337
337
|
shouldLoadImage = sharedIcon.shouldLoadImage();
|
|
338
338
|
}
|
|
@@ -25,20 +25,20 @@ import java.util.concurrent.ConcurrentHashMap;
|
|
|
25
25
|
|
|
26
26
|
public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
27
27
|
|
|
28
|
-
public static class
|
|
28
|
+
public static class MapMarkerSharedIcon {
|
|
29
29
|
private BitmapDescriptor iconBitmapDescriptor;
|
|
30
30
|
private Bitmap bitmap;
|
|
31
31
|
private final Map<MapMarker, Boolean> markers;
|
|
32
32
|
private boolean loadImageStarted;
|
|
33
33
|
|
|
34
|
-
public
|
|
34
|
+
public MapMarkerSharedIcon(){
|
|
35
35
|
this.markers = new WeakHashMap<>();
|
|
36
36
|
this.loadImageStarted = false;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* check whether the load image process started.
|
|
41
|
-
* caller
|
|
41
|
+
* caller MapMarker will only need to load it when this returns true.
|
|
42
42
|
*
|
|
43
43
|
* @return true if it is not started, false otherwise.
|
|
44
44
|
*/
|
|
@@ -109,7 +109,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
private final Map<String,
|
|
112
|
+
private final Map<String, MapMarkerSharedIcon> sharedIcons = new ConcurrentHashMap<>();
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
115
|
* get the shared icon object, if not existed, create a new one and store it.
|
|
@@ -117,12 +117,12 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
117
117
|
* @param uri
|
|
118
118
|
* @return the icon object for the given uri.
|
|
119
119
|
*/
|
|
120
|
-
public
|
|
121
|
-
|
|
120
|
+
public MapMarkerSharedIcon getSharedIcon(String uri) {
|
|
121
|
+
MapMarkerSharedIcon icon = this.sharedIcons.get(uri);
|
|
122
122
|
if (icon == null) {
|
|
123
123
|
synchronized (this) {
|
|
124
124
|
if((icon = this.sharedIcons.get(uri)) == null) {
|
|
125
|
-
icon = new
|
|
125
|
+
icon = new MapMarkerSharedIcon();
|
|
126
126
|
this.sharedIcons.put(uri, icon);
|
|
127
127
|
}
|
|
128
128
|
}
|
|
@@ -136,7 +136,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
136
136
|
* @param uri
|
|
137
137
|
*/
|
|
138
138
|
public void removeSharedIconIfEmpty(String uri) {
|
|
139
|
-
|
|
139
|
+
MapMarkerSharedIcon icon = this.sharedIcons.get(uri);
|
|
140
140
|
if (icon == null) {return;}
|
|
141
141
|
if (!icon.hasMarker()) {
|
|
142
142
|
synchronized (this) {
|
|
@@ -152,7 +152,7 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
152
152
|
|
|
153
153
|
@Override
|
|
154
154
|
public String getName() {
|
|
155
|
-
return "
|
|
155
|
+
return "RNMMapMarker";
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
@Override
|
|
@@ -180,20 +180,6 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
180
180
|
view.setSnippet(description);
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
// NOTE(lmr):
|
|
184
|
-
// android uses normalized coordinate systems for this, and is provided through the
|
|
185
|
-
// `anchor` property and `calloutAnchor` instead. Perhaps some work could be done
|
|
186
|
-
// to normalize iOS and android to use just one of the systems.
|
|
187
|
-
// @ReactProp(name = "centerOffset")
|
|
188
|
-
// public void setCenterOffset(AirMapMarker view, ReadableMap map) {
|
|
189
|
-
//
|
|
190
|
-
// }
|
|
191
|
-
//
|
|
192
|
-
// @ReactProp(name = "calloutOffset")
|
|
193
|
-
// public void setCalloutOffset(AirMapMarker view, ReadableMap map) {
|
|
194
|
-
//
|
|
195
|
-
// }
|
|
196
|
-
|
|
197
183
|
@ReactProp(name = "anchor")
|
|
198
184
|
public void setAnchor(MapMarker view, ReadableMap map) {
|
|
199
185
|
// should default to (0.5, 1) (bottom middle)
|
|
@@ -214,9 +200,6 @@ public class MapMarkerManager extends ViewGroupManager<MapMarker> {
|
|
|
214
200
|
public void setImage(MapMarker view, @Nullable String source) {
|
|
215
201
|
view.setImage(source);
|
|
216
202
|
}
|
|
217
|
-
// public void setImage(AirMapMarker view, ReadableMap image) {
|
|
218
|
-
// view.setImage(image);
|
|
219
|
-
// }
|
|
220
203
|
|
|
221
204
|
@ReactProp(name = "icon")
|
|
222
205
|
public void setIcon(MapMarker view, @Nullable String source) {
|
|
@@ -43,10 +43,10 @@ import java.net.URLConnection;
|
|
|
43
43
|
|
|
44
44
|
public class MapTileProvider implements TileProvider {
|
|
45
45
|
|
|
46
|
-
class
|
|
46
|
+
class MapUrlTileProvider extends UrlTileProvider {
|
|
47
47
|
private String urlTemplate;
|
|
48
48
|
|
|
49
|
-
public
|
|
49
|
+
public MapUrlTileProvider(int width, int height, String urlTemplate) {
|
|
50
50
|
super(width, height);
|
|
51
51
|
this.urlTemplate = urlTemplate;
|
|
52
52
|
}
|
|
@@ -104,7 +104,7 @@ public class MapTileProvider implements TileProvider {
|
|
|
104
104
|
public MapTileProvider(int tileSizet, boolean doubleTileSize, String urlTemplate,
|
|
105
105
|
int maximumZ, int maximumNativeZ, int minimumZ, boolean flipY, String tileCachePath,
|
|
106
106
|
int tileCacheMaxAge, boolean offlineMode, Context context, boolean customMode) {
|
|
107
|
-
this.tileProvider = new
|
|
107
|
+
this.tileProvider = new MapUrlTileProvider(tileSizet, tileSizet, urlTemplate);
|
|
108
108
|
|
|
109
109
|
this.tileSize = tileSizet;
|
|
110
110
|
this.doubleTileSize = doubleTileSize;
|
|
@@ -448,7 +448,7 @@ public class MapTileProvider implements TileProvider {
|
|
|
448
448
|
|
|
449
449
|
public void setTileSize(int tileSize) {
|
|
450
450
|
if (this.tileSize != tileSize) {
|
|
451
|
-
this.tileProvider = new
|
|
451
|
+
this.tileProvider = new MapUrlTileProvider(tileSize, tileSize, urlTemplate);
|
|
452
452
|
}
|
|
453
453
|
this.tileSize = tileSize;
|
|
454
454
|
}
|
|
@@ -93,7 +93,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
93
93
|
private Boolean isMapLoaded = false;
|
|
94
94
|
private Integer loadingBackgroundColor = null;
|
|
95
95
|
private Integer loadingIndicatorColor = null;
|
|
96
|
-
|
|
96
|
+
public final int baseMapPadding = 50;
|
|
97
97
|
|
|
98
98
|
private LatLngBounds boundsToMove;
|
|
99
99
|
private CameraUpdate cameraToSet;
|
|
@@ -114,7 +114,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
114
114
|
private static final String[] PERMISSIONS = new String[]{
|
|
115
115
|
"android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_COARSE_LOCATION"};
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
public final List<MapFeature> features = new ArrayList<>();
|
|
118
118
|
private final Map<Marker, MapMarker> markerMap = new HashMap<>();
|
|
119
119
|
private final Map<Polyline, MapPolyline> polylineMap = new HashMap<>();
|
|
120
120
|
private final Map<Polygon, MapPolygon> polygonMap = new HashMap<>();
|
|
@@ -275,17 +275,17 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
275
275
|
markerCollection.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
|
|
276
276
|
@Override
|
|
277
277
|
public boolean onMarkerClick(@NonNull Marker marker) {
|
|
278
|
-
MapMarker
|
|
278
|
+
MapMarker rnmMapMarker = getMarkerMap(marker);
|
|
279
279
|
|
|
280
280
|
WritableMap event = makeClickEventData(marker.getPosition());
|
|
281
281
|
event.putString("action", "marker-press");
|
|
282
|
-
event.putString("id",
|
|
282
|
+
event.putString("id", rnmMapMarker.getIdentifier());
|
|
283
283
|
manager.pushEvent(context, view, "onMarkerPress", event);
|
|
284
284
|
|
|
285
285
|
event = makeClickEventData(marker.getPosition());
|
|
286
286
|
event.putString("action", "marker-press");
|
|
287
|
-
event.putString("id",
|
|
288
|
-
manager.pushEvent(context,
|
|
287
|
+
event.putString("id", rnmMapMarker.getIdentifier());
|
|
288
|
+
manager.pushEvent(context, rnmMapMarker, "onPress", event);
|
|
289
289
|
|
|
290
290
|
// Return false to open the callout info window and center on the marker
|
|
291
291
|
// https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap
|
|
@@ -831,8 +831,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
831
831
|
}
|
|
832
832
|
}
|
|
833
833
|
|
|
834
|
-
public
|
|
835
|
-
if (map == null) return;
|
|
834
|
+
public CameraUpdate buildCameraUpdate(ReadableMap camera) {
|
|
836
835
|
CameraPosition.Builder builder = new CameraPosition.Builder(map.getCameraPosition());
|
|
837
836
|
if (camera.hasKey("zoom")) {
|
|
838
837
|
builder.zoom((float)camera.getDouble("zoom"));
|
|
@@ -848,103 +847,26 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
848
847
|
builder.target(new LatLng(center.getDouble("latitude"), center.getDouble("longitude")));
|
|
849
848
|
}
|
|
850
849
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
if (duration <= 0) {
|
|
854
|
-
map.moveCamera(update);
|
|
855
|
-
}
|
|
856
|
-
else {
|
|
857
|
-
map.animateCamera(update, duration, null);
|
|
858
|
-
}
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
public void animateToRegion(LatLngBounds bounds, int duration) {
|
|
862
|
-
if (map == null) return;
|
|
863
|
-
if(duration <= 0) {
|
|
864
|
-
map.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0));
|
|
865
|
-
} else {
|
|
866
|
-
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0), duration, null);
|
|
867
|
-
}
|
|
850
|
+
return CameraUpdateFactory.newCameraPosition(builder.build());
|
|
868
851
|
}
|
|
869
852
|
|
|
870
|
-
public void
|
|
853
|
+
public void animateToCamera(ReadableMap camera, int duration) {
|
|
871
854
|
if (map == null) return;
|
|
872
855
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
boolean addedPosition = false;
|
|
876
|
-
|
|
877
|
-
for (MapFeature feature : features) {
|
|
878
|
-
if (feature instanceof MapMarker) {
|
|
879
|
-
Marker marker = (Marker) feature.getFeature();
|
|
880
|
-
builder.include(marker.getPosition());
|
|
881
|
-
addedPosition = true;
|
|
882
|
-
}
|
|
883
|
-
// TODO(lmr): may want to include shapes / etc.
|
|
884
|
-
}
|
|
885
|
-
if (addedPosition) {
|
|
886
|
-
LatLngBounds bounds = builder.build();
|
|
887
|
-
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
|
|
888
|
-
|
|
889
|
-
if (edgePadding != null) {
|
|
890
|
-
map.setPadding(edgePadding.getInt("left"), edgePadding.getInt("top"),
|
|
891
|
-
edgePadding.getInt("right"), edgePadding.getInt("bottom"));
|
|
892
|
-
}
|
|
893
|
-
|
|
894
|
-
if (animated) {
|
|
895
|
-
map.animateCamera(cu);
|
|
896
|
-
} else {
|
|
897
|
-
map.moveCamera(cu);
|
|
898
|
-
}
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
|
-
|
|
902
|
-
public void fitToSuppliedMarkers(ReadableArray markerIDsArray, ReadableMap edgePadding, boolean animated) {
|
|
903
|
-
if (map == null) return;
|
|
856
|
+
CameraUpdate update = buildCameraUpdate(camera);
|
|
904
857
|
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
String[] markerIDs = new String[markerIDsArray.size()];
|
|
908
|
-
for (int i = 0; i < markerIDsArray.size(); i++) {
|
|
909
|
-
markerIDs[i] = markerIDsArray.getString(i);
|
|
910
|
-
}
|
|
911
|
-
|
|
912
|
-
boolean addedPosition = false;
|
|
913
|
-
|
|
914
|
-
List<String> markerIDList = Arrays.asList(markerIDs);
|
|
915
|
-
|
|
916
|
-
for (MapFeature feature : features) {
|
|
917
|
-
if (feature instanceof MapMarker) {
|
|
918
|
-
String identifier = ((MapMarker) feature).getIdentifier();
|
|
919
|
-
Marker marker = (Marker) feature.getFeature();
|
|
920
|
-
if (markerIDList.contains(identifier)) {
|
|
921
|
-
builder.include(marker.getPosition());
|
|
922
|
-
addedPosition = true;
|
|
923
|
-
}
|
|
924
|
-
}
|
|
858
|
+
if (duration <= 0) {
|
|
859
|
+
map.moveCamera(update);
|
|
925
860
|
}
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
LatLngBounds bounds = builder.build();
|
|
929
|
-
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
|
|
930
|
-
|
|
931
|
-
if (edgePadding != null) {
|
|
932
|
-
map.setPadding(edgePadding.getInt("left"), edgePadding.getInt("top"),
|
|
933
|
-
edgePadding.getInt("right"), edgePadding.getInt("bottom"));
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
if (animated) {
|
|
937
|
-
map.animateCamera(cu);
|
|
938
|
-
} else {
|
|
939
|
-
map.moveCamera(cu);
|
|
940
|
-
}
|
|
861
|
+
else {
|
|
862
|
+
map.animateCamera(update, duration, null);
|
|
941
863
|
}
|
|
942
864
|
}
|
|
943
865
|
|
|
944
|
-
int baseLeftMapPadding;
|
|
945
|
-
int baseRightMapPadding;
|
|
946
|
-
int baseTopMapPadding;
|
|
947
|
-
int baseBottomMapPadding;
|
|
866
|
+
public int baseLeftMapPadding;
|
|
867
|
+
public int baseRightMapPadding;
|
|
868
|
+
public int baseTopMapPadding;
|
|
869
|
+
public int baseBottomMapPadding;
|
|
948
870
|
|
|
949
871
|
public void applyBaseMapPadding(int left, int top, int right, int bottom){
|
|
950
872
|
this.map.setPadding(left, top, right, bottom);
|
|
@@ -954,36 +876,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
954
876
|
baseBottomMapPadding = bottom;
|
|
955
877
|
}
|
|
956
878
|
|
|
957
|
-
public void
|
|
958
|
-
boolean animated) {
|
|
959
|
-
if (map == null) return;
|
|
960
|
-
|
|
961
|
-
LatLngBounds.Builder builder = new LatLngBounds.Builder();
|
|
962
|
-
|
|
963
|
-
for (int i = 0; i < coordinatesArray.size(); i++) {
|
|
964
|
-
ReadableMap latLng = coordinatesArray.getMap(i);
|
|
965
|
-
double lat = latLng.getDouble("latitude");
|
|
966
|
-
double lng = latLng.getDouble("longitude");
|
|
967
|
-
builder.include(new LatLng(lat, lng));
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
LatLngBounds bounds = builder.build();
|
|
971
|
-
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
|
|
972
|
-
|
|
973
|
-
if (edgePadding != null) {
|
|
974
|
-
appendMapPadding(edgePadding.getInt("left"), edgePadding.getInt("top"), edgePadding.getInt("right"), edgePadding.getInt("bottom"));
|
|
975
|
-
}
|
|
976
|
-
|
|
977
|
-
if (animated) {
|
|
978
|
-
map.animateCamera(cu);
|
|
979
|
-
} else {
|
|
980
|
-
map.moveCamera(cu);
|
|
981
|
-
}
|
|
982
|
-
// Move the google logo to the default base padding value.
|
|
983
|
-
map.setPadding(baseLeftMapPadding, baseTopMapPadding, baseRightMapPadding, baseBottomMapPadding);
|
|
984
|
-
}
|
|
985
|
-
|
|
986
|
-
private void appendMapPadding(int iLeft,int iTop, int iRight, int iBottom) {
|
|
879
|
+
public void appendMapPadding(int iLeft,int iTop, int iRight, int iBottom) {
|
|
987
880
|
int left;
|
|
988
881
|
int top;
|
|
989
882
|
int right;
|
|
@@ -1375,21 +1268,21 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
|
|
|
1375
1268
|
}
|
|
1376
1269
|
|
|
1377
1270
|
private MapMarker getMarkerMap(Marker marker) {
|
|
1378
|
-
MapMarker
|
|
1271
|
+
MapMarker rnmMarker = markerMap.get(marker);
|
|
1379
1272
|
|
|
1380
|
-
if (
|
|
1381
|
-
return
|
|
1273
|
+
if (rnmMarker != null) {
|
|
1274
|
+
return rnmMarker;
|
|
1382
1275
|
}
|
|
1383
1276
|
|
|
1384
1277
|
for (Map.Entry<Marker, MapMarker> entryMarker : markerMap.entrySet()) {
|
|
1385
1278
|
if (entryMarker.getKey().getPosition().equals(marker.getPosition())
|
|
1386
1279
|
&& entryMarker.getKey().getTitle().equals(marker.getTitle())) {
|
|
1387
|
-
|
|
1280
|
+
rnmMarker = entryMarker.getValue();
|
|
1388
1281
|
break;
|
|
1389
1282
|
}
|
|
1390
1283
|
}
|
|
1391
1284
|
|
|
1392
|
-
return
|
|
1285
|
+
return rnmMarker;
|
|
1393
1286
|
}
|
|
1394
1287
|
|
|
1395
1288
|
@Override
|