Skip to content

Commit

Permalink
Copy navigation models to navigation core
Browse files Browse the repository at this point in the history
  • Loading branch information
boldtrn committed Oct 6, 2023
1 parent 74b0193 commit 57b36f5
Show file tree
Hide file tree
Showing 177 changed files with 8,236 additions and 700 deletions.
13 changes: 11 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,17 @@

Maplibre welcomes participation and contributions from everyone.

### v2.1.0 - unreleased

### v3.0.0 - unreleased

- BREAKING CHANGES:
- The navigation models DirectionsResponse and the classes used within this class have been moved the Maplibre-Java to the navigation-core. So the core does not need a dependency to the outdated Maplibre-Java dependency anymore.
- When you pass a DirectionsResponse or DirectionsRoute to the navigation-core, please be aware that you convert it to the local model first. If you are using Mapbox or the GraphHopper navigation endpoint, you can simply uses fromJson for parsing.
- You could use something like this: `com.mapbox.services.android.navigation.v5.models.DirectionsResponse.fromJson(JSON_STRING_FROM_API_RESPONSE);`
- `RouteFetcher` has been split to `RouteFetcher` and `MapboxRouteFetcher`. The latter is in the ui module now.
- `NavigationRoute` has been moved to the ui module.
- The check faster route callbacks had to be removed as they relied on parts of the RouteFetcher that don't work anymore in the core. You need to do faster route checks in your code, if you need this feature.
- `RouteProcessorBackgroundThread.Listener#onCheckFasterRoute` was removed.
- This resulted in some smaller API changes that don't require the RouteFetcher as parameter anymore.
- Support multiple legs by snap to route engine [#77](https://github.com/maplibre/maplibre-navigation-android/pull/77)
- Mark unused option `maximumDistanceOffRoute` as deprecated [#65](https://github.com/maplibre/maplibre-navigation-android/pull/65)
- Fix move-away-from-maneuver logic of `OffRouteDetector` [#65](https://github.com/maplibre/maplibre-navigation-android/pull/65)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
import com.mapbox.api.directions.v5.models.DirectionsResponse;
import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.geojson.Point;
import com.mapbox.mapboxsdk.Mapbox;
import com.mapbox.services.android.navigation.testapp.R;
import com.mapbox.services.android.navigation.ui.v5.NavigationView;
import com.mapbox.services.android.navigation.ui.v5.NavigationViewOptions;
import com.mapbox.services.android.navigation.ui.v5.OnNavigationReadyCallback;
import com.mapbox.services.android.navigation.v5.navigation.NavigationRoute;
import com.mapbox.services.android.navigation.ui.v5.route.NavigationRoute;

import java.lang.reflect.Field;

Expand Down Expand Up @@ -89,7 +89,7 @@ private void fetchRoute(Context context) {
Point origin = Point.fromLngLat(-77.033987, 38.900123);
Point destination = Point.fromLngLat(-77.044818, 38.848942);
NavigationRoute.builder(context)
.accessToken(Mapbox.getAccessToken())
.accessToken(context.getString(R.string.mapbox_access_token))
.origin(origin)
.destination(destination)
.build().getRoute(this);
Expand All @@ -105,7 +105,7 @@ private void storeRouteForRotation(DirectionsRoute route) {

private NavigationViewOptions buildTestNavigationViewOptions() {
return NavigationViewOptions.builder()
.directionsRoute(testRoute)
.directionsRoute(com.mapbox.services.android.navigation.v5.models.DirectionsRoute.fromJson(testRoute.toJson()))
.shouldSimulateRoute(true)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.snackbar.Snackbar
import com.mapbox.api.directions.v5.DirectionsCriteria
import com.mapbox.api.directions.v5.models.DirectionsResponse
import com.mapbox.api.directions.v5.models.DirectionsRoute
import com.mapbox.geojson.Point
import com.mapbox.mapboxsdk.annotations.MarkerOptions
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory
Expand All @@ -26,9 +25,11 @@ import com.mapbox.mapboxsdk.maps.MapboxMap
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback
import com.mapbox.mapboxsdk.maps.Style
import com.mapbox.services.android.navigation.testapp.databinding.ActivityMockNavigationBinding
import com.mapbox.services.android.navigation.ui.v5.route.NavigationRoute
import com.mapbox.services.android.navigation.v5.instruction.Instruction
import com.mapbox.services.android.navigation.v5.location.replay.ReplayRouteLocationEngine
import com.mapbox.services.android.navigation.v5.milestone.*
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute
import com.mapbox.services.android.navigation.v5.navigation.*
import com.mapbox.services.android.navigation.v5.offroute.OffRouteListener
import com.mapbox.services.android.navigation.v5.routeprogress.ProgressChangeListener
Expand Down Expand Up @@ -225,7 +226,7 @@ class MockNavigationActivity :
this.accessToken(getString(R.string.mapbox_access_token))
this.origin(origin)
this.destination(destination)
this.voiceUnits(DirectionsCriteria.METRIC)
this.voiceUnits(com.mapbox.services.android.navigation.v5.models.DirectionsCriteria.METRIC)
this.alternatives(true)
this.baseUrl(getString(R.string.base_url))
}
Expand All @@ -238,9 +239,10 @@ class MockNavigationActivity :
Timber.d("Url: %s", (call.request() as Request).url.toString())
response.body()?.let { response ->
if (response.routes().isNotEmpty()) {
val directionsRoute = response.routes().first()
val maplibreResponse = com.mapbox.services.android.navigation.v5.models.DirectionsResponse.fromJson(response.toJson());
val directionsRoute = DirectionsRoute.fromJson(maplibreResponse.routes().first().toJson())
this@MockNavigationActivity.route = directionsRoute
navigationMapRoute?.addRoutes(response.routes())
navigationMapRoute?.addRoutes(maplibreResponse.routes())
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.snackbar.Snackbar
import com.mapbox.api.directions.v5.DirectionsCriteria
import com.mapbox.api.directions.v5.models.DirectionsResponse
import com.mapbox.api.directions.v5.models.DirectionsRoute
import com.mapbox.geojson.Point
import com.mapbox.mapboxsdk.annotations.MarkerOptions
import com.mapbox.mapboxsdk.camera.CameraPosition
Expand All @@ -23,7 +22,9 @@ import com.mapbox.mapboxsdk.maps.Style
import com.mapbox.services.android.navigation.testapp.databinding.ActivityNavigationUiBinding
import com.mapbox.services.android.navigation.ui.v5.NavigationLauncher
import com.mapbox.services.android.navigation.ui.v5.NavigationLauncherOptions
import com.mapbox.services.android.navigation.ui.v5.route.NavigationRoute
import com.mapbox.services.android.navigation.v5.milestone.*
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute
import com.mapbox.services.android.navigation.v5.navigation.*
import com.mapbox.turf.TurfConstants
import com.mapbox.turf.TurfMeasurement
Expand Down Expand Up @@ -183,8 +184,10 @@ class NavigationUIActivity :
this.accessToken(getString(R.string.mapbox_access_token))
this.origin(origin)
this.destination(destination)
this.voiceUnits(DirectionsCriteria.METRIC)
this.voiceUnits(DirectionsCriteria.IMPERIAL)
this.alternatives(true)
//this.user("gh")
//this.profile("car")
this.baseUrl(getString(R.string.base_url))
}

Expand All @@ -196,9 +199,9 @@ class NavigationUIActivity :
Timber.d("Url: %s", (call.request() as Request).url.toString())
response.body()?.let { response ->
if (response.routes().isNotEmpty()) {
val directionsRoute = response.routes().first()
this@NavigationUIActivity.route = directionsRoute
navigationMapRoute?.addRoutes(response.routes())
val maplibreResponse = com.mapbox.services.android.navigation.v5.models.DirectionsResponse.fromJson(response.toJson());
this@NavigationUIActivity.route = maplibreResponse.routes().first()
navigationMapRoute?.addRoutes(maplibreResponse.routes())
binding.startRouteLayout.visibility = View.VISIBLE
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ package com.mapbox.services.android.navigation.testapp
import android.location.Location
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.mapbox.api.directions.v5.DirectionsCriteria
import com.mapbox.api.directions.v5.models.DirectionsResponse
import com.mapbox.api.directions.v5.models.DirectionsRoute
import com.mapbox.geojson.Point
import com.mapbox.mapboxsdk.location.LocationComponent
import com.mapbox.mapboxsdk.location.LocationComponentActivationOptions
Expand All @@ -16,8 +14,10 @@ import com.mapbox.mapboxsdk.maps.MapboxMap
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback
import com.mapbox.mapboxsdk.maps.Style
import com.mapbox.services.android.navigation.testapp.databinding.ActivitySnapToRouteNavigationBinding
import com.mapbox.services.android.navigation.ui.v5.route.NavigationRoute
import com.mapbox.services.android.navigation.v5.location.replay.ReplayRouteLocationEngine
import com.mapbox.services.android.navigation.v5.milestone.*
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute
import com.mapbox.services.android.navigation.v5.navigation.*
import com.mapbox.services.android.navigation.v5.routeprogress.ProgressChangeListener
import com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress
Expand Down Expand Up @@ -128,7 +128,7 @@ class SnapToRouteNavigationActivity : AppCompatActivity(), OnMapReadyCallback,
this.origin(Point.fromLngLat(9.7536318, 52.3717979))
this.addWaypoint(Point.fromLngLat(9.741052, 52.360496))
this.destination(Point.fromLngLat(9.756259, 52.342620))
this.voiceUnits(DirectionsCriteria.METRIC)
this.voiceUnits(com.mapbox.services.android.navigation.v5.models.DirectionsCriteria.METRIC)
this.alternatives(true)
this.baseUrl(getString(R.string.base_url))
}
Expand All @@ -141,9 +141,10 @@ class SnapToRouteNavigationActivity : AppCompatActivity(), OnMapReadyCallback,
Timber.d("Url: %s", (call.request() as Request).url.toString())
response.body()?.let { responseBody ->
if (responseBody.routes().isNotEmpty()) {
val directionsRoute = responseBody.routes().first()
val maplibreResponse = com.mapbox.services.android.navigation.v5.models.DirectionsResponse.fromJson(responseBody.toJson());
val directionsRoute = maplibreResponse.routes().first()
this@SnapToRouteNavigationActivity.route = directionsRoute
navigationMapRoute?.addRoutes(responseBody.routes())
navigationMapRoute?.addRoutes(maplibreResponse.routes())

startNavigation()
}
Expand Down
8 changes: 6 additions & 2 deletions gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ ext {
mapLibreService : '5.9.0',
mapLibreTurf : '5.9.0',
mapLibreAnnotations : '1.0.0',
annotation : '1.0.0',
autoValue : '1.10.1',
autoValueGson : '1.3.1',
autoValueParcel : '0.2.5',
junit : '4.13.2',
androidxCoreVersion : '1.9.0',
Expand Down Expand Up @@ -51,7 +53,7 @@ ext {
gradle : '7.3.1',
kotlinGradle : '1.7.20',
dependencyGraph : '0.3.0',
dependencyUpdates: '0.44.0'
dependencyUpdates: '0.44.0',
]

dependenciesList = [
Expand All @@ -66,6 +68,7 @@ ext {
autoValueAnnotations : "com.google.auto.value:auto-value-annotations:${version.autoValue}",
autoValuesParcel : "com.ryanharter.auto.value:auto-value-parcel:${version.autoValueParcel}",
autoValuesParcelAdapter : "com.ryanharter.auto.value:auto-value-parcel-adapter:${version.autoValueParcel}",
autoValueGson : "com.ryanharter.auto.value:auto-value-gson:${version.autoValueGson}",

// butterknife
butterknife : "com.jakewharton:butterknife:${version.butterknife}",
Expand All @@ -80,6 +83,7 @@ ext {
androidxCardView : "androidx.cardview:cardview:${version.cardViewVersion}",
androidxConstraintLayout: "androidx.constraintlayout:constraintlayout:${version.constraintLayoutVersion}",
kotlinstdlib : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${androidVersions.kotlinVersion}",
supportAnnotation : "androidx.annotation:annotation:${version.annotation}",

// architecture
lifecycleExtensions : "androidx.lifecycle:lifecycle-extensions:${version.lifecycleVersion}",
Expand Down Expand Up @@ -120,6 +124,6 @@ ext {
errorprone : "net.ltgt.gradle:gradle-errorprone-plugin:${pluginVersion.errorprone}",
dependencyGraph : "com.vanniktech:gradle-dependency-graph-generator-plugin:${pluginVersion.dependencyGraph}",
dependencyUpdates : "com.github.ben-manes:gradle-versions-plugin:${pluginVersion.dependencyUpdates}",
kotlinGradle : "org.jetbrains.kotlin:kotlin-gradle-plugin:${androidVersions.kotlinVersion}"
kotlinGradle : "org.jetbrains.kotlin:kotlin-gradle-plugin:${androidVersions.kotlinVersion}",
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import android.content.Context;


import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.mapboxsdk.location.engine.LocationEngine;
import com.mapbox.services.android.navigation.v5.location.engine.LocationEngineProvider;
import com.mapbox.services.android.navigation.v5.location.replay.ReplayRouteLocationEngine;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.mapboxsdk.camera.CameraPosition;
import com.mapbox.services.android.navigation.ui.v5.listeners.NavigationListener;
import com.mapbox.services.android.navigation.v5.navigation.MapboxNavigationOptions;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import android.location.Location;
import androidx.annotation.NonNull;

import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.geojson.Point;

public interface NavigationContract {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import android.preference.PreferenceManager;

import com.google.gson.Gson;
import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.navigation.NavigationConstants;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import androidx.annotation.Nullable;

import com.google.auto.value.AutoValue;
import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.mapboxsdk.camera.CameraPosition;

@AutoValue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import androidx.annotation.NonNull;
import com.google.android.material.bottomsheet.BottomSheetBehavior;

import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.core.utils.TextUtils;
import com.mapbox.geojson.Point;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import androidx.annotation.Nullable;

import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;

public abstract class NavigationUiOptions {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import androidx.lifecycle.ViewModelProvider;

import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.api.directions.v5.models.RouteOptions;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.RouteOptions;
import com.mapbox.core.utils.TextUtils;
import com.mapbox.geojson.Point;
import com.mapbox.mapboxsdk.camera.CameraPosition;
Expand All @@ -42,7 +42,6 @@
import com.mapbox.services.android.navigation.v5.location.replay.ReplayRouteLocationEngine;
import com.mapbox.services.android.navigation.v5.navigation.MapboxNavigation;
import com.mapbox.services.android.navigation.v5.navigation.MapboxNavigationOptions;
import com.mapbox.services.android.navigation.v5.navigation.NavigationRoute;
import com.mapbox.services.android.navigation.v5.navigation.NavigationTimeFormat;
import com.mapbox.services.android.navigation.v5.utils.DistanceFormatter;
import com.mapbox.services.android.navigation.v5.utils.LocaleUtils;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import androidx.annotation.Nullable;

import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback;
import com.mapbox.api.directions.v5.models.BannerInstructions;
import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.services.android.navigation.v5.models.BannerInstructions;
import com.mapbox.services.android.navigation.v5.models.DirectionsRoute;
import com.mapbox.geojson.Point;
import com.mapbox.services.android.navigation.ui.v5.listeners.BannerInstructionsListener;
import com.mapbox.services.android.navigation.ui.v5.listeners.InstructionListListener;
Expand Down
Loading

0 comments on commit 57b36f5

Please sign in to comment.