From daee99549cae511793018f6e5d32a3c117f8300c Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Fri, 2 Mar 2018 16:52:35 -0800 Subject: [PATCH 01/23] initial broken api fixes --- MapboxAndroidDemo/build.gradle | 2 ++ .../mapboxandroiddemo/MainActivity.java | 2 +- .../labs/IndoorMapActivity.java | 4 +-- .../labs/LocationPickerActivity.java | 25 ++++++++++--------- .../labs/SpaceStationLocationActivity.java | 8 +++--- gradle/dependencies.gradle | 24 ++++++++++-------- 6 files changed, 36 insertions(+), 29 deletions(-) diff --git a/MapboxAndroidDemo/build.gradle b/MapboxAndroidDemo/build.gradle index 5a3ccbea1..fdb8196ea 100644 --- a/MapboxAndroidDemo/build.gradle +++ b/MapboxAndroidDemo/build.gradle @@ -88,6 +88,8 @@ dependencies { // Mapbox dependencies api (dependenciesList.mapboxMapSdk) + implementation dependenciesList.mapboxTurf + implementation dependenciesList.mapboGeoJson // Mapbox plugins implementation dependenciesList.mapboxPluginLocationLayer diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java index eca8cacb5..4b0eec164 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java @@ -65,8 +65,8 @@ import com.mapbox.mapboxandroiddemo.examples.plugins.BuildingPluginActivity; import com.mapbox.mapboxandroiddemo.examples.plugins.GeoJsonPluginActivity; import com.mapbox.mapboxandroiddemo.examples.plugins.LocationPluginActivity; -import com.mapbox.mapboxandroiddemo.examples.plugins.PlacesPluginActivity; import com.mapbox.mapboxandroiddemo.examples.plugins.MarkerClustersPluginActivity; +import com.mapbox.mapboxandroiddemo.examples.plugins.PlacesPluginActivity; import com.mapbox.mapboxandroiddemo.examples.plugins.TrafficPluginActivity; import com.mapbox.mapboxandroiddemo.examples.query.ClickOnLayerActivity; import com.mapbox.mapboxandroiddemo.examples.query.FeatureCountActivity; diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java index b0dd85d47..e97584871 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java @@ -20,9 +20,9 @@ import com.mapbox.mapboxsdk.style.layers.FillLayer; import com.mapbox.mapboxsdk.style.layers.LineLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; -import com.mapbox.services.api.utils.turf.TurfException; -import com.mapbox.services.api.utils.turf.TurfJoins; import com.mapbox.services.commons.models.Position; +import com.mapbox.turf.TurfException; +import com.mapbox.turf.TurfJoins; import java.io.IOException; import java.io.InputStream; diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java index be4fdead3..6e4789902 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java @@ -15,6 +15,11 @@ import android.widget.ImageView; import android.widget.Toast; +import com.mapbox.api.geocoding.v5.GeocodingCriteria; +import com.mapbox.api.geocoding.v5.MapboxGeocoding; +import com.mapbox.api.geocoding.v5.models.CarmenFeature; +import com.mapbox.api.geocoding.v5.models.GeocodingResponse; +import com.mapbox.core.exceptions.ServicesException; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Icon; @@ -29,17 +34,12 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerMode; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerPlugin; -import com.mapbox.services.android.location.LostLocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngineListener; import com.mapbox.services.android.telemetry.location.LocationEnginePriority; +import com.mapbox.services.android.telemetry.location.LocationEngineProvider; import com.mapbox.services.android.telemetry.permissions.PermissionsListener; import com.mapbox.services.android.telemetry.permissions.PermissionsManager; -import com.mapbox.services.api.ServicesException; -import com.mapbox.services.api.geocoding.v5.GeocodingCriteria; -import com.mapbox.services.api.geocoding.v5.MapboxGeocoding; -import com.mapbox.services.api.geocoding.v5.models.CarmenFeature; -import com.mapbox.services.api.geocoding.v5.models.GeocodingResponse; import com.mapbox.services.commons.models.Position; import java.util.List; @@ -166,6 +166,7 @@ public void onResume() { } @Override + @SuppressWarnings( {"MissingPermission"}) protected void onStart() { super.onStart(); if (locationPlugin != null) { @@ -250,9 +251,9 @@ public void onPermissionResult(boolean granted) { private void reverseGeocode(final LatLng point) { // This method is used to reverse geocode where the user has dropped the marker. try { - MapboxGeocoding client = new MapboxGeocoding.Builder() - .setAccessToken(getString(R.string.access_token)) - .setCoordinates(Position.fromCoordinates(point.getLongitude(), point.getLatitude())) + MapboxGeocoding client = MapboxGeocoding.builder() + .accessToken(getString(R.string.access_token)) + .query(Position.fromCoordinates(point.getLongitude(), point.getLatitude())) .setGeocodingType(GeocodingCriteria.TYPE_ADDRESS) .build(); @@ -260,14 +261,14 @@ private void reverseGeocode(final LatLng point) { @Override public void onResponse(Call call, Response response) { - List results = response.body().getFeatures(); + List results = response.body().features(); if (results.size() > 0) { CarmenFeature feature = results.get(0); // If the geocoder returns a result, we take the first in the list and update // the dropped marker snippet with the information. Lastly we open the info // window. if (droppedMarker != null) { - droppedMarker.setSnippet(feature.getPlaceName()); + droppedMarker.setSnippet(feature.placeName()); mapboxMap.selectMarker(droppedMarker); } @@ -307,7 +308,7 @@ private void enableLocationPlugin() { @SuppressWarnings( {"MissingPermission"}) private void initializeLocationEngine() { - locationEngine = new LostLocationEngine(LocationPickerActivity.this); + locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable(); locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY); locationEngine.activate(); diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java index fd38fb54c..7646240db 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java @@ -22,8 +22,9 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.api.utils.turf.TurfMeasurement; +import com.mapbox.services.commons.geojson.Point; import com.mapbox.services.commons.models.Position; +import com.mapbox.turf.TurfMeasurement; import retrofit2.Call; import retrofit2.Callback; @@ -231,9 +232,8 @@ public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) { public static double computeHeading(LatLng from, LatLng to) { // Compute bearing/heading using Turf and return the value. return TurfMeasurement.bearing( - Position.fromCoordinates(from.getLongitude(), from.getLatitude()), - Position.fromCoordinates(to.getLongitude(), to.getLatitude()) - ); + Point.fromCoordinates(Position.fromLngLat(from.getLongitude(), from.getLatitude())), + Point.fromCoordinates(Position.fromLngLat(to.getLongitude(), to.getLatitude()))); } // Interface used for Retrofit. diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 474914345..01d6a7db1 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -13,13 +13,15 @@ ext { version = [ // mapbox mapboxMapSdk : '5.4.1', - mapboxPluginBuilding : '0.1.0', - mapboxPluginGeoJson : '0.1.0', - mapboxPluginLocationLayer : '0.3.0', - mapboxPluginTraffic : '0.4.0-SNAPSHOT', - mapboxPluginMarkerCluster : '0.1.0', - mapboxPluginPlaces : '0.2.1', - + mapboxTurf : '3.0.0-beta.3', + mapboGeoJson : '3.0.0-beta.3', + mapboxPluginBuilding : '0.1.0', + mapboxPluginGeoJson : '0.1.0', + mapboxPluginLocationLayer: '0.3.0', + mapboxPluginTraffic : '0.4.0-SNAPSHOT', + mapboxPluginMarkerCluster: '0.1.0', + mapboxPluginPlaces : '0.2.1', + // Support supportLib : '26.1.0', constraintLayout : '1.0.2', @@ -53,6 +55,8 @@ ext { dependenciesList = [ // mapbox mapboxMapSdk : "com.mapbox.mapboxsdk:mapbox-android-sdk:${version.mapboxMapSdk}", + mapboxTurf : "com.mapbox.mapboxsdk:mapbox-sdk-turf:${version.mapboxTurf}", + mapboGeoJson : "com.mapbox.mapboxsdk:mapbox-sdk-geojson:${version.mapboGeoJson}", mapboxPluginLocationLayer: "com.mapbox.mapboxsdk:mapbox-android-plugin-locationlayer:${version.mapboxPluginLocationLayer}", mapboxPluginBuilding : "com.mapbox.mapboxsdk:mapbox-android-plugin-building:${version.mapboxPluginBuilding}", @@ -91,9 +95,9 @@ ext { ] pluginDependencies = [ - gradle : "com.android.tools.build:gradle:${pluginVersion.gradle}", - checkstyle : "com.puppycrawl.tools:checkstyle:${pluginVersion.checkstyle}", - firebase : "com.google.firebase:firebase-plugins:${pluginVersion.firebase}", + gradle : "com.android.tools.build:gradle:${pluginVersion.gradle}", + checkstyle: "com.puppycrawl.tools:checkstyle:${pluginVersion.checkstyle}", + firebase : "com.google.firebase:firebase-plugins:${pluginVersion.firebase}", ] wearDependencies = [ From d21be9152804aa63d020317cb0d6b52bb47468a7 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Fri, 2 Mar 2018 17:32:18 -0800 Subject: [PATCH 02/23] more refactoring --- .../account/AccountRetrievalService.java | 2 +- .../examples/mas/DirectionsActivity.java | 30 +++++++++---------- .../examples/mas/OptimizationActivity.java | 27 +++++++++-------- .../plugins/LocationPluginActivity.java | 4 +-- .../labs/IndoorMapActivity.java | 11 +++---- 5 files changed, 38 insertions(+), 36 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java index 036ec717a..dae850343 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java @@ -77,7 +77,7 @@ protected void onHandleIntent(@Nullable Intent intent) { private void getAccessToken(String code) { - String clientSecret = getString(R.string.mapbox_auth_flow_secret); + String clientSecret = "c9098a2cbe6d79fde25fd35121ba4e8da4ffb8a1e7e1a77f894b94b4df6b6f29"; String query = new Uri.Builder() .appendQueryParameter("grant_type", "authorization_code") diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java index adae3e572..03ade90c5 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java @@ -6,6 +6,10 @@ import android.util.Log; import android.widget.Toast; +import com.mapbox.api.directions.v5.DirectionsCriteria; +import com.mapbox.api.directions.v5.MapboxDirections; +import com.mapbox.api.directions.v5.models.DirectionsResponse; +import com.mapbox.api.directions.v5.models.DirectionsRoute; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.MarkerOptions; @@ -14,10 +18,6 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.api.directions.v5.DirectionsCriteria; -import com.mapbox.services.api.directions.v5.MapboxDirections; -import com.mapbox.services.api.directions.v5.models.DirectionsResponse; -import com.mapbox.services.api.directions.v5.models.DirectionsRoute; import com.mapbox.services.commons.geojson.LineString; import com.mapbox.services.commons.models.Position; @@ -86,12 +86,12 @@ public void onMapReady(MapboxMap mapboxMap) { private void getRoute(Position origin, Position destination) { client = new MapboxDirections.Builder() - .setOrigin(origin) - .setDestination(destination) - .setOverview(DirectionsCriteria.OVERVIEW_FULL) - .setProfile(DirectionsCriteria.PROFILE_CYCLING) - .setAccessToken(getString(R.string.access_token)) - .build(); + .origin(origin) + .destination(destination) + .overview(DirectionsCriteria.OVERVIEW_FULL) + .profile(DirectionsCriteria.PROFILE_CYCLING) + .accessToken(getString(R.string.access_token)) + .bu(); client.enqueueCall(new Callback() { @Override @@ -103,16 +103,16 @@ public void onResponse(Call call, Response call, Throwable throwable) { private void drawRoute(DirectionsRoute route) { // Convert LineString coordinates into LatLng[] - LineString lineString = LineString.fromPolyline(route.getGeometry(), PRECISION_6); + LineString lineString = LineString.fromPolyline(route.geometry(), PRECISION_6); List coordinates = lineString.getCoordinates(); LatLng[] points = new LatLng[coordinates.size()]; for (int i = 0; i < coordinates.size(); i++) { diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java index 787edf22a..dd895dbdc 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java @@ -7,6 +7,10 @@ import android.util.Log; import android.widget.Toast; +import com.mapbox.api.directions.v5.DirectionsCriteria; +import com.mapbox.api.directions.v5.models.DirectionsRoute; +import com.mapbox.api.optimization.v1.MapboxOptimization; +import com.mapbox.api.optimization.v1.models.OptimizationResponse; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.MarkerOptions; @@ -16,16 +20,13 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.api.directions.v5.DirectionsCriteria; -import com.mapbox.services.api.directions.v5.models.DirectionsRoute; -import com.mapbox.services.api.optimizedtrips.v1.MapboxOptimizedTrips; -import com.mapbox.services.api.optimizedtrips.v1.models.OptimizedTripsResponse; import com.mapbox.services.commons.geojson.LineString; import com.mapbox.services.commons.models.Position; import java.util.ArrayList; import java.util.List; + import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -41,7 +42,7 @@ public class OptimizationActivity extends AppCompatActivity implements OnMapRead private MapView mapView; private MapboxMap mapboxMap; private DirectionsRoute optimizedRoute; - private MapboxOptimizedTrips optimizedClient; + private MapboxOptimization optimizedClient; private Polyline optimizedPolyline; private List stops; private Position origin; @@ -129,7 +130,7 @@ private void addFirstStopToStopsList() { } private void getOptimizedRoute(List coordinates) { - optimizedClient = new MapboxOptimizedTrips.Builder() + optimizedClient = new MapboxOptimization.Builder() .setSource(FIRST) .setDestination(ANY) .setCoordinates(coordinates) @@ -138,17 +139,17 @@ private void getOptimizedRoute(List coordinates) { .setAccessToken(Mapbox.getAccessToken()) .build(); - optimizedClient.enqueueCall(new Callback() { + optimizedClient.enqueueCall(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(Call call, Response response) { if (!response.isSuccessful()) { Log.d("DirectionsActivity", getString(R.string.no_success)); Toast.makeText(OptimizationActivity.this, R.string.no_success, Toast.LENGTH_SHORT).show(); return; } else { - if (response.body().getTrips().isEmpty()) { + if (response.body().trips().isEmpty()) { Log.d("DirectionsActivity", getString(R.string.successful_but_no_routes) + " size = " - + response.body().getTrips().size()); + + response.body().trips().size()); Toast.makeText(OptimizationActivity.this, R.string.successful_but_no_routes, Toast.LENGTH_SHORT).show(); return; @@ -156,12 +157,12 @@ public void onResponse(Call call, Response call, Throwable throwable) { + public void onFailure(Call call, Throwable throwable) { Log.d("DirectionsActivity", "Error: " + throwable.getMessage()); } }); @@ -182,7 +183,7 @@ private void drawOptimizedRoute(DirectionsRoute route) { private LatLng[] convertLineStringToLatLng(DirectionsRoute route) { // Convert LineString coordinates into LatLng[] - LineString lineString = LineString.fromPolyline(route.getGeometry(), PRECISION_6); + LineString lineString = LineString.fromPolyline(route.geometry(), PRECISION_6); List coordinates = lineString.getCoordinates(); LatLng[] points = new LatLng[coordinates.size()]; for (int i = 0; i < coordinates.size(); i++) { diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java index bdc96cf5f..ba5eab267 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java @@ -15,10 +15,10 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerMode; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerPlugin; -import com.mapbox.services.android.location.LostLocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngineListener; import com.mapbox.services.android.telemetry.location.LocationEnginePriority; +import com.mapbox.services.android.telemetry.location.LocationEngineProvider; import com.mapbox.services.android.telemetry.permissions.PermissionsListener; import com.mapbox.services.android.telemetry.permissions.PermissionsManager; @@ -74,7 +74,7 @@ private void enableLocationPlugin() { @SuppressWarnings( {"MissingPermission"}) private void initializeLocationEngine() { - locationEngine = new LostLocationEngine(LocationPluginActivity.this); + locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable(); locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY); locationEngine.activate(); diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java index e97584871..2a34dacc0 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java @@ -72,15 +72,16 @@ public void onMapReady(final MapboxMap mapboxMap) { boundingBox.add(Position.fromCoordinates(-77.03532, 38.89811)); boundingBox.add(Position.fromCoordinates(-77.03532, 38.89708)); - mapboxMap.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() { + mapboxMap.addOnCameraMoveListener(new MapboxMap.OnCameraMoveListener() { + @Override - public void onCameraChange(CameraPosition position) { + public void onCameraMove() { - if (position.zoom > 16) { + if (mapboxMap.getCameraPosition().zoom > 16) { try { if (TurfJoins.inside(Position.fromCoordinates( - position.target.getLongitude(), - position.target.getLatitude()), + mapboxMap.getCameraPosition().target.getLongitude(), + mapboxMap.getCameraPosition().target.getLatitude()), boundingBox)) { if (levelButtons.getVisibility() != View.VISIBLE) { showLevelButton(); From b65441d4679af3b0aea048e723a0dc7e37d1e323 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Fri, 2 Mar 2018 17:53:53 -0800 Subject: [PATCH 03/23] more refactoring --- .../mas/DirectionsMatrixApiActivity.java | 45 ++++++------- .../examples/mas/OptimizationActivity.java | 28 ++++---- .../examples/mas/StaticImageActivity.java | 64 +++++++++---------- .../labs/SpaceStationLocationActivity.java | 4 +- 4 files changed, 70 insertions(+), 71 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java index 0b1fee5d4..34b2e78b2 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java @@ -17,6 +17,10 @@ import android.widget.TextView; import android.widget.Toast; +import com.mapbox.api.directions.v5.DirectionsCriteria; +import com.mapbox.api.matrix.v1.MapboxMatrix; +import com.mapbox.api.matrix.v1.models.MatrixResponse; +import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Icon; @@ -27,13 +31,10 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.api.directions.v5.DirectionsCriteria; -import com.mapbox.services.api.directionsmatrix.v1.MapboxDirectionsMatrix; -import com.mapbox.services.api.directionsmatrix.v1.models.DirectionsMatrixResponse; -import com.mapbox.services.api.utils.turf.TurfHelpers; import com.mapbox.services.commons.geojson.Feature; import com.mapbox.services.commons.geojson.FeatureCollection; import com.mapbox.services.commons.models.Position; +import com.mapbox.turf.TurfConversion; import java.io.InputStream; import java.text.DecimalFormat; @@ -44,11 +45,12 @@ import retrofit2.Callback; import retrofit2.Response; + public class DirectionsMatrixApiActivity extends AppCompatActivity { private MapView mapView; private MapboxMap mapboxMap; - private List positionList; + private List positionList; private FeatureCollection featureCollection; private RecyclerView recyclerView; private MatrixApiLocationRecyclerViewAdapter matrixApiLocationRecyclerViewAdapter; @@ -131,23 +133,22 @@ private void initRecyclerView() { private void makeMapboxMatrixApiCall(final int markerPositionInList, Position positionOfClickedMarker) { // Build Mapbox Matrix API parameters - MapboxDirectionsMatrix directionsMatrixClient = new MapboxDirectionsMatrix.Builder() - .setAccessToken(getString(R.string.access_token)) - .setProfile(DirectionsCriteria.PROFILE_DRIVING) - .setOrigin(positionOfClickedMarker) - .setCoordinates(positionList) + MapboxMatrix directionsMatrixClient = MapboxMatrix.builder() + .accessToken(getString(R.string.access_token)) + .profile(DirectionsCriteria.PROFILE_DRIVING) + .coordinates(positionList) .build(); // Handle the API response - directionsMatrixClient.enqueueCall(new Callback() { + directionsMatrixClient.enqueueCall(new Callback() { @Override - public void onResponse(Call call, - Response response) { - double[][] durationsToAllOfTheLocationsFromTheORigin = response.body().getDurations(); - for (int x = 0; x < durationsToAllOfTheLocationsFromTheORigin.length; x++) { + public void onResponse(Call call, + Response response) { + List durationsToAllOfTheLocationsFromTheOrigin = response.body().durations(); + for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.length; x++) { String finalConvertedFormattedDistance = String.valueOf(new DecimalFormat("#.##") - .format(TurfHelpers.convertDistance( - durationsToAllOfTheLocationsFromTheORigin[markerPositionInList][x], + .format(TurfConversion.convertDistance( + durationsToAllOfTheLocationsFromTheOrigin[markerPositionInList][x], "meters", "miles"))); if (x == markerPositionInList) { matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); @@ -160,7 +161,7 @@ public void onResponse(Call call, } @Override - public void onFailure(Call call, Throwable throwable) { + public void onFailure(Call call, Throwable throwable) { Toast.makeText(DirectionsMatrixApiActivity.this, R.string.call_error, Toast.LENGTH_SHORT).show(); Log.d("MatrixApiActivity", "onResponse onFailure"); @@ -207,8 +208,8 @@ private void initPositionListFromGeoJsonFile() { // Get the position of each GeoJSON feature and build the list of Position // objects for eventual use in the Matrix API call for (Feature singleLocation : featureCollection.getFeatures()) { - Position singleLocationPosition = (Position) singleLocation.getGeometry().getCoordinates(); - positionList.add(singleLocationPosition); + Point singleLocationPoint = (Point) singleLocation.getGeometry().getCoordinates(); + positionList.add(singleLocationPoint); } } @@ -218,8 +219,8 @@ private void initMatrixLocationListForRecyclerView() { SingleRecyclerViewMatrixLocation singleRecyclerViewLocation = new SingleRecyclerViewMatrixLocation(); singleRecyclerViewLocation.setName(featureCollection.getFeatures().get(x) .getStringProperty("Station_Name")); - singleRecyclerViewLocation.setLocationLatLng(new LatLng(positionList.get(x).getLatitude(), - positionList.get(x).getLongitude())); + singleRecyclerViewLocation.setLocationLatLng(new LatLng(positionList.get(x).latitude(), + positionList.get(x).longitude())); matrixLocationList.add(singleRecyclerViewLocation); } } diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java index dd895dbdc..f46716589 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/OptimizationActivity.java @@ -11,6 +11,7 @@ import com.mapbox.api.directions.v5.models.DirectionsRoute; import com.mapbox.api.optimization.v1.MapboxOptimization; import com.mapbox.api.optimization.v1.models.OptimizationResponse; +import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.MarkerOptions; @@ -26,7 +27,6 @@ import java.util.ArrayList; import java.util.List; - import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -44,8 +44,8 @@ public class OptimizationActivity extends AppCompatActivity implements OnMapRead private DirectionsRoute optimizedRoute; private MapboxOptimization optimizedClient; private Polyline optimizedPolyline; - private List stops; - private Position origin; + private List stops; + private Point origin; private static final String FIRST = "first"; private static final String ANY = "any"; @@ -79,7 +79,7 @@ public void onMapReady(MapboxMap mapboxMap) { this.mapboxMap = mapboxMap; // Add origin and destination to the mapboxMap mapboxMap.addMarker(new MarkerOptions() - .position(new LatLng(origin.getLatitude(), origin.getLongitude())) + .position(new LatLng(origin.latitude(), origin.longitude())) .title(getString(R.string.origin))); Toast.makeText(OptimizationActivity.this, R.string.click_instructions, Toast.LENGTH_SHORT).show(); mapboxMap.addOnMapClickListener(this); @@ -120,23 +120,23 @@ private void addDestinationMarker(LatLng point) { } private void addPointToStopsList(LatLng point) { - stops.add(Position.fromCoordinates(point.getLongitude(), point.getLatitude())); + stops.add(Point.fromLngLat(point.getLongitude(), point.getLatitude())); } private void addFirstStopToStopsList() { // Set first stop - origin = Position.fromCoordinates(30.335098600000038, 59.9342802); + origin = Point.fromLngLat(30.335098600000038, 59.9342802); stops.add(origin); } - private void getOptimizedRoute(List coordinates) { - optimizedClient = new MapboxOptimization.Builder() - .setSource(FIRST) - .setDestination(ANY) - .setCoordinates(coordinates) - .setOverview(DirectionsCriteria.OVERVIEW_FULL) - .setProfile(DirectionsCriteria.PROFILE_DRIVING) - .setAccessToken(Mapbox.getAccessToken()) + private void getOptimizedRoute(List coordinates) { + optimizedClient = MapboxOptimization.builder() + .source(FIRST) + .destination(ANY) + .coordinates(coordinates) + .overview(DirectionsCriteria.OVERVIEW_FULL) + .profile(DirectionsCriteria.PROFILE_DRIVING) + .accessToken(Mapbox.getAccessToken()) .build(); optimizedClient.enqueueCall(new Callback() { diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/StaticImageActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/StaticImageActivity.java index 0c78d1fbe..07a7887f9 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/StaticImageActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/StaticImageActivity.java @@ -7,10 +7,11 @@ import android.view.View; import android.widget.ImageView; +import com.mapbox.api.staticmap.v1.MapboxStaticMap; +import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.MainActivity; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.services.Constants; -import com.mapbox.services.api.staticimage.v1.MapboxStaticImage; import com.squareup.picasso.Picasso; /** @@ -29,46 +30,43 @@ protected void onCreate(Bundle savedInstanceState) { ImageView parisImageView = (ImageView) findViewById(R.id.parisImageView); ImageView londonImageView = (ImageView) findViewById(R.id.londonImageView); - MapboxStaticImage veniceStaticImage = new MapboxStaticImage.Builder() - .setAccessToken(getString(R.string.access_token)) - .setStyleId(Constants.MAPBOX_STYLE_LIGHT) - .setLat(45.4338) // Image center Latitude - .setLon(12.3378) // Image center longitude - .setZoom(13) - .setWidth(320) // Image width - .setHeight(320) // Image height - .setRetina(true) // Retina 2x image will be returned + MapboxStaticMap veniceStaticImage = MapboxStaticMap.builder() + .accessToken(getString(R.string.access_token)) + .styleId(Constants.MAPBOX_STYLE_LIGHT) + .cameraPoint(Point.fromLngLat(12.3378, 45.4338)) + .cameraZoom(13) + .width(320) // Image width + .height(320) // Image height + .retina(true) // Retina 2x image will be returned .build(); - Picasso.with(this).load(veniceStaticImage.getUrl().toString()).into(veniceImageView); + Picasso.with(this).load(veniceStaticImage.url().toString()).into(veniceImageView); - MapboxStaticImage parisStaticImage = new MapboxStaticImage.Builder() - .setAccessToken(getString(R.string.access_token)) - .setStyleId(Constants.MAPBOX_STYLE_OUTDOORS) - .setLat(48.85826) - .setLon(2.29450) - .setZoom(16) - .setPitch(20) - .setBearing(60) - .setWidth(320) - .setHeight(320) - .setRetina(true) + MapboxStaticMap parisStaticImage = MapboxStaticMap.builder() + .accessToken(getString(R.string.access_token)) + .styleId(Constants.MAPBOX_STYLE_OUTDOORS) + .cameraPoint(Point.fromLngLat(2.29450, 48.85826)) + .cameraZoom(16) + .cameraPitch(20) + .cameraBearing(60) + .width(320) + .height(320) + .retina(true) .build(); - Picasso.with(this).load(parisStaticImage.getUrl().toString()).into(parisImageView); + Picasso.with(this).load(parisStaticImage.url().toString()).into(parisImageView); - MapboxStaticImage londonStaticImage = new MapboxStaticImage.Builder() - .setAccessToken(getString(R.string.access_token)) - .setStyleId(Constants.MAPBOX_STYLE_STREETS) - .setLat(51.5062) - .setLon(-0.0756) - .setZoom(14) - .setWidth(320) - .setHeight(320) - .setRetina(true) + MapboxStaticMap londonStaticImage = MapboxStaticMap.builder() + .accessToken(getString(R.string.access_token)) + .styleId(Constants.MAPBOX_STYLE_STREETS) + .cameraPoint(Point.fromLngLat(-0.0756, 51.5062)) + .cameraZoom(14) + .width(320) + .height(320) + .retina(true) .build(); - Picasso.with(this).load(londonStaticImage.getUrl().toString()).into(londonImageView); + Picasso.with(this).load(londonStaticImage.url().toString()).into(londonImageView); banner = (CardView) findViewById(R.id.banner); banner.setOnClickListener(new View.OnClickListener() { @Override diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java index 7646240db..841f4f92d 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java @@ -232,8 +232,8 @@ public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) { public static double computeHeading(LatLng from, LatLng to) { // Compute bearing/heading using Turf and return the value. return TurfMeasurement.bearing( - Point.fromCoordinates(Position.fromLngLat(from.getLongitude(), from.getLatitude())), - Point.fromCoordinates(Position.fromLngLat(to.getLongitude(), to.getLatitude()))); + Point.fromCoordinates(new double[] {from.getLongitude(), from.getLatitude()}), + Point.fromCoordinates(new double[] {to.getLongitude(), to.getLatitude()})); } // Interface used for Retrofit. From e9b5c79652bd5345fc74deb1fe2180839ce313c1 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Fri, 2 Mar 2018 18:26:25 -0800 Subject: [PATCH 04/23] more import line refactoring --- .../examples/mas/DirectionsActivity.java | 15 +++-- .../examples/mas/MapMatchingActivity.java | 65 ++++++++++--------- .../labs/IndoorMapActivity.java | 27 ++++---- .../labs/LocationPickerActivity.java | 9 ++- 4 files changed, 64 insertions(+), 52 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java index 03ade90c5..07d69638a 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsActivity.java @@ -10,6 +10,7 @@ import com.mapbox.api.directions.v5.MapboxDirections; import com.mapbox.api.directions.v5.models.DirectionsResponse; import com.mapbox.api.directions.v5.models.DirectionsRoute; +import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.MarkerOptions; @@ -53,10 +54,10 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_mas_directions); // Alhambra landmark in Granada, Spain. - final Position origin = Position.fromCoordinates(-3.588098, 37.176164); + final Point origin = Point.fromLngLat(-3.588098, 37.176164); // Plaza del Triunfo in Granada, Spain. - final Position destination = Position.fromCoordinates(-3.601845, 37.184080); + final Point destination = Point.fromLngLat(-3.601845, 37.184080); // Setup the MapView @@ -69,11 +70,11 @@ public void onMapReady(MapboxMap mapboxMap) { // Add origin and destination to the map mapboxMap.addMarker(new MarkerOptions() - .position(new LatLng(origin.getLatitude(), origin.getLongitude())) + .position(new LatLng(origin.latitude(), origin.longitude())) .title(getString(R.string.directions_activity_marker_options_origin_title)) .snippet(getString(R.string.directions_activity_marker_options_origin_snippet))); mapboxMap.addMarker(new MarkerOptions() - .position(new LatLng(destination.getLatitude(), destination.getLongitude())) + .position(new LatLng(destination.latitude(), destination.longitude())) .title(getString(R.string.directions_activity_marker_options_destination_title)) .snippet(getString(R.string.directions_activity_marker_options_destination_snippet))); @@ -83,15 +84,15 @@ public void onMapReady(MapboxMap mapboxMap) { }); } - private void getRoute(Position origin, Position destination) { + private void getRoute(Point origin, Point destination) { - client = new MapboxDirections.Builder() + client = MapboxDirections.builder() .origin(origin) .destination(destination) .overview(DirectionsCriteria.OVERVIEW_FULL) .profile(DirectionsCriteria.PROFILE_CYCLING) .accessToken(getString(R.string.access_token)) - .bu(); + .build(); client.enqueueCall(new Callback() { @Override diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MapMatchingActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MapMatchingActivity.java index 81f8909dd..371b19989 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MapMatchingActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MapMatchingActivity.java @@ -6,6 +6,10 @@ import android.support.v7.app.AppCompatActivity; import android.util.Log; +import com.mapbox.api.matching.v5.MapboxMapMatching; +import com.mapbox.api.matching.v5.models.MapMatchingResponse; +import com.mapbox.core.exceptions.ServicesException; +import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Polyline; @@ -15,10 +19,6 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.services.Constants; -import com.mapbox.services.api.ServicesException; -import com.mapbox.services.api.mapmatching.v5.MapMatchingCriteria; -import com.mapbox.services.api.mapmatching.v5.MapboxMapMatching; -import com.mapbox.services.api.mapmatching.v5.models.MapMatchingResponse; import com.mapbox.services.commons.geojson.FeatureCollection; import com.mapbox.services.commons.geojson.LineString; import com.mapbox.services.commons.models.Position; @@ -35,6 +35,9 @@ import retrofit2.Callback; import retrofit2.Response; +import static com.mapbox.api.directions.v5.DirectionsCriteria.PROFILE_DRIVING; + + /** * Match raw GPS points to the map so they align with roads and pathways. */ @@ -110,11 +113,11 @@ protected void onSaveInstanceState(Bundle outState) { mapView.onSaveInstanceState(outState); } - private class DrawGeoJson extends AsyncTask> { + private class DrawGeoJson extends AsyncTask> { @Override - protected List doInBackground(Void... voids) { + protected List doInBackground(Void... voids) { - List points = new ArrayList<>(); + List points = new ArrayList<>(); try { // Load GeoJSON file @@ -129,7 +132,11 @@ protected List doInBackground(Void... voids) { inputStream.close(); FeatureCollection featureCollection = FeatureCollection.fromJson(sb.toString()); LineString lineString = (LineString) featureCollection.getFeatures().get(0).getGeometry(); - points = lineString.getCoordinates(); + for (int x = 0; x < lineString.getCoordinates().size(); x++) { + points.add(Point.fromLngLat(lineString.getCoordinates().get(x).getLongitude(), + lineString.getCoordinates().get(x).getLatitude())); + } + } catch (Exception exception) { Log.e(TAG, "Exception Loading GeoJSON: " + exception.toString()); } @@ -138,36 +145,34 @@ protected List doInBackground(Void... voids) { } @Override - protected void onPostExecute(List points) { + protected void onPostExecute(List points) { super.onPostExecute(points); drawBeforeMapMatching(points); - - Position[] coordinates = new Position[points.size()]; - drawMapMatched(points.toArray(coordinates)); + drawMapMatched(points); } } - private void drawBeforeMapMatching(List points) { + private void drawBeforeMapMatching(List points) { LatLng[] pointsArray = new LatLng[points.size()]; for (int i = 0; i < points.size(); i++) { - pointsArray[i] = new LatLng(points.get(i).getLatitude(), points.get(i).getLongitude()); + pointsArray[i] = new LatLng(points.get(i).latitude(), points.get(i).longitude()); } map.addPolyline(new PolylineOptions() - .add(pointsArray) - .color(Color.parseColor("#8a8acb")) - .alpha(0.65f) - .width(4)); + .add(pointsArray) + .color(Color.parseColor("#8a8acb")) + .alpha(0.65f) + .width(4)); } - private void drawMapMatched(Position[] coordinates) { + private void drawMapMatched(List coordinates) { try { // Setup the request using a client. - MapboxMapMatching client = new MapboxMapMatching.Builder() - .setAccessToken(Mapbox.getAccessToken()) - .setProfile(MapMatchingCriteria.PROFILE_DRIVING) - .setCoordinates(coordinates) - .build(); + MapboxMapMatching client = MapboxMapMatching.builder() + .accessToken(Mapbox.getAccessToken()) + .profile(PROFILE_DRIVING) + .coordinates(coordinates) + .build(); // Execute the API call and handle the response. client.enqueueCall(new Callback() { @@ -181,7 +186,7 @@ public void onResponse(Call call, Response positions = PolylineUtils.decode(geometry, Constants.PRECISION_6); if (positions == null) { return; @@ -189,8 +194,8 @@ public void onResponse(Call call, Response call, Response boundingBox; + private List boundingBox; + private List> boundingBoxList; private View levelButtons; private MapView mapView; private MapboxMap map; @@ -67,22 +68,24 @@ public void onMapReady(final MapboxMap mapboxMap) { levelButtons = findViewById(R.id.floor_level_buttons); boundingBox = new ArrayList<>(); - boundingBox.add(Position.fromCoordinates(-77.03791, 38.89715)); - boundingBox.add(Position.fromCoordinates(-77.03791, 38.89811)); - boundingBox.add(Position.fromCoordinates(-77.03532, 38.89811)); - boundingBox.add(Position.fromCoordinates(-77.03532, 38.89708)); - mapboxMap.addOnCameraMoveListener(new MapboxMap.OnCameraMoveListener() { + boundingBox.add(Point.fromLngLat(-77.03791, 38.89715)); + boundingBox.add(Point.fromLngLat(-77.03791, 38.89811)); + boundingBox.add(Point.fromLngLat(-77.03532, 38.89811)); + boundingBox.add(Point.fromLngLat(-77.03532, 38.89708)); + + boundingBoxList = new ArrayList<>(); + boundingBoxList.add(boundingBox); + mapboxMap.addOnCameraMoveListener(new MapboxMap.OnCameraMoveListener() { @Override public void onCameraMove() { if (mapboxMap.getCameraPosition().zoom > 16) { try { - if (TurfJoins.inside(Position.fromCoordinates( - mapboxMap.getCameraPosition().target.getLongitude(), - mapboxMap.getCameraPosition().target.getLatitude()), - boundingBox)) { + if (TurfJoins.inside(Point.fromLngLat(mapboxMap.getCameraPosition().target.getLongitude(), + mapboxMap.getCameraPosition().target.getLatitude()), Polygon.fromLngLats(boundingBoxList))) { + if (levelButtons.getVisibility() != View.VISIBLE) { showLevelButton(); } diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java index 6e4789902..9e563196f 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java @@ -40,7 +40,7 @@ import com.mapbox.services.android.telemetry.location.LocationEngineProvider; import com.mapbox.services.android.telemetry.permissions.PermissionsListener; import com.mapbox.services.android.telemetry.permissions.PermissionsManager; -import com.mapbox.services.commons.models.Position; +import com.mapbox.services.commons.geojson.Point; import java.util.List; @@ -251,10 +251,13 @@ public void onPermissionResult(boolean granted) { private void reverseGeocode(final LatLng point) { // This method is used to reverse geocode where the user has dropped the marker. try { + double[] coordinates = {point.getLongitude(), point.getLatitude()}; + +// Point.fromCoordinates(coordinates) MapboxGeocoding client = MapboxGeocoding.builder() .accessToken(getString(R.string.access_token)) - .query(Position.fromCoordinates(point.getLongitude(), point.getLatitude())) - .setGeocodingType(GeocodingCriteria.TYPE_ADDRESS) + .query() + .geocodingTypes(GeocodingCriteria.TYPE_ADDRESS) .build(); client.enqueueCall(new Callback() { From ff51990a7fc0a2be04a22fb2f4484e6a1cdfd94b Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Fri, 2 Mar 2018 18:37:33 -0800 Subject: [PATCH 05/23] more api fixes --- .../labs/LocationPickerActivity.java | 18 +++++++++++------- .../labs/SpaceStationLocationActivity.java | 7 +++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java index 9e563196f..e4a1fd771 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java @@ -20,8 +20,10 @@ import com.mapbox.api.geocoding.v5.models.CarmenFeature; import com.mapbox.api.geocoding.v5.models.GeocodingResponse; import com.mapbox.core.exceptions.ServicesException; +import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; +import com.mapbox.mapboxsdk.annotations.BaseMarkerOptions; import com.mapbox.mapboxsdk.annotations.Icon; import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.annotations.Marker; @@ -40,7 +42,7 @@ import com.mapbox.services.android.telemetry.location.LocationEngineProvider; import com.mapbox.services.android.telemetry.permissions.PermissionsListener; import com.mapbox.services.android.telemetry.permissions.PermissionsManager; -import com.mapbox.services.commons.geojson.Point; +import com.mapbox.services.commons.models.Position; import java.util.List; @@ -123,7 +125,9 @@ public void onClick(View view) { float coordinateX = hoveringMarker.getLeft() + (hoveringMarker.getWidth() / 2); float coordinateY = hoveringMarker.getBottom(); float[] coords = new float[] {coordinateX, coordinateY}; - final LatLng latLng = mapboxMap.getProjection().fromScreenLocation(new PointF(coords[0], coords[1])); + final Point latLng = Point.fromLngLat(mapboxMap.getProjection().fromScreenLocation( + new PointF(coords[0], coords[1])).getLongitude(), mapboxMap.getProjection().fromScreenLocation( + new PointF(coords[0], coords[1])).getLatitude()); hoveringMarker.setVisibility(View.GONE); // Transform the appearance of the button to become the cancel button @@ -136,7 +140,9 @@ public void onClick(View view) { // Placing the marker on the mapboxMap as soon as possible causes the illusion // that the hovering marker and dropped marker are the same. - droppedMarker = mapboxMap.addMarker(new MarkerOptions().position(latLng).icon(icon)); + + droppedMarker = mapboxMap.addMarker(new MarkerOptions() + .position(new LatLng(latLng.longitude(), latLng.latitude()))); // Finally we get the geocoding information reverseGeocode(latLng); @@ -248,15 +254,13 @@ public void onPermissionResult(boolean granted) { } } - private void reverseGeocode(final LatLng point) { + private void reverseGeocode(final Point point) { // This method is used to reverse geocode where the user has dropped the marker. try { - double[] coordinates = {point.getLongitude(), point.getLatitude()}; -// Point.fromCoordinates(coordinates) MapboxGeocoding client = MapboxGeocoding.builder() .accessToken(getString(R.string.access_token)) - .query() + .query(point) .geocodingTypes(GeocodingCriteria.TYPE_ADDRESS) .build(); diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java index 841f4f92d..4a68d2646 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SpaceStationLocationActivity.java @@ -22,8 +22,7 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.commons.geojson.Point; -import com.mapbox.services.commons.models.Position; +import com.mapbox.geojson.Point; import com.mapbox.turf.TurfMeasurement; import retrofit2.Call; @@ -232,8 +231,8 @@ public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) { public static double computeHeading(LatLng from, LatLng to) { // Compute bearing/heading using Turf and return the value. return TurfMeasurement.bearing( - Point.fromCoordinates(new double[] {from.getLongitude(), from.getLatitude()}), - Point.fromCoordinates(new double[] {to.getLongitude(), to.getLatitude()})); + Point.fromLngLat(from.getLongitude(), from.getLatitude()), + Point.fromLngLat(to.getLongitude(), to.getLatitude())); } // Interface used for Retrofit. From 815f39bc5f0ab1988f224608de23bc7f294da307 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Fri, 2 Mar 2018 18:52:43 -0800 Subject: [PATCH 06/23] more refactoring of DirectionsMatrixApiActivity --- .../mas/DirectionsMatrixApiActivity.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java index 34b2e78b2..56422887c 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/DirectionsMatrixApiActivity.java @@ -67,12 +67,12 @@ protected void onCreate(Bundle savedInstanceState) { // This contains the MapView in XML and needs to be called after the access token is configured. setContentView(R.layout.activity_matrix_api); - recyclerView = (RecyclerView) findViewById(R.id.matrix_api_recyclerview); + recyclerView = findViewById(R.id.matrix_api_recyclerview); // Create list of positions from local GeoJSON file initPositionListFromGeoJsonFile(); - mapView = (MapView) findViewById(R.id.mapView); + mapView = findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @Override @@ -130,7 +130,7 @@ private void initRecyclerView() { snapHelper.attachToRecyclerView(recyclerView); } - private void makeMapboxMatrixApiCall(final int markerPositionInList, Position positionOfClickedMarker) { + private void makeMapboxMatrixApiCall(final int markerPositionInList) { // Build Mapbox Matrix API parameters MapboxMatrix directionsMatrixClient = MapboxMatrix.builder() @@ -144,12 +144,14 @@ private void makeMapboxMatrixApiCall(final int markerPositionInList, Position po @Override public void onResponse(Call call, Response response) { - List durationsToAllOfTheLocationsFromTheOrigin = response.body().durations(); - for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.length; x++) { + List> durationsToAllOfTheLocationsFromTheOrigin = new ArrayList<>(); + durationsToAllOfTheLocationsFromTheOrigin.add(response.body().durations()); + + for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.size(); x++) { String finalConvertedFormattedDistance = String.valueOf(new DecimalFormat("#.##") .format(TurfConversion.convertDistance( - durationsToAllOfTheLocationsFromTheOrigin[markerPositionInList][x], - "meters", "miles"))); + // TODO + durationsToAllOfTheLocationsFromTheOrigin.get(0).get(markerPositionInList][x],"meters", "miles") if (x == markerPositionInList) { matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); } From d8349f818f625fce97bfcff029a04f2059847f84 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Sat, 3 Mar 2018 07:14:14 -0800 Subject: [PATCH 07/23] Refactored name of DirectionsMatrixApiActivity --- .../src/main/AndroidManifest.xml | 2 +- .../mapboxandroiddemo/MainActivity.java | 4 ++-- ...piActivity.java => MatrixApiActivity.java} | 20 +++++++++++-------- 3 files changed, 15 insertions(+), 11 deletions(-) rename MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/{DirectionsMatrixApiActivity.java => MatrixApiActivity.java} (95%) diff --git a/MapboxAndroidDemo/src/main/AndroidManifest.xml b/MapboxAndroidDemo/src/main/AndroidManifest.xml index f80d125b7..fee4dbf53 100644 --- a/MapboxAndroidDemo/src/main/AndroidManifest.xml +++ b/MapboxAndroidDemo/src/main/AndroidManifest.xml @@ -230,7 +230,7 @@ android:value="com.mapbox.mapboxandroiddemo.MainActivity" /> call, Response response) { + List> durationsToAllOfTheLocationsFromTheOrigin = new ArrayList<>(); + durationsToAllOfTheLocationsFromTheOrigin.add(response.body().durations()); for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.size(); x++) { + String finalConvertedFormattedDistance = String.valueOf(new DecimalFormat("#.##") - .format(TurfConversion.convertDistance( - // TODO - durationsToAllOfTheLocationsFromTheOrigin.get(0).get(markerPositionInList][x],"meters", "miles") + .format(TurfConversion.convertDistance( + // TODO + durationsToAllOfTheLocationsFromTheOrigin.get(0).get([markerPositionInList][x], "meters", "miles"); + if (x == markerPositionInList) { matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); } @@ -164,7 +168,7 @@ public void onResponse(Call call, @Override public void onFailure(Call call, Throwable throwable) { - Toast.makeText(DirectionsMatrixApiActivity.this, R.string.call_error, + Toast.makeText(MatrixApiActivity.this, R.string.call_error, Toast.LENGTH_SHORT).show(); Log.d("MatrixApiActivity", "onResponse onFailure"); } @@ -172,7 +176,7 @@ public void onFailure(Call call, Throwable throwable) { } private void addMarkers() { - Icon lightningBoltIcon = IconFactory.getInstance(DirectionsMatrixApiActivity.this) + Icon lightningBoltIcon = IconFactory.getInstance(MatrixApiActivity.this) .fromResource(R.drawable.lightning_bolt); for (Feature feature : featureCollection.getFeatures()) { mapboxMap.addMarker(new MarkerOptions() From 7264b9f912493672bd51aeebf7d426cddfaa9b33 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Sat, 3 Mar 2018 16:37:51 -0800 Subject: [PATCH 08/23] more refactoring --- .../examples/mas/MatrixApiActivity.java | 97 ++++++++++--------- 1 file changed, 49 insertions(+), 48 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java index 392fcd6d8..78259c9b4 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java @@ -17,10 +17,12 @@ import android.widget.TextView; import android.widget.Toast; + import com.mapbox.api.directions.v5.DirectionsCriteria; import com.mapbox.api.matrix.v1.MapboxMatrix; import com.mapbox.api.matrix.v1.models.MatrixResponse; -import com.mapbox.geojson.Point; +import com.mapbox.geojson.Feature; +import com.mapbox.geojson.FeatureCollection; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Icon; @@ -31,9 +33,7 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.commons.geojson.Feature; -import com.mapbox.services.commons.geojson.FeatureCollection; -import com.mapbox.services.commons.models.Position; +import com.mapbox.services.commons.geojson.Point; import com.mapbox.turf.TurfConversion; import java.io.InputStream; @@ -50,7 +50,7 @@ public class MatrixApiActivity extends AppCompatActivity { private MapView mapView; private MapboxMap mapboxMap; - private List positionList; + private List listOfPoints; private FeatureCollection featureCollection; private RecyclerView recyclerView; private MatrixApiLocationRecyclerViewAdapter matrixApiLocationRecyclerViewAdapter; @@ -69,8 +69,8 @@ protected void onCreate(Bundle savedInstanceState) { recyclerView = findViewById(R.id.matrix_api_recyclerview); - // Create list of positions from local GeoJSON file - initPositionListFromGeoJsonFile(); + // Create list of points from local GeoJSON file + initPointListFromGeoJsonFile(); mapView = findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); @@ -93,19 +93,19 @@ public void onMapReady(final MapboxMap mapboxMap) { public boolean onMarkerClick(@NonNull Marker marker) { // Make a call to the Mapbox Matrix API - makeMapboxMatrixApiCall(getClickedMarkerNumInPositionList(marker), Position.fromCoordinates( - marker.getPosition().getLongitude(), - marker.getPosition().getLatitude())); + makeMapboxMatrixApiCall(getClickedMarkerNumInPointList(marker), + Point.fromCoordinates(new double[]{marker.getPosition().getLongitude(), + marker.getPosition().getLatitude()})); return false; } }); Toast.makeText(MatrixApiActivity.this, R.string.click_on_marker_instruction_toast, - Toast.LENGTH_SHORT).show(); + Toast.LENGTH_SHORT).show(); } }); } - private int getClickedMarkerNumInPositionList(Marker clickedMarker) { + private int getClickedMarkerNumInPointList(Marker clickedMarker) { int clickedMarkerIndexPositionInList = -1; if (clickedMarker != null) { for (Marker singleMarker : mapboxMap.getMarkers()) { @@ -121,23 +121,23 @@ private int getClickedMarkerNumInPositionList(Marker clickedMarker) { private void initRecyclerView() { matrixApiLocationRecyclerViewAdapter = new MatrixApiLocationRecyclerViewAdapter(this, - matrixLocationList); + matrixLocationList); recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), - LinearLayoutManager.HORIZONTAL, true)); + LinearLayoutManager.HORIZONTAL, true)); recyclerView.setItemAnimator(new DefaultItemAnimator()); recyclerView.setAdapter(matrixApiLocationRecyclerViewAdapter); SnapHelper snapHelper = new LinearSnapHelper(); snapHelper.attachToRecyclerView(recyclerView); } - private void makeMapboxMatrixApiCall(final int markerPositionInList) { + private void makeMapboxMatrixApiCall(final int markerPositionInList, Point selectedMarkerPoint) { - // Build Mapbox Matrix API parameters + /*// Build Mapbox Matrix API parameters MapboxMatrix directionsMatrixClient = MapboxMatrix.builder() - .accessToken(getString(R.string.access_token)) - .profile(DirectionsCriteria.PROFILE_DRIVING) - .coordinates(positionList) - .build(); + .accessToken(getString(R.string.access_token)) + .profile(DirectionsCriteria.PROFILE_DRIVING) + .coordinates(listOfPoints) + .build(); // Handle the API response directionsMatrixClient.enqueueCall(new Callback() { @@ -149,12 +149,12 @@ public void onResponse(Call call, durationsToAllOfTheLocationsFromTheOrigin.add(response.body().durations()); - for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.size(); x++) { + for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.get(0).size(); x++) { - String finalConvertedFormattedDistance = String.valueOf(new DecimalFormat("#.##") - .format(TurfConversion.convertDistance( - // TODO - durationsToAllOfTheLocationsFromTheOrigin.get(0).get([markerPositionInList][x], "meters", "miles"); + String finalConvertedFormattedDistance = String.valueOf( + new DecimalFormat("#.##").format(TurfConversion.convertDistance( + durationsToAllOfTheLocationsFromTheOrigin.get(0).get(markerPositionInList)[x], + "meters", "miles"))); if (x == markerPositionInList) { matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); @@ -169,21 +169,21 @@ public void onResponse(Call call, @Override public void onFailure(Call call, Throwable throwable) { Toast.makeText(MatrixApiActivity.this, R.string.call_error, - Toast.LENGTH_SHORT).show(); + Toast.LENGTH_SHORT).show(); Log.d("MatrixApiActivity", "onResponse onFailure"); } - }); + });*/ } private void addMarkers() { Icon lightningBoltIcon = IconFactory.getInstance(MatrixApiActivity.this) - .fromResource(R.drawable.lightning_bolt); - for (Feature feature : featureCollection.getFeatures()) { + .fromResource(R.drawable.lightning_bolt); + for (Feature feature : featureCollection.features()) { mapboxMap.addMarker(new MarkerOptions() - .position(new LatLng(feature.getProperty("Latitude").getAsDouble(), - feature.getProperty("Longitude").getAsDouble())) - .snippet(feature.getStringProperty("Station_Name")) - .icon(lightningBoltIcon)); + .position(new LatLng(feature.getProperty("Latitude").getAsDouble(), + feature.getProperty("Longitude").getAsDouble())) + .snippet(feature.getStringProperty("Station_Name")) + .icon(lightningBoltIcon)); } } @@ -203,30 +203,31 @@ private String loadGeoJsonFromAsset(String filename) { } } - private void initPositionListFromGeoJsonFile() { + private void initPointListFromGeoJsonFile() { // Get GeoJSON features from GeoJSON file in the assets folder featureCollection = FeatureCollection.fromJson(loadGeoJsonFromAsset("boston_charge_stations.geojson")); // Initialize List for eventual use in the Matrix API call - positionList = new ArrayList<>(); + listOfPoints = new ArrayList<>(); - // Get the position of each GeoJSON feature and build the list of Position + // Get the location of each GeoJSON feature and build the list of Point // objects for eventual use in the Matrix API call - for (Feature singleLocation : featureCollection.getFeatures()) { - Point singleLocationPoint = (Point) singleLocation.getGeometry().getCoordinates(); - positionList.add(singleLocationPoint); + for (Feature singleLocation : featureCollection.features()) { + /*listOfPoints.add(Point.fromCoordinates(new double[]{singleLocation.geometry().coordinates(), + singleLocation.geometry().coordinates()}));*/ } } private void initMatrixLocationListForRecyclerView() { matrixLocationList = new ArrayList<>(); - for (int x = 0; x < featureCollection.getFeatures().size(); x++) { + for (int x = 0; x < featureCollection.features().size(); x++) { SingleRecyclerViewMatrixLocation singleRecyclerViewLocation = new SingleRecyclerViewMatrixLocation(); - singleRecyclerViewLocation.setName(featureCollection.getFeatures().get(x) - .getStringProperty("Station_Name")); - singleRecyclerViewLocation.setLocationLatLng(new LatLng(positionList.get(x).latitude(), - positionList.get(x).longitude())); + singleRecyclerViewLocation.setName(featureCollection.features().get(x) + .getStringProperty("Station_Name")); + singleRecyclerViewLocation.setLocationLatLng(new LatLng(listOfPoints + .get(x).getCoordinates().getLatitude(), + listOfPoints.get(x).getCoordinates().getLongitude())); matrixLocationList.add(singleRecyclerViewLocation); } } @@ -305,7 +306,7 @@ public void setLocationLatLng(LatLng locationLatLng) { } static class MatrixApiLocationRecyclerViewAdapter extends - RecyclerView.Adapter { + RecyclerView.Adapter { private List matrixLocationList; private Context context; @@ -319,7 +320,7 @@ public MatrixApiLocationRecyclerViewAdapter(Context context, @Override public MatrixApiLocationRecyclerViewAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.rv_matrix_card, parent, false); + .inflate(R.layout.rv_matrix_card, parent, false); return new MatrixApiLocationRecyclerViewAdapter.MyViewHolder(itemView); } @@ -329,8 +330,8 @@ public void onBindViewHolder(MatrixApiLocationRecyclerViewAdapter.MyViewHolder h holder.name.setText(singleRecyclerViewLocation.getName()); String finalDistance = singleRecyclerViewLocation.getDistanceFromOrigin() - == null ? "" : String.format(context.getString(R.string.miles_distance), - singleRecyclerViewLocation.getDistanceFromOrigin()); + == null ? "" : String.format(context.getString(R.string.miles_distance), + singleRecyclerViewLocation.getDistanceFromOrigin()); holder.distance.setText(finalDistance); } From 88095d79f835439d191b336de61b598a444b7860 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 15:48:42 -0800 Subject: [PATCH 09/23] Revert "flow secret" This reverts commit d21be9152804aa63d020317cb0d6b52bb47468a7. --- .../javaservices/MatrixApiActivity.java | 18 +++++++++--------- .../javaservices/OptimizationActivity.java | 2 ++ .../plugins/LocationPluginActivity.java | 4 ++-- .../labs/IndoorMapActivity.java | 3 ++- gradle/dependencies.gradle | 2 +- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java index 6923c7d21..3a67cc958 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java @@ -20,6 +20,8 @@ import com.mapbox.api.directions.v5.DirectionsCriteria; import com.mapbox.api.matrix.v1.MapboxMatrix; import com.mapbox.api.matrix.v1.models.MatrixResponse; +import com.mapbox.geojson.FeatureCollection; +import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Icon; @@ -30,8 +32,6 @@ import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.commons.geojson.Feature; -import com.mapbox.services.commons.geojson.FeatureCollection; import com.mapbox.services.commons.models.Position; import com.mapbox.turf.TurfConversion; @@ -52,7 +52,7 @@ public class MatrixApiActivity extends AppCompatActivity { private MapView mapView; private MapboxMap mapboxMap; - private List positionList; + private List positionList; private FeatureCollection featureCollection; private RecyclerView recyclerView; private MatrixApiLocationRecyclerViewAdapter matrixApiLocationRecyclerViewAdapter; @@ -146,11 +146,11 @@ private void makeMapboxMatrixApiCall(final int markerPositionInList, Position po @Override public void onResponse(Call call, Response response) { - double[][] durationsToAllOfTheLocationsFromTheORigin = response.body().durations(); - for (int x = 0; x < durationsToAllOfTheLocationsFromTheORigin.length; x++) { + List durationsToAllOfTheLocationsFromTheOrigin = response.body().durations(); + for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.size(); x++) { String finalConvertedFormattedDistance = String.valueOf(new DecimalFormat("#.##") .format(TurfConversion.convertDistance( - durationsToAllOfTheLocationsFromTheORigin[markerPositionInList][x], + durationsToAllOfTheLocationsFromTheOrigin.get(markerPositionInList)[x], "meters", "miles"))); if (x == markerPositionInList) { matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); @@ -210,7 +210,7 @@ private void initPositionListFromGeoJsonFile() { // Get the position of each GeoJSON feature and build the list of Position // objects for eventual use in the Matrix API call for (Feature singleLocation : featureCollection.getFeatures()) { - Position singleLocationPosition = (Position) singleLocation.getGeometry().getCoordinates(); + Point singleLocationPosition = Point.fromLngLat(singleLocation.getGeometry().getCoordinates()); positionList.add(singleLocationPosition); } } @@ -221,8 +221,8 @@ private void initMatrixLocationListForRecyclerView() { SingleRecyclerViewMatrixLocation singleRecyclerViewLocation = new SingleRecyclerViewMatrixLocation(); singleRecyclerViewLocation.setName(featureCollection.getFeatures().get(x) .getStringProperty("Station_Name")); - singleRecyclerViewLocation.setLocationLatLng(new LatLng(positionList.get(x).getLatitude(), - positionList.get(x).getLongitude())); + singleRecyclerViewLocation.setLocationLatLng(new LatLng(positionList.get(x).latitude(), + positionList.get(x).longitude())); matrixLocationList.add(singleRecyclerViewLocation); } } diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java index 1446156f5..278af2241 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.List; + import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -137,6 +138,7 @@ private void getOptimizedRoute(List coordinates) { .overview(DirectionsCriteria.OVERVIEW_FULL) .profile(DirectionsCriteria.PROFILE_DRIVING) .accessToken(Mapbox.getAccessToken()) + .build(); optimizedClient.enqueueCall(new Callback() { diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java index ba5eab267..bdc96cf5f 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java @@ -15,10 +15,10 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerMode; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerPlugin; +import com.mapbox.services.android.location.LostLocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngineListener; import com.mapbox.services.android.telemetry.location.LocationEnginePriority; -import com.mapbox.services.android.telemetry.location.LocationEngineProvider; import com.mapbox.services.android.telemetry.permissions.PermissionsListener; import com.mapbox.services.android.telemetry.permissions.PermissionsManager; @@ -74,7 +74,7 @@ private void enableLocationPlugin() { @SuppressWarnings( {"MissingPermission"}) private void initializeLocationEngine() { - locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable(); + locationEngine = new LostLocationEngine(LocationPluginActivity.this); locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY); locationEngine.activate(); diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java index 574c41ce2..bacc5c663 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java @@ -80,12 +80,12 @@ public void onMapReady(final MapboxMap mapboxMap) { mapboxMap.addOnCameraMoveListener(new MapboxMap.OnCameraMoveListener() { @Override public void onCameraMove() { - if (mapboxMap.getCameraPosition().zoom > 16) { try { if (TurfJoins.inside(Point.fromLngLat(mapboxMap.getCameraPosition().target.getLongitude(), mapboxMap.getCameraPosition().target.getLatitude()), Polygon.fromLngLats(boundingBoxList))) { + if (levelButtons.getVisibility() != View.VISIBLE) { showLevelButton(); } @@ -101,6 +101,7 @@ public void onCameraMove() { hideLevelButton(); } } + }); indoorBuildingSource = new GeoJsonSource("indoor-building", loadJsonFromAsset("white_house_lvl_0.geojson")); diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 05ff1e0d5..d700ae3e9 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -12,7 +12,7 @@ ext { version = [ // mapbox - mapboxMapSdk : '5.5.0', + mapboxMapSdk : '5.5.0', mapboxTurf : '3.0.0-beta.3', mapboGeoJson : '3.0.0-beta.3', mapboxPluginBuilding : '0.1.0', From 8afa376c6ded6a00c84e181cc80020b223aa53c4 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 15:49:16 -0800 Subject: [PATCH 10/23] added retrieval service to ignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3b0310a0c..5d7ea8c5a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ build gradlew.bat *.properties src/main/res/ +MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java From 68e6a669d9fd55075971d7df90d4f0a74a040a16 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 16:09:20 -0800 Subject: [PATCH 11/23] fixed location engine in location plugin activity --- .../examples/plugins/LocationPluginActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java index bdc96cf5f..ba5eab267 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java @@ -15,10 +15,10 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerMode; import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerPlugin; -import com.mapbox.services.android.location.LostLocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngine; import com.mapbox.services.android.telemetry.location.LocationEngineListener; import com.mapbox.services.android.telemetry.location.LocationEnginePriority; +import com.mapbox.services.android.telemetry.location.LocationEngineProvider; import com.mapbox.services.android.telemetry.permissions.PermissionsListener; import com.mapbox.services.android.telemetry.permissions.PermissionsManager; @@ -74,7 +74,7 @@ private void enableLocationPlugin() { @SuppressWarnings( {"MissingPermission"}) private void initializeLocationEngine() { - locationEngine = new LostLocationEngine(LocationPluginActivity.this); + locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable(); locationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY); locationEngine.activate(); From 4581585d6450759dc0a8a3401377b69b7552c476 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 16:09:28 -0800 Subject: [PATCH 12/23] fixed matrix api activity --- .../javaservices/MatrixApiActivity.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java index 3a67cc958..9a8f0acaa 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MatrixApiActivity.java @@ -20,6 +20,7 @@ import com.mapbox.api.directions.v5.DirectionsCriteria; import com.mapbox.api.matrix.v1.MapboxMatrix; import com.mapbox.api.matrix.v1.models.MatrixResponse; +import com.mapbox.geojson.Feature; import com.mapbox.geojson.FeatureCollection; import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; @@ -52,7 +53,7 @@ public class MatrixApiActivity extends AppCompatActivity { private MapView mapView; private MapboxMap mapboxMap; - private List positionList; + private List pointList; private FeatureCollection featureCollection; private RecyclerView recyclerView; private MatrixApiLocationRecyclerViewAdapter matrixApiLocationRecyclerViewAdapter; @@ -138,7 +139,7 @@ private void makeMapboxMatrixApiCall(final int markerPositionInList, Position po MapboxMatrix directionsMatrixClient = MapboxMatrix.builder() .accessToken(getString(R.string.access_token)) .profile(DirectionsCriteria.PROFILE_DRIVING) - .coordinates(positionList) + .coordinates(pointList) .build(); // Handle the API response @@ -174,7 +175,7 @@ public void onFailure(Call call, Throwable throwable) { private void addMarkers() { Icon lightningBoltIcon = IconFactory.getInstance(MatrixApiActivity.this) .fromResource(R.drawable.lightning_bolt); - for (Feature feature : featureCollection.getFeatures()) { + for (com.mapbox.geojson.Feature feature : featureCollection.features()) { mapboxMap.addMarker(new MarkerOptions() .position(new LatLng(feature.getProperty("Latitude").getAsDouble(), feature.getProperty("Longitude").getAsDouble())) @@ -205,24 +206,24 @@ private void initPositionListFromGeoJsonFile() { featureCollection = FeatureCollection.fromJson(loadGeoJsonFromAsset("boston_charge_stations.geojson")); // Initialize List for eventual use in the Matrix API call - positionList = new ArrayList<>(); + pointList = new ArrayList<>(); // Get the position of each GeoJSON feature and build the list of Position // objects for eventual use in the Matrix API call - for (Feature singleLocation : featureCollection.getFeatures()) { - Point singleLocationPosition = Point.fromLngLat(singleLocation.getGeometry().getCoordinates()); - positionList.add(singleLocationPosition); + for (Feature singleLocation : featureCollection.features()) { + Point singleLocationPoint = (Point) singleLocation.geometry(); + pointList.add(singleLocationPoint); } } private void initMatrixLocationListForRecyclerView() { matrixLocationList = new ArrayList<>(); - for (int x = 0; x < featureCollection.getFeatures().size(); x++) { + for (int x = 0; x < featureCollection.features().size(); x++) { SingleRecyclerViewMatrixLocation singleRecyclerViewLocation = new SingleRecyclerViewMatrixLocation(); - singleRecyclerViewLocation.setName(featureCollection.getFeatures().get(x) + singleRecyclerViewLocation.setName(featureCollection.features().get(x) .getStringProperty("Station_Name")); - singleRecyclerViewLocation.setLocationLatLng(new LatLng(positionList.get(x).latitude(), - positionList.get(x).longitude())); + singleRecyclerViewLocation.setLocationLatLng(new LatLng(pointList.get(x).latitude(), + pointList.get(x).longitude())); matrixLocationList.add(singleRecyclerViewLocation); } } From 5c9d462562cea110c546cdb063ae03369cdd0dc5 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 16:46:27 -0800 Subject: [PATCH 13/23] comment change --- .../examples/plugins/LocationPluginActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java index ba5eab267..4539a0167 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/LocationPluginActivity.java @@ -61,7 +61,7 @@ public void onMapReady(MapboxMap mapboxMap) { private void enableLocationPlugin() { // Check if permissions are enabled and if not request if (PermissionsManager.areLocationPermissionsGranted(this)) { - // Create an instance of LOST location engine + // Create a location engine instance initializeLocationEngine(); locationPlugin = new LocationLayerPlugin(mapView, mapboxMap, locationEngine); From f13a1df71eddb5781243e94323307802e7de5e4c Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 16:46:36 -0800 Subject: [PATCH 14/23] Fixed location picker activity --- .../mapboxandroiddemo/labs/LocationPickerActivity.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java index e4a1fd771..454a79710 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/LocationPickerActivity.java @@ -23,14 +23,12 @@ import com.mapbox.geojson.Point; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; -import com.mapbox.mapboxsdk.annotations.BaseMarkerOptions; import com.mapbox.mapboxsdk.annotations.Icon; import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.location.LocationSource; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; @@ -42,7 +40,6 @@ import com.mapbox.services.android.telemetry.location.LocationEngineProvider; import com.mapbox.services.android.telemetry.permissions.PermissionsListener; import com.mapbox.services.android.telemetry.permissions.PermissionsManager; -import com.mapbox.services.commons.models.Position; import java.util.List; @@ -79,7 +76,7 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_lab_location_picker); // Get the location engine object for later use. - locationEngine = new LocationSource(this); + locationEngine = new LocationEngineProvider(this).obtainBestLocationEngineAvailable(); locationEngine.activate(); // Initialize the mapboxMap view @@ -142,7 +139,7 @@ public void onClick(View view) { // that the hovering marker and dropped marker are the same. droppedMarker = mapboxMap.addMarker(new MarkerOptions() - .position(new LatLng(latLng.longitude(), latLng.latitude()))); + .position(new LatLng(latLng.latitude(), latLng.longitude()))); // Finally we get the geocoding information reverseGeocode(latLng); @@ -260,7 +257,7 @@ private void reverseGeocode(final Point point) { MapboxGeocoding client = MapboxGeocoding.builder() .accessToken(getString(R.string.access_token)) - .query(point) + .query(Point.fromLngLat(point.longitude(), point.latitude())) .geocodingTypes(GeocodingCriteria.TYPE_ADDRESS) .build(); From b18790d0c6953916feb4f4e0971d6cea0551ecd3 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 17:34:23 -0800 Subject: [PATCH 15/23] adjusted map style for places plugin --- .../src/main/res/layout/activity_places_plugin.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxAndroidDemo/src/main/res/layout/activity_places_plugin.xml b/MapboxAndroidDemo/src/main/res/layout/activity_places_plugin.xml index 94a9f2601..4b67b176f 100644 --- a/MapboxAndroidDemo/src/main/res/layout/activity_places_plugin.xml +++ b/MapboxAndroidDemo/src/main/res/layout/activity_places_plugin.xml @@ -11,7 +11,7 @@ android:layout_height="match_parent" mapbox:mapbox_cameraTargetLng="-43.334931" mapbox:mapbox_cameraZoom="0.346515" - mapbox:mapbox_styleUrl="mapbox://styles/mapbox/cj44mfrt20f082snokim4ungi" /> + mapbox:mapbox_styleUrl="@string/mapbox_style_mapbox_streets" /> Date: Mon, 5 Mar 2018 17:35:22 -0800 Subject: [PATCH 16/23] Revert clientse --- .../mapboxandroiddemo/account/AccountRetrievalService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java index dae850343..036ec717a 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java @@ -77,7 +77,7 @@ protected void onHandleIntent(@Nullable Intent intent) { private void getAccessToken(String code) { - String clientSecret = "c9098a2cbe6d79fde25fd35121ba4e8da4ffb8a1e7e1a77f894b94b4df6b6f29"; + String clientSecret = getString(R.string.mapbox_auth_flow_secret); String query = new Uri.Builder() .appendQueryParameter("grant_type", "authorization_code") From 1832d5162e609877b85a662ff4351392589dc30c Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 5 Mar 2018 17:47:22 -0800 Subject: [PATCH 17/23] comment update --- .../examples/plugins/PlacesPluginActivity.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/PlacesPluginActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/PlacesPluginActivity.java index b062d3da0..0d54eabad 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/PlacesPluginActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/PlacesPluginActivity.java @@ -29,6 +29,11 @@ import com.mapbox.services.commons.geojson.Feature; import com.mapbox.services.commons.geojson.FeatureCollection; +/** + * Use the places plugin to take advantage of Mapbox's location search ("geocoding") capabilities. The plugin + * automatically makes geocoding requests, has built-in saved locations, includes location picker functionality, + * and adds beautiful UI into your Android project. + */ public class PlacesPluginActivity extends AppCompatActivity implements OnMapReadyCallback { private static final int REQUEST_CODE_AUTOCOMPLETE = 1; From 42c6a142cd9c193daeb5c1bf93daea39a988cc33 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Tue, 6 Mar 2018 06:04:41 -0800 Subject: [PATCH 18/23] removed outdated duplicated matrix api examle --- .../examples/mas/MatrixApiActivity.java | 356 ------------------ 1 file changed, 356 deletions(-) delete mode 100644 MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java deleted file mode 100644 index 78259c9b4..000000000 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/mas/MatrixApiActivity.java +++ /dev/null @@ -1,356 +0,0 @@ -package com.mapbox.mapboxandroiddemo.examples.mas; - -import android.content.Context; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.CardView; -import android.support.v7.widget.DefaultItemAnimator; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.LinearSnapHelper; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.SnapHelper; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import android.widget.Toast; - - -import com.mapbox.api.directions.v5.DirectionsCriteria; -import com.mapbox.api.matrix.v1.MapboxMatrix; -import com.mapbox.api.matrix.v1.models.MatrixResponse; -import com.mapbox.geojson.Feature; -import com.mapbox.geojson.FeatureCollection; -import com.mapbox.mapboxandroiddemo.R; -import com.mapbox.mapboxsdk.Mapbox; -import com.mapbox.mapboxsdk.annotations.Icon; -import com.mapbox.mapboxsdk.annotations.IconFactory; -import com.mapbox.mapboxsdk.annotations.Marker; -import com.mapbox.mapboxsdk.annotations.MarkerOptions; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.services.commons.geojson.Point; -import com.mapbox.turf.TurfConversion; - -import java.io.InputStream; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.List; - -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; - - -public class MatrixApiActivity extends AppCompatActivity { - - private MapView mapView; - private MapboxMap mapboxMap; - private List listOfPoints; - private FeatureCollection featureCollection; - private RecyclerView recyclerView; - private MatrixApiLocationRecyclerViewAdapter matrixApiLocationRecyclerViewAdapter; - private ArrayList matrixLocationList; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - // Mapbox access token is configured here. This needs to be called either in your application - // object or in the same activity which contains the mapview. - Mapbox.getInstance(this, getString(R.string.access_token)); - - // This contains the MapView in XML and needs to be called after the access token is configured. - setContentView(R.layout.activity_matrix_api); - - recyclerView = findViewById(R.id.matrix_api_recyclerview); - - // Create list of points from local GeoJSON file - initPointListFromGeoJsonFile(); - - mapView = findViewById(R.id.mapView); - mapView.onCreate(savedInstanceState); - mapView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(final MapboxMap mapboxMap) { - MatrixApiActivity.this.mapboxMap = mapboxMap; - - // Add markers to the map - addMarkers(); - - // Set up list of locations to pass to the recyclerview - initMatrixLocationListForRecyclerView(); - - // Set up the recyclerview of charging station cards - initRecyclerView(); - - mapboxMap.setOnMarkerClickListener(new MapboxMap.OnMarkerClickListener() { - @Override - public boolean onMarkerClick(@NonNull Marker marker) { - - // Make a call to the Mapbox Matrix API - makeMapboxMatrixApiCall(getClickedMarkerNumInPointList(marker), - Point.fromCoordinates(new double[]{marker.getPosition().getLongitude(), - marker.getPosition().getLatitude()})); - return false; - } - }); - Toast.makeText(MatrixApiActivity.this, R.string.click_on_marker_instruction_toast, - Toast.LENGTH_SHORT).show(); - } - }); - } - - private int getClickedMarkerNumInPointList(Marker clickedMarker) { - int clickedMarkerIndexPositionInList = -1; - if (clickedMarker != null) { - for (Marker singleMarker : mapboxMap.getMarkers()) { - if (singleMarker == clickedMarker) { - clickedMarkerIndexPositionInList = mapboxMap.getMarkers().indexOf(singleMarker); - } - } - return clickedMarkerIndexPositionInList; - } else { - return 0; - } - } - - private void initRecyclerView() { - matrixApiLocationRecyclerViewAdapter = new MatrixApiLocationRecyclerViewAdapter(this, - matrixLocationList); - recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), - LinearLayoutManager.HORIZONTAL, true)); - recyclerView.setItemAnimator(new DefaultItemAnimator()); - recyclerView.setAdapter(matrixApiLocationRecyclerViewAdapter); - SnapHelper snapHelper = new LinearSnapHelper(); - snapHelper.attachToRecyclerView(recyclerView); - } - - private void makeMapboxMatrixApiCall(final int markerPositionInList, Point selectedMarkerPoint) { - - /*// Build Mapbox Matrix API parameters - MapboxMatrix directionsMatrixClient = MapboxMatrix.builder() - .accessToken(getString(R.string.access_token)) - .profile(DirectionsCriteria.PROFILE_DRIVING) - .coordinates(listOfPoints) - .build(); - - // Handle the API response - directionsMatrixClient.enqueueCall(new Callback() { - @Override - public void onResponse(Call call, - Response response) { - - List> durationsToAllOfTheLocationsFromTheOrigin = new ArrayList<>(); - - durationsToAllOfTheLocationsFromTheOrigin.add(response.body().durations()); - - for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.get(0).size(); x++) { - - String finalConvertedFormattedDistance = String.valueOf( - new DecimalFormat("#.##").format(TurfConversion.convertDistance( - durationsToAllOfTheLocationsFromTheOrigin.get(0).get(markerPositionInList)[x], - "meters", "miles"))); - - if (x == markerPositionInList) { - matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); - } - if (x != markerPositionInList) { - matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); - matrixApiLocationRecyclerViewAdapter.notifyDataSetChanged(); - } - } - } - - @Override - public void onFailure(Call call, Throwable throwable) { - Toast.makeText(MatrixApiActivity.this, R.string.call_error, - Toast.LENGTH_SHORT).show(); - Log.d("MatrixApiActivity", "onResponse onFailure"); - } - });*/ - } - - private void addMarkers() { - Icon lightningBoltIcon = IconFactory.getInstance(MatrixApiActivity.this) - .fromResource(R.drawable.lightning_bolt); - for (Feature feature : featureCollection.features()) { - mapboxMap.addMarker(new MarkerOptions() - .position(new LatLng(feature.getProperty("Latitude").getAsDouble(), - feature.getProperty("Longitude").getAsDouble())) - .snippet(feature.getStringProperty("Station_Name")) - .icon(lightningBoltIcon)); - } - } - - private String loadGeoJsonFromAsset(String filename) { - try { - // Load GeoJSON file from local asset folder - InputStream is = getAssets().open(filename); - int size = is.available(); - byte[] buffer = new byte[size]; - is.read(buffer); - is.close(); - return new String(buffer, "UTF-8"); - } catch (Exception exception) { - Log.d("MatrixApiActivity", "Exception Loading GeoJSON: " + exception.toString()); - exception.printStackTrace(); - return null; - } - } - - private void initPointListFromGeoJsonFile() { - - // Get GeoJSON features from GeoJSON file in the assets folder - featureCollection = FeatureCollection.fromJson(loadGeoJsonFromAsset("boston_charge_stations.geojson")); - - // Initialize List for eventual use in the Matrix API call - listOfPoints = new ArrayList<>(); - - // Get the location of each GeoJSON feature and build the list of Point - // objects for eventual use in the Matrix API call - for (Feature singleLocation : featureCollection.features()) { - /*listOfPoints.add(Point.fromCoordinates(new double[]{singleLocation.geometry().coordinates(), - singleLocation.geometry().coordinates()}));*/ - } - } - - private void initMatrixLocationListForRecyclerView() { - matrixLocationList = new ArrayList<>(); - for (int x = 0; x < featureCollection.features().size(); x++) { - SingleRecyclerViewMatrixLocation singleRecyclerViewLocation = new SingleRecyclerViewMatrixLocation(); - singleRecyclerViewLocation.setName(featureCollection.features().get(x) - .getStringProperty("Station_Name")); - singleRecyclerViewLocation.setLocationLatLng(new LatLng(listOfPoints - .get(x).getCoordinates().getLatitude(), - listOfPoints.get(x).getCoordinates().getLongitude())); - matrixLocationList.add(singleRecyclerViewLocation); - } - } - - // Add the mapView lifecycle to the activity's lifecycle methods - @Override - public void onResume() { - super.onResume(); - mapView.onResume(); - } - - @Override - protected void onStart() { - super.onStart(); - mapView.onStart(); - } - - @Override - protected void onStop() { - super.onStop(); - mapView.onStop(); - } - - @Override - public void onPause() { - super.onPause(); - mapView.onPause(); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapView.onDestroy(); - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - mapView.onSaveInstanceState(outState); - } - - /** - * POJO model class for a single location in the recyclerview - */ - class SingleRecyclerViewMatrixLocation { - - private String name; - private LatLng locationLatLng; - private String distanceFromOrigin; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDistanceFromOrigin() { - return distanceFromOrigin; - } - - public void setDistanceFromOrigin(String distanceFromOrigin) { - this.distanceFromOrigin = distanceFromOrigin; - } - - public void setLocationLatLng(LatLng locationLatLng) { - this.locationLatLng = locationLatLng; - } - } - - static class MatrixApiLocationRecyclerViewAdapter extends - RecyclerView.Adapter { - - private List matrixLocationList; - private Context context; - - public MatrixApiLocationRecyclerViewAdapter(Context context, - List matrixLocationList) { - this.matrixLocationList = matrixLocationList; - this.context = context; - } - - @Override - public MatrixApiLocationRecyclerViewAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.rv_matrix_card, parent, false); - return new MatrixApiLocationRecyclerViewAdapter.MyViewHolder(itemView); - } - - @Override - public void onBindViewHolder(MatrixApiLocationRecyclerViewAdapter.MyViewHolder holder, int position) { - SingleRecyclerViewMatrixLocation singleRecyclerViewLocation = matrixLocationList.get(position); - holder.name.setText(singleRecyclerViewLocation.getName()); - - String finalDistance = singleRecyclerViewLocation.getDistanceFromOrigin() - == null ? "" : String.format(context.getString(R.string.miles_distance), - singleRecyclerViewLocation.getDistanceFromOrigin()); - holder.distance.setText(finalDistance); - } - - @Override - public int getItemCount() { - return matrixLocationList.size(); - } - - static class MyViewHolder extends RecyclerView.ViewHolder { - TextView name; - TextView distance; - CardView singleCard; - - MyViewHolder(View view) { - super(view); - name = (TextView) view.findViewById(R.id.boston_matrix_api_location_title_tv); - distance = (TextView) view.findViewById(R.id.boston_matrix_api_location_distance_tv); - singleCard = (CardView) view.findViewById(R.id.single_location_cardview); - } - } - } -} From e8cf9faf5e175dfeac979705e2dc5960057c64c9 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Tue, 6 Mar 2018 07:16:14 -0800 Subject: [PATCH 19/23] changes based on cam's review --- .../javaservices/MapMatchingActivity.java | 45 +++++++------- .../javaservices/MatrixApiActivity.java | 59 +++++++++---------- .../javaservices/OptimizationActivity.java | 1 - .../labs/IndoorMapActivity.java | 57 ++++++++---------- 4 files changed, 74 insertions(+), 88 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java index 00b98133f..556a14559 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java @@ -128,19 +128,16 @@ protected List doInBackground(Void... voids) { while ((cp = rd.read()) != -1) { sb.append((char) cp); } - inputStream.close(); FeatureCollection featureCollection = FeatureCollection.fromJson(sb.toString()); LineString lineString = (LineString) featureCollection.getFeatures().get(0).getGeometry(); - for (int x = 0; x < lineString.getCoordinates().size(); x++) { - points.add(Point.fromLngLat(lineString.getCoordinates().get(x).getLongitude(), - lineString.getCoordinates().get(x).getLatitude())); + for (Position singlePosition : lineString.getCoordinates()) { + points.add(Point.fromLngLat(singlePosition.getLongitude(), + singlePosition.getLatitude())); } - } catch (Exception exception) { Log.e(TAG, "Exception Loading GeoJSON: " + exception.toString()); } - return points; } @@ -159,25 +156,26 @@ private void drawBeforeMapMatching(List points) { } map.addPolyline(new PolylineOptions() - .add(pointsArray) - .color(Color.parseColor("#8a8acb")) - .alpha(0.65f) - .width(4)); + .add(pointsArray) + .color(Color.parseColor("#8a8acb")) + .alpha(0.65f) + .width(4)); } private void drawMapMatched(List coordinates) { try { // Setup the request using a client. MapboxMapMatching client = MapboxMapMatching.builder() - .accessToken(Mapbox.getAccessToken()) - .profile(PROFILE_DRIVING) - .coordinates(coordinates) - .build(); + .accessToken(Mapbox.getAccessToken()) + .profile(PROFILE_DRIVING) + .coordinates(coordinates) + .build(); // Execute the API call and handle the response. client.enqueueCall(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(Call call, + Response response) { // Create a new list to store the map matched coordinates. List mapMatchedPoints = new ArrayList<>(); @@ -187,15 +185,14 @@ public void onResponse(Call call, Response positions = PolylineUtils.decode(geometry, Constants.PRECISION_6); - if (positions == null) { + List positionList = PolylineUtils.decode(geometry, Constants.PRECISION_6); + if (positionList == null) { return; } - for (int i = 0; i < positions.size(); i++) { - mapMatchedPoints.add(new LatLng( - positions.get(i).getLatitude(), - positions.get(i).getLongitude())); + for (Position singlePosition : positionList) { + mapMatchedPoints.add(new LatLng(singlePosition.getLatitude(), + singlePosition.getLongitude())); } if (mapMatchedRoute != null) { @@ -204,9 +201,9 @@ public void onResponse(Call call, Response() { @@ -150,9 +150,9 @@ public void onResponse(Call call, List durationsToAllOfTheLocationsFromTheOrigin = response.body().durations(); for (int x = 0; x < durationsToAllOfTheLocationsFromTheOrigin.size(); x++) { String finalConvertedFormattedDistance = String.valueOf(new DecimalFormat("#.##") - .format(TurfConversion.convertDistance( - durationsToAllOfTheLocationsFromTheOrigin.get(markerPositionInList)[x], - "meters", "miles"))); + .format(TurfConversion.convertDistance( + durationsToAllOfTheLocationsFromTheOrigin.get(markerPositionInList)[x], + "meters", "miles"))); if (x == markerPositionInList) { matrixLocationList.get(x).setDistanceFromOrigin(finalConvertedFormattedDistance); } @@ -166,7 +166,7 @@ public void onResponse(Call call, @Override public void onFailure(Call call, Throwable throwable) { Toast.makeText(MatrixApiActivity.this, R.string.call_error, - Toast.LENGTH_SHORT).show(); + Toast.LENGTH_SHORT).show(); Log.d("MatrixApiActivity", "onResponse onFailure"); } }); @@ -174,13 +174,13 @@ public void onFailure(Call call, Throwable throwable) { private void addMarkers() { Icon lightningBoltIcon = IconFactory.getInstance(MatrixApiActivity.this) - .fromResource(R.drawable.lightning_bolt); - for (com.mapbox.geojson.Feature feature : featureCollection.features()) { + .fromResource(R.drawable.lightning_bolt); + for (Feature feature : featureCollection.features()) { mapboxMap.addMarker(new MarkerOptions() - .position(new LatLng(feature.getProperty("Latitude").getAsDouble(), - feature.getProperty("Longitude").getAsDouble())) - .snippet(feature.getStringProperty("Station_Name")) - .icon(lightningBoltIcon)); + .position(new LatLng(feature.getProperty("Latitude").getAsDouble(), + feature.getProperty("Longitude").getAsDouble())) + .snippet(feature.getStringProperty("Station_Name")) + .icon(lightningBoltIcon)); } } @@ -211,19 +211,18 @@ private void initPositionListFromGeoJsonFile() { // Get the position of each GeoJSON feature and build the list of Position // objects for eventual use in the Matrix API call for (Feature singleLocation : featureCollection.features()) { - Point singleLocationPoint = (Point) singleLocation.geometry(); - pointList.add(singleLocationPoint); + pointList.add((Point) singleLocation.geometry()); } } private void initMatrixLocationListForRecyclerView() { matrixLocationList = new ArrayList<>(); - for (int x = 0; x < featureCollection.features().size(); x++) { + for (Feature feature : featureCollection.features()) { SingleRecyclerViewMatrixLocation singleRecyclerViewLocation = new SingleRecyclerViewMatrixLocation(); - singleRecyclerViewLocation.setName(featureCollection.features().get(x) - .getStringProperty("Station_Name")); - singleRecyclerViewLocation.setLocationLatLng(new LatLng(pointList.get(x).latitude(), - pointList.get(x).longitude())); + singleRecyclerViewLocation.setName(feature.getStringProperty("Station_Name")); + singleRecyclerViewLocation.setLocationLatLng(new LatLng(((Point) + feature.geometry()).latitude(), + ((Point) feature.geometry()).longitude())); matrixLocationList.add(singleRecyclerViewLocation); } } @@ -302,7 +301,7 @@ public void setLocationLatLng(LatLng locationLatLng) { } static class MatrixApiLocationRecyclerViewAdapter extends - RecyclerView.Adapter { + RecyclerView.Adapter { private List matrixLocationList; private Context context; @@ -316,7 +315,7 @@ public MatrixApiLocationRecyclerViewAdapter(Context context, @Override public MatrixApiLocationRecyclerViewAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.rv_matrix_card, parent, false); + .inflate(R.layout.rv_matrix_card, parent, false); return new MatrixApiLocationRecyclerViewAdapter.MyViewHolder(itemView); } @@ -326,8 +325,8 @@ public void onBindViewHolder(MatrixApiLocationRecyclerViewAdapter.MyViewHolder h holder.name.setText(singleRecyclerViewLocation.getName()); String finalDistance = singleRecyclerViewLocation.getDistanceFromOrigin() - == null ? "" : String.format(context.getString(R.string.miles_distance), - singleRecyclerViewLocation.getDistanceFromOrigin()); + == null ? "" : String.format(context.getString(R.string.miles_distance), + singleRecyclerViewLocation.getDistanceFromOrigin()); holder.distance.setText(finalDistance); } diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java index 278af2241..e87b4eecc 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/OptimizationActivity.java @@ -138,7 +138,6 @@ private void getOptimizedRoute(List coordinates) { .overview(DirectionsCriteria.OVERVIEW_FULL) .profile(DirectionsCriteria.PROFILE_DRIVING) .accessToken(Mapbox.getAccessToken()) - .build(); optimizedClient.enqueueCall(new Callback() { diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java index bacc5c663..efd615dec 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java @@ -81,29 +81,21 @@ public void onMapReady(final MapboxMap mapboxMap) { @Override public void onCameraMove() { if (mapboxMap.getCameraPosition().zoom > 16) { - try { - if (TurfJoins.inside(Point.fromLngLat(mapboxMap.getCameraPosition().target.getLongitude(), + if (TurfJoins.inside(Point.fromLngLat(mapboxMap.getCameraPosition().target.getLongitude(), mapboxMap.getCameraPosition().target.getLatitude()), Polygon.fromLngLats(boundingBoxList))) { - - - if (levelButtons.getVisibility() != View.VISIBLE) { - showLevelButton(); - } - } else { - if (levelButtons.getVisibility() == View.VISIBLE) { - hideLevelButton(); - } + if (levelButtons.getVisibility() != View.VISIBLE) { + showLevelButton(); + } + } else { + if (levelButtons.getVisibility() == View.VISIBLE) { + hideLevelButton(); } - } catch (TurfException turfException) { - turfException.printStackTrace(); } } else if (levelButtons.getVisibility() == View.VISIBLE) { hideLevelButton(); } } - }); - indoorBuildingSource = new GeoJsonSource("indoor-building", loadJsonFromAsset("white_house_lvl_0.geojson")); mapboxMap.addSource(indoorBuildingSource); @@ -111,8 +103,7 @@ public void onCameraMove() { loadBuildingLayer(); } }); - - Button buttonSecondLevel = (Button) findViewById(R.id.second_level_button); + Button buttonSecondLevel = findViewById(R.id.second_level_button); buttonSecondLevel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -120,7 +111,7 @@ public void onClick(View view) { } }); - Button buttonGroundLevel = (Button) findViewById(R.id.ground_level_button); + Button buttonGroundLevel = findViewById(R.id.ground_level_button); buttonGroundLevel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -194,27 +185,27 @@ private void loadBuildingLayer() { // line layer is added. FillLayer indoorBuildingLayer = new FillLayer("indoor-building-fill", "indoor-building").withProperties( - fillColor(Color.parseColor("#eeeeee")), - // Function.zoom is used here to fade out the indoor layer if zoom level is beyond 16. Only - // necessary to show the indoor map at high zoom levels. - fillOpacity(Function.zoom(Stops.exponential( - Stop.stop(17f, fillOpacity(1f)), - Stop.stop(16.5f, fillOpacity(0.5f)), - Stop.stop(16f, fillOpacity(0f)) - ))) + fillColor(Color.parseColor("#eeeeee")), + // Function.zoom is used here to fade out the indoor layer if zoom level is beyond 16. Only + // necessary to show the indoor map at high zoom levels. + fillOpacity(Function.zoom(Stops.exponential( + Stop.stop(17f, fillOpacity(1f)), + Stop.stop(16.5f, fillOpacity(0.5f)), + Stop.stop(16f, fillOpacity(0f)) + ))) ); map.addLayer(indoorBuildingLayer); LineLayer indoorBuildingLineLayer = new LineLayer("indoor-building-line", "indoor-building").withProperties( - lineColor(Color.parseColor("#50667f")), - lineWidth(0.5f), - lineOpacity(Function.zoom(Stops.exponential( - Stop.stop(17f, lineOpacity(1f)), - Stop.stop(16.5f, lineOpacity(0.5f)), - Stop.stop(16f, lineOpacity(0f)) - ))) + lineColor(Color.parseColor("#50667f")), + lineWidth(0.5f), + lineOpacity(Function.zoom(Stops.exponential( + Stop.stop(17f, lineOpacity(1f)), + Stop.stop(16.5f, lineOpacity(0.5f)), + Stop.stop(16f, lineOpacity(0f)) + ))) ); map.addLayer(indoorBuildingLineLayer); From 17e7784ec6d57966849d5babb8f4957ba7ecb86e Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Tue, 6 Mar 2018 07:20:40 -0800 Subject: [PATCH 20/23] checkstyle: removed unused import line --- .../com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java | 1 - 1 file changed, 1 deletion(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java index efd615dec..4cca7a992 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/IndoorMapActivity.java @@ -21,7 +21,6 @@ import com.mapbox.mapboxsdk.style.layers.FillLayer; import com.mapbox.mapboxsdk.style.layers.LineLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; -import com.mapbox.turf.TurfException; import com.mapbox.turf.TurfJoins; import java.io.IOException; From e5829c3caee3cde62a9057929e916ed33925c056 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Tue, 6 Mar 2018 07:25:48 -0800 Subject: [PATCH 21/23] removed line from git ignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5d7ea8c5a..3b0310a0c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,3 @@ build gradlew.bat *.properties src/main/res/ -MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java From cf3e4620699cc2956b771948103581511fcbc95b Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Tue, 6 Mar 2018 10:34:44 -0800 Subject: [PATCH 22/23] Final tweaks --- .../account/AccountRetrievalService.java | 2 +- .../examples/javaservices/MapMatchingActivity.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java index 036ec717a..9f46b0649 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java @@ -77,7 +77,7 @@ protected void onHandleIntent(@Nullable Intent intent) { private void getAccessToken(String code) { - String clientSecret = getString(R.string.mapbox_auth_flow_secret); + String clientSecret = getString(R.string.app_auth_flow_secret); String query = new Uri.Builder() .appendQueryParameter("grant_type", "authorization_code") diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java index 556a14559..a146def4b 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/javaservices/MapMatchingActivity.java @@ -10,6 +10,7 @@ import com.mapbox.api.matching.v5.models.MapMatchingResponse; import com.mapbox.core.exceptions.ServicesException; import com.mapbox.geojson.Point; +import com.mapbox.geojson.utils.PolylineUtils; import com.mapbox.mapboxandroiddemo.R; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Polyline; @@ -22,7 +23,6 @@ import com.mapbox.services.commons.geojson.FeatureCollection; import com.mapbox.services.commons.geojson.LineString; import com.mapbox.services.commons.models.Position; -import com.mapbox.services.commons.utils.PolylineUtils; import java.io.BufferedReader; import java.io.InputStream; @@ -60,7 +60,7 @@ protected void onCreate(Bundle savedInstanceState) { // This contains the MapView in XML and needs to be called after the access token is configured. setContentView(R.layout.activity_javaservices_map_matching); - mapView = (MapView) findViewById(R.id.mapView); + mapView = findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @Override @@ -185,14 +185,14 @@ public void onResponse(Call call, // By default, the SDK uses MapMatchingCriteria.GEOMETRY_POLYLINE_6, therefore // you need Constants.PRECISION_6 for the decode to be right String geometry = response.body().matchings().get(0).geometry(); - List positionList = PolylineUtils.decode(geometry, Constants.PRECISION_6); - if (positionList == null) { + List pointList = PolylineUtils.decode(geometry, Constants.PRECISION_6); + if (pointList == null) { return; } - for (Position singlePosition : positionList) { - mapMatchedPoints.add(new LatLng(singlePosition.getLatitude(), - singlePosition.getLongitude())); + for (Point singlePosition : pointList) { + mapMatchedPoints.add(new LatLng(singlePosition.latitude(), + singlePosition.longitude())); } if (mapMatchedRoute != null) { From 951cbb3eadac2072745e0916d8ef6bc87e96eb08 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Tue, 6 Mar 2018 21:45:29 +0100 Subject: [PATCH 23/23] rename resource to mapbox_auth_flow_secret (#646) --- .../mapboxandroiddemo/account/AccountRetrievalService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java index 9f46b0649..036ec717a 100644 --- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java +++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/account/AccountRetrievalService.java @@ -77,7 +77,7 @@ protected void onHandleIntent(@Nullable Intent intent) { private void getAccessToken(String code) { - String clientSecret = getString(R.string.app_auth_flow_secret); + String clientSecret = getString(R.string.mapbox_auth_flow_secret); String query = new Uri.Builder() .appendQueryParameter("grant_type", "authorization_code")