Releases: mapbox/mapbox-navigation-android
Mapbox Navigation SDK v0.24.0
Release Notes
Important Note: With this release, you must include the following snippet in your project’s build.gradle:
repositories {
maven { url 'https://mapbox.bintray.com/mapbox' }
}
This will ensure the mapbox dependency is properly downloaded.
This release breaks SEMVER / contains API breaking changes. Please consult this migration guide for the necessary updates required.
Core Navigation libandroid-navigation
- We added the ability to find routes (
DirectionsRoute) offline!MapboxOfflineRouterwas added to gives developers the ability to download offline data, initialize it, and then ultimately fetch routes. We are really excited to add this functionality, so check those APIs out!
Changelog:
- Update Navigator to 3.4.7 #1592
- Bump mapbox-navigation-native version to 3.4.6 #1586
- Update Java Services 4.1.1 #1585
- Bump mapbox-android-sdk and mapbox-android-telemetry versions #1584
- Only allow choosing an offline version with valid data #1583
- Add bearing to origin of offline route requests in OfflineRouteFinder #1582
- Update permissions and preferences for ExampleActivity #1581
- Enable history recording in example activity #1580
- Add write external permission storage to app AndroidManifest #1578
- Route tile download #1559
- Update OfflineTileVersions visibility and add to MapboxOfflineRouter #1571
- Fix the progressUpdateListener for Tile Pack Unpacking #1567
- Update MapboxOfflineRoute APIs and callback naming #1569
- Fix milestone / progress listener leaks from NavigationView #1552
- Fix JSON file names (repo name) in check binary size script #1564
- Fix malformed binary size JSON #1563
- Integrate navigation state changes from latest events library version #1562
- Ignore StyleKit files for codecov #1561
- Check for DynamicCamera in ExampleViewModel shutdown #1560
- Fix cache is closed crash #1555
- Bump mapboxEvents and mapboxNavigator versions #1558
- Check for valid route with length in MockNavigationActivity #1556
- Update processor tests and remove unused helper code #1536
- Add binary size metric and push to loading dock #1554
- Fix UI tests with DirectionsRoute test fixture #1548
- Add codecov.yml #1551
- Nav Native API update #1547
- Add listener for updates to map way name #1544
- Ignore PendingIntent to re-open package with null Intent #1546
- Always add FeatureCollection for way points in NavigationMapRoute #1542
- Prevent from requesting voice instructions if the cache has been previously closed and add a check to delete the cache if there are files #1540
- Add offline functionality #1539
- Remove unnecessary proguard rule resolved in Java services 4.1.0 #1532
- Fix navigation map route array index out of bounds exception and add clean up navigation launcher preferences support #1530
- Fix voice instructions cache #1481
- Update Navigator to 3.4.0 #1525
- Cancel outstanding Directions API requests onDestroy NavigationViewModel #1515
- Use most recent raw Location when building snapped Location #1522
- Update translations to latest Transifex #1513
- Update codecov badge to Navigation 😅 #1510
- Update README.md with codecov badge #1509
- Generate and push code coverage to codecov.io in CI #1506
Mapbox Navigation SDK v0.24.0-beta.2
Pre-release beta of 0.24.0
Mapbox Navigation SDK v0.24.0-beta.1
Changelog
- Prevent from requesting voice instructions if the cache has been previously closed and add a check to delete the cache if there are files #1540
- Add offline functionality #1539
- Remove unnecessary proguard rule resolved in Java services 4.1.0 #1532
- Fix navigation map route array index out of bounds exception and add clean up navigation launcher preferences support #1530
- Fix voice instructions cache #1481
- Update Navigator to 3.4.0 #1525
- Cancel outstanding Directions API requests onDestroy NavigationViewModel #1515
- Use most recent raw Location when building snapped Location #1522
- Update translations to latest Transifex #1513
- Update codecov badge to Navigation 😅 #1510
- Update README.md with codecov badge #1509
- Generate and push code coverage to codecov.io in CI #1506
Mapbox Navigation SDK v0.23.0
Release Notes
Important Note: With this release, you must include the following snippet in your project’s build.gradle:
repositories {
maven { url 'https://mapbox.bintray.com/mapbox' }
}
This will ensure the mapbox dependency is properly downloaded. We will be adding a snippet regarding this in the repo README as well.
This release breaks contains API breaking changes. Please consult this migration guide for the necessary updates required.
Core Navigation libandroid-navigation
- We added a
RouteProgressStatethat gives information about when a user has arrived, as well as a lot of other information given to us via theNavigatorRouteState.- Example usage to detect when a user has arrived at the end of the given
RouteLeg:
- Example usage to detect when a user has arrived at the end of the given
@Override
public void onProgressChange(Location location, RouteProgress routeProgress) {
Integer currentState = routeProgress.currentState();
if (currentState != null && currentState == RouteProgressState.ROUTE_ARRIVED) {
// Arrived at the end of the leg!
}
}
- Check out
RouteProgressStateto see the different types of state events you can receive.
Navigation UI libandroid-navigation-ui
- We added an API that will allow custom map padding for the
NavigationView. This is useful for scenarios where you would like to adjust the location icon’s position on the screen (like centered for an arial view):
// To center the location icon
int[] customPadding = {0, 0, 0, 0};
navigationView.retrieveNavigationMapboxMap().updateLocationIconWith(customPadding);
- We added APIs to
InstructionViewandNavigationViewto enable / disable theNavigationAlertView(enabled by default).
// To disable the NavigationAlertView
navigationView.retrieveAlertView().updateEnabled(false);
- We added an
NavigationView#initializemethod that takes aCameraPositionto address the poor “fly-in” UX behavior (from starting theMapViewat a world-view camera position):
CameraPosition initialPosition = new CameraPosition.Builder()
.target(new LatLng(ORIGIN.latitude(), ORIGIN.longitude()))
.zoom(INITIAL_ZOOM)
.build();
navigationView.initialize(this, initialPosition);
Changelog:
- Add RouteProgressState to RouteProgress for current Navigator information #1502
- Remove LocationValidator and force last Location if found #1498
- Update MapRouteProgressChangeListener to be aware of route visibility #1482
- Remove MapboxNavigationOptions ignored by Navigator #1500
- Check for valid geocoding response in ExamplePresenter #1499
- Better clarify the Mapbox Navigator dependency #1496
- Add example test Activity for Navigation Test Application #1317
- Bump mapbox-navigation-native version to 3.3.1 #1495
- Add Mapbox Navigator TOS to the license #1494
- Bump Maps SDK and Events versions #1493
- Resume simulation for multi leg routes #1490
- Remove dynamic padding way name adjustment for MapWayname #1473
- Remove unnecessary force first location update from route (origin) #1488
- Add CameraPosition option for initializing NavigationView #1483
- Rebuild RemoteViews for MapboxNavigationNotification on each update #1474
- Update time remaining TextView to auto-size for longer durations #1479
- Fix mock location generation in ReplayRouteLocationConverter #1476
- Update Maps SDK to 6.6.2 #1475
- Bump mapbox-navigation-native version to 3.2.1 #1470
- Allow access to AlertView and the ability to enable or disable #1466
- Update Transifex to latest German translations #1476
Mapbox Navigation SDK v0.22.0
Release Notes
Important Note: With this release, you must include the following snippet in your project’s build.gradle:
repositories {
maven { url 'https://mapbox.bintray.com/mapbox' }
}
This will ensure the mapbox dependency is properly downloaded.
SEMVER: This release breaks contains API breaking changes. Please consult this migration guide for the necessary updates required.
Core Navigation libandroid-navigation
- The SDK will now provide more accurate snapped locations. We previously saw that the user location on the map would “lag” behind the location of user in real life. We have tweaked some parameters around our animations and snapped location projection to help address this user experience.
- We made some major improvements to our location projection through tunnels. Users should see themselves progress through tunnels more smoothly than before.
Navigation UI libandroid-navigation-ui
- We added route shield support for more pixel densities and thus more devices.
- We added route shield support for the “sub” banner that shows at the bottom of the
InstructionViewwhen the upcoming step is shorter. - Improved way name query performance and filtering. Previously, the way name (pill below the user location icon) would update too eagerly when crossing though intersections. We’ve added a filter to harden this logic, ensuring the way name updates when actually on a new street the user is traveling along.
Changelog:
- Replace LocationLayerPlugin with LocationComponent #1438
- Makes gradle.properties license listing consisting with repo #1456
- Rebuild MapboxNavigationNotification for each update #1455
- Update progruard rules to ensure Navigator is kept in release builds #1454
- Adjust InstructionView primary and secondary loading logic #1451
- Correct iconSize expression #1453
- Update InstructionView to consume turn lane data from sub BannerText #1440
- Fix MapWayname ProgressChangeListener leak #1442
- Add base HistoryActivity for testing #1447
- Fix sub BannerText loading shields for first time #1446
- make use of fixed duration for non tracking statuses #1437
- Check for valid index before updating steps in NavigationRouteProcessor #1435
- Update UrlDensityMap for more screen densities #1436
- Update Transifex latest translations #1433
- Update Maps SDK 6.6.1 and Events 3.4.0 #1434
- Stop scrolling before notifying InstructionListAdapter #1432
- Add FusedLocationEngine to Test App #1373
- Check for null maneuver type in ManeuverView #1429
- Revert Shield URL density additions #1428
- Add no value checks for FixLocation in MapboxNavigator #1426
- Show turn lanes when sub BannerText is not present #1427
- Log TimeFormatter error in place of IllegalArgumentException #1425
- Filter queried Features for map way name #1156
- Add tunnels functionality #1392
- Load sub-banner Shield Images #1418
- Fix shields not showing up for some display densities #1414
- Bump Android Gradle plugin version to 3.2.1 #1415
- Added nav-native ETAs #1412
- Delay start navigation until route received in MockNavigationActivity #1411
- Update Maps v6.6.0 release #1310
- Consume Sub BannerText in InstructionView #1408
- Fix component navigation activity camera issues #1407
Mapbox Navigation SDK v0.21.0
Release Notes
Important Note: With this release, you must include the following snippet in your project’s build.gradle:
repositories {
maven { url 'https://mapbox.bintray.com/mapbox' }
}
This will ensure the mapbox dependency is properly downloaded. We will be adding a snippet regarding this in the repo README as well.
Navigation UI libandroid-navigation-ui
-
Improved
NavigationCameralogic to be synced with the navigation puck. -
Added
OnCameraTrackingChangedListenertoNavigationMapboxMapwhich now allows users to interact with the map, while still tracking, setting new zoom levels: -
Fix 🐛 when adding click listeners to the
RecenterButton
Changelog:
- Add CustomNavigationNotification notification channel #1388
- Add OnCameraTrackingChangedListener to NavigationMapboxMap #1386
- Bump mapbox-android-plugin-locationlayer version to 0.10.0 #1382
- Camera tracking modes selection with GPS and North as options #1377
- Match min and max pitch values with iOS #1379
- Migrate camera tracking logic to the LocationLayerPlugin #1372
- CP: Use tracking animation multiplier 2x #1347
- Fix multi on click listener NPE in recenter button #1374
Mapbox Navigation SDK v0.20.0
Release Notes
Important Note: With this release, you must include the following snippet in your project’s build.gradle:
repositories {
maven { url 'https://mapbox.bintray.com/mapbox' }
}
This will ensure the mapbox dependency is properly downloaded. We will be adding a snippet regarding this in the repo README and in the Android docs site as well.
Navigation Core libandroid-navigation
- Integration with Mapbox
Navigator- Mapbox Navigator is a C++ lib that holds logic for route following and offline navigation
- Integration of history APIs that can be used to record route information in a
.json, helping debug different route behaviors.
Navigation UI libandroid-navigation-ui
- We updated the
InstructionViewAPIs for when it is used as a separateViewfrom theNavigationView. We did this so the banner instructions are only updated when they need to be (rather than every time aRouteProgressobject is provided):
@Override
public void onProgressChange(Location location, RouteProgress routeProgress) {
instructionView.updateDistanceWith(routeProgress);
}
@Override
public void onMilestoneEvent(RouteProgress routeProgress, String instruction, Milestone milestone) {
instructionView.updateBannerInstructionsWith(milestone);
}
- Added
NavigationMapboxMapAPIs for updating multipleDirectionsRouteobjects, as well as setting a listener for when alternatives are clicked / hiding and showing alternatives. - Added
NavigationMapboxMapAPI for updating the location layerRenderMode. - Fixed 🐛 related to adding click listeners to the
InstructionViewSoundButtonandFeedbackButton.
Changelog:
- Update Navigator to 3.1.3 #1364
- Delay adding InstructionView default click listeners until subscribed #1362
- Do not remove OffRouteListeners onArrival #1363
- Refine InstructionView update APIs #1355
- Puck Gymnastics #1354
- Fix MultiOnClickListener NPE #1353
- Ignore null locations #1352
- Update nav native to 3.0.1 #1348
- Add separate APIs for updating InstructionView #1340
- Create MultiOnClickListener before View is attached #1345
- Add navigator history functionality #1342
- Navigation native #1336
- Ignore navigation view orientation test #1331
- Add NavigationMapboxMap APIs for showing multiple routes on map #1320
- Add NavigationMapboxMap to set LocationLayer RenderMode #1319
- Update Build Tools 28.0.3 #1313
- Add default roundabout angle value for ManeuverView #1264
Mapbox Navigation SDK v0.20.0-beta.1
Pre-release beta of 0.20.0
Mapbox Navigation SDK v0.19.0
Release Notes
Navigation Core libandroid-navigation
- Simpler 'will voice' API
- Custom LocationEngine now allowed from NavigationViewOptions
- Location dispatcher has been added to replay raw GPS traces
Navigation UI libandroid-navigation-ui
- onNavigationStopped callback has been added for NavigationNotification
- Custom rounding increments have been added for formatting distance
Changelog:
- Fix route requests that include approaches and fix calculate remaining waypoints and waypoint names logic #1303
- Added ability to hide/add listeners to buttons/alert views #1251
- Allow custom LocationEngine from NavigationViewOptions #1257
- Add debug logging support back #1298
- Make last location from replay route location engine null (by default) until the first location is received or assigned explicitly #1296
- Do not update MockLocationEngine route on rotation #1289
- Fix mock navigation activity leak and fix location puck flying from current location to mock #1294
- Add location dispatcher to replay raw GPS traces #1039
- Remove sonarqube integration #1290
- Update Maps SDK to 6.5.0 and Events to 3.2.0 #1241
- Add onNavigationStopped callback for NavigationNotification #1283
- Added custom rounding increments for formatting distance #1231
- Simplify will voice api #1281
- Update RouteEngine for NavigationView duplicate starts #1277
- Fix recenter problem with Remove onMoveListener in onDestroy #1263
- Update Milestone javadoc to explain ignored trigger behavior #1269
- Fix route requests that include waypoint names #1260
- Do not allow multiple ViewModel subscriptions in NavigationView #1275
- Update Transfiex Translations #1258
- Do not add Fragments to backstack in FragmentNavigationActivity #1256
- bump location layer plugin version to 0.8.1 #1252
- fix route leg progress current leg annotation javadoc broken link #1250
- Save and restore map state on rotation for way name and camera tracking #1215
- Add example with MapboxNavigation driving separate UI components #1219
- Update NavigationView to guard against duplicate initializations #1247
- Add NavigationViewOption for default or custom SpeechPlayer #1232
- Added Burmese, Finnish, Korean, Norwegian guidance
Mapbox Navigation SDK v0.18.0
Release Notes
Navigation Core libandroid-navigation
- Bug fixes and updates.
Navigation UI libandroid-navigation-ui
- Incidents ⛔️
- Updated Map styles to v4 with incident coverage 🎉
- Added toggles in
NavigationMapboxMapfor traffic and incident data
- Bug fixes.
Changelog:
- Add toggles in NavigationMapboxMap for traffic and incident data #1226
- Update Map styles to V4 with incident coverage #1234
- Add initialization logic for null RouteOptions #1229
- Reopen the app when clicking the whole notification #1221
- Update Maps SDK to 6.4.0 and Events to 3.1.5 #1220
- Do not scroll Instruction RecyclerView while animating #1214
- Only reset night mode for EmbeddedNavigationActivity when isFinishing #1213
- Add Boolean in MapboxSpeechPlayer to prevent IllegalStateException #1212



